SCHG:Sonic CD/MMD Tweaking
From Sonic Retro
| SCHG: Sonic CD |
|---|
| Main Article |
| File Locations |
| File Locations |
| Art Editing |
| Editing Art |
| MMD Tweaking |
| Tweaking MMDs |
Here are some locations in a European Sonic CD level MMD which contain tweakable code (in Motorola 68000 assembly).
Maximum rings allowed
$AEFA: move.w ($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,($FF1512).l ; Move d1 back to the address where the number of rings is at
Minimum rings for Giant Ring
$D50C: cmpi.w #$32,($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
Rings given by ring
$9F1A: addq.w #1,($FF1512).l ; Add 1 to number of rings
Rings given by Ring Monitor
$A88E: addi.w #$A,($FF1512).l ; Add 10 to the current number of rings
Invincibility duration
$A8F8: move.b #1,($FF151F).l ; Enable invicibility move.w #$4B0,($FFFFD032).w ; Set the invincibility duration time to $4B0
Super Sneakers duration
$A95A: move.b #1,($FF1520).l ; Enable super sneakers move.w #$4B0,($FFFFD034).w ; Set the super sneakers duration time to $4B0
Regular speed stats
$4082: move.w #$600,($FFFFF760).w ; Maximum velocity move.w #$C,($FFFFF762).w ; Maximum acceleration
Super Sneakers speed stats
$A968: move.w #$C00,($FFFFF760).w ; Set maximum velocity to $C00 move.w #$18,($FFFFF762).w ; Set maximum acceleration to $18


