Difference between revisions of "Port Sonic 2 Level Select to Sonic 1"
From Sonic Retro
m |
|||
Line 3: | Line 3: | ||
''(Guide by [[User:DelayHacks|DelayHacks]])'' | ''(Guide by [[User:DelayHacks|DelayHacks]])'' | ||
− | You need to download level select by [[Esrael]]: | + | You need to download the level select by [[Esrael]]: |
{{Download|title=Sonic 2 Level Select in Sonic 1|version=|file=s2menu.rar}} | {{Download|title=Sonic 2 Level Select in Sonic 1|version=|file=s2menu.rar}} | ||
Line 10: | Line 10: | ||
==Getting Level select in game== | ==Getting Level select in game== | ||
− | After downloading and extracting, go to the end and you'll find this: | + | After downloading and extracting the file, go to the end of the main file (sonic1.asm) and you'll find this: |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
Line 51: | Line 51: | ||
==Other== | ==Other== | ||
− | + | Open "_inc\Pallet pointers.asm" and after this: | |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
dc.l Pal_Ending | dc.l Pal_Ending | ||
Line 63: | Line 63: | ||
dc.w $1F ; (pallet length / 2) - 1 | dc.w $1F ; (pallet length / 2) - 1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
Now you have Sonic 2's level select palette. | Now you have Sonic 2's level select palette. | ||
+ | |||
To change music in the level select, go to "s2_menu.asm" and find: | To change music in the level select, go to "s2_menu.asm" and find: | ||
+ | |||
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
Level_Select_Menu_snd = $0081 | Level_Select_Menu_snd = $0081 | ||
Line 90: | Line 93: | ||
dc.b $0E, _S, _O, _U, _N, _D, __, _T, _E, _S, _T, __, __, _st,__, __ | dc.b $0E, _S, _O, _U, _N, _D, __, _T, _E, _S, _T, __, __, _st,__, __ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Now you can edit the text in the level select. To edit "debug mode" code go to the label "Code_Debug_Mode:". | |
To edit "all emeralds" code go to label "Code_All_Emeralds:" | To edit "all emeralds" code go to label "Code_All_Emeralds:" | ||
− | + | That's all. All permissions for this level select code goes to [[Esrael]]. Result: | |
− | [[File:S2levelselectInS1.png]] | + | |
+ | [[File:S2levelselectInS1.png|320px]] | ||
{{S1Howtos}} | {{S1Howtos}} | ||
[[Category:SCHG_How-tos]] | [[Category:SCHG_How-tos]] |
Revision as of 14:53, 24 November 2017
This article needs a complete rewrite for the reasons listed on the talk page. You can help Sonic Retro by fixing it. After fixing this article, please remove this notice. |
(Guide by DelayHacks)
You need to download the level select by Esrael:
Download Sonic 2 Level Select in Sonic 1
File: s2menu.rar (29 kB) (info)
|
and extract it to the root of your dissassembly.
Getting Level select in game
After downloading and extracting the file, go to the end of the main file (sonic1.asm) and you'll find this:
; end of 'ROM'
EndOfRom:
END
Add this line before it:
include 's2_menu.asm' ; Sonic 2 Level Select
Now go to:
Title_ChkLevSel:
tst.b ($FFFFFFE0).w ; check if level select code is on
beq.w PlayLevel ; if not, play level
btst #iA,(Joypad|Held).w ; check if A is held
beq.w PlayLevel ; if not, play level
moveq #2,d0
bsr.w PalLoad2 ; load level select pallet
lea ($FFFFCC00).w,a1
moveq #0,d0
move.w #$DF,d1
and replace with this:
Title_ChkLevSel:
tst.b ($FFFFFFE0).w ; check if level select code is on
beq.w PlayLevel ; if not, play level
btst #iA,(Joypad|Held).w ; check if A is held
beq.w PlayLevel ; if not, play level
jmp Level_Select_Menu ; if yes, goto Sonic 2 level select
moveq #2,d0
lea ($FFFFCC00).w,a1
moveq #0,d0
move.w #$DF,d1
Other
Open "_inc\Pallet pointers.asm" and after this:
dc.l Pal_Ending
dc.w $FB00
dc.w $1F
add this:
dc.l Menu_Palette; pallet address
dc.w $FB00 ; RAM address
dc.w $1F ; (pallet length / 2) - 1
Now you have Sonic 2's level select palette.
To change music in the level select, go to "s2_menu.asm" and find:
Level_Select_Menu_snd = $0081
Replace "81" with any music you want in the level select (# of music + 80). To edit sound after "all emeralds" code find:
Emerald_Snd = $0093
and replace "93" with sound what you want. To edit ring sound after "debug mode" code find:
Ring_Snd = $00B5
and replace "B5" with sound what you want. To edit texts find label "Menu_Level_Select_Text:" and you see
dc.b $0E, _G, _R, _E, _E, _N, __, _H, _I, _L, _L, __, __, __, __, __
dc.b $0E, _L, _A, _B, _Y, _R, _I, _N, _T, _H, __, __, __, __, __, __
dc.b $0E, _M, _A, _R, _B, _L, _E, __, __, __, __, __, __, __, __, __
dc.b $0E, _S, _P, _R, _I, _N, _G, __, _Y, _A, _R, _D, __, __, __, __
dc.b $0E, _S, _T, _A, _R, __, _L, _I, _G, _H, _T, __, __, __, __, __
dc.b $0E, _S, _C, _R, _A, _P, __, _B, _R, _A, _I, _N, __, __, __, __
dc.b $0E, _F, _I, _N, _A, _L, __, __, __, __, __, __, __, __, __, __
dc.b $0E, _S, _P, _E, _C, _I, _A, _L, __, _S, _T, _A, _G, _E, __, __
dc.b $0E, _E, _N, _D, _I, _N, _G, __, _S, _E, _Q, _U, _E, _N, _C, _E
dc.b $0E, _S, _O, _U, _N, _D, __, _T, _E, _S, _T, __, __, _st,__, __
Now you can edit the text in the level select. To edit "debug mode" code go to the label "Code_Debug_Mode:". To edit "all emeralds" code go to label "Code_All_Emeralds:" That's all. All permissions for this level select code goes to Esrael. Result: