Difference between revisions of "Sonic the Hedgehog CD/MMD Tweaking"
From Sonic Retro
(Tweakable locations in a Sonic CD level MMD) |
(Major cleanup) |
||
Line 1: | Line 1: | ||
− | + | Here are some locations in an European Sonic CD level MMD which contain tweakable code (in 68k assembly). | |
− | Here are some locations in an level MMD which contain tweakable code (in 68k assembly). | + | |
− | + | *'''Maximum rings allowed:''' | |
− | + | $AEFA: | |
− | move.w (word_FF1512).l,d1 ; Move number of rings into d1 | + | move.w (word_FF1512).l,d1 ; Move number of rings into d1 |
− | cmpi.w #$3E8,d1 ; Compare $3E8 (1000) with d1 (number of rings) | + | cmpi.w #$3E8,d1 ; Compare $3E8 (1000) with d1 (number of rings) |
− | bcs.s loc_20AF10 ; If the number of rings is < 1000, branch | + | bcs.s loc_20AF10 ; If the number of rings is < 1000, branch |
− | move.w #$3E7,d1 ; Move $3E7 (999) into d1 | + | move.w #$3E7,d1 ; Move $3E7 (999) into d1 |
− | move.w d1,(word_FF1512).l ; Move d1 back to the address where the number of rings is at | + | move.w d1,(word_FF1512).l ; Move d1 back to the address where the number of rings is at |
− | + | ||
− | Lowest number of rings required to access the special stage: | + | *'''Lowest number of rings required to access the special stage:''' |
− | cmpi.w #$32,(word_FF1512).l ; Compare 50 with the number of rings | + | $D50C: |
− | bcc.s loc_20D51C ; If number of rings >= 50, allow entrance to the special stage. | + | cmpi.w #$32,(word_FF1512).l ; Compare 50 with the number of rings |
− | jmp sub_20788C ; Otherwise jump here | + | bcc.s loc_20D51C ; If number of rings >= 50, allow entrance to the special stage. |
− | + | jmp sub_20788C ; Otherwise jump here | |
− | Number of rings you get when you break the ring monitor: | + | |
− | addi.w #$A,(word_FF1512).l ; Add 10 to the current number of rings | + | *'''Number of rings you get when you break the ring monitor:''' |
+ | $A88E: | ||
+ | addi.w #$A,(word_FF1512).l ; Add 10 to the current number of rings | ||
+ | |||
+ | |||
+ | {{SCHGuides}} | ||
+ | [[Category:Sonic Community Hacking Guide]] |
Revision as of 09:04, 7 August 2008
Here are some locations in an European Sonic CD level MMD which contain tweakable code (in 68k assembly).
- Maximum rings allowed:
$AEFA: move.w (word_FF1512).l,d1 ; Move number of rings into d1 cmpi.w #$3E8,d1 ; Compare $3E8 (1000) with d1 (number of rings) bcs.s loc_20AF10 ; If the number of rings is < 1000, branch move.w #$3E7,d1 ; Move $3E7 (999) into d1 move.w d1,(word_FF1512).l ; Move d1 back to the address where the number of rings is at
- Lowest number of rings required to access the special stage:
$D50C: cmpi.w #$32,(word_FF1512).l ; Compare 50 with the number of rings bcc.s loc_20D51C ; If number of rings >= 50, allow entrance to the special stage. jmp sub_20788C ; Otherwise jump here
- Number of rings you get when you break the ring monitor:
$A88E: addi.w #$A,(word_FF1512).l ; Add 10 to the current number of rings