Difference between revisions of "Port Sonic 2 Level Select to Sonic 1"
From Sonic Retro
m (Added required template) |
m |
||
Line 1: | Line 1: | ||
{{cleanup-rewrite}} | {{cleanup-rewrite}} | ||
− | ''(Guide by [[User:DelayHacks]])'' | + | ''(Guide by [[DelayHacks|User:DelayHacks]])'' |
You need to download level select by [[Esrael]]: | You need to download level select by [[Esrael]]: | ||
− | {{Download | + | {{Download|title=Sonic 2 Level Select in Sonic 1|version=|file=s2menu.rar}} |
− | | title=Sonic 2 Level Select in Sonic 1 | ||
− | | version= | ||
− | | file=s2menu.rar | ||
− | }} | ||
and extract it to the root of your dissassembly. | and extract it to the root of your dissassembly. | ||
Line 14: | Line 10: | ||
==Getting Level select in game== | ==Getting Level select in game== | ||
− | After | + | After downloading and extracting, go to the end and you'll find this: |
− | and go to end and you | ||
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
Line 24: | Line 19: | ||
END | END | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Add this line before it: | |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
include 's2_menu.asm' ; Sonic 2 Level Select | include 's2_menu.asm' ; Sonic 2 Level Select | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Now go to: | |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
Title_ChkLevSel: | Title_ChkLevSel: | ||
Line 41: | Line 36: | ||
move.w #$DF,d1 | move.w #$DF,d1 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | and replace with this | + | and replace with this: |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
Title_ChkLevSel: | Title_ChkLevSel: | ||
Line 56: | Line 51: | ||
==Other== | ==Other== | ||
− | + | Go to "_inc\Pallet pointers.asm" and under this: | |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
dc.l Pal_Ending | dc.l Pal_Ending | ||
Line 62: | Line 57: | ||
dc.w $1F | dc.w $1F | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | add this: | |
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
dc.l Menu_Palette; pallet address | dc.l Menu_Palette; pallet address | ||
Line 68: | 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. | |
− | To | + | 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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Replace "81" with any music you want in the level select (# of music + 80). | |
To edit sound after "all emeralds" code find: | To edit sound after "all emeralds" code find: | ||
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> |
Revision as of 14:46, 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 User:DelayHacks)
You need to download 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, go to the end 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
Go to "_inc\Pallet pointers.asm" and under 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 texts in level select. To edit "debug mode" code go to label "Code_Debug_Mode:". To edit "all emeralds" code go to label "Code_All_Emeralds:" Thats all. All permissions for this level select code goes to Esrael. Result: