Hi everyone, i want to start to share some things i have experienced by myself. Sorry for my bad english, but i think you are accustomed now... I hope... THEN! Why am i doing this tutorial? Because this https://forums.sonicretro.org/index.php?showtopic=33475 and this http://info.sonicretro.org/SCHG_How-to:Add_Extra_Characters (so also this: http://sonicresearch.org/community/...torial-on-extra-characters-in-s1.47/#post-703)... did not work for me, but in fact, i took some elements of these three to make mine method. Before starting it, i want to say: for those who do not understand my approach, or my choices, i'm sorry. But this tutorial is for those like me who are not able to apply the 3 from the top. /!\ This guide is for the Hivebrain 2005 ASM68k disasm. version /!\ If you using any other disasm. I'm sorry but i will not show you the way to do this guide with the others disasm. -------------------------------------------------------------------------------------------------------------------------------------- Spoiler: STEP 1 STEP 1: Download the files In this guide, i will teach you how to import Mighty to Sonic 1, but i think this guide will work with any characters (Shadow, Tails, Knuckles, your own... Spoiler: It's a joke Ashuro the badger ). Just download the .rar archive which contains the PLC, art, palette, mappings and anim file of Mighty. Put Mighty dynamic pattern load cues.asm under _inc, MightyAni.asm under _anim, mightyArt.bin under artunc, MightyMap.asm under _maps and mightypal.asm under pallet. . -------------------------------------------------------------------------------------------------------------------------------------- Spoiler: STEP 2 STEP 2: make the files be loaded Open up your Sonic1.asm file. Search for "SonicDynPlc:". You actually see this: Code: ; --------------------------------------------------------------------------- ; Sprite mappings - Sonic ; --------------------------------------------------------------------------- Map_Sonic: include "_maps\Sonic.asm" ; --------------------------------------------------------------------------- ; Uncompressed graphics loading array for Sonic ; --------------------------------------------------------------------------- SonicDynPLC: include "_inc\Sonic dynamic pattern load cues.asm" ; --------------------------------------------------------------------------- ; Uncompressed graphics - Sonic ; --------------------------------------------------------------------------- Art_Sonic: incbin artunc\sonic.bin ; Sonic even Change it to: Code: ; --------------------------------------------------------------------------- ; Sprite mappings - Sonic/Mighty ; --------------------------------------------------------------------------- Map_Sonic: include "_maps\Sonic.asm" Map_Mighty: include "_maps\MightyMap.asm" ; Mighty mapping files ; --------------------------------------------------------------------------- ; Uncompressed graphics loading array for Sonic/Mighty ; --------------------------------------------------------------------------- SonicDynPLC: include "_inc\Sonic dynamic pattern load cues.asm" MightyDynPLC: include "_inc\Mighty dynamic pattern load cues.asm" ; Mighty plc ; --------------------------------------------------------------------------- ; Uncompressed graphics - Sonic/Mighty ; --------------------------------------------------------------------------- Art_Sonic: incbin artunc\sonic.bin ; Sonic even Art_Mighty: incbin artunc\mightyArt.bin ; Mighty art even Then, search for "SonicAniData:" And replace Code: SonicAniData: include "_anim\Sonic.asm" With Code: SonicAniData: include "_anim\Sonic.asm" MightyAniData: include "_anim\MightyAni.asm" And finally, the palette, search for "Pal_Sonic:" Code: ; --------------------------------------------------------------------------- ; Pallet data ; --------------------------------------------------------------------------- Pal_SegaBG: incbin pallet\sega_bg.bin Pal_Title: incbin pallet\title.bin Pal_LevelSel: incbin pallet\levelsel.bin Pal_Sonic: incbin pallet\sonic.bin .... Then, add the label for Mighty under "Pal_Sonic" Code: ; --------------------------------------------------------------------------- ; Pallet data ; --------------------------------------------------------------------------- Pal_SegaBG: incbin pallet\sega_bg.bin Pal_Title: incbin pallet\title.bin Pal_LevelSel: incbin pallet\levelsel.bin Pal_Sonic: incbin pallet\sonic.bin Pal_Mighty: incbin pallet\mightypal.bin .... If you build, you will get 64 errors, and it's because it need some fixies. Right now i recommend to use NotePad++. Open the MightyAni.asm in notepad. Under "Search", click on "Replace...", and replace "SonicAniData" with "MightyAniData". Next, replace "SonAni" with "MightyAni". Spoiler: BEFORE Code: ; --------------------------------------------------------------------------- ; Animation script - Sonic ; --------------------------------------------------------------------------- dc.w SonAni_Walk-SonicAniData dc.w SonAni_Run-SonicAniData dc.w SonAni_Roll-SonicAniData dc.w SonAni_Roll2-SonicAniData dc.w SonAni_Push-SonicAniData dc.w SonAni_Wait-SonicAniData dc.w SonAni_Balance-SonicAniData dc.w SonAni_LookUp-SonicAniData dc.w SonAni_Duck-SonicAniData dc.w SonAni_Warp1-SonicAniData dc.w SonAni_Warp2-SonicAniData dc.w SonAni_Warp3-SonicAniData dc.w SonAni_Warp4-SonicAniData dc.w SonAni_Stop-SonicAniData dc.w SonAni_Float1-SonicAniData dc.w SonAni_Float2-SonicAniData dc.w SonAni_Spring-SonicAniData dc.w SonAni_LZHang-SonicAniData dc.w SonAni_Leap1-SonicAniData dc.w SonAni_Leap2-SonicAniData dc.w SonAni_Surf-SonicAniData dc.w SonAni_Bubble-SonicAniData dc.w SonAni_Death1-SonicAniData dc.w SonAni_Drown-SonicAniData dc.w SonAni_Death2-SonicAniData dc.w SonAni_Shrink-SonicAniData dc.w SonAni_Hurt-SonicAniData dc.w SonAni_LZSlide-SonicAniData dc.w SonAni_Blank-SonicAniData dc.w SonAni_Float3-SonicAniData dc.w SonAni_Float4-SonicAniData SonAni_Walk: dc.b $FF, 8, 9, $A, $B, 6, 7, $FF SonAni_Run: dc.b $FF, $1E, $1F, $20, $21, $FF, $FF, $FF SonAni_Roll: dc.b $FE, $2E, $2F, $30, $31, $32, $FF, $FF SonAni_Roll2: dc.b $FE, $2E, $2F, $32, $30, $31, $32, $FF SonAni_Push: dc.b $FD, $45, $46, $47, $48, $FF, $FF, $FF SonAni_Wait: dc.b $17, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 3, 4, $FE, 2, 0 SonAni_Balance: dc.b $1F, $3A, $3B, $FF SonAni_LookUp: dc.b $3F, 5, $FF, 0 SonAni_Duck: dc.b $3F, $39, $FF, 0 SonAni_Warp1: dc.b $3F, $33, $FF, 0 SonAni_Warp2: dc.b $3F, $34, $FF, 0 SonAni_Warp3: dc.b $3F, $35, $FF, 0 SonAni_Warp4: dc.b $3F, $36, $FF, 0 SonAni_Stop: dc.b 7, $37, $38, $FF SonAni_Float1: dc.b 7, $3C, $3F, $FF SonAni_Float2: dc.b 7, $3C, $3D, $53, $3E, $54, $FF, 0 SonAni_Spring: dc.b $2F, $40, $FD, 0 SonAni_LZHang: dc.b 4, $41, $42, $FF SonAni_Leap1: dc.b $F, $43, $43, $43, $FE, 1 SonAni_Leap2: dc.b $F, $43, $44, $FE, 1, 0 SonAni_Surf: dc.b $3F, $49, $FF, 0 SonAni_Bubble: dc.b $B, $56, $56, $A, $B, $FD, 0, 0 SonAni_Death1: dc.b $20, $4B, $FF, 0 SonAni_Drown: dc.b $2F, $4C, $FF, 0 SonAni_Death2: dc.b 3, $4D, $FF, 0 SonAni_Shrink: dc.b 3, $4E, $4F, $50, $51, $52, 0, $FE, 1, 0 SonAni_Hurt: dc.b 3, $55, $FF, 0 SonAni_LZSlide: dc.b 7, $55, $57, $FF SonAni_Blank: dc.b $77, 0, $FD, 0 SonAni_Float3: dc.b 3, $3C, $3D, $53, $3E, $54, $FF, 0 SonAni_Float4: dc.b 3, $3C, $FD, 0 even Spoiler: AFTER Code: ; --------------------------------------------------------------------------- ; Animation script - Mighty ; --------------------------------------------------------------------------- dc.w MightyAni_Walk-MightyAniData dc.w MightyAni_Run-MightyAniData dc.w MightyAni_Roll-MightyAniData dc.w MightyAni_Roll2-MightyAniData dc.w MightyAni_Push-MightyAniData dc.w MightyAni_Wait-MightyAniData dc.w MightyAni_Balance-MightyAniData dc.w MightyAni_LookUp-MightyAniData dc.w MightyAni_Duck-MightyAniData dc.w MightyAni_Warp1-MightyAniData dc.w MightyAni_Warp2-MightyAniData dc.w MightyAni_Warp3-MightyAniData dc.w MightyAni_Warp4-MightyAniData dc.w MightyAni_Stop-MightyAniData dc.w MightyAni_Float1-MightyAniData dc.w MightyAni_Float2-MightyAniData dc.w MightyAni_Spring-MightyAniData dc.w MightyAni_LZHang-MightyAniData dc.w MightyAni_Leap1-MightyAniData dc.w MightyAni_Leap2-MightyAniData dc.w MightyAni_Surf-MightyAniData dc.w MightyAni_Bubble-MightyAniData dc.w MightyAni_Death1-MightyAniData dc.w MightyAni_Drown-MightyAniData dc.w MightyAni_Death2-MightyAniData dc.w MightyAni_Shrink-MightyAniData dc.w MightyAni_Hurt-MightyAniData dc.w MightyAni_LZSlide-MightyAniData dc.w MightyAni_Blank-MightyAniData dc.w MightyAni_Float3-MightyAniData dc.w MightyAni_Float4-MightyAniData MightyAni_Walk: dc.b $FF, 8, 9, $A, $B, 6, 7, $FF MightyAni_Run: dc.b $FF, $1E, $1F, $20, $21, $FF, $FF, $FF MightyAni_Roll: dc.b $FE, $2E, $2F, $30, $31, $32, $FF, $FF MightyAni_Roll2: dc.b $FE, $2E, $2F, $32, $30, $31, $32, $FF MightyAni_Push: dc.b $FD, $45, $46, $47, $48, $FF, $FF, $FF MightyAni_Wait: dc.b $17, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, 3, 4, $FE, 2, 0 MightyAni_Balance: dc.b $1F, $3A, $3B, $FF MightyAni_LookUp: dc.b $3F, 5, $FF, 0 MightyAni_Duck: dc.b $3F, $39, $FF, 0 MightyAni_Warp1: dc.b $3F, $33, $FF, 0 MightyAni_Warp2: dc.b $3F, $34, $FF, 0 MightyAni_Warp3: dc.b $3F, $35, $FF, 0 MightyAni_Warp4: dc.b $3F, $36, $FF, 0 MightyAni_Stop: dc.b 7, $37, $38, $FF MightyAni_Float1: dc.b 7, $3C, $3F, $FF MightyAni_Float2: dc.b 7, $3C, $3D, $53, $3E, $54, $FF, 0 MightyAni_Spring: dc.b $2F, $40, $FD, 0 MightyAni_LZHang: dc.b 4, $41, $42, $FF MightyAni_Leap1: dc.b $F, $43, $43, $43, $FE, 1 MightyAni_Leap2: dc.b $F, $43, $44, $FE, 1, 0 MightyAni_Surf: dc.b $3F, $49, $FF, 0 MightyAni_Bubble: dc.b $B, $56, $56, $A, $B, $FD, 0, 0 MightyAni_Death1: dc.b $20, $4B, $FF, 0 MightyAni_Drown: dc.b $2F, $4C, $FF, 0 MightyAni_Death2: dc.b 3, $4D, $FF, 0 MightyAni_Shrink: dc.b 3, $4E, $4F, $50, $51, $52, 0, $FE, 1, 0 MightyAni_Hurt: dc.b 3, $55, $FF, 0 MightyAni_LZSlide: dc.b 7, $55, $57, $FF MightyAni_Blank: dc.b $77, 0, $FD, 0 MightyAni_Float3: dc.b 3, $3C, $3D, $53, $3E, $54, $FF, 0 MightyAni_Float4: dc.b 3, $3C, $FD, 0 even Now, open the "MightyMap.asm" and replace all the "Map_Sonic" with "Map_Mighty", and the "byte" with "byte2". Spoiler: BEFORE Code: ; --------------------------------------------------------------------------- ; Sprite mappings - Sonic ; --------------------------------------------------------------------------- dc.w byte_21292-Map_Sonic, byte_21293-Map_Sonic dc.w byte_212A8-Map_Sonic, byte_212B8-Map_Sonic dc.w byte_212C8-Map_Sonic, byte_212D8-Map_Sonic dc.w byte_212E8-Map_Sonic, byte_212FD-Map_Sonic dc.w byte_21308-Map_Sonic, byte_21313-Map_Sonic dc.w byte_21328-Map_Sonic, byte_21333-Map_Sonic dc.w byte_21343-Map_Sonic, byte_2135D-Map_Sonic dc.w byte_2137C-Map_Sonic, byte_21391-Map_Sonic dc.w byte_213AB-Map_Sonic, byte_213C0-Map_Sonic dc.w byte_213DA-Map_Sonic, byte_213EF-Map_Sonic dc.w byte_213FA-Map_Sonic, byte_21405-Map_Sonic dc.w byte_2141A-Map_Sonic, byte_21425-Map_Sonic dc.w byte_21435-Map_Sonic, byte_21454-Map_Sonic dc.w byte_21473-Map_Sonic, byte_21488-Map_Sonic dc.w byte_214A2-Map_Sonic, byte_214B7-Map_Sonic dc.w byte_214D1-Map_Sonic, byte_214DC-Map_Sonic dc.w byte_214E7-Map_Sonic, byte_214F2-Map_Sonic dc.w byte_214FD-Map_Sonic, byte_21512-Map_Sonic dc.w byte_21522-Map_Sonic, byte_21537-Map_Sonic dc.w byte_21547-Map_Sonic, byte_21552-Map_Sonic dc.w byte_2155D-Map_Sonic, byte_21568-Map_Sonic dc.w byte_21573-Map_Sonic, byte_21588-Map_Sonic dc.w byte_21593-Map_Sonic, byte_215A8-Map_Sonic dc.w byte_215B3-Map_Sonic, byte_215B9-Map_Sonic dc.w byte_215BF-Map_Sonic, byte_215C5-Map_Sonic dc.w byte_215CB-Map_Sonic, byte_215D1-Map_Sonic dc.w byte_215DC-Map_Sonic, byte_215E2-Map_Sonic dc.w byte_215ED-Map_Sonic, byte_215F3-Map_Sonic dc.w byte_215FE-Map_Sonic, byte_21613-Map_Sonic dc.w byte_21628-Map_Sonic, byte_21638-Map_Sonic dc.w byte_21648-Map_Sonic, byte_21658-Map_Sonic dc.w byte_21663-Map_Sonic, byte_21673-Map_Sonic dc.w byte_21683-Map_Sonic, byte_21693-Map_Sonic dc.w byte_216A8-Map_Sonic, byte_216BD-Map_Sonic dc.w byte_216D7-Map_Sonic, byte_216F1-Map_Sonic dc.w byte_216FC-Map_Sonic, byte_2170C-Map_Sonic dc.w byte_21717-Map_Sonic, byte_21727-Map_Sonic dc.w byte_21732-Map_Sonic, byte_21742-Map_Sonic dc.w byte_21752-Map_Sonic, byte_2176C-Map_Sonic dc.w byte_21786-Map_Sonic, byte_21791-Map_Sonic dc.w byte_217A1-Map_Sonic, byte_217A7-Map_Sonic dc.w byte_217AD-Map_Sonic, byte_217B3-Map_Sonic dc.w byte_217C3-Map_Sonic, byte_217D3-Map_Sonic dc.w byte_217E3-Map_Sonic, byte_217F3-Map_Sonic byte_21292: dc.b 0 byte_21293: dc.b 4 ; standing dc.b $EC, 8, 0, 0, $F0 dc.b $F4, $D, 0, 3, $F0 dc.b 4, 8, 0, $B, $F0 dc.b $C, 8, 0, $E, $F8 byte_212A8: dc.b 3 ; waiting 1 dc.b $EC, 9, 0, 0, $F0 dc.b $FC, 9, 0, 6, $F0 dc.b $C, 8, 0, $C, $F8 byte_212B8: dc.b 3 ; waiting 2 dc.b $EC, 9, 0, 0, $F0 dc.b $FC, 9, 0, 6, $F0 dc.b $C, 8, 0, $C, $F8 byte_212C8: dc.b 3 ; waiting 3 dc.b $EC, 9, 0, 0, $F0 dc.b $FC, 9, 0, 6, $F0 dc.b $C, 8, 0, $C, $F8 byte_212D8: dc.b 3 ; looking up dc.b $EC, $A, 0, 0, $F0 dc.b 4, 8, 0, 9, $F0 dc.b $C, 8, 0, $C, $F8 byte_212E8: dc.b 4 ; walking 1-1 dc.b $EB, $D, 0, 0, $EC dc.b $FB, 9, 0, 8, $EC dc.b $FB, 6, 0, $E, 4 dc.b $B, 4, 0, $14, $EC byte_212FD: dc.b 2 ; walking 1-2 dc.b $EC, $D, 0, 0, $ED dc.b $FC, $E, 0, 8, $F5 byte_21308: dc.b 2 ; walking 1-3 dc.b $ED, 9, 0, 0, $F3 dc.b $FD, $A, 0, 6, $F3 byte_21313: dc.b 4 ; walking 1-4 dc.b $EB, 9, 0, 0, $F4 dc.b $FB, 9, 0, 6, $EC dc.b $FB, 6, 0, $C, 4 dc.b $B, 4, 0, $12, $EC byte_21328: dc.b 2 ; walking 1-5 dc.b $EC, 9, 0, 0, $F3 dc.b $FC, $E, 0, 6, $EB byte_21333: dc.b 3 ; walking 1-6 dc.b $ED, $D, 0, 0, $EC dc.b $FD, $C, 0, 8, $F4 dc.b 5, 9, 0, $C, $F4 byte_21343: dc.b 5 ; walking 2-1 dc.b $EB, 9, 0, 0, $EB dc.b $EB, 6, 0, 6, 3 dc.b $FB, 8, 0, $C, $EB dc.b 3, 9, 0, $F, $F3 dc.b $13, 0, 0, $15, $FB byte_2135D: dc.b 6 ; walking 2-2 dc.b $EC, 9, 0, 0, $EC dc.b $EC, 1, 0, 6, 4 dc.b $FC, $C, 0, 8, $EC dc.b 4, 9, 0, $C, $F4 dc.b $FC, 5, 0, $12, $C dc.b $F4, 0, 0, $16, $14 byte_2137C: dc.b 4 ; walking 2-3 dc.b $ED, 9, 0, 0, $ED dc.b $ED, 1, 0, 6, 5 dc.b $FD, $D, 0, 8, $F5 dc.b $D, 8, 0, $10, $FD byte_21391: dc.b 5 ; walking 2-4 dc.b $EB, 9, 0, 0, $EB dc.b $EB, 5, 0, 6, 3 dc.b $FB, $D, 0, $A, $F3 dc.b $B, 8, 0, $12, $F3 dc.b $13, 4, 0, $15, $FB byte_213AB: dc.b 4 ; walking 2-5 dc.b $EC, 9, 0, 0, $EC dc.b $EC, 1, 0, 6, 4 dc.b $FC, $D, 0, 8, $F4 dc.b $C, 8, 0, $10, $FC byte_213C0: dc.b 5 ; walking 2-6 dc.b $ED, 9, 0, 0, $ED dc.b $ED, 1, 0, 6, 5 dc.b $FD, 0, 0, 8, $ED dc.b $FD, $D, 0, 9, $F5 dc.b $D, 8, 0, $11, $FD byte_213DA: dc.b 4 ; walking 3-1 dc.b $F4, 7, 0, 0, $EB dc.b $EC, 9, 0, 8, $FB dc.b $FC, 4, 0, $E, $FB dc.b 4, 9, 0, $10, $FB byte_213EF: dc.b 2 ; walking 3-2 dc.b $F4, 7, 0, 0, $EC dc.b $EC, $B, 0, 8, $FC byte_213FA: dc.b 2 ; walking 3-3 dc.b $F4, 6, 0, 0, $ED dc.b $F4, $A, 0, 6, $FD byte_21405: dc.b 4 ; walking 3-4 dc.b $F4, 6, 0, 0, $EB dc.b $EC, 9, 0, 6, $FB dc.b $FC, 4, 0, $C, $FB dc.b 4, 9, 0, $E, $FB byte_2141A: dc.b 2 ; walking 3-5 dc.b $F4, 6, 0, 0, $EC dc.b $F4, $B, 0, 6, $FC byte_21425: dc.b 3 ; walking 3-6 dc.b $F4, 7, 0, 0, $ED dc.b $EC, 0, 0, 8, $FD dc.b $F4, $A, 0, 9, $FD byte_21435: dc.b 6 ; walking 4-1 dc.b $FD, 6, 0, 0, $EB dc.b $ED, 4, 0, 6, $F3 dc.b $F5, 4, 0, 8, $EB dc.b $F5, $A, 0, $A, $FB dc.b $D, 0, 0, $13, $FB dc.b $FD, 0, 0, $14, $13 byte_21454: dc.b 6 ; walking 4-2 dc.b $FC, 6, 0, 0, $EC dc.b $E4, 8, 0, 6, $F4 dc.b $EC, 4, 0, 9, $FC dc.b $F4, 4, 0, $B, $EC dc.b $F4, $A, 0, $D, $FC dc.b $C, 0, 0, $16, $FC byte_21473: dc.b 4 ; walking 4-3 dc.b $FB, 6, 0, 0, $ED dc.b $F3, 4, 0, 6, $ED dc.b $EB, $A, 0, 8, $FD dc.b 3, 4, 0, $11, $FD byte_21488: dc.b 5 ; walking 4-4 dc.b $FD, 6, 0, 0, $EB dc.b $ED, 8, 0, 6, $F3 dc.b $F5, 4, 0, 9, $EB dc.b $F5, $D, 0, $B, $FB dc.b 5, 8, 0, $13, $FB byte_214A2: dc.b 4 ; walking 4-5 dc.b $FC, 6, 0, 0, $EC dc.b $F4, 4, 0, 6, $EC dc.b $EC, $A, 0, 8, $FC dc.b 4, 4, 0, $11, $FC byte_214B7: dc.b 5 ; walking 4-6 dc.b $FB, 6, 0, 0, $ED dc.b $EB, $A, 0, 6, $FD dc.b $F3, 4, 0, $F, $ED dc.b 3, 4, 0, $11, $FD dc.b $B, 0, 0, $13, $FD byte_214D1: dc.b 2 ; running 1-1 dc.b $EE, 9, 0, 0, $F4 dc.b $FE, $E, 0, 6, $EC byte_214DC: dc.b 2 ; running 1-2 dc.b $EE, 9, 0, 0, $F4 dc.b $FE, $E, 0, 6, $EC byte_214E7: dc.b 2 ; running 1-3 dc.b $EE, 9, 0, 0, $F4 dc.b $FE, $E, 0, 6, $EC byte_214F2: dc.b 2 ; running 1-4 dc.b $EE, 9, 0, 0, $F4 dc.b $FE, $E, 0, 6, $EC byte_214FD: dc.b 4 ; running 2-1 dc.b $EE, 9, 0, 0, $EE dc.b $EE, 1, 0, 6, 6 dc.b $FE, $E, 0, 8, $F6 dc.b $FE, 0, 0, $14, $EE byte_21512: dc.b 3 ; running 2-2 dc.b $EE, 9, 0, 0, $EE dc.b $EE, 1, 0, 6, 6 dc.b $FE, $E, 0, 8, $F6 byte_21522: dc.b 4 ; running 2-3 dc.b $EE, 9, 0, 0, $EE dc.b $EE, 1, 0, 6, 6 dc.b $FE, $E, 0, 8, $F6 dc.b $FE, 0, 0, $14, $EE byte_21537: dc.b 3 ; running 2-4 dc.b $EE, 9, 0, 0, $EE dc.b $EE, 1, 0, 6, 6 dc.b $FE, $E, 0, 8, $F6 byte_21547: dc.b 2 ; running 3-1 dc.b $F4, 6, 0, 0, $EE dc.b $F4, $B, 0, 6, $FE byte_21552: dc.b 2 ; running 3-2 dc.b $F4, 6, 0, 0, $EE dc.b $F4, $B, 0, 6, $FE byte_2155D: dc.b 2 ; running 3-3 dc.b $F4, 6, 0, 0, $EE dc.b $F4, $B, 0, 6, $FE byte_21568: dc.b 2 ; running 3-4 dc.b $F4, 6, 0, 0, $EE dc.b $F4, $B, 0, 6, $FE byte_21573: dc.b 4 ; running 4-1 dc.b $FA, 6, 0, 0, $EE dc.b $F2, 4, 0, 6, $EE dc.b $EA, $B, 0, 8, $FE dc.b $A, 0, 0, $14, $FE byte_21588: dc.b 2 ; running 4-2 dc.b $F2, 7, 0, 0, $EE dc.b $EA, $B, 0, 8, $FE byte_21593: dc.b 4 ; running 4-3 dc.b $FA, 6, 0, 0, $EE dc.b $F2, 4, 0, 6, $EE dc.b $EA, $B, 0, 8, $FE dc.b $A, 0, 0, $14, $FE byte_215A8: dc.b 2 ; running 4-4 dc.b $F2, 7, 0, 0, $EE dc.b $EA, $B, 0, 8, $FE byte_215B3: dc.b 1 ; rolling 1 dc.b $F0, $F, 0, 0, $F0 byte_215B9: dc.b 1 ; rolling 2 dc.b $F0, $F, 0, 0, $F0 byte_215BF: dc.b 1 ; rolling 3 dc.b $F0, $F, 0, 0, $F0 byte_215C5: dc.b 1 ; rolling 4 dc.b $F0, $F, 0, 0, $F0 byte_215CB: dc.b 1 ; rolling 5 dc.b $F0, $F, 0, 0, $F0 byte_215D1: dc.b 2 ; warped 1 (unused) dc.b $F4, $E, 0, 0, $EC dc.b $F4, 2, 0, $C, $C byte_215DC: dc.b 1 ; warped 2 (unused) dc.b $F0, $F, 0, 0, $F0 byte_215E2: dc.b 2 ; warped 3 (unused) dc.b $EC, $B, 0, 0, $F4 dc.b $C, 8, 0, $C, $F4 byte_215ED: dc.b 1 ; warped 4 (unused) dc.b $F0, $F, 0, 0, $F0 byte_215F3: dc.b 2 ; stopping 1 dc.b $ED, 9, 0, 0, $F0 dc.b $FD, $E, 0, 6, $F0 byte_215FE: dc.b 4 ; stopping 2 dc.b $ED, 9, 0, 0, $F0 dc.b $FD, $D, 0, 6, $F0 dc.b $D, 4, 0, $E, 0 dc.b 5, 0, 0, $10, $E8 byte_21613: dc.b 4 ; ducking dc.b $F4, 4, 0, 0, $FC dc.b $FC, $D, 0, 2, $F4 dc.b $C, 8, 0, $A, $F4 dc.b 4, 0, 0, $D, $EC byte_21628: dc.b 3 ; balancing 1 dc.b $EC, 8, 8, 0, $E8 dc.b $F4, 2, 8, 3, 0 dc.b $F4, $F, 8, 6, $E0 byte_21638: dc.b 3 ; balancing 2 dc.b $EC, $E, 8, 0, $E8 dc.b 4, $D, 8, $C, $E0 dc.b $C, 0, $18, $14, 0 byte_21648: dc.b 3 ; spinning 1 (LZ) dc.b $F4, $D, 0, 0, $FC dc.b $FC, 5, 0, 8, $EC dc.b 4, 8, 0, $C, $FC byte_21658: dc.b 2 ; spinning 2 (LZ) dc.b $F4, $A, 0, 0, $E8 dc.b $F4, $A, 8, 0, 0 byte_21663: dc.b 3 ; spinning 3 (LZ) dc.b $F4, $D, 0, 0, $E4 dc.b $FC, 0, 0, 8, 4 dc.b 4, $C, 0, 9, $EC byte_21673: dc.b 3 ; spinning 4 (LZ) dc.b $F4, $D, 0, 0, $FC dc.b $FC, 5, 0, 8, $EC dc.b 4, 8, 0, $C, $FC byte_21683: dc.b 3 ; bouncing dc.b $E8, $B, 0, 0, $F0 dc.b 8, 4, 0, $C, $F8 dc.b $10, 0, 0, $E, $F8 byte_21693: dc.b 4 ; hanging 1 (LZ) dc.b $F8, $E, 0, 0, $E8 dc.b 0, 5, 0, $C, 8 dc.b $F8, 0, 0, $10, 8 dc.b $F0, 0, 0, $11, $F8 byte_216A8: dc.b 4 ; hanging 2 (LZ) dc.b $F8, $E, 0, 0, $E8 dc.b 0, 5, 0, $C, 8 dc.b $F8, 0, 0, $10, 8 dc.b $F0, 0, 0, $11, $F8 byte_216BD: dc.b 5 ; celebration leap 1 (unused) dc.b $E8, $A, 0, 0, $F4 dc.b $F0, 1, 0, 9, $C dc.b 0, 9, 0, $B, $F4 dc.b $10, 4, 0, $11, $F4 dc.b 0, 0, 0, $13, $EC byte_216D7: dc.b 5 ; celebration leap 2 (unused) dc.b $E8, $A, 0, 0, $F4 dc.b $E8, 1, 0, 9, $C dc.b 0, 9, 0, $B, $F4 dc.b $10, 4, 0, $11, $F4 dc.b 0, 0, 0, $13, $EC byte_216F1: dc.b 2 ; pushing 1 dc.b $ED, $A, 0, 0, $F3 dc.b 5, $D, 0, 9, $EB byte_216FC: dc.b 3 ; pushing 2 dc.b $EC, $A, 0, 0, $F3 dc.b 4, 8, 0, 9, $F3 dc.b $C, 4, 0, $C, $F3 byte_2170C: dc.b 2 ; pushing 3 dc.b $ED, $A, 0, 0, $F3 dc.b 5, $D, 0, 9, $EB byte_21717: dc.b 3 ; pushing 4 dc.b $EC, $A, 0, 0, $F3 dc.b 4, 8, 0, 9, $F3 dc.b $C, 4, 0, $C, $F3 byte_21727: dc.b 2 ; surfing or sliding (unused) dc.b $EC, 9, 0, 0, $F0 dc.b $FC, $E, 0, 6, $F0 byte_21732: dc.b 3 ; collecting bubble (unused) dc.b $EC, $A, 0, 0, $F0 dc.b 4, 5, 0, 9, $F8 dc.b $E4, 0, 0, $D, $F8 byte_21742: dc.b 3 ; death 1 dc.b $E8, $D, 0, 0, $EC dc.b $E8, 1, 0, 8, $C dc.b $F8, $B, 0, $A, $F4 byte_21752: dc.b 5 ; drowning dc.b $E8, $D, 0, 0, $EC dc.b $E8, 1, 0, 8, $C dc.b $F8, 9, 0, $A, $F4 dc.b 8, $C, 0, $10, $F4 dc.b $10, 0, 0, $14, $F4 byte_2176C: dc.b 5 ; death 2 dc.b $E8, $D, 0, 0, $EC dc.b $E8, 1, 0, 8, $C dc.b $F8, 9, 0, $A, $F4 dc.b 8, $C, 0, $10, $F4 dc.b $10, 0, 0, $14, $F4 byte_21786: dc.b 2 ; shrinking 1 (unused) dc.b $EC, 8, 0, 0, $F0 dc.b $F4, $F, 0, 3, $F0 byte_21791: dc.b 3 ; shrinking 2 (unused) dc.b $EC, 8, 0, 0, $F0 dc.b $F4, $E, 0, 3, $F0 dc.b $C, 8, 0, $F, $F8 byte_217A1: dc.b 1 ; shrinking 3 (unused) dc.b $F0, $B, 0, 0, $F4 byte_217A7: dc.b 1 ; shrinking 4 (unused) dc.b $F4, 6, 0, 0, $F8 byte_217AD: dc.b 1 ; shrinking 5 (unused) dc.b $F8, 1, 0, 0, $FC byte_217B3: dc.b 3 ; injury dc.b $F4, $D, 8, 0, $E4 dc.b $FC, 5, 8, 8, 4 dc.b 4, 8, 8, $C, $EC byte_217C3: dc.b 3 ; spinning 5 (LZ) dc.b $F4, $D, 8, 0, $FC dc.b $FC, 0, 8, 8, $F4 dc.b 4, $C, 8, 9, $F4 byte_217D3: dc.b 3 ; spinning 6 (LZ) dc.b $F0, $E, 0, 0, $EC dc.b $F8, 1, 0, $C, $C dc.b 8, $C, 0, $E, $F4 byte_217E3: dc.b 3 ; collecting bubble (LZ) dc.b $EB, 9, 0, 0, $F4 dc.b $FB, $E, 0, 6, $EC dc.b 3, 1, 0, $12, $C byte_217F3: dc.b 2 ; water slide (LZ) dc.b $F0, $F, 0, 0, $EC dc.b $F8, 2, 0, $10, $C even Spoiler: AFTER Code: ; --------------------------------------------------------------------------- ; Sprite mappings - Mighty ; --------------------------------------------------------------------------- dc.w byte2_21292-Map_Mighty, byte2_21293-Map_Mighty dc.w byte2_212A8-Map_Mighty, byte2_212B8-Map_Mighty dc.w byte2_212C8-Map_Mighty, byte2_212D8-Map_Mighty dc.w byte2_212E8-Map_Mighty, byte2_212FD-Map_Mighty dc.w byte2_21308-Map_Mighty, byte2_21313-Map_Mighty dc.w byte2_21328-Map_Mighty, byte2_21333-Map_Mighty dc.w byte2_21343-Map_Mighty, byte2_2135D-Map_Mighty dc.w byte2_2137C-Map_Mighty, byte2_21391-Map_Mighty dc.w byte2_213AB-Map_Mighty, byte2_213C0-Map_Mighty dc.w byte2_213DA-Map_Mighty, byte2_213EF-Map_Mighty dc.w byte2_213FA-Map_Mighty, byte2_21405-Map_Mighty dc.w byte2_2141A-Map_Mighty, byte2_21425-Map_Mighty dc.w byte2_21435-Map_Mighty, byte2_21454-Map_Mighty dc.w byte2_21473-Map_Mighty, byte2_21488-Map_Mighty dc.w byte2_214A2-Map_Mighty, byte2_214B7-Map_Mighty dc.w byte2_214D1-Map_Mighty, byte2_214DC-Map_Mighty dc.w byte2_214E7-Map_Mighty, byte2_214F2-Map_Mighty dc.w byte2_214FD-Map_Mighty, byte2_21512-Map_Mighty dc.w byte2_21522-Map_Mighty, byte2_21537-Map_Mighty dc.w byte2_21547-Map_Mighty, byte2_21552-Map_Mighty dc.w byte2_2155D-Map_Mighty, byte2_21568-Map_Mighty dc.w byte2_21573-Map_Mighty, byte2_21588-Map_Mighty dc.w byte2_21593-Map_Mighty, byte2_215A8-Map_Mighty dc.w byte2_215B3-Map_Mighty, byte2_215B9-Map_Mighty dc.w byte2_215BF-Map_Mighty, byte2_215C5-Map_Mighty dc.w byte2_215CB-Map_Mighty, byte2_215D1-Map_Mighty dc.w byte2_215DC-Map_Mighty, byte2_215E2-Map_Mighty dc.w byte2_215ED-Map_Mighty, byte2_215F3-Map_Mighty dc.w byte2_215FE-Map_Mighty, byte2_21613-Map_Mighty dc.w byte2_21628-Map_Mighty, byte2_21638-Map_Mighty dc.w byte2_21648-Map_Mighty, byte2_21658-Map_Mighty dc.w byte2_21663-Map_Mighty, byte2_21673-Map_Mighty dc.w byte2_21683-Map_Mighty, byte2_21693-Map_Mighty dc.w byte2_216A8-Map_Mighty, byte2_216BD-Map_Mighty dc.w byte2_216D7-Map_Mighty, byte2_216F1-Map_Mighty dc.w byte2_216FC-Map_Mighty, byte2_2170C-Map_Mighty dc.w byte2_21717-Map_Mighty, byte2_21727-Map_Mighty dc.w byte2_21732-Map_Mighty, byte2_21742-Map_Mighty dc.w byte2_21752-Map_Mighty, byte2_2176C-Map_Mighty dc.w byte2_21786-Map_Mighty, byte2_21791-Map_Mighty dc.w byte2_217A1-Map_Mighty, byte2_217A7-Map_Mighty dc.w byte2_217AD-Map_Mighty, byte2_217B3-Map_Mighty dc.w byte2_217C3-Map_Mighty, byte2_217D3-Map_Mighty dc.w byte2_217E3-Map_Mighty, byte2_217F3-Map_Mighty byte2_21292: dc.b 0 byte2_21293: dc.b 4 ; standing dc.b $EC, 8, 0, 0, $F0 dc.b $F4, $D, 0, 3, $F0 dc.b 4, 8, 0, $B, $F0 dc.b $C, 8, 0, $E, $F8 byte2_212A8: dc.b 3 ; waiting 1 dc.b $EC, 9, 0, 0, $F0 dc.b $FC, 9, 0, 6, $F0 dc.b $C, 8, 0, $C, $F8 byte2_212B8: dc.b 3 ; waiting 2 dc.b $EC, 9, 0, 0, $F0 dc.b $FC, 9, 0, 6, $F0 dc.b $C, 8, 0, $C, $F8 byte2_212C8: dc.b 3 ; waiting 3 dc.b $EC, 9, 0, 0, $F0 dc.b $FC, 9, 0, 6, $F0 dc.b $C, 8, 0, $C, $F8 byte2_212D8: dc.b 3 ; looking up dc.b $EC, $A, 0, 0, $F0 dc.b 4, 8, 0, 9, $F0 dc.b $C, 8, 0, $C, $F8 byte2_212E8: dc.b 4 ; walking 1-1 dc.b $EB, $D, 0, 0, $EC dc.b $FB, 9, 0, 8, $EC dc.b $FB, 6, 0, $E, 4 dc.b $B, 4, 0, $14, $EC byte2_212FD: dc.b 2 ; walking 1-2 dc.b $EC, $D, 0, 0, $ED dc.b $FC, $E, 0, 8, $F5 byte2_21308: dc.b 2 ; walking 1-3 dc.b $ED, 9, 0, 0, $F3 dc.b $FD, $A, 0, 6, $F3 byte2_21313: dc.b 4 ; walking 1-4 dc.b $EB, 9, 0, 0, $F4 dc.b $FB, 9, 0, 6, $EC dc.b $FB, 6, 0, $C, 4 dc.b $B, 4, 0, $12, $EC byte2_21328: dc.b 2 ; walking 1-5 dc.b $EC, 9, 0, 0, $F3 dc.b $FC, $E, 0, 6, $EB byte2_21333: dc.b 3 ; walking 1-6 dc.b $ED, $D, 0, 0, $EC dc.b $FD, $C, 0, 8, $F4 dc.b 5, 9, 0, $C, $F4 byte2_21343: dc.b 5 ; walking 2-1 dc.b $EB, 9, 0, 0, $EB dc.b $EB, 6, 0, 6, 3 dc.b $FB, 8, 0, $C, $EB dc.b 3, 9, 0, $F, $F3 dc.b $13, 0, 0, $15, $FB byte2_2135D: dc.b 6 ; walking 2-2 dc.b $EC, 9, 0, 0, $EC dc.b $EC, 1, 0, 6, 4 dc.b $FC, $C, 0, 8, $EC dc.b 4, 9, 0, $C, $F4 dc.b $FC, 5, 0, $12, $C dc.b $F4, 0, 0, $16, $14 byte2_2137C: dc.b 4 ; walking 2-3 dc.b $ED, 9, 0, 0, $ED dc.b $ED, 1, 0, 6, 5 dc.b $FD, $D, 0, 8, $F5 dc.b $D, 8, 0, $10, $FD byte2_21391: dc.b 5 ; walking 2-4 dc.b $EB, 9, 0, 0, $EB dc.b $EB, 5, 0, 6, 3 dc.b $FB, $D, 0, $A, $F3 dc.b $B, 8, 0, $12, $F3 dc.b $13, 4, 0, $15, $FB byte2_213AB: dc.b 4 ; walking 2-5 dc.b $EC, 9, 0, 0, $EC dc.b $EC, 1, 0, 6, 4 dc.b $FC, $D, 0, 8, $F4 dc.b $C, 8, 0, $10, $FC byte2_213C0: dc.b 5 ; walking 2-6 dc.b $ED, 9, 0, 0, $ED dc.b $ED, 1, 0, 6, 5 dc.b $FD, 0, 0, 8, $ED dc.b $FD, $D, 0, 9, $F5 dc.b $D, 8, 0, $11, $FD byte2_213DA: dc.b 4 ; walking 3-1 dc.b $F4, 7, 0, 0, $EB dc.b $EC, 9, 0, 8, $FB dc.b $FC, 4, 0, $E, $FB dc.b 4, 9, 0, $10, $FB byte2_213EF: dc.b 2 ; walking 3-2 dc.b $F4, 7, 0, 0, $EC dc.b $EC, $B, 0, 8, $FC byte2_213FA: dc.b 2 ; walking 3-3 dc.b $F4, 6, 0, 0, $ED dc.b $F4, $A, 0, 6, $FD byte2_21405: dc.b 4 ; walking 3-4 dc.b $F4, 6, 0, 0, $EB dc.b $EC, 9, 0, 6, $FB dc.b $FC, 4, 0, $C, $FB dc.b 4, 9, 0, $E, $FB byte2_2141A: dc.b 2 ; walking 3-5 dc.b $F4, 6, 0, 0, $EC dc.b $F4, $B, 0, 6, $FC byte2_21425: dc.b 3 ; walking 3-6 dc.b $F4, 7, 0, 0, $ED dc.b $EC, 0, 0, 8, $FD dc.b $F4, $A, 0, 9, $FD byte2_21435: dc.b 6 ; walking 4-1 dc.b $FD, 6, 0, 0, $EB dc.b $ED, 4, 0, 6, $F3 dc.b $F5, 4, 0, 8, $EB dc.b $F5, $A, 0, $A, $FB dc.b $D, 0, 0, $13, $FB dc.b $FD, 0, 0, $14, $13 byte2_21454: dc.b 6 ; walking 4-2 dc.b $FC, 6, 0, 0, $EC dc.b $E4, 8, 0, 6, $F4 dc.b $EC, 4, 0, 9, $FC dc.b $F4, 4, 0, $B, $EC dc.b $F4, $A, 0, $D, $FC dc.b $C, 0, 0, $16, $FC byte2_21473: dc.b 4 ; walking 4-3 dc.b $FB, 6, 0, 0, $ED dc.b $F3, 4, 0, 6, $ED dc.b $EB, $A, 0, 8, $FD dc.b 3, 4, 0, $11, $FD byte2_21488: dc.b 5 ; walking 4-4 dc.b $FD, 6, 0, 0, $EB dc.b $ED, 8, 0, 6, $F3 dc.b $F5, 4, 0, 9, $EB dc.b $F5, $D, 0, $B, $FB dc.b 5, 8, 0, $13, $FB byte2_214A2: dc.b 4 ; walking 4-5 dc.b $FC, 6, 0, 0, $EC dc.b $F4, 4, 0, 6, $EC dc.b $EC, $A, 0, 8, $FC dc.b 4, 4, 0, $11, $FC byte2_214B7: dc.b 5 ; walking 4-6 dc.b $FB, 6, 0, 0, $ED dc.b $EB, $A, 0, 6, $FD dc.b $F3, 4, 0, $F, $ED dc.b 3, 4, 0, $11, $FD dc.b $B, 0, 0, $13, $FD byte2_214D1: dc.b 2 ; running 1-1 dc.b $EE, 9, 0, 0, $F4 dc.b $FE, $E, 0, 6, $EC byte2_214DC: dc.b 2 ; running 1-2 dc.b $EE, 9, 0, 0, $F4 dc.b $FE, $E, 0, 6, $EC byte2_214E7: dc.b 2 ; running 1-3 dc.b $EE, 9, 0, 0, $F4 dc.b $FE, $E, 0, 6, $EC byte2_214F2: dc.b 2 ; running 1-4 dc.b $EE, 9, 0, 0, $F4 dc.b $FE, $E, 0, 6, $EC byte2_214FD: dc.b 4 ; running 2-1 dc.b $EE, 9, 0, 0, $EE dc.b $EE, 1, 0, 6, 6 dc.b $FE, $E, 0, 8, $F6 dc.b $FE, 0, 0, $14, $EE byte2_21512: dc.b 3 ; running 2-2 dc.b $EE, 9, 0, 0, $EE dc.b $EE, 1, 0, 6, 6 dc.b $FE, $E, 0, 8, $F6 byte2_21522: dc.b 4 ; running 2-3 dc.b $EE, 9, 0, 0, $EE dc.b $EE, 1, 0, 6, 6 dc.b $FE, $E, 0, 8, $F6 dc.b $FE, 0, 0, $14, $EE byte2_21537: dc.b 3 ; running 2-4 dc.b $EE, 9, 0, 0, $EE dc.b $EE, 1, 0, 6, 6 dc.b $FE, $E, 0, 8, $F6 byte2_21547: dc.b 2 ; running 3-1 dc.b $F4, 6, 0, 0, $EE dc.b $F4, $B, 0, 6, $FE byte2_21552: dc.b 2 ; running 3-2 dc.b $F4, 6, 0, 0, $EE dc.b $F4, $B, 0, 6, $FE byte2_2155D: dc.b 2 ; running 3-3 dc.b $F4, 6, 0, 0, $EE dc.b $F4, $B, 0, 6, $FE byte2_21568: dc.b 2 ; running 3-4 dc.b $F4, 6, 0, 0, $EE dc.b $F4, $B, 0, 6, $FE byte2_21573: dc.b 4 ; running 4-1 dc.b $FA, 6, 0, 0, $EE dc.b $F2, 4, 0, 6, $EE dc.b $EA, $B, 0, 8, $FE dc.b $A, 0, 0, $14, $FE byte2_21588: dc.b 2 ; running 4-2 dc.b $F2, 7, 0, 0, $EE dc.b $EA, $B, 0, 8, $FE byte2_21593: dc.b 4 ; running 4-3 dc.b $FA, 6, 0, 0, $EE dc.b $F2, 4, 0, 6, $EE dc.b $EA, $B, 0, 8, $FE dc.b $A, 0, 0, $14, $FE byte2_215A8: dc.b 2 ; running 4-4 dc.b $F2, 7, 0, 0, $EE dc.b $EA, $B, 0, 8, $FE byte2_215B3: dc.b 1 ; rolling 1 dc.b $F0, $F, 0, 0, $F0 byte2_215B9: dc.b 1 ; rolling 2 dc.b $F0, $F, 0, 0, $F0 byte2_215BF: dc.b 1 ; rolling 3 dc.b $F0, $F, 0, 0, $F0 byte2_215C5: dc.b 1 ; rolling 4 dc.b $F0, $F, 0, 0, $F0 byte2_215CB: dc.b 1 ; rolling 5 dc.b $F0, $F, 0, 0, $F0 byte2_215D1: dc.b 2 ; warped 1 (unused) dc.b $F4, $E, 0, 0, $EC dc.b $F4, 2, 0, $C, $C byte2_215DC: dc.b 1 ; warped 2 (unused) dc.b $F0, $F, 0, 0, $F0 byte2_215E2: dc.b 2 ; warped 3 (unused) dc.b $EC, $B, 0, 0, $F4 dc.b $C, 8, 0, $C, $F4 byte2_215ED: dc.b 1 ; warped 4 (unused) dc.b $F0, $F, 0, 0, $F0 byte2_215F3: dc.b 2 ; stopping 1 dc.b $ED, 9, 0, 0, $F0 dc.b $FD, $E, 0, 6, $F0 byte2_215FE: dc.b 4 ; stopping 2 dc.b $ED, 9, 0, 0, $F0 dc.b $FD, $D, 0, 6, $F0 dc.b $D, 4, 0, $E, 0 dc.b 5, 0, 0, $10, $E8 byte2_21613: dc.b 4 ; ducking dc.b $F4, 4, 0, 0, $FC dc.b $FC, $D, 0, 2, $F4 dc.b $C, 8, 0, $A, $F4 dc.b 4, 0, 0, $D, $EC byte2_21628: dc.b 3 ; balancing 1 dc.b $EC, 8, 8, 0, $E8 dc.b $F4, 2, 8, 3, 0 dc.b $F4, $F, 8, 6, $E0 byte2_21638: dc.b 3 ; balancing 2 dc.b $EC, $E, 8, 0, $E8 dc.b 4, $D, 8, $C, $E0 dc.b $C, 0, $18, $14, 0 byte2_21648: dc.b 3 ; spinning 1 (LZ) dc.b $F4, $D, 0, 0, $FC dc.b $FC, 5, 0, 8, $EC dc.b 4, 8, 0, $C, $FC byte2_21658: dc.b 2 ; spinning 2 (LZ) dc.b $F4, $A, 0, 0, $E8 dc.b $F4, $A, 8, 0, 0 byte2_21663: dc.b 3 ; spinning 3 (LZ) dc.b $F4, $D, 0, 0, $E4 dc.b $FC, 0, 0, 8, 4 dc.b 4, $C, 0, 9, $EC byte2_21673: dc.b 3 ; spinning 4 (LZ) dc.b $F4, $D, 0, 0, $FC dc.b $FC, 5, 0, 8, $EC dc.b 4, 8, 0, $C, $FC byte2_21683: dc.b 3 ; bouncing dc.b $E8, $B, 0, 0, $F0 dc.b 8, 4, 0, $C, $F8 dc.b $10, 0, 0, $E, $F8 byte2_21693: dc.b 4 ; hanging 1 (LZ) dc.b $F8, $E, 0, 0, $E8 dc.b 0, 5, 0, $C, 8 dc.b $F8, 0, 0, $10, 8 dc.b $F0, 0, 0, $11, $F8 byte2_216A8: dc.b 4 ; hanging 2 (LZ) dc.b $F8, $E, 0, 0, $E8 dc.b 0, 5, 0, $C, 8 dc.b $F8, 0, 0, $10, 8 dc.b $F0, 0, 0, $11, $F8 byte2_216BD: dc.b 5 ; celebration leap 1 (unused) dc.b $E8, $A, 0, 0, $F4 dc.b $F0, 1, 0, 9, $C dc.b 0, 9, 0, $B, $F4 dc.b $10, 4, 0, $11, $F4 dc.b 0, 0, 0, $13, $EC byte2_216D7: dc.b 5 ; celebration leap 2 (unused) dc.b $E8, $A, 0, 0, $F4 dc.b $E8, 1, 0, 9, $C dc.b 0, 9, 0, $B, $F4 dc.b $10, 4, 0, $11, $F4 dc.b 0, 0, 0, $13, $EC byte2_216F1: dc.b 2 ; pushing 1 dc.b $ED, $A, 0, 0, $F3 dc.b 5, $D, 0, 9, $EB byte2_216FC: dc.b 3 ; pushing 2 dc.b $EC, $A, 0, 0, $F3 dc.b 4, 8, 0, 9, $F3 dc.b $C, 4, 0, $C, $F3 byte2_2170C: dc.b 2 ; pushing 3 dc.b $ED, $A, 0, 0, $F3 dc.b 5, $D, 0, 9, $EB byte2_21717: dc.b 3 ; pushing 4 dc.b $EC, $A, 0, 0, $F3 dc.b 4, 8, 0, 9, $F3 dc.b $C, 4, 0, $C, $F3 byte2_21727: dc.b 2 ; surfing or sliding (unused) dc.b $EC, 9, 0, 0, $F0 dc.b $FC, $E, 0, 6, $F0 byte2_21732: dc.b 3 ; collecting bubble (unused) dc.b $EC, $A, 0, 0, $F0 dc.b 4, 5, 0, 9, $F8 dc.b $E4, 0, 0, $D, $F8 byte2_21742: dc.b 3 ; death 1 dc.b $E8, $D, 0, 0, $EC dc.b $E8, 1, 0, 8, $C dc.b $F8, $B, 0, $A, $F4 byte2_21752: dc.b 5 ; drowning dc.b $E8, $D, 0, 0, $EC dc.b $E8, 1, 0, 8, $C dc.b $F8, 9, 0, $A, $F4 dc.b 8, $C, 0, $10, $F4 dc.b $10, 0, 0, $14, $F4 byte2_2176C: dc.b 5 ; death 2 dc.b $E8, $D, 0, 0, $EC dc.b $E8, 1, 0, 8, $C dc.b $F8, 9, 0, $A, $F4 dc.b 8, $C, 0, $10, $F4 dc.b $10, 0, 0, $14, $F4 byte2_21786: dc.b 2 ; shrinking 1 (unused) dc.b $EC, 8, 0, 0, $F0 dc.b $F4, $F, 0, 3, $F0 byte2_21791: dc.b 3 ; shrinking 2 (unused) dc.b $EC, 8, 0, 0, $F0 dc.b $F4, $E, 0, 3, $F0 dc.b $C, 8, 0, $F, $F8 byte2_217A1: dc.b 1 ; shrinking 3 (unused) dc.b $F0, $B, 0, 0, $F4 byte2_217A7: dc.b 1 ; shrinking 4 (unused) dc.b $F4, 6, 0, 0, $F8 byte2_217AD: dc.b 1 ; shrinking 5 (unused) dc.b $F8, 1, 0, 0, $FC byte2_217B3: dc.b 3 ; injury dc.b $F4, $D, 8, 0, $E4 dc.b $FC, 5, 8, 8, 4 dc.b 4, 8, 8, $C, $EC byte2_217C3: dc.b 3 ; spinning 5 (LZ) dc.b $F4, $D, 8, 0, $FC dc.b $FC, 0, 8, 8, $F4 dc.b 4, $C, 8, 9, $F4 byte2_217D3: dc.b 3 ; spinning 6 (LZ) dc.b $F0, $E, 0, 0, $EC dc.b $F8, 1, 0, $C, $C dc.b 8, $C, 0, $E, $F4 byte2_217E3: dc.b 3 ; collecting bubble (LZ) dc.b $EB, 9, 0, 0, $F4 dc.b $FB, $E, 0, 6, $EC dc.b 3, 1, 0, $12, $C byte2_217F3: dc.b 2 ; water slide (LZ) dc.b $F0, $F, 0, 0, $EC dc.b $F8, 2, 0, $10, $C even Now open the "Mighty dynamic pattern load cues.asm" and replace all the "SonPLC" with "MightyPLC" and the "SonicDynPLC" with "MightyDynPLC". Spoiler: BEFORE Code: ; --------------------------------------------------------------------------- ; Uncompressed graphics loading array for Sonic ; --------------------------------------------------------------------------- dc.w SonPLC_Blank-SonicDynPLC dc.w SonPLC_Stand-SonicDynPLC dc.w SonPLC_Wait1-SonicDynPLC dc.w SonPLC_Wait2-SonicDynPLC dc.w SonPLC_Wait3-SonicDynPLC dc.w SonPLC_LookUp-SonicDynPLC dc.w SonPLC_Walk11-SonicDynPLC dc.w SonPLC_Walk12-SonicDynPLC dc.w SonPLC_Walk13-SonicDynPLC dc.w SonPLC_Walk14-SonicDynPLC dc.w SonPLC_Walk15-SonicDynPLC dc.w SonPLC_Walk16-SonicDynPLC dc.w SonPLC_Walk21-SonicDynPLC dc.w SonPLC_Walk22-SonicDynPLC dc.w SonPLC_Walk23-SonicDynPLC dc.w SonPLC_Walk24-SonicDynPLC dc.w SonPLC_Walk25-SonicDynPLC dc.w SonPLC_Walk26-SonicDynPLC dc.w SonPLC_Walk31-SonicDynPLC dc.w SonPLC_Walk32-SonicDynPLC dc.w SonPLC_Walk33-SonicDynPLC dc.w SonPLC_Walk34-SonicDynPLC dc.w SonPLC_Walk35-SonicDynPLC dc.w SonPLC_Walk36-SonicDynPLC dc.w SonPLC_Walk41-SonicDynPLC dc.w SonPLC_Walk42-SonicDynPLC dc.w SonPLC_Walk43-SonicDynPLC dc.w SonPLC_Walk44-SonicDynPLC dc.w SonPLC_Walk45-SonicDynPLC dc.w SonPLC_Walk46-SonicDynPLC dc.w SonPLC_Run11-SonicDynPLC dc.w SonPLC_Run12-SonicDynPLC dc.w SonPLC_Run13-SonicDynPLC dc.w SonPLC_Run14-SonicDynPLC dc.w SonPLC_Run21-SonicDynPLC dc.w SonPLC_Run22-SonicDynPLC dc.w SonPLC_Run23-SonicDynPLC dc.w SonPLC_Run24-SonicDynPLC dc.w SonPLC_Run31-SonicDynPLC dc.w SonPLC_Run32-SonicDynPLC dc.w SonPLC_Run33-SonicDynPLC dc.w SonPLC_Run34-SonicDynPLC dc.w SonPLC_Run41-SonicDynPLC dc.w SonPLC_Run42-SonicDynPLC dc.w SonPLC_Run43-SonicDynPLC dc.w SonPLC_Run44-SonicDynPLC dc.w SonPLC_Roll1-SonicDynPLC dc.w SonPLC_Roll2-SonicDynPLC dc.w SonPLC_Roll3-SonicDynPLC dc.w SonPLC_Roll4-SonicDynPLC dc.w SonPLC_Roll5-SonicDynPLC dc.w SonPLC_Warp1-SonicDynPLC dc.w SonPLC_Warp2-SonicDynPLC dc.w SonPLC_Warp3-SonicDynPLC dc.w SonPLC_Warp4-SonicDynPLC dc.w SonPLC_Stop1-SonicDynPLC dc.w SonPLC_Stop2-SonicDynPLC dc.w SonPLC_Duck-SonicDynPLC dc.w SonPLC_Balance1-SonicDynPLC dc.w SonPLC_Balance2-SonicDynPLC dc.w SonPLC_Float1-SonicDynPLC dc.w SonPLC_Float2-SonicDynPLC dc.w SonPLC_Float3-SonicDynPLC dc.w SonPLC_Float4-SonicDynPLC dc.w SonPLC_Spring-SonicDynPLC dc.w SonPLC_Hang1-SonicDynPLC dc.w SonPLC_Hang2-SonicDynPLC dc.w SonPLC_Leap1-SonicDynPLC dc.w SonPLC_Leap2-SonicDynPLC dc.w SonPLC_Push1-SonicDynPLC dc.w SonPLC_Push2-SonicDynPLC dc.w SonPLC_Push3-SonicDynPLC dc.w SonPLC_Push4-SonicDynPLC dc.w SonPLC_Slide-SonicDynPLC dc.w SonPLC_BblUnk-SonicDynPLC dc.w SonPLC_Death1-SonicDynPLC dc.w SonPLC_Drown-SonicDynPLC dc.w SonPLC_Burnt-SonicDynPLC dc.w SonPLC_Shrink1-SonicDynPLC dc.w SonPLC_Shrink2-SonicDynPLC dc.w SonPLC_Shrink3-SonicDynPLC dc.w SonPLC_Shrink4-SonicDynPLC dc.w SonPLC_Shrink5-SonicDynPLC dc.w SonPLC_Float1-SonicDynPLC dc.w SonPLC_Float3-SonicDynPLC dc.w SonPLC_Injury1-SonicDynPLC dc.w SonPLC_Bubble-SonicDynPLC dc.w SonPLC_Injury2-SonicDynPLC SonPLC_Blank: dc.b 0 SonPLC_Stand: dc.b 4, $20, 0, $70, 3, $20, $B, $20, $E SonPLC_Wait1: dc.b 3, $50, $11, $50, $17, $20, $1D SonPLC_Wait2: dc.b 3, $50, $20, $50, $17, $20, $1D SonPLC_Wait3: dc.b 3, $50, $20, $50, $17, $20, $26 SonPLC_LookUp: dc.b 3, $80, $29, $20, $B, $20, $E SonPLC_Walk11: dc.b 4, $70, $32, $50, $3A, $50, $40, $10, $46 SonPLC_Walk12: dc.b 2, $70, $32, $B0, $48 SonPLC_Walk13: dc.b 2, $50, $54, $80, $5A SonPLC_Walk14: dc.b 4, $50, $54, $50, $63, $50, $69, $10, $6F SonPLC_Walk15: dc.b 2, $50, $54, $B0, $71 SonPLC_Walk16: dc.b 3, $70, $32, $30, $7D, $50, $81 SonPLC_Walk21: dc.b 5, $50, $87, $50, $8D, $20, $93, $50, $96, 0, $9C SonPLC_Walk22: dc.b 6, $50, $87, $10, $9D, $30, $9F, $50, $A3, $30, $A9, 0, $AD SonPLC_Walk23: dc.b 4, $50, $AE, $10, $B4, $70, $B6, $20, $BE SonPLC_Walk24: dc.b 5, $50, $C1, $30, $C7, $70, $CB, $20, $D3, $10, $D6 SonPLC_Walk25: dc.b 4, $50, $C1, $10, $D8, $70, $DA, $20, $E2 SonPLC_Walk26: dc.b 5, $50, $87, $10, $9D, 0, $93, $70, $E5, $20, $ED SonPLC_Walk31: dc.b 4, $70, $F0, $50, $F8, $10, $FE, $51, 0 SonPLC_Walk32: dc.b 2, $70, $F0, $B1, 6 SonPLC_Walk33: dc.b 2, $51, $12, $81, $18 SonPLC_Walk34: dc.b 4, $51, $12, $51, $21, $11, $27, $51, $29 SonPLC_Walk35: dc.b 2, $51, $12, $B1, $2F SonPLC_Walk36: dc.b 3, $70, $F0, 1, 6, $81, $3B SonPLC_Walk41: dc.b 6, $51, $44, $11, $4A, $11, $4C, $81, $4E, 1, $57, 1, $58 SonPLC_Walk42: dc.b 6, $51, $44, $21, $59, $11, $5C, $11, $5E, $81, $60, 1, $57 SonPLC_Walk43: dc.b 4, $51, $69, $11, $6F, $81, $71, $11, $7A SonPLC_Walk44: dc.b 5, $51, $7C, $21, $82, $11, $85, $71, $87, $21, $8F SonPLC_Walk45: dc.b 4, $51, $7C, $11, $92, $81, $94, $11, $9D SonPLC_Walk46: dc.b 5, $51, $44, $81, $9F, $11, $5E, $11, $A8, 1, $57 SonPLC_Run11: dc.b 2, $51, $AA, $B1, $B0 SonPLC_Run12: dc.b 2, $50, $54, $B1, $BC SonPLC_Run13: dc.b 2, $51, $AA, $B1, $C8 SonPLC_Run14: dc.b 2, $50, $54, $B1, $D4 SonPLC_Run21: dc.b 4, $51, $E0, $11, $E6, $B1, $E8, 1, $F4 SonPLC_Run22: dc.b 3, $51, $F5, $11, $FB, $B1, $FD SonPLC_Run23: dc.b 4, $51, $E0, $12, 9, $B2, $B, 1, $F4 SonPLC_Run24: dc.b 3, $51, $F5, $11, $FB, $B2, $17 SonPLC_Run31: dc.b 2, $52, $23, $B2, $29 SonPLC_Run32: dc.b 2, $51, $12, $B2, $35 SonPLC_Run33: dc.b 2, $52, $23, $B2, $41 SonPLC_Run34: dc.b 2, $51, $12, $B2, $4D SonPLC_Run41: dc.b 4, $52, $59, $12, $5F, $B2, $61, 2, $6D SonPLC_Run42: dc.b 2, $72, $6E, $B2, $76 SonPLC_Run43: dc.b 4, $52, $59, $12, $82, $B2, $84, 2, $6D SonPLC_Run44: dc.b 2, $72, $6E, $B2, $90 SonPLC_Roll1: dc.b 1, $F2, $9C SonPLC_Roll2: dc.b 1, $F2, $AC SonPLC_Roll3: dc.b 1, $F2, $BC SonPLC_Roll4: dc.b 1, $F2, $CC SonPLC_Roll5: dc.b 1, $F2, $DC SonPLC_Warp1: dc.b 2, $B2, $EC, $22, $F8 SonPLC_Warp2: dc.b 1, $F2, $FB SonPLC_Warp3: dc.b 2, $B3, $B, $23, $17 SonPLC_Warp4: dc.b 1, $F3, $1A SonPLC_Stop1: dc.b 2, $53, $2A, $B3, $30 SonPLC_Stop2: dc.b 4, $53, $3C, $73, $42, $13, $4A, 3, $4C SonPLC_Duck: dc.b 4, $13, $4D, $73, $4F, $23, $57, 3, $5A SonPLC_Balance1:dc.b 3, $23, $5B, $23, $5E, $F3, $61 SonPLC_Balance2:dc.b 3, $B3, $71, $73, $7D, 0, $71 SonPLC_Float1: dc.b 3, $73, $85, $33, $8D, $23, $91 SonPLC_Float2: dc.b 1, $83, $94 SonPLC_Float3: dc.b 3, $73, $9D, 3, $A5, $33, $A6 SonPLC_Float4: dc.b 3, $73, $AA, $33, $B2, $23, $B6 SonPLC_Spring: dc.b 3, $B3, $B9, $13, $C5, 3, $C7 SonPLC_Hang1: dc.b 4, $B3, $C8, $33, $D4, 3, $D8, 3, $D9 SonPLC_Hang2: dc.b 4, $B3, $DA, $33, $E6, 3, $EA, 3, $EB SonPLC_Leap1: dc.b 5, $83, $EC, $13, $F5, $53, $F7, $13, $FD, 3, $FF SonPLC_Leap2: dc.b 5, $84, 0, $14, 9, $53, $F7, $13, $FD, 3, $FF SonPLC_Push1: dc.b 2, $84, $B, $74, $14 SonPLC_Push2: dc.b 3, $84, $1C, $24, $25, $14, $28 SonPLC_Push3: dc.b 2, $84, $2A, $74, $33 SonPLC_Push4: dc.b 3, $84, $1C, $24, $3B, $14, $3E SonPLC_Slide: dc.b 2, $54, $40, $B4, $46 SonPLC_BblUnk: dc.b 3, $84, $52, $34, $5B, 4, $5F SonPLC_Death1: dc.b 3, $74, $60, $14, $68, $B4, $6A SonPLC_Drown: dc.b 5, $74, $76, $14, $7E, $54, $80, $34, $86, 4, $8A SonPLC_Burnt: dc.b 5, $74, $8B, $14, $7E, $54, $93, $34, $86, 4, $8A SonPLC_Shrink1: dc.b 2, $24, $99, $F4, $9C SonPLC_Shrink2: dc.b 3, $24, $AC, $B4, $AF, $24, $BB SonPLC_Shrink3: dc.b 1, $B4, $BE SonPLC_Shrink4: dc.b 1, $54, $CA SonPLC_Shrink5: dc.b 1, $14, $D0 SonPLC_Injury1: dc.b 3, $B4, $D2, $14, $DE, $34, $E0 SonPLC_Bubble: dc.b 3, $54, $E4, $B4, $EA, $10, $6D SonPLC_Injury2: dc.b 2, $F4, $F6, $25, 6 even Spoiler: AFTER Code: ; --------------------------------------------------------------------------- ; Uncompressed graphics loading array for Sonic ; --------------------------------------------------------------------------- dc.w MightyPLC_Blank-MightyDynPLC dc.w MightyPLC_Stand-MightyDynPLC dc.w MightyPLC_Wait1-MightyDynPLC dc.w MightyPLC_Wait2-MightyDynPLC dc.w MightyPLC_Wait3-MightyDynPLC dc.w MightyPLC_LookUp-MightyDynPLC dc.w MightyPLC_Walk11-MightyDynPLC dc.w MightyPLC_Walk12-MightyDynPLC dc.w MightyPLC_Walk13-MightyDynPLC dc.w MightyPLC_Walk14-MightyDynPLC dc.w MightyPLC_Walk15-MightyDynPLC dc.w MightyPLC_Walk16-MightyDynPLC dc.w MightyPLC_Walk21-MightyDynPLC dc.w MightyPLC_Walk22-MightyDynPLC dc.w MightyPLC_Walk23-MightyDynPLC dc.w MightyPLC_Walk24-MightyDynPLC dc.w MightyPLC_Walk25-MightyDynPLC dc.w MightyPLC_Walk26-MightyDynPLC dc.w MightyPLC_Walk31-MightyDynPLC dc.w MightyPLC_Walk32-MightyDynPLC dc.w MightyPLC_Walk33-MightyDynPLC dc.w MightyPLC_Walk34-MightyDynPLC dc.w MightyPLC_Walk35-MightyDynPLC dc.w MightyPLC_Walk36-MightyDynPLC dc.w MightyPLC_Walk41-MightyDynPLC dc.w MightyPLC_Walk42-MightyDynPLC dc.w MightyPLC_Walk43-MightyDynPLC dc.w MightyPLC_Walk44-MightyDynPLC dc.w MightyPLC_Walk45-MightyDynPLC dc.w MightyPLC_Walk46-MightyDynPLC dc.w MightyPLC_Run11-MightyDynPLC dc.w MightyPLC_Run12-MightyDynPLC dc.w MightyPLC_Run13-MightyDynPLC dc.w MightyPLC_Run14-MightyDynPLC dc.w MightyPLC_Run21-MightyDynPLC dc.w MightyPLC_Run22-MightyDynPLC dc.w MightyPLC_Run23-MightyDynPLC dc.w MightyPLC_Run24-MightyDynPLC dc.w MightyPLC_Run31-MightyDynPLC dc.w MightyPLC_Run32-MightyDynPLC dc.w MightyPLC_Run33-MightyDynPLC dc.w MightyPLC_Run34-MightyDynPLC dc.w MightyPLC_Run41-MightyDynPLC dc.w MightyPLC_Run42-MightyDynPLC dc.w MightyPLC_Run43-MightyDynPLC dc.w MightyPLC_Run44-MightyDynPLC dc.w MightyPLC_Roll1-MightyDynPLC dc.w MightyPLC_Roll2-MightyDynPLC dc.w MightyPLC_Roll3-MightyDynPLC dc.w MightyPLC_Roll4-MightyDynPLC dc.w MightyPLC_Roll5-MightyDynPLC dc.w MightyPLC_Warp1-MightyDynPLC dc.w MightyPLC_Warp2-MightyDynPLC dc.w MightyPLC_Warp3-MightyDynPLC dc.w MightyPLC_Warp4-MightyDynPLC dc.w MightyPLC_Stop1-MightyDynPLC dc.w MightyPLC_Stop2-MightyDynPLC dc.w MightyPLC_Duck-MightyDynPLC dc.w MightyPLC_Balance1-MightyDynPLC dc.w MightyPLC_Balance2-MightyDynPLC dc.w MightyPLC_Float1-MightyDynPLC dc.w MightyPLC_Float2-MightyDynPLC dc.w MightyPLC_Float3-MightyDynPLC dc.w MightyPLC_Float4-MightyDynPLC dc.w MightyPLC_Spring-MightyDynPLC dc.w MightyPLC_Hang1-MightyDynPLC dc.w MightyPLC_Hang2-MightyDynPLC dc.w MightyPLC_Leap1-MightyDynPLC dc.w MightyPLC_Leap2-MightyDynPLC dc.w MightyPLC_Push1-MightyDynPLC dc.w MightyPLC_Push2-MightyDynPLC dc.w MightyPLC_Push3-MightyDynPLC dc.w MightyPLC_Push4-MightyDynPLC dc.w MightyPLC_Slide-MightyDynPLC dc.w MightyPLC_BblUnk-MightyDynPLC dc.w MightyPLC_Death1-MightyDynPLC dc.w MightyPLC_Drown-MightyDynPLC dc.w MightyPLC_Burnt-MightyDynPLC dc.w MightyPLC_Shrink1-MightyDynPLC dc.w MightyPLC_Shrink2-MightyDynPLC dc.w MightyPLC_Shrink3-MightyDynPLC dc.w MightyPLC_Shrink4-MightyDynPLC dc.w MightyPLC_Shrink5-MightyDynPLC dc.w MightyPLC_Float1-MightyDynPLC dc.w MightyPLC_Float3-MightyDynPLC dc.w MightyPLC_Injury1-MightyDynPLC dc.w MightyPLC_Bubble-MightyDynPLC dc.w MightyPLC_Injury2-MightyDynPLC MightyPLC_Blank: dc.b 0 MightyPLC_Stand: dc.b 4, $20, 0, $70, 3, $20, $B, $20, $E MightyPLC_Wait1: dc.b 3, $50, $11, $50, $17, $20, $1D MightyPLC_Wait2: dc.b 3, $50, $20, $50, $17, $20, $1D MightyPLC_Wait3: dc.b 3, $50, $20, $50, $17, $20, $26 MightyPLC_LookUp: dc.b 3, $80, $29, $20, $B, $20, $E MightyPLC_Walk11: dc.b 4, $70, $32, $50, $3A, $50, $40, $10, $46 MightyPLC_Walk12: dc.b 2, $70, $32, $B0, $48 MightyPLC_Walk13: dc.b 2, $50, $54, $80, $5A MightyPLC_Walk14: dc.b 4, $50, $54, $50, $63, $50, $69, $10, $6F MightyPLC_Walk15: dc.b 2, $50, $54, $B0, $71 MightyPLC_Walk16: dc.b 3, $70, $32, $30, $7D, $50, $81 MightyPLC_Walk21: dc.b 5, $50, $87, $50, $8D, $20, $93, $50, $96, 0, $9C MightyPLC_Walk22: dc.b 6, $50, $87, $10, $9D, $30, $9F, $50, $A3, $30, $A9, 0, $AD MightyPLC_Walk23: dc.b 4, $50, $AE, $10, $B4, $70, $B6, $20, $BE MightyPLC_Walk24: dc.b 5, $50, $C1, $30, $C7, $70, $CB, $20, $D3, $10, $D6 MightyPLC_Walk25: dc.b 4, $50, $C1, $10, $D8, $70, $DA, $20, $E2 MightyPLC_Walk26: dc.b 5, $50, $87, $10, $9D, 0, $93, $70, $E5, $20, $ED MightyPLC_Walk31: dc.b 4, $70, $F0, $50, $F8, $10, $FE, $51, 0 MightyPLC_Walk32: dc.b 2, $70, $F0, $B1, 6 MightyPLC_Walk33: dc.b 2, $51, $12, $81, $18 MightyPLC_Walk34: dc.b 4, $51, $12, $51, $21, $11, $27, $51, $29 MightyPLC_Walk35: dc.b 2, $51, $12, $B1, $2F MightyPLC_Walk36: dc.b 3, $70, $F0, 1, 6, $81, $3B MightyPLC_Walk41: dc.b 6, $51, $44, $11, $4A, $11, $4C, $81, $4E, 1, $57, 1, $58 MightyPLC_Walk42: dc.b 6, $51, $44, $21, $59, $11, $5C, $11, $5E, $81, $60, 1, $57 MightyPLC_Walk43: dc.b 4, $51, $69, $11, $6F, $81, $71, $11, $7A MightyPLC_Walk44: dc.b 5, $51, $7C, $21, $82, $11, $85, $71, $87, $21, $8F MightyPLC_Walk45: dc.b 4, $51, $7C, $11, $92, $81, $94, $11, $9D MightyPLC_Walk46: dc.b 5, $51, $44, $81, $9F, $11, $5E, $11, $A8, 1, $57 MightyPLC_Run11: dc.b 2, $51, $AA, $B1, $B0 MightyPLC_Run12: dc.b 2, $50, $54, $B1, $BC MightyPLC_Run13: dc.b 2, $51, $AA, $B1, $C8 MightyPLC_Run14: dc.b 2, $50, $54, $B1, $D4 MightyPLC_Run21: dc.b 4, $51, $E0, $11, $E6, $B1, $E8, 1, $F4 MightyPLC_Run22: dc.b 3, $51, $F5, $11, $FB, $B1, $FD MightyPLC_Run23: dc.b 4, $51, $E0, $12, 9, $B2, $B, 1, $F4 MightyPLC_Run24: dc.b 3, $51, $F5, $11, $FB, $B2, $17 MightyPLC_Run31: dc.b 2, $52, $23, $B2, $29 MightyPLC_Run32: dc.b 2, $51, $12, $B2, $35 MightyPLC_Run33: dc.b 2, $52, $23, $B2, $41 MightyPLC_Run34: dc.b 2, $51, $12, $B2, $4D MightyPLC_Run41: dc.b 4, $52, $59, $12, $5F, $B2, $61, 2, $6D MightyPLC_Run42: dc.b 2, $72, $6E, $B2, $76 MightyPLC_Run43: dc.b 4, $52, $59, $12, $82, $B2, $84, 2, $6D MightyPLC_Run44: dc.b 2, $72, $6E, $B2, $90 MightyPLC_Roll1: dc.b 1, $F2, $9C MightyPLC_Roll2: dc.b 1, $F2, $AC MightyPLC_Roll3: dc.b 1, $F2, $BC MightyPLC_Roll4: dc.b 1, $F2, $CC MightyPLC_Roll5: dc.b 1, $F2, $DC MightyPLC_Warp1: dc.b 2, $B2, $EC, $22, $F8 MightyPLC_Warp2: dc.b 1, $F2, $FB MightyPLC_Warp3: dc.b 2, $B3, $B, $23, $17 MightyPLC_Warp4: dc.b 1, $F3, $1A MightyPLC_Stop1: dc.b 2, $53, $2A, $B3, $30 MightyPLC_Stop2: dc.b 4, $53, $3C, $73, $42, $13, $4A, 3, $4C MightyPLC_Duck: dc.b 4, $13, $4D, $73, $4F, $23, $57, 3, $5A MightyPLC_Balance1:dc.b 3, $23, $5B, $23, $5E, $F3, $61 MightyPLC_Balance2:dc.b 3, $B3, $71, $73, $7D, 0, $71 MightyPLC_Float1: dc.b 3, $73, $85, $33, $8D, $23, $91 MightyPLC_Float2: dc.b 1, $83, $94 MightyPLC_Float3: dc.b 3, $73, $9D, 3, $A5, $33, $A6 MightyPLC_Float4: dc.b 3, $73, $AA, $33, $B2, $23, $B6 MightyPLC_Spring: dc.b 3, $B3, $B9, $13, $C5, 3, $C7 MightyPLC_Hang1: dc.b 4, $B3, $C8, $33, $D4, 3, $D8, 3, $D9 MightyPLC_Hang2: dc.b 4, $B3, $DA, $33, $E6, 3, $EA, 3, $EB MightyPLC_Leap1: dc.b 5, $83, $EC, $13, $F5, $53, $F7, $13, $FD, 3, $FF MightyPLC_Leap2: dc.b 5, $84, 0, $14, 9, $53, $F7, $13, $FD, 3, $FF MightyPLC_Push1: dc.b 2, $84, $B, $74, $14 MightyPLC_Push2: dc.b 3, $84, $1C, $24, $25, $14, $28 MightyPLC_Push3: dc.b 2, $84, $2A, $74, $33 MightyPLC_Push4: dc.b 3, $84, $1C, $24, $3B, $14, $3E MightyPLC_Slide: dc.b 2, $54, $40, $B4, $46 MightyPLC_BblUnk: dc.b 3, $84, $52, $34, $5B, 4, $5F MightyPLC_Death1: dc.b 3, $74, $60, $14, $68, $B4, $6A MightyPLC_Drown: dc.b 5, $74, $76, $14, $7E, $54, $80, $34, $86, 4, $8A MightyPLC_Burnt: dc.b 5, $74, $8B, $14, $7E, $54, $93, $34, $86, 4, $8A MightyPLC_Shrink1: dc.b 2, $24, $99, $F4, $9C MightyPLC_Shrink2: dc.b 3, $24, $AC, $B4, $AF, $24, $BB MightyPLC_Shrink3: dc.b 1, $B4, $BE MightyPLC_Shrink4: dc.b 1, $54, $CA MightyPLC_Shrink5: dc.b 1, $14, $D0 MightyPLC_Injury1: dc.b 3, $B4, $D2, $14, $DE, $34, $E0 MightyPLC_Bubble: dc.b 3, $54, $E4, $B4, $EA, $10, $6D MightyPLC_Injury2: dc.b 2, $F4, $F6, $25, 6 even If you have well done everything, if you try to build, you have 0 errors. If you have errors, try again. -------------------------------------------------------------------------------------------------------------------------------------- Spoiler: STEP 3 STEP 3: Make the game load the extra character First, we need a free RAM adress, choose one here http://info.sonicretro.org/SCHG:Sonic_the_Hedgehog_(16-bit)/RAM_Editing (I recommend a peer RAM address). If you do not decide, then i will choose $FFFFFFF6. Replace any free ram adress with this one if you want. Spoiler: Load the ART and the PLC: Search for "LoadSonicDynPLC:" You will see this: Spoiler: code Code: ; --------------------------------------------------------------------------- ; Sonic pattern loading subroutine ; --------------------------------------------------------------------------- ; ||||||||||||||| S U B R O U T I N E ||||||||||||||||||||||||||||||||||||||| LoadSonicDynPLC: ; XREF: Obj01_Control; et al moveq #0,d0 move.b $1A(a0),d0 ; load frame number cmp.b ($FFFFF766).w,d0 beq.s locret_13C96 move.b d0,($FFFFF766).w lea (SonicDynPLC).l,a2 add.w d0,d0 adda.w (a2,d0.w),a2 moveq #0,d1 move.b (a2)+,d1 ; read "number of entries" value subq.b #1,d1 bmi.s locret_13C96 lea ($FFFFC800).w,a3 move.b #1,($FFFFF767).w SPLC_ReadEntry: moveq #0,d2 move.b (a2)+,d2 move.w d2,d0 lsr.b #4,d0 lsl.w #8,d2 move.b (a2)+,d2 lsl.w #5,d2 lea (Art_Sonic).l,a1 adda.l d2,a1 SPLC_LoadTile: movem.l (a1)+,d2-d6/a4-a6 movem.l d2-d6/a4-a6,(a3) lea $20(a3),a3 ; next tile dbf d0,SPLC_LoadTile ; repeat for number of tiles dbf d1,SPLC_ReadEntry ; repeat for number of entries locret_13C96: rts ; End of function LoadSonicDynPLC Just below "lea (SonicDynPLC).l,a2", paste this Code: tst.b ($FFFFFFF6).w ; if player flag set? beq.s LoadDynPLC_cont lea (MightyDynPLC).l,a2 LoadDynPLC_cont: Now, under "SPLC_ReadEntry:", you see this: Code: SPLC_ReadEntry: moveq #0,d2 move.b (a2)+,d2 move.w d2,d0 lsr.b #4,d0 lsl.w #8,d2 move.b (a2)+,d2 lsl.w #5,d2 lea (Art_Sonic).l,a1 adda.l d2,a1 SPLC_LoadTile: Do the same as above: Code: lea (Art_Sonic).l,a1 tst.b ($FFFFFFF6).w ; if player flag set? beq.s SPLC_cont lea (Art_Mighty).l,a1 SPLC_cont: adda.l d2,a1 SPLC_LoadTile: Spoiler: Load the MAPPINGS and the ANIMATIONS: Search for "Obj01_Main:", you will see this: Code: Obj01_Main: ; XREF: Obj01_Index addq.b #2,$24(a0) move.b #$13,$16(a0) move.b #9,$17(a0) move.l #Map_Sonic,4(a0) move.w #$780,2(a0) move.b #2,$18(a0) move.b #$18,$19(a0) move.b #4,1(a0) move.w #$600,($FFFFF760).w ; Sonic's top speed move.w #$C,($FFFFF762).w ; Sonic's acceleration move.w #$80,($FFFFF764).w ; Sonic's deceleration Obj01_Control: ; XREF: Obj01_Index Again, put a check for Mighty, with our ram adress "$FFFFFFF6". Code: Obj01_Main: ; XREF: Obj01_Index addq.b #2,$24(a0) move.b #$13,$16(a0) move.b #9,$17(a0) move.l #Map_Sonic,4(a0) tst.b ($FFFFFFF6).w ; if player flag set? beq.s Obj01_Main_cont move.l #Map_Mighty,4(a0) Obj01_Main_cont: move.w #$780,2(a0) move.b #2,$18(a0) move.b #$18,$19(a0) move.b #4,1(a0) move.w #$600,($FFFFF760).w ; Sonic's top speed move.w #$C,($FFFFF762).w ; Sonic's acceleration move.w #$80,($FFFFF764).w ; Sonic's deceleration Obj01_Control: ; XREF: Obj01_Index Now, search for "Sonic_Animate:", just below "lea (SonicAniData).l,a1", do the same again: Code: tst.b ($FFFFFFF6).w ; if player flag set? beq.s Sonic_Animate_cont lea (MightyAniData).l,a1 Sonic_Animate_cont: Now, replace all Spoiler: this code Code: SAnim_WalkRun: ; XREF: SAnim_Do subq.b #1,$1E(a0) ; subtract 1 from frame duration bpl.s SAnim_Delay ; if time remains, branch addq.b #1,d0 ; is animation walking/running? bne.w SAnim_RollJump ; if not, branch moveq #0,d1 move.b $26(a0),d0 ; get Sonic's angle move.b $22(a0),d2 andi.b #1,d2 ; is Sonic mirrored horizontally? bne.s loc_13A70 ; if yes, branch not.b d0 ; reverse angle loc_13A70: addi.b #$10,d0 ; add $10 to angle bpl.s loc_13A78 ; if angle is $0-$7F, branch moveq #3,d1 loc_13A78: andi.b #$FC,1(a0) eor.b d1,d2 or.b d2,1(a0) btst #5,$22(a0) bne.w SAnim_Push lsr.b #4,d0 ; divide angle by $10 andi.b #6,d0 ; angle must be 0, 2, 4 or 6 move.w $14(a0),d2 ; get Sonic's speed bpl.s loc_13A9C neg.w d2 loc_13A9C: lea (SonAni_Run).l,a1 ; use running animation cmpi.w #$600,d2 ; is Sonic at running speed? bcc.s loc_13AB4 ; if yes, branch lea (SonAni_Walk).l,a1 ; use walking animation move.b d0,d1 lsr.b #1,d1 add.b d1,d0 loc_13AB4: add.b d0,d0 move.b d0,d3 neg.w d2 addi.w #$800,d2 bpl.s loc_13AC2 moveq #0,d2 loc_13AC2: lsr.w #8,d2 move.b d2,$1E(a0) ; modify frame duration bsr.w SAnim_Do2 add.b d3,$1A(a0) ; modify frame number rts ; =========================================================================== SAnim_RollJump: ; XREF: SAnim_WalkRun addq.b #1,d0 ; is animation rolling/jumping? bne.s SAnim_Push ; if not, branch move.w $14(a0),d2 ; get Sonic's speed bpl.s loc_13ADE neg.w d2 loc_13ADE: lea (SonAni_Roll2).l,a1 ; use fast animation cmpi.w #$600,d2 ; is Sonic moving fast? bcc.s loc_13AF0 ; if yes, branch lea (SonAni_Roll).l,a1 ; use slower animation loc_13AF0: neg.w d2 addi.w #$400,d2 bpl.s loc_13AFA moveq #0,d2 loc_13AFA: lsr.w #8,d2 move.b d2,$1E(a0) ; modify frame duration move.b $22(a0),d1 andi.b #1,d1 andi.b #$FC,1(a0) or.b d1,1(a0) bra.w SAnim_Do2 ; =========================================================================== SAnim_Push: ; XREF: SAnim_RollJump move.w $14(a0),d2 ; get Sonic's speed bmi.s loc_13B1E neg.w d2 loc_13B1E: addi.w #$800,d2 bpl.s loc_13B26 moveq #0,d2 loc_13B26: lsr.w #6,d2 move.b d2,$1E(a0) ; modify frame duration lea (SonAni_Push).l,a1 move.b $22(a0),d1 andi.b #1,d1 andi.b #$FC,1(a0) or.b d1,1(a0) bra.w SAnim_Do2 ; End of function Sonic_Animate With Spoiler: THIS SAnim_WalkRun: ; XREF: SAnim_Do subq.b #1,$1E(a0) ; subtract 1 from frame duration bpl.s SAnim_Delay ; if time remains, branch addq.b #1,d0 ; is animation walking/running? bne.w SAnim_RollJump ; if not, branch moveq #0,d1 move.b $26(a0),d0 ; get Sonic's angle move.b $22(a0),d2 andi.b #1,d2 ; is Sonic mirrored horizontally? bne.s loc_13A70 ; if yes, branch not.b d0 ; reverse angle loc_13A70: addi.b #$10,d0 ; add $10 to angle bpl.s loc_13A78 ; if angle is $0-$7F, branch moveq #3,d1 loc_13A78: andi.b #$FC,1(a0) eor.b d1,d2 or.b d2,1(a0) btst #5,$22(a0) bne.w SAnim_Push lsr.b #4,d0 ; divide angle by $10 andi.b #6,d0 ; angle must be 0, 2, 4 or 6 move.w $14(a0),d2 ; get Sonic's speed bpl.s loc_13A9C neg.w d2 loc_13A9C: lea (SonAni_Run).l,a1 ; use running animation tst.b ($FFFFFFF6).w ; if player flag set? beq.s cont_1 lea (MightyAni_Run).l,a1 ; use running animation cont_1: cmpi.w #$600,d2 ; is Sonic at running speed? bcc.s loc_13AB4 ; if yes, branch lea (SonAni_Walk).l,a1 ; use walking animation tst.b ($FFFFFFF6).w ; if player flag set? beq.s cont_2 lea (MightyAni_Walk).l,a1 ; use walking animation cont_2: move.b d0,d1 lsr.b #1,d1 add.b d1,d0 loc_13AB4: add.b d0,d0 move.b d0,d3 neg.w d2 addi.w #$800,d2 bpl.s loc_13AC2 moveq #0,d2 loc_13AC2: lsr.w #8,d2 move.b d2,$1E(a0) ; modify frame duration bsr.w SAnim_Do2 add.b d3,$1A(a0) ; modify frame number rts ; =========================================================================== SAnim_RollJump: ; XREF: SAnim_WalkRun addq.b #1,d0 ; is animation rolling/jumping? bne.s SAnim_Push ; if not, branch move.w $14(a0),d2 ; get Sonic's speed bpl.s loc_13ADE neg.w d2 loc_13ADE: lea (SonAni_Roll2).l,a1 ; use fast animation tst.b ($FFFFFFF6).w ; if player flag set? beq.s cont_3 lea (MightyAni_Roll2).l,a1 ; use fast animation cont_3: cmpi.w #$600,d2 ; is Sonic moving fast? bcc.s loc_13AF0 ; if yes, branch lea (SonAni_Roll).l,a1 ; use slower animation tst.b ($FFFFFFF6).w ; if player flag set? beq.s loc_13AF0 lea (MightyAni_Roll).l,a1 ; use slower animation loc_13AF0: neg.w d2 addi.w #$400,d2 bpl.s loc_13AFA moveq #0,d2 loc_13AFA: lsr.w #8,d2 move.b d2,$1E(a0) ; modify frame duration move.b $22(a0),d1 andi.b #1,d1 andi.b #$FC,1(a0) or.b d1,1(a0) bra.w SAnim_Do2 ; =========================================================================== SAnim_Push: ; XREF: SAnim_RollJump move.w $14(a0),d2 ; get Sonic's speed bmi.s loc_13B1E neg.w d2 loc_13B1E: addi.w #$800,d2 bpl.s loc_13B26 moveq #0,d2 loc_13B26: lsr.w #6,d2 move.b d2,$1E(a0) ; modify frame duration lea (SonAni_Push).l,a1 tst.b ($FFFFFFF6).w ; if player flag set? beq.s cont_4 lea (MightyAni_Push).l,a1 cont_4: move.b $22(a0),d1 andi.b #1,d1 andi.b #$FC,1(a0) or.b d1,1(a0) bra.w SAnim_Do2 ; End of function Sonic_Animate Spoiler: Load the PALETTE Finally: for the palettes, search for "Level_LoadPal:" You see this: Code: Level_LoadPal: move.w #$1E,($FFFFFE14).w move #$2300,sr moveq #3,d0 bsr.w PalLoad2 ; load Sonic's pallet line cmpi.b #1,($FFFFFE10).w ; is level LZ? bne.s Level_GetBgm ; if not, branch moveq #$F,d0 ; pallet number $0F (LZ) cmpi.b #3,($FFFFFE11).w ; is act number 3? bne.s Level_WaterPal ; if not, branch moveq #$10,d0 ; pallet number $10 (SBZ3) Level_WaterPal: Put a check for the extra character, under the line "moveq #3,d0", before the line: "bsr.w PalLoad2 ; load Sonic's pallet line", add this: Code: tst.b ($FFFFFFF6).w ; if player flag set? beq.s Level_LoadPal_cont ; if not, cancel moveq #$14,d0 ; $14 is the number of the palette ID in "pallet pointers.asm" Level_LoadPal_cont: As you can see, i use the ID $14 for the palette entry. Open "Pallet pointers.asm" in the "_inc" folder, and under: Code: dc.l Pal_Ending ;13 dc.w $FB00 dc.w $1F Paste it: Code: dc.l Pal_Mighty ;14 dc.w $FB00 dc.w 7 Okay, now, if you build, and if you do all this steps correctly, you will get 0 errors. If you start to play your hack, the character is Sonic. Spoiler: STEP 4: Load your character at the titlescreen There is several possibilities for you to make the game able to load your character, by make a code at the titlescreen, put a titlemenu screen ect.. For my tutorial, i will use the method used in the Sonic Retro's How To tutorial: So search for 'loc_3230:'. You should find something like this: Code: loc_3230: tst.w ($FFFFF614).w beq.w Demo andi.b #$80,($FFFFF605).w; check if Start is pressed beq.w loc_317C; if not, branch After the beq.w Demo, put this in: Code: Title_CheckForB: cmpi.b #$10, ($FFFFF605).w ; has B been pressed? bne.s StartCheck ; if not, branch Title_SecondCharacter: move.b #$01, ($FFFFFFF6).w ; set the multiple character flag to $01 (indicating Metal Sonic) StartCheck: VoilĂ , when you PUSH the B button at the titlescreen, the player's flag will be enabled, and this is Mighty instead of Sonic now. Spoiler: EXTRA STEP: How to work with the Player's Flag: In my Sonic & Ashuro hack, i have using a method for make the 2 players have their own level layouts, abilities, life icon, signpost, titlecards... Always with one method: tst.b ($FFFFFFF6).w ; if player flag set? beq.s XXXXXXX ; if Sonic, cancel and continue XXXXXXXXX ; add new routine for Mighty For example, if you're using the Spindash and the Selbi's Jumpdash, at the very beginning of this codes, you can do this: If you want Sonic use the Spindash and not Mighty, and Mighty use the Jumpdash and not Sonic: Spoiler: THIS Code: ; ----------------------------------------------------------------------- ; Subroutine to perform a Jumpdash ; ----------------------------------------------------------------------- Sonic_JumpDash: tst.b ($FFFFFFF6).w if player flag set? bne.s JD_Valid rts JD_valid: move.b ($FFFFF603).w,d0 ; is ABC pressed? (part 1) andi.b #$70,d0 ; is ABC pressed? (part 2) beq.w JD_End ; if not, branch ... Code: Sonic_SpinDash: tst.b ($FFFFFFF6).w ; if player flag set? beq.s SP_valid ; if sonic, ok rts SP_valid: tst.b $39(a0) ; already SpinDashing? bne.s loc2_1AC8E ; if set, branch cmpi.b #8,$1C(a0) ; is anim duck ... You can also make the characters have their own behavior! (i will show you the basic method, i let you the rest for Obj01_outwater, ect...) Search for "Obj01_Main_cont:", you have this: Spoiler: THIS Code: Obj01_Main_cont: move.w #$780,2(a0) move.b #2,$18(a0) move.b #$18,$19(a0) move.b #4,1(a0) move.w #$600,($FFFFF760).w ; Sonic's top speed move.w #$C,($FFFFF762).w ; Sonic's acceleration move.w #$80,($FFFFF764).w ; Sonic's deceleration Obj01_Control: ; XREF: Obj01_Index tst.w ($FFFFFFFA).w ; is debug cheat enabled? beq.s loc_12C58 ; if not, branch btst #4,($FFFFF605).w ; is button C pressed? beq.s loc_12C58 ; if not, branch move.w #1,($FFFFFE08).w ; change Sonic into a ring/item clr.b ($FFFFF7CC).w rts Now, you need (again) to add the check for your character: Code: Obj01_Main_cont: move.w #$780,2(a0) move.b #2,$18(a0) move.b #$18,$19(a0) move.b #4,1(a0) ; --------------------------------------SONIC move.w #$600,($FFFFF760).w ; Sonic's top speed move.w #$C,($FFFFF762).w ; Sonic's acceleration move.w #$80,($FFFFF764).w ; Sonic's deceleration tst.b ($FFFFFFF6).w ; if Player flag set? beq.s Obj01_Control ; --------------------------------------MIGHTY move.w #$800,($FFFFF760).w ; Sonic's top speed move.w #$F,($FFFFF762).w ; Sonic's acceleration move.w #$80,($FFFFF764).w ; Sonic's deceleration Obj01_Control: ; XREF: Obj01_Index tst.w ($FFFFFFFA).w ; is debug cheat enabled? beq.s loc_12C58 ; if not, branch btst #4,($FFFFF605).w ; is button C pressed? beq.s loc_12C58 ; if not, branch move.w #1,($FFFFFE08).w ; change Sonic into a ring/item clr.b ($FFFFF7CC).w rts Mighty is now more fastest than Sonic. Right now, you have an extra character with their own abilities and behavior. Ask me questions if you want, i can help you for some things you don't understand. You can credit me if you want (or not). Thanks!
I would prefer if you add more characters like Tails and Knuckles. I really want to port another character into my hacks.
It's your choice, you can replace Mighty by any other character, YOU have to do your own art file, mappings, plc and animations. Mighty is just a choice, I could choose Tails or Metal Sonic. You can add the number of character you want. I have already added Mighty, Metal Sonic and Ashuro in a hack with my method. You have just to change the value of $FFFFFFF6 (or any free ram adress you have chosen). In my tutorial, Sonic have the "0", mighty have the "1" (move.b #1,($FFFFFFF6).w)... You can put "2" for tails, "3" for metal sonic, ect...If you wan you can put any other free peer ram adress to each characters.
His guide is applicable to any character of your choosing. I personally find it to be a good guide and easily understood. A guide is something to help you along -- not to do everything for you. Good guide, Ashuro! Your English was fine =) Only a couple mistakes that I saw, and they aren't even worth mentioning. Thanks for the guide!
RAM editing is something i have no experience of, may you please make a tutorial (wherever it be youtube or text) so i can understand?
Omg, i don't know if it'll be a good idea... I can help you by this way: http://mrjester.hapisan.com/04_MC68/ http://info.sonicretro.org/SCHG:Sonic_the_Hedgehog_(16-bit)/RAM_Editing Enjoy!