backend-infra-engineer: Post v0.3.9-hotfix7 snapshot (build cleanup)

This commit is contained in:
scawful
2025-12-22 00:20:49 +00:00
parent 2934c82b75
commit 5c4cd57ff8
1259 changed files with 239160 additions and 43801 deletions

View File

@@ -0,0 +1,44 @@
;#ENABLED=True
;#PATCH_NAME=Big Bomb requirement
;#PATCH_AUTHOR=Zarby89,kan
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Modify the crystal and dwarf requirements for the big bomb
;If SmithRequirement is set to 20, you will need to save the Smith first
;#ENDPATCH_DESCRIPTION
;#DEFINE_START
;#name=Crystals Required
;#type=bitfield
;#bit0=Crystal 6
;#bit1=Crystal 1
;#bit2=Crystal 5
;#bit3=Crystal 7
;#bit4=Crystal 2
;#bit5=Crystal 4
;#bit6=Crystal 3
!CrystalRequirement =$02
;#name=Required smith saved?
;#type=bool
;#uncheckedvalue=$00
;#checkedvalue=$20
!SmithRequirement =$00
;#DEFINE_END
pushpc
org $1EE16A
LDA.l $7EF37A : AND.b #!CrystalRequirement : CMP.b #!CrystalRequirement
skip 2
LDA.l $7EF3C9 : AND.b #!SmithRequirement
pullpc

View File

@@ -0,0 +1,41 @@
;#ENABLED=True
;#PATCH_NAME=Hole Overlay Fix
;#PATCH_AUTHOR=kan
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Allow the floor collision of the hole overlay to work on every floor types
;#ENDPATCH_DESCRIPTION
pushpc
org $01B83E : JSL FigureOutFloor1
; change comparisons to our dynamic values
org $01FE6C : CMP.w $0318
org $01FE71 : CMP.w $031A
pullpc
;===================================================================================================
; Find floor 1 index and save its tiles
FigureOutFloor1:
REP #$30
LDX.w $046A ; read floor 1 index
; this reuses some memory related to conveyors
; the memory is very temporary so it should be safe
; databank is 0, so we can use abs,X
LDA.w $009B52+0,X ; find top tile
AND.w #$03FE ; isolate tile name
STA.w $0318 ; save tile
LDA.w $009B52+8,X ; find bottom tile
AND.w #$03FE ; isolate tile name
STA.w $031A ; save tile
LDA.b $BA ; vanilla code and return
RTL

View File

@@ -0,0 +1,13 @@
;#ENABLED=true
;#PATCH_NAME=Intro skip
;#PATCH_AUTHOR=kan
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Skip the intro sooner
;#ENDPATCH_DESCRIPTION
pushpc
org $0CC123
db 4
pullpc

View File

@@ -0,0 +1,39 @@
;#ENABLED=True
;#PATCH_NAME=1.0 Glitches
;#PATCH_AUTHOR=kan
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Restore the JP 1.0 glitches
;#ENDPATCH_DESCRIPTION
;#DEFINE_START
;#name=Mirror block erase
;#type=bool
!MirrorEraseBlock = $00
;#name=Spin speed and Item dash
;#type=bool
!SpinSpeedItemDash = $00
;#name=Fake flippers
;#type=bool
!FakeFlippers = $00
;#DEFINE_END
pushpc
if !MirrorEraseBlock == 1
org $07A969
JMP.w $07A970
endif
if !SpinSpeedItemDash == 1
org $0781C0
BRA + : NOP #4 : +
endif
if !FakeFlippers == 1
org $079665
JMP.w $07966C
endif
pullpc

View File

@@ -0,0 +1,39 @@
;#ENABLED=True
;#PATCH_NAME=Link Bed Starting Position
;#PATCH_AUTHOR=Zarby89, Jared_Brian_, kan
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Changes where Link spawns during the opening bed cutscene
;Positions can be found by temporarily moving the Link's house entrance to
;the desired location
;#ENDPATCH_DESCRIPTION
;#DEFINE_START
;#name=Link Y Position
;#type=word
!LinkYPosition = $2182
;#name=Link Y Position
;#type=word
!LinkXPosition = $095B
;#DEFINE_END
; Link sleep position changes
org $079A31
LDA.w #!LinkYPosition : STA.b $20 ; Y link position in bed
LDA.w #!LinkXPosition : STA.b $22 ; X link position in bed
org $05DE52 ; These values should be the same as the ones above
LDA.b #!LinkXPosition : STA.w $0FC2 ; X link position in bed
LDA.b #!LinkXPosition>>8 : STA.w $0FC3 ; X link position in bed
LDA.b #!LinkYPosition : STA.w $0FC4 ; Y link position in bed
LDA.b #!LinkYPosition>>8 : STA.w $0FC5 ; Y link position in bed
org $0980B7
LDA.w #(!LinkYPosition+8) : STA.b $00 ; Y link sheet in bed
LDA.w #(!LinkXPosition-8) : STA.b $02 ; X link sheet in bed
org $05DE8C
LDA.b #(!LinkYPosition-3) : STA.b $20 ; Y link position in bed when awoken
LDA.b #(!LinkYPosition-3)>>8 : STA.b $21 ; Y link position in bed when awoken

View File

@@ -0,0 +1,28 @@
;#ENABLED=True
;#PATCH_NAME=No Hardcoded Rocks
;#PATCH_AUTHOR=Jared_Brian_
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Removes the 2 hardcoded rocks that get placed in area 33 and 2F.
;#ENDPATCH_DESCRIPTION
;#DEFINE_START
;#name=Remove rock in area 33.
;#type=bool
!RemoveRock1 = $01
;#name=Remove rock in area 2F.
;#type=bool
!RemoveRock2 = $01
;#DEFINE_END
pushpc
if !RemoveRock1 == 1
org $02EF33
NOP #4
endif
if !RemoveRock2 == 1
org $02EF3C
NOP #4
endif
pullpc

View File

@@ -0,0 +1,51 @@
;#ENABLED=True
;#PATCH_NAME=Rainstate Skip
;#PATCH_AUTHOR=Zarby89
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Skips over gamestates 0 and 1 (rain) straight to 2 (Zelda rescued)
;Setting BedIntro to 00 will keep the opening bed sequence
;#ENDPATCH_DESCRIPTION
lorom
;#DEFINE_START
;#name=Remove bed intro
;#type=bool
!BedIntro = $00
;#DEFINE_END
if !BedIntro == 00
pushpc
org $828356
JSL NewIntroRain
pullpc
NewIntroRain:
LDA.l $7EF3C5 : BNE +
LDA.b #$02 : STA.l $7EF3C5 ; Set Game mode on 2
PHX
JSL $80FC62 ; Sprite_LoadGfxProperties.justLightWorld
PLX
LDA.b #$00 ; will take care of the bed intro wether we are in game rainstate or not
+ RTL
else
pushpc
org $0CD8F6
JSL NewIntroRain
pullpc
NewIntroRain:
PHA
LDA.w #$1002
STA.l $7003C5, X
PLA
STA.l $7003D9, X
RTL
endif

View File

@@ -0,0 +1,30 @@
;#ENABLED=True
;#PATCH_NAME=Torch Tags
;#PATCH_AUTHOR=Jared_Brian_
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Changes the number of torches required to open doors and chests when using the "Light_Torches_to_Open" and "Light_Torches_to_get_Chest" tags.
;#ENDPATCH_DESCRIPTION
;#DEFINE_START
;#name=torches required to make a chest appear.
;#type=word
;#range=$01,$08
!ChestTorches =$01
;#name=torches required to open a door.
;#type=word
;#range=$01,$08
!DoorTorches =$08
;#DEFINE_END
pushpc
; Changes the amount of torches required to make a chest appear.
org $01C8CA
dw !ChestTorches
; Changes the amount of torches required to open a door.
org $01C645
dw !DoorTorches
pullpc

View File

@@ -0,0 +1,153 @@
;#ENABLED=True
;=========================
;TODO FINISH ADDING DEFINES
;INCOMPLETE PATCH
;==========================
;#PATCH_NAME=Weathervane Position
;#PATCH_AUTHOR=Jared_Brian_
;#PATCH_VERSION=1.0
;#PATCH_DESCRIPTION
;Modify the position of where you need to use the flute to destroy weathervane and spawn bird
;#ENDPATCH_DESCRIPTION
!AREAID = $34
; Weather vane explosion changes:
; Let the flute work in special areas.
org $07A40A
NOP : NOP
org $07A418
JML NewVaneCheck
org $07A441
VanePassed:
org $07A44F
VaneFailed:
org $07A453
SpawnBird:
; Disable the area check for the weather vane sprite.
org $06C2EB
LDA $8A : CMP.b #!AREAID : BNE .outside_village
; Check if we have the flute activated already:
LDA $7EF34C : CMP.b #$03 : BNE .player_lacks_bird_enabled_flute
STZ $0DD0, X
.player_lacks_bird_enabled_flute
RTS
.outside_village
; What to do in an area outside of the village:
LDA $7EF34C : AND.b #$02 : BEQ .player_lacks_flute_completely
STZ $0DD0, X ; Suicide.
.player_lacks_flute_completely
RTS
warnpc $06C309
; Tile 1
org $1BC226
dw $06CA
; Tile 2
org $1BC232
dw $06CE
; Tile 3
org $1BC243
dw #$074C
; Bird coords
org $098DC1
LDA.w #$08C8 : STA $00
LDA.w #$0460 : STA $02
; Vane Debris coords
org $098CED
.y_coords
db $F4, $E7, $E4, $E6, $E4, $EC, $E4, $E4, $EC, $E5, $F4, $E4
.x_coords
db $7C, $5E, $6C, $60, $62, $64, $7C, $60, $64, $62, $60, $6C
; Debris Y high byte
org $098D65
db $08
; Debris X high byte
org $098D72
db $04
pullpc ; Continue extended space.
NewVaneCheck:
{
REP #$20
; Check if its the master sword area.
LDA $8A : CMP.w #!AREAID : BNE .not_weathervane_trigger2
LDA $20
CMP.w #$0068 : BCC .not_weathervane_trigger1
CMP.w #$00A0 : BCS .not_weathervane_trigger1
LDA $22
CMP.w #$0040 : BCC .not_weathervane_trigger1
CMP.w #$00A0 : BCS .not_weathervane_trigger1
SEP #$20
; Cancel other sounds
STZ $012E
STZ $012F
; Stop player input
INC InCutScene
; Trigger Zelda
INC $0642
JML VaneFailed
.not_weathervane_trigger2
SEP #$20
; Check if we already have the bird.
LDA $7EF34C : CMP.b #$02 : BNE .travel_bird_not_already_released
REP #$20
; Check the area for #$22.
LDA $8A : CMP.w #$0022 : BNE .not_weathervane_trigger1
LDA $20
CMP.w #$0900 : BCC .not_weathervane_trigger1
CMP.w #$0920 : BCS .not_weathervane_trigger1
LDA $22
CMP.w #$0450 : BCC .not_weathervane_trigger1
CMP.w #$0470 : BCS .not_weathervane_trigger1
SEP #$20
LDA $7EF2A2 : ORA.b #$20 : STA $7EF2A2
REP #$20
STZ FluteIndex
JML VanePassed
.not_weathervane_trigger1
JML VaneFailed
.travel_bird_not_already_released
JML SpawnBird
}
pushpc ; Pause expanded space.
; ==============================================================================