EDIT: also, in 4noob terms, how would one go about making a second Sonic with different stats (I guess taking the place of Tails) with different accelerations, speeds, etc (Maybe I'm adding Modern Sonic, maybe not
Basic Questions & Answers thread NEWBIES: Start here!
#4141
Posted 29 April 2012 - 06:31 PM
EDIT: also, in 4noob terms, how would one go about making a second Sonic with different stats (I guess taking the place of Tails) with different accelerations, speeds, etc (Maybe I'm adding Modern Sonic, maybe not
#4142
Posted 30 April 2012 - 10:24 AM
Jaseman, on 29 April 2012 - 06:31 PM, said:
Sorry. I guess it's my fault that mid2smps isn't very user-friendly. But it has improved a lot over the last year and I want to release an updated version sometime in May.
#4143
Posted 30 April 2012 - 02:23 PM
Jaseman, on 29 April 2012 - 06:31 PM, said:
move.w #$600,(Tails_top_speed).w ; set Tails' top speed
move.w #$C,(Tails_acceleration).w ; set Tails' acceleration
move.w #$80,(Tails_deceleration).w; set Tails' deceleration
Hope this helps.
#4144
Posted 30 April 2012 - 06:34 PM
1. Is there any way to get Sonic's ending animations to load in a similar manner to Tails (eg. for emerald endings, the super transformation and pallette load but then still play the normal ending animation afterwards)?
2. Is there anyway to have Sonic's levels start up like Tails' (eg. skip the Angel Island and Ice Cap intros)? I've tried editing the character flags related to the intros but all it does is glitch things up.
2. Out of curiosity, is that black and white death sprite used for anything in game? I'm really scraping for spare sprite spaces here.
#4145
Posted 01 May 2012 - 12:33 PM
#4146
Posted 01 May 2012 - 03:42 PM
#4147
Posted 01 May 2012 - 04:37 PM
#4148
Posted 01 May 2012 - 10:43 PM
#4149
Posted 02 May 2012 - 01:09 PM
#4150
Posted 03 May 2012 - 01:31 PM
E-122-Psi, on 30 April 2012 - 06:34 PM, said:
1. Is there any way to get Sonic's ending animations to load in a similar manner to Tails (eg. for emerald endings, the super transformation and pallette load but then still play the normal ending animation afterwards)?
2. Is there anyway to have Sonic's levels start up like Tails' (eg. skip the Angel Island and Ice Cap intros)? I've tried editing the character flags related to the intros but all it does is glitch things up.
2. Out of curiosity, is that black and white death sprite used for anything in game? I'm really scraping for spare sprite spaces here.
I'm pretty darn sure that sprite isn't used for anything, at least.
As for the other questions: definitely possible, but I couldn't say exactly how from a quick skim. I suspect both require editing specific character checks - possibly more than one each - within the code rather than being anything that can be fixed with a quick tweak to a table or static data. I'm afraid I won't have time to check it through myself for the moment, but I'll have to look at the Icecap startup sooner or later, so if I see anything useful I'll let you know.
#4151
Posted 03 May 2012 - 08:15 PM
Tiddles, on 03 May 2012 - 01:31 PM, said:
E-122-Psi, on 30 April 2012 - 06:34 PM, said:
1. Is there any way to get Sonic's ending animations to load in a similar manner to Tails (eg. for emerald endings, the super transformation and pallette load but then still play the normal ending animation afterwards)?
2. Is there anyway to have Sonic's levels start up like Tails' (eg. skip the Angel Island and Ice Cap intros)? I've tried editing the character flags related to the intros but all it does is glitch things up.
2. Out of curiosity, is that black and white death sprite used for anything in game? I'm really scraping for spare sprite spaces here.
I'm pretty darn sure that sprite isn't used for anything, at least.
As for the other questions: definitely possible, but I couldn't say exactly how from a quick skim. I suspect both require editing specific character checks - possibly more than one each - within the code rather than being anything that can be fixed with a quick tweak to a table or static data. I'm afraid I won't have time to check it through myself for the moment, but I'll have to look at the Icecap startup sooner or later, so if I see anything useful I'll let you know.
Cool. Thanx for that.
Oh I just figured out how to edit the Icecap one myself so if you need help with that I can assist. It is indeed editing a couple of character checks, one regarding start locations (loc_1BEC6) and another regarding graphics (loc_690A). I managed to get to a mid point with Angel Island's startup, mostly editing checks labelled over it's intro, it loads the same way as Tails now, however the levels' pallette and graphics are screwed up and as you progress a flurry of garble sprites rises and kills Sonic.
#4152
Posted 04 May 2012 - 02:41 PM
Now I think about it, I do know something about the AIZ intro, because I did pretty much the reverse of what you're doing to create an intro for Tails.
My copy is all monkeyed about from the various intro changes, but these are places you definitely want to change. There may be a few I didn't spot here - like an idiot, I didn't comment them all the same way as each other, so some may have slipped through the net.
LoadLevelLoadBlock: move.w (Current_zone_and_act).w,d0 bne.s loc_782A cmpi.w #2,(Player_mode).w bcc.s loc_7826 tst.b (Last_star_post_hit).w beq.s loc_782A
You always want to follow that bcc path - so you should actually just remove everything from cmpi.w down to the beq.s at the end of that block. (You could always just change bcc.s to bra.s to test it first and leave a safety net to go back to.)
loc_1BE7A: lea (a1,d0.w),a1 moveq #0,d1 move.w (a1)+,d1 move.w d1,($FFFFB010).w moveq #0,d0 move.w (a1),d0 move.w d0,($FFFFB014).w tst.b (Last_star_post_hit).w bne.w loc_1BF74 cmpi.w #0,(Current_zone_and_act).w bne.s loc_1BEC6 cmpi.w #2,(Player_mode).w bcc.s loc_1BEC6 move.w #$40,d1 ; If in Angel Island Zone and playing as Sonic, the start position is overridden for the intro move.w d1,($FFFFB010).w move.w #$420,d0 move.w d0,($FFFFB014).w move.w #0,d1 move.w d1,(Camera_min_X_pos).w move.w d1,(Camera_target_min_X_pos).w move.w d1,(Camera_min_X_pos_P2).w
Again, you want to always follow that bcc after cmpi.w #2, and the solution is pretty much the same again - clear the stuff in between or bra.s it. (If you remove it all, you will also have to remove the previous cmpi.w/bne too in this case, as it would become a zero-length branch.)
LoadLevelLoadBlock2: move.w (Current_zone_and_act).w,d0 bne.s loc_1C2C8 cmpi.w #2,(Player_mode).w bcc.s loc_1C2C4 tst.b (Last_star_post_hit).w beq.s loc_1C2C8
You know what to do.
loc_1C46E: move.b #1,($FFFFF72E).w cmpi.w #$1000,(Camera_X_pos).w bcs.s locret_1C4CE move.b #0,($FFFFF72E).w move.w (Camera_X_pos).w,(Camera_min_X_pos).w cmpi.w #$1308,(Camera_X_pos).w bcs.s locret_1C4CE tst.b (Last_star_post_hit).w bne.s loc_1C4A6 cmpi.w #2,(Player_mode).w bcc.s loc_1C4A6 moveq #$B,d0 jsr (Load_PLC).l
Honestly, I didn't remember that these were all the same answer at various well hidden locations. I was hoping I could say something cleverer. Oh, this is another one that might result in a zero length branch if you're not careful.
loc_1C4D0: move.w #$1308,(Camera_min_X_pos).w cmpi.w #$1400,(Camera_X_pos).w bcs.s locret_1C54E tst.b (Last_star_post_hit).w bne.s loc_1C522 cmpi.w #2,(Player_mode).w bcc.s loc_1C522 lea (AIZ1_16x16_MainLevel_Kos).l,a1 lea ($FFFF9268).w,a2 jsr (Queue_Kos).l lea (AIZ1_8x8_MainLevel_KosM).l,a1 move.w #$17C0,d2 jsr (Queue_Kos_Module).l st ($FFFFEEC6).w move.w #$500,($FFFFF7F0).w move.w #$500,($FFFFF7F2).w move.w #$500,($FFFFF7F4).w
Same old business, more short branches to watch.
loc_6248: move.w d0,(Level_music).w bsr.w Play_Sound tst.w (Current_zone_and_act).w bne.s loc_6268 cmpi.w #2,(Player_mode).w bcc.s loc_62B6 tst.b (Last_star_post_hit).w beq.w loc_62FE bra.s loc_62B6
Ditto. Clearly I started the search from the middle, as we've wrapped around. Too lazy to rewrite it now!
SpawnLevelMainSprites: move.l #Obj_Level_6C2C,(Reserved_object_3).w bsr.w SpawnLevelMainSprites_SpawnPlayers bsr.w SpawnLevelMainSprites_SpawnPowerup tst.b (Last_star_post_hit).w bne.w locret_69B6 tst.b (Special_bonus_entry_flag).w bne.w locret_69B6 lea (Player_1).w,a1 lea (Player_2).w,a2 cmpi.w #0,(Current_zone_and_act).w bne.s loc_6834 cmpi.w #2,(Player_mode).w bcc.s locret_6832 move.l #Obj_84,($FFFFB172).w clr.b (Level_started_flag).w
No short branch concerns this time. Have a sticker!
#4153
Posted 05 May 2012 - 12:07 PM
#4154
Posted 06 May 2012 - 04:24 AM
Jimmy Hedgehog, on 05 May 2012 - 12:07 PM, said:
Does the coding for draining rings have a bsr in the MdJump sections as well as MdNormal? That's the best I can think of right now.
#4155
Posted 07 May 2012 - 01:40 PM
