Edit Level Select Text and pointers
From Sonic Retro
(Original guide by Inferno Gear/LoganTheSonicPlayer.) Copied from SSRG.
So, you want to edit the level select order in the GitHub disasm of Sonic 3 & Knuckles? Here's some help. Find LS_Level_Order and you should see this.
LS_Level_Order:
dc.w 0 ; AIZ act 1
dc.w 1 ; AIZ act 2
dc.w $100 ; HCZ act 1
dc.w $101 ; HCZ act 2
dc.w $200 ; MGZ act 1
dc.w $201 ; MGZ act 2
dc.w $300 ; CNZ act 1
dc.w $301 ; CNZ act 2
dc.w $500 ; ICZ act 1
dc.w $501 ; ICZ act 2
dc.w $600 ; LBZ act 1
dc.w $601 ; LBZ act 2
dc.w $700 ; MHZ act 1
dc.w $701 ; MHZ act 2
dc.w $400 ; FBZ act 1
dc.w $401 ; FBZ act 2
dc.w $800 ; SOZ act 1
dc.w $801 ; SOZ act 2
dc.w $900 ; LRZ act 1
dc.w $901 ; LRZ act 2
dc.w $1600 ; LRZ act 3
dc.w $1601 ; LRZ act 4
dc.w $A00 ; SSZ act 1
dc.w $A01 ; SSZ act 2
dc.w $B00 ; DEZ act 1
dc.w $B01 ; DEZ act 2
dc.w $C00 ; DDZ act 1
dc.w $1700 ; DDZ act 2
dc.w $1400 ; Bonus Stage 1
dc.w $1500 ; Bonus Stage 2
dc.w $4000 ; Special Stage 1
dc.w $4001 ; Special Stage 2
dc.w $FFFF ; Sound Test
But this is a little hard to understand, so I have a index set up to help ease the process. Move two indexes to change the level select's order.
$000/0 = AIZ Act 1
$001/1 = AIZ Act 2
$100 = HCZ act 1
$101 = HCZ act 2
$200 = MGZ act 1
$201 = MGZ act 2
$300 = CNZ act 1
$301 = CNZ act 2
$400 = FBZ act 1
$401 = FBZ act 2
$500 = ICZ act 1
$501 = ICZ act 2
$600 = LBZ act 1
$601 = LBZ act 2
$700 = MHZ act 1
$701 = MHZ act 2
$800 = SOZ act 1
$801 = SOZ act 2
$800 = SOZ act 1
$801 = SOZ act 2
$900 = LRZ act 1
$901 = LRZ act 2
$A00 = SSZ act 1
$A01 = SSZ act 2
$B00 = DEZ act 1
$B01 = DEZ act 2
$C00 = DDZ act 1
$1400 = Bonus Stage 1
$1500 = Bonus Stage 2
$1600 = LRZ Act 3 (Sonic's boss fight)
$1601 = LRZ Act 4 (Hidden Palace)
$1700 = DDZ Act 2 (Normal final boss?)
$4000 = Special Stage 1
$4001 = Special Stage 2
$FFFF = Sound Test
This is the IDs and the zones they stand for. I have put them in numerical order. To change the level select order move two IDs to after a zone and in the level select it will be there. But, the text is the same. Luckily, the level select text is easily editable. Find LevelSelectText and you should see this:
LevelSelectText:
levselstr "ANGEL ISLAND"
levselstr "HYDROCITY"
levselstr "MARBLE GARDEN"
levselstr "CARNIVAL NIGHT"
levselstr "ICECAP"
levselstr "LAUNCH BASE"
levselstr "MUSHROOM HILL"
levselstr "FLYING BATTERY"
levselstr "SANDOPOLIS"
levselstr "LAVA REEF"
levselstr "LAVA REEF"
levselstr "SKY SANCTUARY"
levselstr "DEATHEGG"
levselstr "THE DOOMSDAY"
levselstr "BONUS"
levselstr "SPECIAL STAGE"
levselstr "SOUND TEST *"
even
The text is in normal letters! Just edit the text and the menu is now in easily seeable order!
note by luna @makotoyuki
don't use level 0D (D00 or D01) unless you've added a new, safe level, in its place, as Sonic 3 has both acts completely corrupted and will crash the game unless you press start quickly (after which severe RAM corruption ensues until you reset and MIGHT corrupt your saves, not tested) and Sonic and Knuckles uses act 2 for its credits, leaving act 1 ($0D00) unused and untouched, which still creates RAM corruption, unless you miss your time to press Start, after which the Z80 fails and the game crashes.
SCHG How-To Guide: Sonic the Hedgehog 3 and Knuckles |
---|
Fixing Bugs |
Fix Blue Knuckles | Fix Tails' Respawn Speeds | Fix Super Sonic Bugs |
Design Choices |
Fix Scattered Rings' Underwater Physics | Edit Level Select Text & Pointers | Work with Water | Make the Slots Bonus Game Rotate Smoothly |
Adding Features |
Restore (Sonic 2) Options Menu |