Difference between revisions of "Display the Press Start Button text"
From Sonic Retro
m (Text replacement - "\[\[Category:SCHG How-tos.*" to "") |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | ''(Original guide by [[User:Quickman|Quickman]]. Updated for | + | ''(Original guide by [[User:Quickman|Quickman]]. Updated for latest (Clownacys disassembly) GitHub disassembly by [[User:DikinBaus|DikinBaus]]. Known glitches by [[User:YouTails|YouTails]])'' |
− | In Sonic 1, there is | + | In Sonic 1, there is a invincible 'PRESS START BUTTON' message on the title screen. While seen in the [https://tcrf.net/images/8/81/Sonic1proto_titlescreen.png Sonic 1 Prototype], in the final version, it's there, but just not visible. |
− | == | + | ==GitHub Disassembly== |
− | This version of the guide is for [ | + | This version of the guide is for the [https://github.com/sonicretro/s1disasm GitHub] disassembly. |
− | To fix this, you simply need to go to ''' | + | To fix this, you simply need to go to '''sonic.asm''' and search for '''Tit_LoadText:'''. (Line 2173) and find this piece of code (scroll down until you see it): |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="asm"> | <syntaxhighlight lang="asm"> | ||
− | + | if FixBugs | |
− | + | clearRAM v_sonicteam,v_sonicteam+object_size | |
− | + | else</syntaxhighlight> | |
− | + | And right below, '''else''' add the following lines: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | And | ||
<syntaxhighlight lang="asm"> lea (v_objspace+$80).w,a1 | <syntaxhighlight lang="asm"> lea (v_objspace+$80).w,a1 | ||
moveq #0,d0 | moveq #0,d0 | ||
Line 53: | Line 23: | ||
==Result== | ==Result== | ||
− | Now you should be able to see | + | Now you should be able to see the '''PRESS START BUTTON''': |
[[File:S1-PressStart.png]] | [[File:S1-PressStart.png]] | ||
+ | |||
+ | ==Current Known Glitches== | ||
+ | The title emblem (on the title screen) is moved up. There is no fix as of 12/24/23. | ||
Revision as of 03:21, 25 December 2023
(Original guide by Quickman. Updated for latest (Clownacys disassembly) GitHub disassembly by DikinBaus. Known glitches by YouTails)
In Sonic 1, there is a invincible 'PRESS START BUTTON' message on the title screen. While seen in the Sonic 1 Prototype, in the final version, it's there, but just not visible.
GitHub Disassembly
This version of the guide is for the GitHub disassembly.
To fix this, you simply need to go to sonic.asm and search for Tit_LoadText:. (Line 2173) and find this piece of code (scroll down until you see it):
if FixBugs
clearRAM v_sonicteam,v_sonicteam+object_size
else
And right below, else add the following lines:
lea (v_objspace+$80).w,a1
moveq #0,d0
move.w #$F,d1 ; ($40 / 4) - 1
Tit_ClrObj2:
move.l d0,(a1)+
dbf d1,Tit_ClrObj2
move.b #id_TitleSonic,(v_objspace+$40).w ; load big Sonic object
Result
Now you should be able to see the PRESS START BUTTON:
Current Known Glitches
The title emblem (on the title screen) is moved up. There is no fix as of 12/24/23.
“ | I've finally isolated precisely why the PRESS START BUTTON (PSB) text doesn't appear on the Sonic 1 title screen, and given the nature I suspect it to be a bug in Sonic Team's original code. (You may now be shocked.)
Now, the PSB object is initialised in object RAM slot $D080 on line 3237 of the disassembly I'm currently using (modified by Puto to work on Linux; it's just under the label Title_ClrObjRam2, in case it's not the same line in an unmodified Sonic 1 disassembly). That same chunk of RAM is previously used for the SONIC TEAM PRESENTS (STP) object earlier in the TitleScreen routine (line 3162, adjust as necessary). The reason the PSB text doesn't appear is because the STP object scribbles in object RAM, but the TitleScreen routine only clears the top $1C bytes. Any data between $D09C and $D0A0 previously touched by the STB object is unmodified. The correction is simple enough; delete the object RAM for the object at $D080 more thoroughly. |
„ |
— Quickman |
|Display the Press Start Button text]]