summaryrefslogtreecommitdiff
path: root/_inc
diff options
context:
space:
mode:
authorSelbi182 <shadow93x@gmail.com>2026-03-31 16:19:22 +0200
committerSelbi182 <shadow93x@gmail.com>2026-03-31 16:19:22 +0200
commit7b3b5b4adc2b3a75940745e8857cc634450b50a7 (patch)
treebb0276b8efeb6a7a2d64d22b00077b606b4b6691 /_inc
parentd72ddc89bfddf48e61a2c94caf849ee798991704 (diff)
More assorted bug fixes
Most of these were taken from the "Some changes/fixes for Sonic 1" thread on the Sonic Retro forums: https://forums.sonicretro.org/threads/some-changes-fixes-for-sonic-1.29751 I didn't implement all of them. Anything that leaned too far into a design choice or would require editing more than a handful of lines was skipped.
Diffstat (limited to '_inc')
-rw-r--r--_inc/DynamicLevelEvents.asm5
-rw-r--r--_inc/LevelSizeLoad & BgScrollSpeed (JP1).asm4
-rw-r--r--_inc/LevelSizeLoad & BgScrollSpeed.asm4
-rw-r--r--_inc/Pattern Load Cues.asm3
4 files changed, 16 insertions, 0 deletions
diff --git a/_inc/DynamicLevelEvents.asm b/_inc/DynamicLevelEvents.asm
index b1c4b15..58afe1d 100644
--- a/_inc/DynamicLevelEvents.asm
+++ b/_inc/DynamicLevelEvents.asm
@@ -78,6 +78,11 @@ DLE_GHZx: dc.w DLE_GHZ1-DLE_GHZx
; ===========================================================================
DLE_GHZ1:
+ if FixBugs
+ ; Prevent the title screen from using GHZ1's DLE logic
+ cmpi.b #id_Title,(v_gamemode).w
+ beq.s locret_6E08
+ endif
move.w #$300,(v_limitbtm1).w ; set lower y-boundary
cmpi.w #$1780,(v_screenposx).w ; has the camera reached $1780 on x-axis?
blo.s locret_6E08 ; if not, branch
diff --git a/_inc/LevelSizeLoad & BgScrollSpeed (JP1).asm b/_inc/LevelSizeLoad & BgScrollSpeed (JP1).asm
index b2fdcb1..69b7f43 100644
--- a/_inc/LevelSizeLoad & BgScrollSpeed (JP1).asm
+++ b/_inc/LevelSizeLoad & BgScrollSpeed (JP1).asm
@@ -12,6 +12,10 @@ LevelSizeLoad:
move.b d0,(v_unused9).w
move.b d0,(v_unused10).w
move.b d0,(v_dle_routine).w
+ if FixBugs
+ ; Fix title screen not always scrolling after a game over
+ move.b d0,(f_nobgscroll).w
+ endif
move.w (v_zone).w,d0
lsl.b #6,d0
lsr.w #4,d0
diff --git a/_inc/LevelSizeLoad & BgScrollSpeed.asm b/_inc/LevelSizeLoad & BgScrollSpeed.asm
index f264a0f..a310e7f 100644
--- a/_inc/LevelSizeLoad & BgScrollSpeed.asm
+++ b/_inc/LevelSizeLoad & BgScrollSpeed.asm
@@ -12,6 +12,10 @@ LevelSizeLoad:
move.b d0,(v_unused9).w
move.b d0,(v_unused10).w
move.b d0,(v_dle_routine).w
+ if FixBugs
+ ; Fix title screen not always scrolling after a game over
+ move.b d0,(f_nobgscroll).w
+ endif
move.w (v_zone).w,d0
lsl.b #6,d0
lsr.w #4,d0
diff --git a/_inc/Pattern Load Cues.asm b/_inc/Pattern Load Cues.asm
index dd77991..44530c9 100644
--- a/_inc/Pattern Load Cues.asm
+++ b/_inc/Pattern Load Cues.asm
@@ -225,7 +225,10 @@ PLC_SYZ2: plcheader
plcm Nem_Bumper, ArtTile_SYZ_Bumper ; bumper
plcm Nem_SyzSpike1, ArtTile_SYZ_Big_Spikeball ; large spikeball
plcm Nem_SyzSpike2, ArtTile_SYZ_Spikeball_Chain ; small spikeball
+ if FixBugs=0
+ ; Despite being unused, this corrupts the Roller's graphics
plcm Nem_Cater, ArtTile_MZ_SYZ_Caterkiller ; caterkiller enemy
+ endif
plcm Nem_LzSwitch, ArtTile_Button ; switch
plcm Nem_Spikes, ArtTile_Spikes ; spikes
plcm Nem_HSpring, ArtTile_Spring_Horizontal ; horizontal spring