Sonic Month: Sonic CD, Chaos, 2 and 3 Prototype Discussion

Discussion in 'Discussion & Q&A' started by LazloPsylus, Oct 26, 2019.

  1. Spanner

    Spanner The Tool Administrator

    Joined:
    Aug 9, 2007
    Messages:
    2,403
    Just to let people know for those looking for SMPSPlay versions of the tracks, ValleyBell has been given the music offsets to use and may have something sorted by tomorrow. No guarantee though, but they are getting looked into.
     
    Bluestreak and KCEXE like this.
  2. Ralakimia

    Ralakimia Pour your misery down on me Member

    Joined:
    Aug 26, 2013
    Messages:
    987
    I just checked the code for the "drop dash".

    It's not a bug. It's deliberately put in.

    Code:
    ROM:0000B61C Sonic_Jump:                             ; CODE XREF: ROM:0000AE84p
    ROM:0000B61C                 move.b  ($FFF603).w,d0
    ROM:0000B620                 andi.b  #$70,d0 ; 'p'
    ROM:0000B624                 beq.w   locret_B6F0
    ROM:0000B628                 move.b  ($FFF602).w,d0
    ROM:0000B62C                 andi.b  #$D,d0
    ROM:0000B630                 cmpi.b  #1,d0
    ROM:0000B634                 bne.s   loc_B63C
    ROM:0000B636                 move.w  #$FFFF,($FFFE5A).w
    ROM:0000B63C
    ROM:0000B63C loc_B63C:                               ; CODE XREF: Sonic_Jump+18j
    in Sonic_ResetOnFloor
    Code:
    ROM:0000BFF2 loc_BFF2:                               ; CODE XREF: Sonic_ResetOnFloor+74j
    ROM:0000BFF2                 tst.w   ($FFFE5A).w
    ROM:0000BFF6                 beq.s   locret_C00E
    ROM:0000BFF8                 bmi.s   loc_C010
    ROM:0000BFFA                 asr     $1C(a0)
    ROM:0000BFFE                 asr     $18(a0)
    ROM:0000C002                 move.w  #0,$1A(a0)
    ROM:0000C008                 move.w  #0,($FFFE5A).w
    ROM:0000C00E
    ROM:0000C00E locret_C00E:                            ; CODE XREF: Sonic_ResetOnFloor+80j
    ROM:0000C00E                 rts
    ROM:0000C010 ; ---------------------------------------------------------------------------
    ROM:0000C010
    ROM:0000C010 loc_C010:                               ; CODE XREF: Sonic_ResetOnFloor+82j
    ROM:0000C010                 move.w  #0,$1A(a0)
    ROM:0000C016                 move.w  #0,($FFFE5A).w
    ROM:0000C01C                 bsr.w   sub_ACEC
    ROM:0000C020                 move.b  #9,$20(a0)
    ROM:0000C026                 move.w  #$3C,d0 ; '<'
    ROM:0000C02A                 jsr     (PlaySound).l
    ROM:0000C030                 move.b  #1,$3D(a0)
    ROM:0000C036                 move.w  #0,$3E(a0)
    ROM:0000C03C                 rts
    Basically, if you are holding up, but not left or right as soon as you jump, it sets a flag to -1. Later in Sonic_ResetOnFloor, it checks that flag. For when it's negative, it goes to loc_C010, where it sets Sonic up to spindash, in which if you are not holding down, it will act as a "drop dash" and boost Sonic as he touches the floor. If you do start holding down after doing the Up + Jump thing, Sonic will start spindashing when he touches the floor.

    Interestingly enough, if said flag is a nonzero positive number, it seems to just halve Sonic's X speed.
     
    Last edited: Nov 17, 2019
  3. ProjectFM

    ProjectFM Optimistic and self-dependent Member

    Joined:
    Oct 4, 2014
    Messages:
    802
    Location:
    Portland, Maine
    I just downloaded this without looking at what everybody else thinks, and I love this. There are so many interesting differences. I love seeing all the weird bugs, such as Tails going crazy while flying during the bombing sequence in AIZ2. I just drowned in HCZ1, but Sonic didn't die for a moment, then he just fell off screen. There's also new sprites, music, and layouts. This is exactly what I could hope for from a prototype.

    Edit: More cool stuff: Drop dash 24 years early! Tails tries to sabotage your progress in MGZ by pushing the spinner backwards.

    Edit 2: Now the spinner is moving on its own!

    Edit 3: I love the fact that they composed the entire soundtrack, then brought Michael Jackson in to compose new music. Then, when they decided that he shouldn't be associate with the game, they just kept all his music in when they could've kept it out. They could've just taken the safe route and removed him from the project, but his music was so much better that they kept it in!

    Edit 4: The intro is pretty cool. I have no idea what's going on between Sonic and Knuckles though. It looks like Knuckles just wants to fight him for some reason, then just runs off. The Sonic & Knuckles Collection music arrangements are disappointing. I think I prefer the fan made ones in Sonic 3 Complete over some of these. The exception is the ending music, which sounds really cool. I hope there is a way to access debug mode.

    Edit 5: I saved testing out other characters and S&K stages for the end and got disappointed. But, the two special stages are pretty cool demos. Anyway, I hope Fred Bronze of Sonic 3 Unlocked is able to find some cool stuff and put it on his blog.
     
    Last edited: Nov 17, 2019
    Bluestreak and Trickster like this.
  4. penPhobic

    penPhobic In other words, water is wet Member

    Joined:
    Dec 11, 2016
    Messages:
    16
    Location:
    Basement
    Tried the prototype and it was impressive. Well, not that much. I have getting used the Drop Dash move. It was difficult. The PC soundtracks were actually from the prototype after all. That Launch Base Act 2 music feels more like Hydrocity alternative soundtrack than the said zone music due to similar instruments. Whatever. It was fun playing the prototype.
     
    Bluestreak, Trickster and ProjectFM like this.
  5. NeoFusionBox

    NeoFusionBox Lost in the armageddon. Member

    Joined:
    Sep 9, 2013
    Messages:
    489
    Location:
    Diamond Cascace Zone
    Honestly, most of S&K Collection music in that proto sounds better than the final versions one (except maybe for Ice Cap Act 1).
     
    Trickster likes this.
  6. MGHACKS

    MGHACKS Hey there! Bet you didn't find me around Member

    Joined:
    Aug 7, 2019
    Messages:
    57
    Maybe because it was on a Samsung S8+
     
  7. MGHACKS

    MGHACKS Hey there! Bet you didn't find me around Member

    Joined:
    Aug 7, 2019
    Messages:
    57
    I'm just glad Sonic Month ended with a positive. Still sad that there's no Sonic 1 proto.
     
    Bluestreak likes this.
  8. Ralakimia

    Ralakimia Pour your misery down on me Member

    Joined:
    Aug 26, 2013
    Messages:
    987
    Fun fact, the code for handling the frame reloading for the title screen is in the prototype.
    Code:
    ROM:000035EA
    ROM:000035EA ; =============== S U B R O U T I N E =======================================
    ROM:000035EA
    ROM:000035EA
    ROM:000035EA Iterate_TitleSonicFrame:                ; CODE XREF: ROM:000033AEp
    ROM:000035EA                 cmpi.b  #1,($FFFFBD).w
    ROM:000035F0                 bne.s   locret_3606
    ROM:000035F2                 move.w  ($FFFFBE).w,d0
    ROM:000035F6                 move.b  SonicFrameIndex(pc,d0.w),d0
    ROM:000035FA                 ext.w   d0
    ROM:000035FC                 bmi.s   loc_3608
    ROM:000035FE                 bsr.w   TitleSonic_LoadFrame
    ROM:00003602                 addq.w  #1,($FFFFBE).w
    ROM:00003606
    ROM:00003606 locret_3606:                            ; CODE XREF: Iterate_TitleSonicFrame+6j
    ROM:00003606                 rts
    ROM:00003608 ; ---------------------------------------------------------------------------
    ROM:00003608
    ROM:00003608 loc_3608:                               ; CODE XREF: Iterate_TitleSonicFrame+12j
    ROM:00003608                 move.b  #2,($FFFFBD).w
    ROM:0000360E                 bra.w   loc_3644
    ROM:0000360E ; ---------------------------------------------------------------------------
    ROM:00003612 SonicFrameIndex:
    ROM:00003612                 dc.b $2A, $FF, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    ROM:00003612                 dc.b $A, $B, $C, $D, $E, $F, $10, $11, $12, $13, $14, $15
    ROM:00003612                 dc.b $16, $17, $18, $19, $1A, $1B, $1C, $1D, $1E, $1F
    ROM:00003612                 dc.b $20, $21, $22, $23, $24, $25, $26, $27, $28, $29
    ROM:00003612                 dc.b $2A, $FF
    Compare that SonicFrameIndex to the final:
    Code:
    SonicFrameIndex:    dc.b    1,   2,   3,   4,   5,   6,   7,   8,   9,  $A,  $B, $FF
    However, this is what the frame data index looks like:
    Code:
    ROM:0000376A TitleSonic_Frames:dc.l ArtKos_TitleSonic0 ; DATA XREF: TitleSonic_LoadFrame+Ao
    ROM:0000376E                 dc.l Pal_TitleSonic0
    ROM:00003772                 dc.l MapEni_TitleSonic0
    ROM:00003776                 dc.l ArtKos_TitleSonic0
    ROM:0000377A                 dc.l Pal_TitleSonic0
    ROM:0000377E                 dc.l MapEni_TitleSonic0
    ROM:00003782                 dc.l ArtKos_TitleSonic0
    ROM:00003786                 dc.l Pal_TitleSonic0
    ROM:0000378A                 dc.l MapEni_TitleSonic0
    ROM:0000378E                 dc.l ArtKos_TitleSonic0
    ROM:00003792                 dc.l Pal_TitleSonic0
    ROM:00003796                 dc.l MapEni_TitleSonic0
    ROM:0000379A                 dc.l ArtKos_TitleSonic0
    ROM:0000379E                 dc.l Pal_TitleSonic0
    ROM:000037A2                 dc.l MapEni_TitleSonic0
    ROM:000037A6                 dc.l ArtKos_TitleSonic0
    ROM:000037AA                 dc.l Pal_TitleSonic0
    ROM:000037AE                 dc.l MapEni_TitleSonic0
    ROM:000037B2                 dc.l ArtKos_TitleSonic0
    ROM:000037B6                 dc.l Pal_TitleSonic0
    ROM:000037BA                 dc.l MapEni_TitleSonic0
    ROM:000037BE                 dc.l ArtKos_TitleSonic0
    ROM:000037C2                 dc.l Pal_TitleSonic0
    ROM:000037C6                 dc.l MapEni_TitleSonic0
    ROM:000037CA                 dc.l ArtKos_TitleSonic0
    ROM:000037CE                 dc.l Pal_TitleSonic0
    ROM:000037D2                 dc.l MapEni_TitleSonic0
    ROM:000037D6                 dc.l ArtKos_TitleSonic0
    ROM:000037DA                 dc.l Pal_TitleSonic0
    ROM:000037DE                 dc.l MapEni_TitleSonic0
    ROM:000037E2                 dc.l ArtKos_TitleSonic0
    ROM:000037E6                 dc.l Pal_TitleSonic0
    ROM:000037EA                 dc.l MapEni_TitleSonic0
    ROM:000037EE                 dc.l ArtKos_TitleSonic0
    ROM:000037F2                 dc.l Pal_TitleSonic0
    ROM:000037F6                 dc.l MapEni_TitleSonic0
    ROM:000037FA                 dc.l ArtKos_TitleSonic0
    ROM:000037FE                 dc.l Pal_TitleSonic0
    ROM:00003802                 dc.l MapEni_TitleSonic0
    ROM:00003806                 dc.l ArtKos_TitleSonic0
    ROM:0000380A                 dc.l Pal_TitleSonic0
    ROM:0000380E                 dc.l MapEni_TitleSonic0
    ROM:00003812                 dc.l ArtKos_TitleSonic0
    ROM:00003816                 dc.l Pal_TitleSonic0
    ROM:0000381A                 dc.l MapEni_TitleSonic0
    ROM:0000381E                 dc.l ArtKos_TitleSonic0
    ROM:00003822                 dc.l Pal_TitleSonic0
    ROM:00003826                 dc.l MapEni_TitleSonic0
    ROM:0000382A                 dc.l ArtKos_TitleSonic0
    ROM:0000382E                 dc.l Pal_TitleSonic0
    ROM:00003832                 dc.l MapEni_TitleSonic0
    ROM:00003836                 dc.l ArtKos_TitleSonic0
    ROM:0000383A                 dc.l Pal_TitleSonic0
    ROM:0000383E                 dc.l MapEni_TitleSonic0
    ROM:00003842                 dc.l ArtKos_TitleSonic0
    ROM:00003846                 dc.l Pal_TitleSonic0
    ROM:0000384A                 dc.l MapEni_TitleSonic0
    ROM:0000384E                 dc.l ArtKos_TitleSonic0
    ROM:00003852                 dc.l Pal_TitleSonic0
    ROM:00003856                 dc.l MapEni_TitleSonic0
    ROM:0000385A                 dc.l ArtKos_TitleSonic0
    ROM:0000385E                 dc.l Pal_TitleSonic0
    ROM:00003862                 dc.l MapEni_TitleSonic0
    ROM:00003866                 dc.l ArtKos_TitleSonic0
    ROM:0000386A                 dc.l Pal_TitleSonic0
    ROM:0000386E                 dc.l MapEni_TitleSonic0
    ROM:00003872                 dc.l ArtKos_TitleSonic0
    ROM:00003876                 dc.l Pal_TitleSonic0
    ROM:0000387A                 dc.l MapEni_TitleSonic0
    ROM:0000387E                 dc.l ArtKos_TitleSonic0
    ROM:00003882                 dc.l Pal_TitleSonic0
    ROM:00003886                 dc.l MapEni_TitleSonic0
    ROM:0000388A                 dc.l ArtKos_TitleSonic0
    ROM:0000388E                 dc.l Pal_TitleSonic0
    ROM:00003892                 dc.l MapEni_TitleSonic0
    ROM:00003896                 dc.l ArtKos_TitleSonic0
    ROM:0000389A                 dc.l Pal_TitleSonic0
    ROM:0000389E                 dc.l MapEni_TitleSonic0
    ROM:000038A2                 dc.l ArtKos_TitleSonic0
    ROM:000038A6                 dc.l Pal_TitleSonic0
    ROM:000038AA                 dc.l MapEni_TitleSonic0
    ROM:000038AE                 dc.l ArtKos_TitleSonic0
    ROM:000038B2                 dc.l Pal_TitleSonic0
    ROM:000038B6                 dc.l MapEni_TitleSonic0
    ROM:000038BA                 dc.l ArtKos_TitleSonic0
    ROM:000038BE                 dc.l Pal_TitleSonic0
    ROM:000038C2                 dc.l MapEni_TitleSonic0
    ROM:000038C6                 dc.l ArtKos_TitleSonic0
    ROM:000038CA                 dc.l Pal_TitleSonic0
    ROM:000038CE                 dc.l MapEni_TitleSonic0
    ROM:000038D2                 dc.l ArtKos_TitleSonic0
    ROM:000038D6                 dc.l Pal_TitleSonic0
    ROM:000038DA                 dc.l MapEni_TitleSonic0
    ROM:000038DE                 dc.l ArtKos_TitleSonic0
    ROM:000038E2                 dc.l Pal_TitleSonic0
    ROM:000038E6                 dc.l MapEni_TitleSonic0
    ROM:000038EA                 dc.l ArtKos_TitleSonic0
    ROM:000038EE                 dc.l Pal_TitleSonic0
    ROM:000038F2                 dc.l MapEni_TitleSonic0
    ROM:000038F6                 dc.l ArtKos_TitleSonic0
    ROM:000038FA                 dc.l Pal_TitleSonic0
    ROM:000038FE                 dc.l MapEni_TitleSonic0
    ROM:00003902                 dc.l ArtKos_TitleSonic0
    ROM:00003906                 dc.l Pal_TitleSonic0
    ROM:0000390A                 dc.l MapEni_TitleSonic0
    ROM:0000390E                 dc.l ArtKos_TitleSonic0
    ROM:00003912                 dc.l Pal_TitleSonic0
    ROM:00003916                 dc.l MapEni_TitleSonic0
    ROM:0000391A                 dc.l ArtKos_TitleSonic0
    ROM:0000391E                 dc.l Pal_TitleSonic0
    ROM:00003922                 dc.l MapEni_TitleSonic0
    ROM:00003926                 dc.l ArtKos_TitleSonic0
    ROM:0000392A                 dc.l Pal_TitleSonic0
    ROM:0000392E                 dc.l MapEni_TitleSonic0
    ROM:00003932                 dc.l ArtKos_TitleSonic0
    ROM:00003936                 dc.l Pal_TitleSonic0
    ROM:0000393A                 dc.l MapEni_TitleSonic0
    ROM:0000393E                 dc.l ArtKos_TitleSonic0
    ROM:00003942                 dc.l Pal_TitleSonic0
    ROM:00003946                 dc.l MapEni_TitleSonic0
    ROM:0000394A                 dc.l ArtKos_TitleSonic0
    ROM:0000394E                 dc.l Pal_TitleSonic0
    ROM:00003952                 dc.l MapEni_TitleSonic0
    ROM:00003956                 dc.l ArtKos_TitleSonic0
    ROM:0000395A                 dc.l Pal_TitleSonic0
    ROM:0000395E                 dc.l MapEni_TitleSonic0
    ROM:00003962                 dc.l ArtKos_TitleSonic0
    ROM:00003966                 dc.l Pal_TitleSonic0
    ROM:0000396A                 dc.l MapEni_TitleSonic0
    The data for the others frames do not seem to exist.
     
    Last edited: Nov 17, 2019
  9. Natsumi

    Natsumi Phoenix egg Member

    Joined:
    Oct 7, 2011
    Messages:
    702
    Location:
    Long and dangerous river
    So I spent the entirity of today ripping the music and SFX from the Sonic 3 proto. I included both binary files and SMPS2ASM converts: Here is the link

    Edited link with corrections
     
    Last edited: Nov 17, 2019
    Angel X, TheBlad768, FireRat and 5 others like this.
  10. Clownacy

    Clownacy Negative Clownancy Staff

    Joined:
    Aug 15, 2014
    Messages:
    884
    Angel X, TheBlad768, FireRat and 6 others like this.
  11. Bluestreak

    Bluestreak Lady in red, living in dread. Member

    Joined:
    Apr 1, 2016
    Messages:
    185
    Location:
    Eastwatch Island
    I remember reading somewhere there was more more Michael Jackson music for Sonic 3, and exists on floppies that Howard Drossin owns, but cannot release due to legal reasons. I could be misremembering something though.

    Anywho, I definitely prefer Knuckles' old sprites by far. They're more detailed and better animated imo, and go more with the Sonic 2 styling. Here's to hoping some old digitizer stuff with Knuckles' old sprites, or an earlier proto is found someday!

    Other cool things are the shields having more animation frames, the fact Sonic either stands or walks in place instead of rotating, and the fact there are warps in the Twist'm Spikez boss fight in Launch Base

    This an amazing piece of history!
     
    Last edited: Nov 18, 2019
    ProjectFM likes this.
  12. Gray21oh

    Gray21oh Newcomer Trialist

    Joined:
    Oct 19, 2019
    Messages:
    3
    I still can't get over how quickly the changes were done from this beta to the final release. It's really shocking how much has changed for developing games since then.

    Was literally screaming when I saw how the drop dash was in this version along with Lava Reef having some progress in the build! Truly some found history.
     
  13. MGHACKS

    MGHACKS Hey there! Bet you didn't find me around Member

    Joined:
    Aug 7, 2019
    Messages:
    57
    Good job but it doesn't convert properly using SMPSConv. This is when converting to Sonic 1. For CNZ1 it is only 65 bytes rather than 1KB+.
     
  14. AsuharaMoon

    AsuharaMoon kakyoin did you lay this egg Member

    Joined:
    Aug 15, 2013
    Messages:
    61
    ValleyBell said that's because the offset detection goes wrong on 16 of the 49 songs (even in SMPSplay). Just subtract two numbers to the offset value that appears (for ex, AIZ1's should be $8000 rather than $8002) and it's gonna be ready to be converted.
     
  15. ValleyBell

    ValleyBell Well-Known Member Member

    Joined:
    Dec 23, 2011
    Messages:
    153
    Here we go: Sonic 3 prototype 1993-11-03 SMPS rip, for playback with SMPSPlay.
    The definition files mostly work with the last SMPSPlay release (v2.20). However, I had to add 3 new commands, so building from GitHub might be a good idea. I've only seen one of them used (and that by the Game Over theme), so it might just work with the command list from S3 final as well.

    A word on the DAC samples:
    Sample 9B is a different snare drum. Samples 81-9A are the same as their final versions, except untrimmed. (and thus with a few 00 bytes at the beginning)
     
  16. Spanner

    Spanner The Tool Administrator

    Joined:
    Aug 9, 2007
    Messages:
    2,403
    Maybe one day we will get this later proto, which has the new sprites, and also note that the Ice Cap boss is using Act 1's palette.
    [​IMG]
    [​IMG]
    Who knows though, considering SEGA's hardcore secrecy on the game. These screenshots could have been picture slides, rather than EEPROMs.
     
  17. ValleyBell

    ValleyBell Well-Known Member Member

    Joined:
    Dec 23, 2011
    Messages:
    153
    If you want to do some more playthroughs of the prototype, I have something:
    a slightly improved S3 prototype sound driver
    It's just the raw Z80 driver. If you want to install it into the ROM, paste it into the ROM at $0E0000, overwriting the existing data. (The ROM has no checksum check.)

    Features:
    • fixed the bug that causes it to break some SFX (It was a bank switching bug that happens when a sound effect finishes playing.)
    • made the ring sound effect alternate between both speakers
    • made the 1up and drowning music restart the previous song after finishing (so that the game doesn't constantly go silent)
     
  18. Iso Kilo

    Iso Kilo Sonic 1 Beta Researcher Member

    Joined:
    Oct 9, 2017
    Messages:
    175
    Location:
    Small Town in BC, Canada
    Something we all noticed in the latest Sonic 3 prototype is that in the multiplayer mode, Sonic does use his final Sonic 3 design. Which is different compared to the main game, which uses his Sonic 2 art. This is because at the time of the build, not all of Sonic's art was done. And I guess instead of having a mish mash of art styles with the animations that weren't done, Sonic Team just used Sonic 2 as a placeholder. However, they had enough frames for what they needed in the multiplayer. But! There is evidence of the multiplayer at one point using the Sonic 2 art. This is actually present in the final game, as well. Just take a look and compare the jump art.
    Jump comparison.png
    Thought this was worth sharing and might lead to finding an earlier prototype of some sort.
     
    MarkeyJester, ProjectFM and Trickster like this.
  19. Bluestreak

    Bluestreak Lady in red, living in dread. Member

    Joined:
    Apr 1, 2016
    Messages:
    185
    Location:
    Eastwatch Island
    https://youtu.be/vu1LAu9LEdo

    A friend of mine was bored and was thinking about the Carnival Night and Launch Base beta themes, and compared them to Hydrocity, noticing a strange connection to them, and how they play in a similar key and pacing, so the musician in her started overlaying and messing with the songs, and came up with this.

    Btw, she got mixed up and meant Tatsuyuki Maeda.

    This may make it easier to figure out who did what songs in the future.
     
    Last edited: Nov 22, 2019
    ProjectFM and Trickster like this.
  20. SoniMania2000

    SoniMania2000 Newcomer Trialist

    Joined:
    Yesterday
    Messages:
    5
    It's amazing how people are finding these rare gems from over 20 years ago! I still can't get why people just sell it!