(My face after reading your post) Well.. That was awkward..m Anyways, since THAT doesn't work, I guess I'll have to screw around with sonic 1's code instead of 2' s. Thank you for letting me know how it "works" in-game. I'll contribute at least SOMETHING to this wonderful thread when I finally have something that works. Thank You!
Here's Splats. Recreated by us folks at the Sonic 1 Beta Research Station. This is based on actual code and info gathered from Sonic 2 prototypes. More info below: Some info is wrong (Eg the symbol leak was actually a source leak by drx), but it's the general idea. You will have to add Splats to the PLCs (And tinker with 2(a0)) yourself and make your own mappings, but that's easy enough. Edit: Fixes added n stuff.
One of the major flaws of Sonic 3&k is that Sonic has inconsistent arm lenth, so, I'm working on fix it. Welp, It's not my fault if Sega doesn't know how important is to give a proper and consistent arm lenth for sonic :T Currently, I only have the walking sprites done, but I'll update you guys when I complete it. I considered Sonic's idle sprite to do this, since It has the perfect arm lenth for sonic. feel free if you want to use this in your hack, considering that a major part of people who played S3K agree that Sonic's inconsistent arm lenth ruined one of another bad sonic games that had potential to be good. also, have a great february 30th!
I do apologise regarding the thread being bumped but I believe what I'm about to show is a no-brainer. In Sonic (3) and Knuckles, when you hit a monitor from below, you hit it rather than it bouncing to the floor like in Sonic 1, 2 and 3. I'll demostrate it for you: Sonic 3 and Knuckles allows you to hit the monitor from below. This is not the case for Sonic 1 (applies to its sequel) If you want to make the monitor behave like S3K in Sonic 1 and 2, it's pretty simple to do. In Sonic 1 (Hivebrain), locate Touch_Monitor and this is what you will get: Code: Touch_Monitor: tst.w $12(a0) ; is Sonic moving upwards? bpl.s loc_1AF1E ; if not, branch move.w $C(a0),d0 subi.w #$10,d0 cmp.w $C(a1),d0 bcs.s locret_1AF2E neg.w $12(a0) ; reverse Sonic's y-motion move.w #-$180,$12(a1) tst.b $25(a1) bne.s locret_1AF2E addq.b #4,$25(a1) ; advance the monitor's routine counter rts If you look in the last 6 lines of code, it makes sure it reverses Sonic's y-motion in order for the monitor to fall. In S3K, the code is removed in order for this behaviour to occur, so remove the last 6 lines of code. In Sonic 2 (GitHub), locate Touch_Monitor and you will see this: Code: Touch_Monitor: btst #1,status(a0) beq.s loc_3F768 tst.w y_vel(a0) ; is Sonic moving upwards? bpl.s loc_3F768 ; if not, branch move.w y_pos(a0),d0 subi.w #$10,d0 cmp.w y_pos(a1),d0 blo.s return_3F78A neg.w y_vel(a0) ; reverse Sonic's y-motion move.w #-$180,y_vel(a1) tst.b routine_secondary(a1) bne.s return_3F78A move.b #4,routine_secondary(a1) ; set the monitor's routine counter rts As I previously said, the last 6 lines reverses Sonic's y-motion in order for the monitor to fall. We don't want that so remove it. Now save, build and let's test it! And there we go, it behaves as intended! Enjoy!
For those who imported the Sonic 1 prototype's Sega screen (courtesy of DeltaWooloo) to their disassembly: ...an easy yet obvious way to put a jingle there is to go to loc_24BC (which only exists if you port that Sega screen) and add the following code just after the $C00004 line: move.b #$96,d0; play Sega screen music bsr.w PlaySound_Special The 96 can be a different jingle like the Chaos Emerald one (mainly if you didn't expand the music index), so 93 can be typed instead. Here's a video of the code in action: Of course I'll supply the custom jingle, which can be functional if the music index acknowledges it: https://mega.nz/file/zXxiFA7R#xyj0M_tnk511xCnTqsvQhoKsJ_2GsvKEXirlH3bn5cI No credit/permission is needed as this is a very simple thing to do with Delta's addition. Cheers!