turn a bunch of addresses into fast rom
bunch of consistency clean ups in hooks
move zsnes to failures
This commit is contained in:
spannerisms
2022-12-30 03:07:15 -05:00
parent 36ca193b75
commit ff88437f8e
36 changed files with 2108 additions and 2133 deletions

View File

@@ -6,25 +6,25 @@ lorom
;================================================================================ ;================================================================================
;org $00FFC0 ; <- 7FC0 - Bank00.asm : 9173 (db "THE LEGEND OF ZELDA " ; 21 bytes) ;org $00FFC0 ; <- 7FC0 - Bank00.asm : 9173 (db "THE LEGEND OF ZELDA " ; 21 bytes)
;db #$23, $4E ;db $23, $4E
org $00FFD5 ; <- 7FD5 - Bank00.asm : 9175 (db $20 ; rom layout) org $00FFD5 ; <- 7FD5 - Bank00.asm : 9175 (db $20 ; rom layout)
db #$30 ; set fast lorom db $30 ; set fast lorom
;org $00FFD6 ; <- 7FD6 - Bank00.asm : 9176 (db $02 ; cartridge type) ;org $00FFD6 ; <- 7FD6 - Bank00.asm : 9176 (db $02 ; cartridge type)
;db #$55 ; enable S-RTC ;db $55 ; enable S-RTC
org $00FFD7 ; <- 7FD7 - Bank00.asm : 9177 (db $0A ; rom size) org $00FFD7 ; <- 7FD7 - Bank00.asm : 9177 (db $0A ; rom size)
db #$0B ; mark rom as 16mbit db $0B ; mark rom as 16mbit
org $00FFD8 ; <- 7FD8 - Bank00.asm : 9178 (db $03 ; ram size (sram size)) org $00FFD8 ; <- 7FD8 - Bank00.asm : 9178 (db $03 ; ram size (sram size))
db #$05 ; mark sram as 32k db $05 ; mark sram as 32k
org $3FFFFF ; <- 1FFFFF org $BFFFFF ; <- 1FFFFF
db #$00 ; expand file to 2mb db $00 ; expand file to 2mb
org $1FFFF8 ; <- FFFF8 timestamp rom org $1FFFF8 ; <- FFFF8 timestamp rom
db #$20, #$19, #$08, #$31 ; year/month/day db $20, $19, $08, $31 ; year/month/day
;================================================================================ ;================================================================================
!ROM_VERSION_LOW ?= 1 ; ROM version (two 16-bit integers) !ROM_VERSION_LOW ?= 1 ; ROM version (two 16-bit integers)
@@ -57,8 +57,7 @@ incsrc sram.asm
incsrc registers.asm incsrc registers.asm
incsrc vanillalabels.asm incsrc vanillalabels.asm
;org $208000 ; bank #$20 org $A08000 ; bank $20
org $A08000 ; bank #$A0
incsrc itemdowngrade.asm incsrc itemdowngrade.asm
incsrc bugfixes.asm incsrc bugfixes.asm
incsrc darkworldspawn.asm incsrc darkworldspawn.asm
@@ -97,7 +96,7 @@ incsrc roomloading.asm
incsrc icepalacegraphics.asm incsrc icepalacegraphics.asm
warnpc $A18000 warnpc $A18000
org $1C8000 ; text tables for translation org $9C8000 ; text tables for translation
incbin "data/i18n_en.bin" incbin "data/i18n_en.bin"
warnpc $1CF356 warnpc $1CF356
@@ -154,8 +153,9 @@ incsrc darkroomitems.asm
incsrc fastcredits.asm incsrc fastcredits.asm
incsrc msu.asm incsrc msu.asm
incsrc dungeonmap.asm incsrc dungeonmap.asm
if !FEATURE_NEW_TEXT if !FEATURE_NEW_TEXT
incsrc textrenderer.asm incsrc textrenderer.asm
endif endif
warnpc $A58000 warnpc $A58000
@@ -167,101 +167,102 @@ incsrc utilities.asm
org $A38000 org $A38000
incsrc stats/main.asm incsrc stats/main.asm
org $308000 ; bank #$30 org $B08000 ; bank $30
incsrc tables.asm incsrc tables.asm
org $348000 org $B48000
incsrc spc.asm incsrc spc.asm
org $318000 ; bank #$31 org $B18000 ; bank $31
GFX_Mire_Bombos: GFX_Mire_Bombos:
incbin "data/99ff1_bombos.gfx" incbin "data/99ff1_bombos.gfx"
warnpc $318800 warnpc $B18800
org $318800 org $B18800
GFX_Mire_Quake: GFX_Mire_Quake:
incbin "data/99ff1_quake.gfx" incbin "data/99ff1_quake.gfx"
warnpc $319000 warnpc $B19000
org $319000 org $B19000
GFX_TRock_Bombos: GFX_TRock_Bombos:
incbin "data/a6fc4_bombos.gfx" incbin "data/a6fc4_bombos.gfx"
warnpc $319800 warnpc $B19800
org $319800 org $B19800
GFX_TRock_Ether: GFX_TRock_Ether:
incbin "data/a6fc4_ether.gfx" incbin "data/a6fc4_ether.gfx"
warnpc $31A000 warnpc $B1A000
org $31A000 org $B1A000
GFX_HUD_Items: GFX_HUD_Items:
incbin "data/c2807_v4.gfx" incbin "data/c2807_v4.gfx"
warnpc $31A800 warnpc $B1A800
org $31A800 org $B1A800
warnpc $31B000 warnpc $B1B000
org $31B000 org $B1B000
GFX_HUD_Main: GFX_HUD_Main:
incbin "data/c2e3e.gfx" incbin "data/c2e3e.gfx"
warnpc $31B800 warnpc $B1B800
org $31C000 org $B1C000
IcePalaceFloorGfx: IcePalaceFloorGfx:
incbin "data/ice_palace_floor.bin" incbin "data/ice_palace_floor.bin"
warnpc $31C801 warnpc $B1C801
org $31C800 org $B1C800
Damage_Table: Damage_Table:
incbin "data/damage_table.bin" incbin "data/damage_table.bin"
warnpc $31D001 warnpc $B1D001
org $31D000 org $B1D000
FileSelectNewGraphics: FileSelectNewGraphics:
incbin "data/fileselect.chr.gfx" incbin "data/fileselect.chr.gfx"
warnpc $31E001 warnpc $B1E001
org $31E000 org $B1E000
InvertedCastleHole: ;address used by front end. DO NOT MOVE! InvertedCastleHole: ;address used by front end. DO NOT MOVE!
incbin "data/sheet73.gfx" incbin "data/sheet73.gfx"
warnpc $31E501 warnpc $B1E501
org $338000 org $B38000
GFX_HUD_Palette: GFX_HUD_Palette:
incbin "data/hudpalette.pal" incbin "data/hudpalette.pal"
warnpc $338041 warnpc $B38041
org $339000 org $B39000
ExpandedTrinexx:
incbin "data/sheet178.gfx" incbin "data/sheet178.gfx"
warnpc $339600 warnpc $B39600
org $339600 org $B39600
BossMapIconGFX: BossMapIconGFX:
incbin "data/bossicons.4bpp" incbin "data/bossicons.4bpp"
if !FEATURE_NEW_TEXT if !FEATURE_NEW_TEXT
org $339C00 org $B39C00
NewFont: NewFont:
incbin "data/newfont.bin" incbin "data/newfont.bin"
NewFontInverted: NewFontInverted:
incbin "data/newfont_inverted.bin" incbin "data/newfont_inverted.bin"
org $0CD7DF org $0CD7DF
incbin "data/text_unscramble1.bin" incbin "data/text_unscramble1.bin"
org $0CE4D5 org $0CE4D5
incbin "data/text_unscramble2.bin" incbin "data/text_unscramble2.bin"
endif endif
org $328000 org $B28000
Extra_Text_Table: Extra_Text_Table:
incsrc itemtext.asm incsrc itemtext.asm
incsrc externalhooks.asm incsrc externalhooks.asm
;================================================================================ ;================================================================================
org $119100 ; PC 0x89100 org $919100 ; PC 0x89100
incbin "data/map_icons.gfx" incbin "data/map_icons.gfx"
warnpc $119401 warnpc $919401
;================================================================================ ;================================================================================
org $AF8000 ; PC 0x178000 org $AF8000 ; PC 0x178000
Static_RNG: ; each line below is 512 bytes of rng Static_RNG: ; each line below is 512 bytes of rng

View File

@@ -153,7 +153,7 @@ RestoreBgEther:
INX #2 : CPX.b #$10 : BNE - INX #2 : CPX.b #$10 : BNE -
BRA ++ BRA ++
++ ++
JML $02FF51 ; Bank0E.asm : 3936 vanilla restore routine after loop which RTLs JML $82FF51 ; Bank0E.asm : 3936 vanilla restore routine after loop which RTLs
;================================================================================ ;================================================================================
DDMConditionalLightning: DDMConditionalLightning:
LDA.l DisableFlashing LDA.l DisableFlashing
@@ -161,7 +161,7 @@ DDMConditionalLightning:
BNE + BNE +
LDA.w Scrap LDA.w Scrap
LDX.b #$02 LDX.b #$02
JML $07FA7F ; Bank0E.asm : 4738 vanilla loop equivalent to below beginning at LDY #$00 JML $87FA7F ; Bank0E.asm : 4738 vanilla loop equivalent to below beginning at LDY #$00
+ +
LDA.b Scrap00 : LDX.b #$02 : LDY.b #$00 LDA.b Scrap00 : LDX.b #$02 : LDY.b #$00
- -
@@ -172,7 +172,7 @@ DDMConditionalLightning:
LDA.w $F523, Y : LDA.l PaletteBuffer+$F0, X LDA.w $F523, Y : LDA.l PaletteBuffer+$F0, X
INY #2 INY #2
INX #2 : CPX.b #$10 : BNE - INX #2 : CPX.b #$10 : BNE -
JML $07FAAC ; Bank0E.asm : 4754 both branches converge here JML $87FAAC ; Bank0E.asm : 4754 both branches converge here
;================================================================================ ;================================================================================
ConditionalGTFlash: ConditionalGTFlash:
LDA.l DisableFlashing : REP #$20 : BNE + LDA.l DisableFlashing : REP #$20 : BNE +
@@ -222,17 +222,17 @@ LoadElectroPalette:
LDA.w #$0404 : STA.b Scrap0E LDA.w #$0404 : STA.b Scrap0E
LDA.w #$001B : STA.b Scrap02 LDA.w #$001B : STA.b Scrap02
SEP #$10 SEP #$10
LDX.b Scrap0C : LDA.l $1BEBB4, X : AND.w #$00FF : ADC.w #$D630 LDX.b Scrap0C : LDA.l $9BEBB4, X : AND.w #$00FF : ADC.w #$D630
REP #$10 : LDX.w #$01B2 : LDY.w #$0002 REP #$10 : LDX.w #$01B2 : LDY.w #$0002
JSR ConditionalLoadGearPalette JSR ConditionalLoadGearPalette
SEP #$10 SEP #$10
LDX.b Scrap0D LDX.b Scrap0D
LDA.l $1BEBC1, X : AND.w #$00FF : ADC.w #$D648 LDA.l $9BEBC1, X : AND.w #$00FF : ADC.w #$D648
REP #$10 : LDX.w #$01B8 : LDY.w #$0003 REP #$10 : LDX.w #$01B8 : LDY.w #$0003
JSR ConditionalLoadGearPalette JSR ConditionalLoadGearPalette
SEP #$10 SEP #$10
LDX.b Scrap0E LDX.b Scrap0E
LDA.l $1BEC06, X : AND.w #$00FF : ASL A : ADC.w #$D308 LDA.l $9BEC06, X : AND.w #$00FF : ASL A : ADC.w #$D308
REP #$10 : LDX.w #$01E2 : LDY.w #$000E REP #$10 : LDX.w #$01E2 : LDY.w #$000E
JSR ConditionalLoadGearPalette JSR ConditionalLoadGearPalette
SEP #$30 SEP #$30

View File

@@ -119,5 +119,5 @@ HandleOneMindController:
.no_onemind .no_onemind
STZ.b NMIDoneFlag STZ.b NMIDoneFlag
JML $008034 ; reset frame loop JML $808034 ; reset frame loop

View File

@@ -255,9 +255,9 @@ endmacro
FastSpriteDecomp: FastSpriteDecomp:
SEP #$30 SEP #$30
LDA.l $00CFC0,X : PHA : PLB ; bank LDA.l $80CFC0,X : PHA : PLB ; bank
LDA.l $00D09F,X : XBA ; high LDA.l $80D09F,X : XBA ; high
LDA.l $00D17E,X ; low LDA.l $80D17E,X ; low
REP #$10 REP #$10
@@ -334,7 +334,6 @@ FastSpriteDecomp:
ASL ASL
ASL ASL
ASL ASL
AND.b #$E0
STA.b DecompTestByte STA.b DecompTestByte
LDA.b DecompCommand LDA.b DecompCommand
@@ -395,19 +394,24 @@ FastSpriteDecomp:
STY.b DecompSaveY STY.b DecompSaveY
LDY.b DecompSize LDY.b DecompSize
DEY
.next_word .next_word
STA.l DecompBuffer2,X STA.l DecompBuffer2,X
INX INX
DEY
BEQ .done_restore_y
INX INX
DEY
BNE .next_word
.done_restore_y DEY
DEY
BPL .next_word
INY
BEQ .not_too_far
DEX
.not_too_far
SEP #$20 SEP #$20
LDY.b DecompSaveY LDY.b DecompSaveY

View File

@@ -341,7 +341,7 @@ AgahnimAsksAboutPed:
STA.w TextID STA.w TextID
.vanilla .vanilla
JML $05FA8E ; Sprite_ShowMessageMinimal JML $85FA8E ; Sprite_ShowMessageMinimal
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
Main_ShowTextMessage_Alt: Main_ShowTextMessage_Alt:
; Are we in text mode? If so then end the routine. ; Are we in text mode? If so then end the routine.
@@ -433,7 +433,7 @@ Sprite_ShowSolicitedMessageIfPlayerFacing_Alt:
; Make sure that the sprite is facing towards the player, otherwise ; Make sure that the sprite is facing towards the player, otherwise
; talking can't happen. (What sprites actually use this???) ; talking can't happen. (What sprites actually use this???)
LDA.l $05E1A3, X : PLX : CMP.b LinkDirection : BNE .not_facing_each_other LDA.l $85E1A3, X : PLX : CMP.b LinkDirection : BNE .not_facing_each_other
PHY PHY
@@ -490,7 +490,7 @@ Sprite_ShowSolicitedMessageIfPlayerFacing_PreserveMessage:
; Make sure that the sprite is facing towards the player, otherwise ; Make sure that the sprite is facing towards the player, otherwise
; talking can't happen. (What sprites actually use this???) ; talking can't happen. (What sprites actually use this???)
LDA.l $05E1A3, X : PLX : CMP.b LinkDirection : BNE .not_facing_each_other LDA.l $85E1A3, X : PLX : CMP.b LinkDirection : BNE .not_facing_each_other
PLA : XBA : PLA PLA : XBA : PLA

View File

@@ -8,7 +8,7 @@
StoreLastOverworldDoorID: StoreLastOverworldDoorID:
TXA : INC TXA : INC
STA.l PreviousOverworldDoor STA.l PreviousOverworldDoor
LDA.l $1BBB73, X : STA.w EntranceIndex LDA.l $9BBB73, X : STA.w EntranceIndex
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -3,7 +3,7 @@
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
DropSafeDungeon: DropSafeDungeon:
LDA.w DungeonID : CMP.b #$08 : BEQ + LDA.w DungeonID : CMP.b #$08 : BEQ +
LDA.l $01C6FC, X : JML Sprite_SpawnFallingItem LDA.l $81C6FC, X : JML Sprite_SpawnFallingItem
+ +
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -2,7 +2,7 @@ NewElderCode:
{ {
LDA.b OverworldIndex : CMP.b #$1B : BEQ .newCodeContinue LDA.b OverworldIndex : CMP.b #$1B : BEQ .newCodeContinue
;Restore Jump we can keep the RTL so JML ;Restore Jump we can keep the RTL so JML
JML $05F0CD JML $85F0CD
.newCodeContinue .newCodeContinue
PHB : PHK : PLB PHB : PHK : PLB
LDA.b #$07 : STA.w SpriteOAMProp, X ; Palette LDA.b #$07 : STA.w SpriteOAMProp, X ; Palette

View File

@@ -29,7 +29,7 @@ LockAgahnimDoors:
LDA.w #$0001 : RTL ;Keep the door locked LDA.w #$0001 : RTL ;Keep the door locked
++ ++
SEP #$30 SEP #$30
JSL $099B6F ;Add tower break seal JSL $899B6F ;Add tower break seal
REP #$30 REP #$30
LDA.w #$0001 ;Prevent door from opening that frame otherwise it glitchy LDA.w #$0001 ;Prevent door from opening that frame otherwise it glitchy
RTL RTL
@@ -142,11 +142,11 @@ JML.l AllowStartFromExitReturn
.doStart .doStart
LDA.l $028481, X ;Module_LocationMenu_starting_points LDA.l $828481, X ;Module_LocationMenu_starting_points
ASL : TAX ASL : TAX
LDA.l $02D8D2, X : STA.b RoomIndex LDA.l $82D8D2, X : STA.b RoomIndex
LDA.l $02D8D3, X : STA.b RoomIndex+1 LDA.l $82D8D3, X : STA.b RoomIndex+1
; Go to pre-overworld mode ; Go to pre-overworld mode
LDA.b #$08 : STA.b GameMode LDA.b #$08 : STA.b GameMode
@@ -165,9 +165,9 @@ RTL
CheckHole: CheckHole:
LDX.w #$0024 LDX.w #$0024
.nextHoleClassic .nextHoleClassic
LDA.b Scrap00 : CMP.l $1BB800, X LDA.b Scrap00 : CMP.l $9BB800, X
BNE .wrongMap16Classic BNE .wrongMap16Classic
LDA.b OverworldIndex : CMP.l $1BB826, X LDA.b OverworldIndex : CMP.l $9BB826, X
BEQ .matchedHoleClassic BEQ .matchedHoleClassic
.wrongMap16Classic .wrongMap16Classic
DEX #2 : BPL .nextHoleClassic DEX #2 : BPL .nextHoleClassic

View File

@@ -1,4 +1,4 @@
org $298000 ; 0x148000 org $A98000 ; 0x148000
Ext_OnFileCreate: ;x Ext_OnFileCreate: ;x
RTL : RTL : RTL : RTL : RTL RTL : RTL : RTL : RTL : RTL
Ext_OnFileLoad: ;x immediately after load Ext_OnFileLoad: ;x immediately after load

View File

@@ -1,3 +1,18 @@
CheckZSNES:
SEP #$28
LDA.b #$FF
CLC
ADC.b #$FF
CMP.b #$64
REP #$28
BEQ .zsnes
LDA.w #$01FF : TCS ; thing we wrote over - initialize stack
JML ReturnCheckZSNES
.zsnes
JML DontUseZSNES
;===================================================================================================
pushtable pushtable
table "data/bsodencode.txt" table "data/bsodencode.txt"

View File

@@ -49,10 +49,10 @@ FastCreditsCutsceneScrollY:
FastCreditsCutsceneScroll: FastCreditsCutsceneScroll:
LDA.w $00E2,Y LDA.w $00E2,Y
CMP.l $0EC308,X ; compare to target CMP.l $8EC308,X ; compare to target
ROL.b Scrap00 ; put carry in here ROL.b Scrap00 ; put carry in here
LDA.l $0EC348,X ; get movement LDA.l $8EC348,X ; get movement
BPL ++ ; if positive, leave saved carry alone BPL ++ ; if positive, leave saved carry alone
INC.b Scrap00 ; otherwise, flip it INC.b Scrap00 ; otherwise, flip it
++ ROR.b Scrap00 ; recover carry ++ ROR.b Scrap00 ; recover carry

View File

@@ -4,10 +4,10 @@
; Written over and used by OnEnterWater hook. ; Written over and used by OnEnterWater hook.
UnequipCapeQuiet: UnequipCapeQuiet:
LDA.b #$20 : STA.w PoofTimer LDA.b #$20 : STA.w PoofTimer
STZ.w NoDamage STZ.w NoDamage
STZ.b CapeOn STZ.b CapeOn
STZ.w LinkZap STZ.w LinkZap
RTL RTL
protectff: protectff:
@@ -43,7 +43,7 @@ protectff:
BMI .special_overworld BMI .special_overworld
AND.b #$3F AND.b #$3F
CMP.l $02A4E3,X CMP.l $82A4E3,X
BEQ ++ BEQ ++
.protect .protect

View File

@@ -2,7 +2,7 @@
; Frame Hook ; Frame Hook
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
FrameHookAction: FrameHookAction:
JSL $0080B5 ; Module_MainRouting JSL $8080B5 ; Module_MainRouting
JSL CheckMusicLoadRequest JSL CheckMusicLoadRequest
PHP : REP #$30 : PHA PHP : REP #$30 : PHA
SEP #$20 SEP #$20

View File

@@ -81,7 +81,7 @@ GetItemDamageValue:
CPX.b #$3d : BEQ .hookshot CPX.b #$3d : BEQ .hookshot
.normal .normal
LDA.l $0db8f1,x ;what we wrote over LDA.l $8DB8F1,x ;what we wrote over
RTL RTL
.boomerang .boomerang
LDA.l StunItemAction : AND.b #$01 : BNE .normal LDA.l StunItemAction : AND.b #$01 : BNE .normal

View File

@@ -55,76 +55,76 @@
!FSTILE_Y_TOP = $1D82 !FSTILE_Y_TOP = $1D82
!FSTILE_Y_BOTTOM = $1D92 !FSTILE_Y_BOTTOM = $1D92
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $0CDE60 ; <- 65E60 org $8CDE60 ; <- 65E60
FileSelect_CopyFile_Top: FileSelect_CopyFile_Top:
db $62, $A5, $00, $15 db $62, $A5, $00, $15
dw !FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE dw !FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $0CDE7A ; <- 65E7A org $8CDE7A ; <- 65E7A
FileSelect_CopyFile_Bottom: FileSelect_CopyFile_Bottom:
db $62, $C5, $00, $15 db $62, $C5, $00, $15
dw !FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE dw !FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE,!FSTILE_SPACE
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $0CDE94 ; <- 65E94 org $8CDE94 ; <- 65E94
FileSelect_KillFile_Top: FileSelect_KillFile_Top:
db $63, $25, $00, $19 db $63, $25, $00, $19
dw !FSTILE_D_TOP, !FSTILE_E_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_T_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_F_TOP, !FSTILE_I_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_D_TOP, !FSTILE_E_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_T_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_F_TOP, !FSTILE_I_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_SPACE
org $0CDEB2 ; <- 65EB2 org $8CDEB2 ; <- 65EB2
FileSelect_KillFile_Bottom: FileSelect_KillFile_Bottom:
db $63, $45, $00, $19 db $63, $45, $00, $19
dw !FSTILE_D_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_T_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_F_BOTTOM, !FSTILE_I_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_D_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_T_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_F_BOTTOM, !FSTILE_I_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE
;CopyFile_Header: ;CopyFile_Header:
org $0CE228 ; <- 66228 org $8CE228 ; <- 66228
dw !FSTILE_BRACKET_OPEN_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_C_TOP, !FSTILE_O_TOP, !FSTILE_P_TOP, !FSTILE_Y_TOP, !FSTILE_SPACE, !FSTILE_F_TOP, !FSTILE_I_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_BRACKET_CLOSE_TOP dw !FSTILE_BRACKET_OPEN_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_C_TOP, !FSTILE_O_TOP, !FSTILE_P_TOP, !FSTILE_Y_TOP, !FSTILE_SPACE, !FSTILE_F_TOP, !FSTILE_I_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_BRACKET_CLOSE_TOP
org $0CE24A ; <- 6624A org $8CE24A ; <- 6624A
dw !FSTILE_BRACKET_OPEN_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_C_BOTTOM, !FSTILE_O_BOTTOM, !FSTILE_P_BOTTOM, !FSTILE_Y_BOTTOM, !FSTILE_SPACE, !FSTILE_F_BOTTOM, !FSTILE_I_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_BRACKET_CLOSE_BOTTOM dw !FSTILE_BRACKET_OPEN_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_C_BOTTOM, !FSTILE_O_BOTTOM, !FSTILE_P_BOTTOM, !FSTILE_Y_BOTTOM, !FSTILE_SPACE, !FSTILE_F_BOTTOM, !FSTILE_I_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_BRACKET_CLOSE_BOTTOM
;CopyFile_Which: ;CopyFile_Which:
org $0CE2DB ; <- 662DB org $8CE2DB ; <- 662DB
dw $0D80, $0D61, $0D62, $0D4C, $0D61, $0D86, !FSTILE_SPACE dw $0D80, $0D61, $0D62, $0D4C, $0D61, $0D86, !FSTILE_SPACE
org $0CE2ED ; <- 662ED org $8CE2ED ; <- 662ED
dw $0D90, $0D71, $0D72, $0D5C, $0D71, $0D96, !FSTILE_SPACE dw $0D90, $0D71, $0D72, $0D5C, $0D71, $0D96, !FSTILE_SPACE
;CopyFile_Where: ;CopyFile_Where:
org $0CE39C ; <- 6639C org $8CE39C ; <- 6639C
dw $0D80, $0D61, $0D4E, $0D6B, $0D4E, $0D86, !FSTILE_SPACE dw $0D80, $0D61, $0D4E, $0D6B, $0D4E, $0D86, !FSTILE_SPACE
org $0CE3AE ; <- 663AE org $8CE3AE ; <- 663AE
dw $0D90, $0D71, $0D5E, $0D7B, $0D5E, $0D96, !FSTILE_SPACE dw $0D90, $0D71, $0D5E, $0D7B, $0D5E, $0D96, !FSTILE_SPACE
;CopyFile_Execute: ;CopyFile_Execute:
org $0CD13A ; <- 6513A org $8CD13A ; <- 6513A
dw !FSTILE_C_TOP, !FSTILE_SPACE, !FSTILE_O_TOP, !FSTILE_SPACE, !FSTILE_P_TOP, !FSTILE_SPACE, !FSTILE_Y_TOP, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_C_TOP, !FSTILE_SPACE, !FSTILE_O_TOP, !FSTILE_SPACE, !FSTILE_P_TOP, !FSTILE_SPACE, !FSTILE_Y_TOP, !FSTILE_SPACE, !FSTILE_SPACE
org $0CD150 ; <- 65150 org $8CD150 ; <- 65150
dw !FSTILE_C_BOTTOM, !FSTILE_SPACE, !FSTILE_O_BOTTOM, !FSTILE_SPACE, !FSTILE_P_BOTTOM, !FSTILE_SPACE, !FSTILE_Y_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_C_BOTTOM, !FSTILE_SPACE, !FSTILE_O_BOTTOM, !FSTILE_SPACE, !FSTILE_P_BOTTOM, !FSTILE_SPACE, !FSTILE_Y_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE
;CopyFile_Cancel: ;CopyFile_Cancel:
org $0CE29A ; <- 6629A org $8CE29A ; <- 6629A
dw !FSTILE_C_TOP, !FSTILE_SPACE, !FSTILE_A_TOP, !FSTILE_SPACE, !FSTILE_N_TOP, !FSTILE_SPACE, !FSTILE_C_TOP, !FSTILE_SPACE, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_L_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_C_TOP, !FSTILE_SPACE, !FSTILE_A_TOP, !FSTILE_SPACE, !FSTILE_N_TOP, !FSTILE_SPACE, !FSTILE_C_TOP, !FSTILE_SPACE, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_L_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
org $0CE2BA ; <- 662BA org $8CE2BA ; <- 662BA
dw !FSTILE_C_BOTTOM, !FSTILE_SPACE, !FSTILE_A_BOTTOM, !FSTILE_SPACE, !FSTILE_N_BOTTOM, !FSTILE_SPACE, !FSTILE_C_BOTTOM, !FSTILE_SPACE, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_L_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_C_BOTTOM, !FSTILE_SPACE, !FSTILE_A_BOTTOM, !FSTILE_SPACE, !FSTILE_N_BOTTOM, !FSTILE_SPACE, !FSTILE_C_BOTTOM, !FSTILE_SPACE, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_L_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
;KillFile_Header: ;KillFile_Header:
org $0CE002 ; <- 66002 org $8CE002 ; <- 66002
dw !FSTILE_BRACKET_OPEN_TOP, !FSTILE_SPACE, !FSTILE_D_TOP, !FSTILE_E_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_T_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_F_TOP, !FSTILE_I_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_BRACKET_CLOSE_TOP, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_BRACKET_OPEN_TOP, !FSTILE_SPACE, !FSTILE_D_TOP, !FSTILE_E_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_T_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_F_TOP, !FSTILE_I_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_BRACKET_CLOSE_TOP, !FSTILE_SPACE, !FSTILE_SPACE
org $0CE028 ; <- 66028 org $8CE028 ; <- 66028
dw !FSTILE_BRACKET_OPEN_BOTTOM, !FSTILE_SPACE, !FSTILE_D_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_T_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_F_BOTTOM, !FSTILE_I_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_BRACKET_CLOSE_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_BRACKET_OPEN_BOTTOM, !FSTILE_SPACE, !FSTILE_D_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_T_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_F_BOTTOM, !FSTILE_I_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_BRACKET_CLOSE_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE
;KillFile_Which: ;KillFile_Which:
org $0CE04E ; <- 6604E org $8CE04E ; <- 6604E
dw !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
org $0CE084 ; <- 66084 org $8CE084 ; <- 66084
dw !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
;KillFile_Execute: ;KillFile_Execute:
org $0CD328 ; <- 65328 org $8CD328 ; <- 65328
dw !FSTILE_D_TOP, !FSTILE_E_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_T_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_D_TOP, !FSTILE_E_TOP, !FSTILE_L_TOP, !FSTILE_E_TOP, !FSTILE_T_TOP, !FSTILE_E_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
org $0CD344 ; <- 65344 org $8CD344 ; <- 65344
dw !FSTILE_D_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_T_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_D_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_T_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
;KillFile_Cancel: ;KillFile_Cancel:
org $0CE0BA ; <- 660BA org $8CE0BA ; <- 660BA
dw !FSTILE_C_TOP, !FSTILE_A_TOP, !FSTILE_N_TOP, !FSTILE_C_TOP, !FSTILE_E_TOP, !FSTILE_L_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_C_TOP, !FSTILE_A_TOP, !FSTILE_N_TOP, !FSTILE_C_TOP, !FSTILE_E_TOP, !FSTILE_L_TOP, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE
org $0CE0DA ; <- 660DA org $8CE0DA ; <- 660DA
dw !FSTILE_C_BOTTOM, !FSTILE_A_BOTTOM, !FSTILE_N_BOTTOM, !FSTILE_C_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE dw !FSTILE_C_BOTTOM, !FSTILE_A_BOTTOM, !FSTILE_N_BOTTOM, !FSTILE_C_BOTTOM, !FSTILE_E_BOTTOM, !FSTILE_L_BOTTOM, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE

View File

@@ -19,7 +19,7 @@ HeartPieceGet:
.notHeart .notHeart
.giveItem .giveItem
JSL.l $0791B3 ; Player_HaltDashAttackLong JSL.l $8791B3 ; Player_HaltDashAttackLong
STZ.w ItemReceiptMethod ; 0 = Receiving item from an NPC or message STZ.w ItemReceiptMethod ; 0 = Receiving item from an NPC or message
JSL.l Link_ReceiveItem JSL.l Link_ReceiveItem
@@ -155,7 +155,7 @@ LoadHeartPieceRoomValue:
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
HPItemReset: HPItemReset:
JSL $09AD58 ; GiveRupeeGift - thing we wrote over JSL $89AD58 ; GiveRupeeGift - thing we wrote over
PHA : LDA.b #$01 : STA.l RedrawFlag : PLA PHA : LDA.b #$01 : STA.l RedrawFlag : PLA
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -378,9 +378,9 @@ RTL
;#13 - Ganon's Tower - Agahnim II ;#13 - Ganon's Tower - Agahnim II
;#0 - Pyramid of Power - Ganon ;#0 - Pyramid of Power - Ganon
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;JSL $06DD40 ; DashKey_Draw ;JSL $86DD40 ; DashKey_Draw
;JSL $06DBF8 ; Sprite_PrepAndDrawSingleLargeLong ;JSL $86DBF8 ; Sprite_PrepAndDrawSingleLargeLong
;JSL $06DC00 ; Sprite_PrepAndDrawSingleSmallLong ; draw first cell correctly ;JSL $86DC00 ; Sprite_PrepAndDrawSingleSmallLong ; draw first cell correctly
;JSL $00D51B ; GetAnimatedSpriteTile ;JSL $80D51B ; GetAnimatedSpriteTile
;JSL $00D52D ; GetAnimatedSpriteTile.variable ;JSL $80D52D ; GetAnimatedSpriteTile.variable
;================================================================================ ;================================================================================

1179
hooks.asm

File diff suppressed because it is too large Load Diff

84
hud.asm
View File

@@ -1,47 +1,47 @@
;org $0DFE97 ; <- 6FE97 - headsup_display.asm:1009 (.hud_tilemap) ;org $0DFE97 ; <- 6FE97 - headsup_display.asm:1009 (.hud_tilemap)
; DO NOT EXCEED 0x150 ; DO NOT EXCEED 0x150
HUD_TileMap: HUD_TileMap:
dw $207F, $207F, $2850, $A856 dw $207F, $207F, $2850, $A856
dw $2852, $285B, $285B, $285C dw $2852, $285B, $285B, $285C
;dw $207F, $3CA8, $207F, $207F, $207F ;dw $207F, $3CA8, $207F, $207F, $207F
dw $207F, $3C02, $3C03, $207F, $207F ; normal mode dw $207F, $3C02, $3C03, $207F, $207F ; normal mode
;dw $3C02, $3C03, $207F, $207F, $207F ; rupee arrows ;dw $3C02, $3C03, $207F, $207F, $207F ; rupee arrows
dw $2C88, $2C89, $207F, $20A7 dw $2C88, $2C89, $207F, $20A7
dw $20A9, $207F, $2871 ;, $207F dw $20A9, $207F, $2871 ;, $207F
dw $207F, $207F, $288B, $288F dw $207F, $207F, $288B, $288F
dw $24AB, $24AC, $688F, $688B dw $24AB, $24AC, $688F, $688B
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $2854, $2871 dw $207F, $207F, $2854, $2871
dw $2858, $207F, $207F, $285D dw $2858, $207F, $207F, $285D
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $2854, $304E dw $207F, $207F, $2854, $304E
dw $2858, $207F, $207F, $285D dw $2858, $207F, $207F, $285D
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $2854, $305E dw $207F, $207F, $2854, $305E
dw $2859, $A85B, $A85B, $A85C dw $2859, $A85B, $A85B, $A85C
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $2854, $305E dw $207F, $207F, $2854, $305E
dw $6854, $207F, $207F, $207F dw $6854, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $207F, $207F dw $207F, $207F, $207F, $207F
dw $207F, $207F, $A850, $2856 dw $207F, $207F, $A850, $2856
dw $E850 dw $E850

View File

@@ -71,7 +71,7 @@ Init_PostRAMClear:
JSL DecompressAllItemGraphics JSL DecompressAllItemGraphics
JML $00D463 ; The original target of the jump table that we hijacked JML $80D463 ; The original target of the jump table that we hijacked
;--------------------------------------------------------------------------------------------------- ;---------------------------------------------------------------------------------------------------

View File

@@ -14,30 +14,30 @@
fillword $0000 ; Zero out the table fillword $0000 ; Zero out the table
fill $500 ; fill $500 ;
org $30B000 ; PC 0x183000 org $B0B000 ; PC 0x183000
InitSRAMTable: InitSRAMTable:
InitRoomDataWRAM: InitRoomDataWRAM:
org $30B060 ; PC 0x183060 org $B0B060 ; PC 0x183060
InitATAltarRoom: dw $0000 ; aga curtains InitATAltarRoom: dw $0000 ; aga curtains
org $30B092 ; PC 0x183092 org $B0B092 ; PC 0x183092
InitSWBackEntryRoom: dw $0000 ; skull woods curtains InitSWBackEntryRoom: dw $0000 ; skull woods curtains
org $30B20C org $B0B20C
dw $F000, $F000 ; Pre-open kak bomb hut & brewery dw $F000, $F000 ; Pre-open kak bomb hut & brewery
org $30B280 ; PC 0x183280 - 0x1832FF org $B0B280 ; PC 0x183280 - 0x1832FF
InitOverworldEvents: InitOverworldEvents:
org $30B282 ; PC 0x183282 - Lumberjacks org $B0B282 ; PC 0x183282 - Lumberjacks
InitLumberjackOW: db $00 InitLumberjackOW: db $00
org $30B29B ; PC 0x18329B - Open castle gate org $B0B29B ; PC 0x18329B - Open castle gate
InitHyruleCastleOW: db $20 InitHyruleCastleOW: db $20
org $30B2DB ; PC 0x1832DB - Pyramid hole org $B0B2DB ; PC 0x1832DB - Pyramid hole
InitPyramidOW: db $00 InitPyramidOW: db $00
org $30B2C3 ; PC 0x1832C3 - GT org $B0B2C3 ; PC 0x1832C3 - GT
InitDDMWestOW: db $00 InitDDMWestOW: db $00
org $30B340 ; PC 0x183340 org $B0B340 ; PC 0x183340
StartingEquipment: StartingEquipment:
StartingBow: skip 1 ; PC 0x183340 StartingBow: skip 1 ; PC 0x183340
StartingBoomerang: skip 1 ; PC 0x183341 StartingBoomerang: skip 1 ; PC 0x183341
@@ -129,13 +129,13 @@ InitDroppedFollowerIndoors: skip 1 ; PC 0x1833D1
InitDroppedFollowerLayer: skip 1 ; PC 0x1833D2 InitDroppedFollowerLayer: skip 1 ; PC 0x1833D2
InitFollowerDropped: skip 1 ; PC 0x1833D3 InitFollowerDropped: skip 1 ; PC 0x1833D3
org $30B3D9 ; PC 0x1833D9 - 0x1833F0 org $B0B3D9 ; PC 0x1833D9 - 0x1833F0
StaticFileName: ; The validity value ($55AA) must be written manually on SRAM init at $7003E1 StaticFileName: ; The validity value ($55AA) must be written manually on SRAM init at $7003E1
dw $0181, $0162, $0168, $018C dw $0181, $0162, $0168, $018C
dw $0166, $014E, $0162, $018C dw $0166, $014E, $0162, $018C
dw $0165, $0162, $0167, $018C dw $0165, $0162, $0167, $018C
org $30B401 ; PC 0x183401 org $B0B401 ; PC 0x183401
InitDeathCounter: InitDeathCounter:
dw $FFFF dw $FFFF
@@ -147,29 +147,29 @@ dw $FFFF
; excluding ~28 bytes (File name, validity value, and checksum.) ; excluding ~28 bytes (File name, validity value, and checksum.)
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $30B414 ; PC 0x183414-0x183416 org $B0B414 ; PC 0x183414-0x183416
InitMapOverlay: dw $0000 InitMapOverlay: dw $0000
org $30B417 ; PC 0x183417 org $B0B417 ; PC 0x183417
InitHighestSword: db $00 InitHighestSword: db $00
org $30B414 ; PC 0x183418-0x183419 org $B0B414 ; PC 0x183418-0x183419
InitGoalCounter: dw $0000 InitGoalCounter: dw $0000
org $30B422 ; PC 0x183422 org $B0B422 ; PC 0x183422
InitHighestShield: db $00 InitHighestShield: db $00
org $30B428 ; PC 0x183428 org $B0B428 ; PC 0x183428
InitMapsCompasses: db $00 InitMapsCompasses: db $00
org $30B429 ; PC 0x183429 org $B0B429 ; PC 0x183429
InitPendantCounter: db $00 InitPendantCounter: db $00
org $30B454 ; PC 0x183454-0x183457 org $B0B454 ; PC 0x183454-0x183457
InitChallengeTimer: dw $0000, $0000 InitChallengeTimer: dw $0000, $0000
org $30B46E ; PC 0x18346E org $B0B46E ; PC 0x18346E
InitHighestMail: db $00 InitHighestMail: db $00
org $30B471 ; PC 0x183471 org $B0B471 ; PC 0x183471
InitCrystalCounter: db $00 InitCrystalCounter: db $00

View File

@@ -1,4 +1,4 @@
org $328000 org $B28000
; You have found ; You have found
; the map of ; the map of
Notice_MapOf: Notice_MapOf:

View File

@@ -14,5 +14,5 @@ MaidenCrystalScript:
LDA.l CrystalsField : AND.b #$7F : CMP.b #$7F : BNE + ; check if we have all crystals LDA.l CrystalsField : AND.b #$7F : CMP.b #$7F : BNE + ; check if we have all crystals
LDA.b #$08 : STA.l MapIcons ; Update the map icon to just be Ganon's Tower LDA.b #$08 : STA.l MapIcons ; Update the map icon to just be Ganon's Tower
+ +
JML.l $1ECF35 ; <- F4F35 - sprite_crystal_maiden.asm : 426 JML.l $9ECF35 ; <- F4F35 - sprite_crystal_maiden.asm : 426
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -103,7 +103,7 @@ Overworld_FinishMirrorWarp:
LDA.w #$0000 : STA.l FadeTimer : STA.l FadeDirection LDA.w #$0000 : STA.l FadeTimer : STA.l FadeDirection
SEP #$20 SEP #$20
JSL $00D7C8 JSL $80D7C8
LDA.b #$80 : STA.b HDMAENQ LDA.b #$80 : STA.b HDMAENQ
LDX.b #$04 ; bunny theme LDX.b #$04 ; bunny theme
@@ -245,10 +245,10 @@ RTL
; ;
; On entry, A = $8A (overworld area being loaded) ; On entry, A = $8A (overworld area being loaded)
Overworld_MosaicDarkWorldChecks: Overworld_MosaicDarkWorldChecks:
CMP.b #$40 : beq .checkCrystals CMP.b #$40 : BEQ .checkCrystals
CMP.b #$42 : beq .checkCrystals CMP.b #$42 : BEQ .checkCrystals
CMP.b #$50 : beq .checkCrystals CMP.b #$50 : BEQ .checkCrystals
CMP.b #$51 : bne .doFade CMP.b #$51 : BNE .doFade
.checkCrystals .checkCrystals
LDA.l CrystalsField : CMP.b #$7F : BEQ .done LDA.l CrystalsField : CMP.b #$7F : BEQ .done

View File

@@ -55,7 +55,7 @@ ItemCheck_TreeKid2:
RTL RTL
ItemCheck_TreeKid3: ItemCheck_TreeKid3:
JSL $0DD030 ; FluteAardvark_Draw - thing we wrote over JSL $8DD030 ; FluteAardvark_Draw - thing we wrote over
LDA.l NpcFlags : AND.b #$08 LDA.l NpcFlags : AND.b #$08
BNE .done BNE .done
@@ -176,7 +176,7 @@ RTL
; Randomize Zora King ; Randomize Zora King
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
LoadZoraKingItemGFX: LoadZoraKingItemGFX:
LDA.l $1DE1C3 ; location randomizer writes zora item to LDA.l $9DE1C3 ; location randomizer writes zora item to
JML.l PrepDynamicTile JML.l PrepDynamicTile
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
JumpToSplashItemTarget: JumpToSplashItemTarget:
@@ -188,17 +188,17 @@ JumpToSplashItemTarget:
; Randomize Catfish ; Randomize Catfish
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
LoadCatfishItemGFX: LoadCatfishItemGFX:
LDA.l $1DE185 ; location randomizer writes catfish item to LDA.l $9DE185 ; location randomizer writes catfish item to
JML PrepDynamicTile JML PrepDynamicTile
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
DrawThrownItem: DrawThrownItem:
LDA.b OverworldIndex : CMP.b #$81 : BNE .catfish LDA.b OverworldIndex : CMP.b #$81 : BNE .catfish
.zora .zora
LDA.b #$01 : STA.l RedrawFlag LDA.b #$01 : STA.l RedrawFlag
LDA.l $1DE1C3 ; location randomizer writes zora item to LDA.l $9DE1C3 ; location randomizer writes zora item to
BRA .draw BRA .draw
.catfish .catfish
LDA.l $1DE185 ; location randomizer writes catfish item to LDA.l $9DE185 ; location randomizer writes catfish item to
.draw .draw
JML DrawDynamicTile JML DrawDynamicTile
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -1,7 +1,7 @@
Module_Password: Module_Password:
LDA.b GameSubMode LDA.b GameSubMode
JSL.l UseImplicitRegIndexedLongJumpTable JSL.l JumpTableLong
dl Password_BeginInit ; 0 dl Password_BeginInit ; 0
dl Password_EndInit ; 1 dl Password_EndInit ; 1

View File

@@ -35,9 +35,8 @@ RTL
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
FixChestCounterForChestGame: FixChestCounterForChestGame:
JSL.l DecrementItemCounter JSL DecrementItemCounter
JSL.l $0DBA71 JML $8DBA71
RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
RNG_Lanmolas1: RNG_Lanmolas1:
LDA.b #$00 : BRA _rng_done LDA.b #$00 : BRA _rng_done
@@ -129,20 +128,20 @@ InitRNGPointerTable:
PLP : PLX PLP : PLX
RTL RTL
.rngDefaults .rngDefaults
dw #$0000 ; 00 = Lanmolas 1 dw $0000 ; 00 = Lanmolas 1
dw #$0040 ; 01 = Moldorm 1 dw $0040 ; 01 = Moldorm 1
dw #$0080 ; 02 = Agahnim 1 dw $0080 ; 02 = Agahnim 1
dw #$00C0 ; 03 = Helmasaur dw $00C0 ; 03 = Helmasaur
dw #$0100 ; 04 = Arrghus dw $0100 ; 04 = Arrghus
dw #$0140 ; 05 = Mothula dw $0140 ; 05 = Mothula
dw #$0180 ; 06 = Kholdstare dw $0180 ; 06 = Kholdstare
dw #$01C0 ; 07 = Vitreous dw $01C0 ; 07 = Vitreous
dw #$0200 ; 08 = Trinexx dw $0200 ; 08 = Trinexx
dw #$0240 ; 09 = Lanmolas 2 dw $0240 ; 09 = Lanmolas 2
dw #$0280 ; 10 = Moldorm 2 dw $0280 ; 10 = Moldorm 2
dw #$02C0 ; 11 = Agahnim 2 dw $02C0 ; 11 = Agahnim 2
dw #$0300 ; 12 = Agahnim 2 Phantoms dw $0300 ; 12 = Agahnim 2 Phantoms
dw #$0340 ; 13 = Ganon dw $0340 ; 13 = Ganon
dw #$0380 ; 14 = Ganon Extra Warp dw $0380 ; 14 = Ganon Extra Warp
dw #$03C0 ; 15 = Standard Escape Enemy Drops dw $03C0 ; 15 = Standard Escape Enemy Drops
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -7,7 +7,7 @@ LoadRoomHook:
LDX.b RoomIndex ; Room ID LDX.b RoomIndex ; Room ID
LDA.l RoomCallbackTable, X LDA.l RoomCallbackTable, X
SEP #$10 ; 8 bit XY SEP #$10 ; 8 bit XY
JSL UseImplicitRegIndexedLongJumpTable JSL JumpTableLong
; Callback routines: ; Callback routines:
dl NoCallback ; 00 dl NoCallback ; 00
dl IcePalaceBombosSE ; 01 dl IcePalaceBombosSE ; 01

View File

@@ -332,7 +332,7 @@ Shopkepeer_CallOriginal:
LDA.b #ShopkeeperJumpTable>>8 : PHA LDA.b #ShopkeeperJumpTable>>8 : PHA
LDA.b #ShopkeeperJumpTable : PHA LDA.b #ShopkeeperJumpTable : PHA
LDA.w SpriteItemType, X LDA.w SpriteItemType, X
JML.l UseImplicitRegIndexedLocalJumpTable JML.l JumpTableLocal
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
Sprite_ShopKeeper: Sprite_ShopKeeper:

View File

@@ -2,23 +2,23 @@ org $008A01 ; 0xA01 - Bank00.asm (LDA.b #$10 : STA $4304 : STA $4314 : STA $4324
LDA.b PlayerSpriteBank LDA.b PlayerSpriteBank
org $1BEDF9 org $1BEDF9
JSL SpriteSwap_Palette_ArmorAndGloves ;4bytes JSL SpriteSwap_Palette_ArmorAndGloves ; 4bytes
RTL ;1byte RTL ; 1byte
NOP #$01 NOP
org $1BEE1B org $1BEE1B
JSL SpriteSwap_Palette_ArmorAndGloves_part_two JSL SpriteSwap_Palette_ArmorAndGloves_part_two
RTL RTL
!BANK_BASE = $29 !BANK_BASE = $A9
org $BF8000 org $BF8000
SwapSpriteIfNecessary: SwapSpriteIfNecessary:
PHP PHP
SEP #$20 ; set 8-bit accumulator SEP #$20 ; set 8-bit accumulator
LDA.l SpriteSwapper : BEQ + : !ADD #!BANK_BASE : CMP.b PlayerSpriteBank : BEQ + LDA.l SpriteSwapper : BEQ + : CLC : ADC.b #!BANK_BASE : CMP.b PlayerSpriteBank : BEQ +
STA.b PlayerSpriteBank STA.b PlayerSpriteBank
STZ.w SkipOAM ; Set Normal Sprite NMI STZ.w SkipOAM ; Set Normal Sprite NMI
JSL.l SpriteSwap_Palette_ArmorAndGloves_part_two JSL.l SpriteSwap_Palette_ArmorAndGloves_part_two
+ +
PLP PLP
@@ -26,57 +26,57 @@ RTL
SpriteSwap_Palette_ArmorAndGloves: SpriteSwap_Palette_ArmorAndGloves:
{ {
;DEDF9 ; DEDF9
LDA.l SpriteSwapper : BNE .continue LDA.l SpriteSwapper : BNE .continue
LDA.b #$10 : STA.b PlayerSpriteBank ; Load Original Sprite Location LDA.b #$10 : STA.b PlayerSpriteBank ; Load Original Sprite Location
REP #$21 REP #$21
LDA.l ArmorEquipment LDA.l ArmorEquipment
JSL $1BEDFF ; Read Original Palette Code JSL $9BEDFF ; Read Original Palette Code
RTL RTL
.part_two .part_two
SEP #$30 SEP #$30
LDA.l SpriteSwapper : BNE .continue LDA.l SpriteSwapper : BNE .continue
REP #$30 REP #$30
LDA.l GloveEquipment LDA.l GloveEquipment
JSL $1BEE21 ; Read Original Palette Code JSL $9BEE21 ; Read Original Palette Code
RTL RTL
.continue .continue
PHX : PHY : PHA PHX : PHY : PHA
; Load armor palette ; Load armor palette
PHB : PHK : PLB PHB : PHK : PLB
REP #$20 ; set 16-bit accumulator REP #$20 ; set 16-bit accumulator
; Check what Link's armor value is. ; Check what Link's armor value is.
LDA.l ArmorEquipment : AND.w #$00FF : TAX LDA.l ArmorEquipment : AND.w #$00FF : TAX
LDA.l $1BEC06, X : AND.w #$00FF : ASL A : ADC.w #$F000 : STA.b Scrap00 LDA.l $9BEC06, X : AND.w #$00FF : ASL A : ADC.w #$F000 : STA.b Scrap00
;replace D308 by 7000 and search ; replace D308 by 7000 and search
REP #$10 ; set 16-bit index registers REP #$10 ; set 16-bit index registers
LDA.w #$01E2 ; Target SP-7 (sprite palette 6) LDA.w #$01E2 ; Target SP-7 (sprite palette 6)
LDX.w #$000E ; Palette has 15 colors LDX.w #$000E ; Palette has 15 colors
TXY : TAX TXY : TAX
LDA.b PlayerSpriteBank : AND.w #$00FF : STA.b Scrap02 LDA.b PlayerSpriteBank : AND.w #$00FF : STA.b Scrap02
.loop .loop
LDA.b [Scrap00] : STA.l PaletteBufferAux, X : STA.l PaletteBuffer, X LDA.b [Scrap00] : STA.l PaletteBufferAux, X : STA.l PaletteBuffer, X
INC.b Scrap00 : INC.b Scrap00
INX #2
DEY : BPL .loop
SEP #$30 INC.b Scrap00 : INC.b Scrap00
INX #2
PLB
INC.b NMICGRAM DEY : BPL .loop
PLA : PLY : PLX
RTL SEP #$30
PLB
INC.b NMICGRAM
PLA : PLY : PLX
RTL
} }

View File

@@ -33,7 +33,7 @@ DecrementSaveCounter:
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
DungeonHoleWarpTransition: DungeonHoleWarpTransition:
LDA.l $01C31F, X LDA.l $81C31F, X
BRA StatTransitionCounter BRA StatTransitionCounter
DungeonHoleEntranceTransition: DungeonHoleEntranceTransition:
JSL EnableForceBlank JSL EnableForceBlank

View File

@@ -5,7 +5,7 @@ lorom
!BLT = "BCC" !BLT = "BCC"
!BGE = "BCS" !BGE = "BCS"
org $238000 org $A38000
incsrc stats/credits.asm incsrc stats/credits.asm
FontGfx: FontGfx:
@@ -41,8 +41,8 @@ PreparePointer:
LDY.w #$0000 LDY.w #$0000
RTL RTL
; Regular stat: XXXX X00L LLLL LLLL BBBB SSSS CCC- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA ; Regular stat: XXXX X00L LLLL LLLL BBBB SSSS CCC- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA
; Time stat: XXXX X01L LLLL LLLL ---- ---- ---- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA ; Time stat: XXXX X01L LLLL LLLL ---- ---- ---- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA
; End of data: 1111 1111 1111 1111 ; End of data: 1111 1111 1111 1111
; X X offset (measured in 8x8 tiles) ; X X offset (measured in 8x8 tiles)
@@ -58,55 +58,55 @@ RTL
; A Memory Address ; A Memory Address
ValueCaps: ValueCaps:
dw 0 dw 0
dw 9 dw 9
dw 99 dw 99
dw 999 dw 999
dw 9999 dw 9999
dw 9999 ; TODO - 5 digits need to be fixed at a later date dw 9999 ; TODO - 5 digits need to be fixed at a later date
BitMasks: BitMasks:
dw $FFFF dw $FFFF
dw $0001 dw $0001
dw $0003 dw $0003
dw $0007 dw $0007
dw $000F dw $000F
dw $001F dw $001F
dw $003F dw $003F
dw $007F dw $007F
dw $00FF dw $00FF
dw $01FF dw $01FF
dw $03FF dw $03FF
dw $07FF dw $07FF
dw $0FFF dw $0FFF
dw $1FFF dw $1FFF
dw $3FFF dw $3FFF
dw $7FFF dw $7FFF
macro StripeStart(xPos, length) macro StripeStart(xPos, length)
LDA.b $C8 LDA.b $C8
CLC CLC
ADC.w #<xPos> ADC.w #<xPos>
XBA XBA
STA.w $1002,x STA.w $1002,x
LDA.w #<length>*2-1 LDA.w #<length>*2-1
XBA XBA
LDA.w #$0500 LDA.w #$0500
STA.w $1004,x STA.w $1004,x
endmacro endmacro
macro StripeTile() macro StripeTile()
STA.w $1006,x STA.w $1006,x
INX INX
INX INX
endmacro endmacro
macro StripeEnd() macro StripeEnd()
INX INX
INX INX
INX INX
INX INX
endmacro endmacro
HexToDecStats: HexToDecStats:
@@ -140,52 +140,52 @@ HexToDecStats:
RTL RTL
LastHexDigit: LastHexDigit:
TYA TYA
AND.w #$000F AND.w #$000F
PHA PHA
TYA TYA
LSR #4 LSR #4
TAY TAY
CLC CLC
LDA.b StatsBottom LDA.b StatsBottom
BNE + BNE +
; Upper half ; Upper half
PLA PLA
ADC #$3D40 ADC #$3D40
RTS RTS
+ ; Lower half + ; Lower half
PLA PLA
ADC #$3D50 ADC #$3D50
RTS RTS
FindLine: FindLine:
LDY.w #$0000 LDY.w #$0000
- LDA.w CreditsStats,y
STZ.b StatsBottom
CMP #$FFFF
BEQ .noLine
XBA
AND.w #$01FF
CMP.b LineNumber
BEQ .lineFound
INC
INC.b StatsBottom
CMP.b LineNumber
BEQ .lineFound
INY #8
BRA -
- LDA.w CreditsStats,y
STZ.b StatsBottom
CMP #$FFFF
BEQ .noLine
XBA
AND.w #$01FF
CMP.b LineNumber
BEQ .lineFound
INC
INC.b StatsBottom
CMP.b LineNumber
BEQ .lineFound
INY #8
BRA -
.lineFound .lineFound
SEC SEC
RTS RTS
.noLine .noLine
CLC CLC
RTS RTS
!FRAMES_PER_SECOND = 60 !FRAMES_PER_SECOND = 60
!FRAMES_PER_MINUTE = 60*60 !FRAMES_PER_MINUTE = 60*60
@@ -193,20 +193,20 @@ FindLine:
!MAX_FRAME_COUNT = 59*60+59*60+59*60+99 !MAX_FRAME_COUNT = 59*60+59*60+59*60+99
macro CountUnits(framesPerUnit, unitCounter) macro CountUnits(framesPerUnit, unitCounter)
STZ.b <unitCounter> STZ.b <unitCounter>
?loop: ?loop:
LDA.b ValueLow LDA.b ValueLow
SEC SEC
SBC.w #<framesPerUnit> SBC.w #<framesPerUnit>
STA.b Temp STA.b Temp
LDA.b ValueHigh LDA.b ValueHigh
SBC.w #<framesPerUnit>>>16 SBC.w #<framesPerUnit>>>16
BCC ?end BCC ?end
STA.b ValueHigh STA.b ValueHigh
LDA.b Temp LDA.b Temp
STA.b ValueLow STA.b ValueLow
INC.b <unitCounter> INC.b <unitCounter>
BRA ?loop BRA ?loop
?end: ?end:
endmacro endmacro
@@ -215,342 +215,342 @@ endmacro
BlankCreditsTile = $883D BlankCreditsTile = $883D
RenderCreditsStatCounter: RenderCreditsStatCounter:
PHB PHB
PHK PHK
PLB PLB
JSR FindLine JSR FindLine
BCS + BCS +
JMP .endStats JMP .endStats
+ +
; XXXX X00L LLLL LLLL BBBB SSSS CCC- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA ; XXXX X00L LLLL LLLL BBBB SSSS CCC- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA
; == Determine stat type == ; == Determine stat type ==
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
LSR LSR
AND.w #$0003 ; TT AND.w #$0003 ; TT
CMP.w #$0000 CMP.w #$0000
BEQ .normalStat BEQ .normalStat
JMP .timeStat JMP .timeStat
.normalStat .normalStat
; == Write Stripe header (VRAM address, i.e. tile coordinates) == ; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
LSR #3 LSR #3
AND.w #$001F ; X XXXX AND.w #$001F ; X XXXX
CLC CLC
ADC.w $C8 ADC.w $C8
XBA XBA
STA.w $1002,x STA.w $1002,x
; == Write Stripe header (Length of data) ==
LDA.w #4*2-1 ; 4 tiles = 8 bytes
XBA
STA.w $1004,x
PHX
; == Load tile base (upper or lower half of white two-line zero) ==
LDA.b StatsBottom
BNE +
LDA.w #$3D40
BRA ++
+ LDA.w #$3D50
++ STA.b Temp
; == Load the actual stat word == ; == Write Stripe header (Length of data) ==
LDA.w CreditsStats+5,y LDA.w #4*2-1 ; 4 tiles = 8 bytes
STA.b StatsPtr XBA
LDA.w CreditsStats+6,y STA.w $1004,x
STA.b StatsPtr+1 PHX
LDA.b [StatsPtr]
STA.b ValueLow ; == Load tile base (upper or lower half of white two-line zero) ==
LDA.b StatsBottom
; == Shift value == BNE +
LDA.w CreditsStats+2,y; CCC- ---- BBBB SSSS LDA.w #$3D40
AND.w #$000F ; SSSS BRA ++
BEQ + + LDA.w #$3D50
TAX ++ STA.b Temp
LDA.b ValueLow
- LSR ; == Load the actual stat word ==
DEX LDA.w CreditsStats+5,y
BNE - STA.b StatsPtr
STA.b ValueLow LDA.w CreditsStats+6,y
+ STA.b StatsPtr+1
; == Mask value == LDA.b [StatsPtr]
LDA.w CreditsStats+2,y; CCC- ---- BBBB SSSS STA.b ValueLow
;LSR #4
;AND.w #$000F ; BBBB ; == Shift value ==
LDA.w CreditsStats+2,y; CCC- ---- BBBB SSSS
AND.w #$000F ; SSSS
BEQ +
TAX
LDA.b ValueLow
- LSR
DEX
BNE -
STA.b ValueLow
+
; == Mask value ==
LDA.w CreditsStats+2,y; CCC- ---- BBBB SSSS
;LSR #4
;AND.w #$000F ; BBBB
LSR #3 LSR #3
AND.w #$001E AND.w #$001E
TAX TAX
LDA.l BitMasks,x LDA.l BitMasks,x
AND.b ValueLow AND.b ValueLow
STA.b ValueLow STA.b ValueLow
; == Cap value == ; == Cap value ==
LDA.w CreditsStats+3,y; ---- ---- CCC- ---- LDA.w CreditsStats+3,y; ---- ---- CCC- ----
LSR #5 LSR #5
AND.w #$0007 ; CCC AND.w #$0007 ; CCC
BEQ + BEQ +
ASL : TAX ASL : TAX
LDA.l ValueCaps,x LDA.l ValueCaps,x
CMP.b ValueLow CMP.b ValueLow
!BGE + !BGE +
STA.b ValueLow STA.b ValueLow
+ +
; == Display value == ; == Display value ==
LDA.b ValueLow LDA.b ValueLow
JSL HexToDecStats JSL HexToDecStats
PLX PLX
STZ.b RemoveZero STZ.b RemoveZero
LDA.l $7F5004 LDA.l $7F5004
AND.w #$00FF AND.w #$00FF
CMP.b RemoveZero CMP.b RemoveZero
BNE + BNE +
LDA.w #BlankCreditsTile LDA.w #BlankCreditsTile
BRA ++ BRA ++
+ DEC.b RemoveZero + DEC.b RemoveZero
CLC CLC
ADC.b Temp ADC.b Temp
++ %StripeTile() ++ %StripeTile()
LDA.l $7F5005 LDA.l $7F5005
AND.w #$00FF AND.w #$00FF
CMP.b RemoveZero CMP.b RemoveZero
BNE + BNE +
LDA.w #BlankCreditsTile LDA.w #BlankCreditsTile
BRA ++ BRA ++
+ DEC.b RemoveZero + DEC.b RemoveZero
CLC CLC
ADC.b Temp ADC.b Temp
++ %StripeTile() ++ %StripeTile()
LDA.l $7F5006 LDA.l $7F5006
AND.w #$00FF AND.w #$00FF
CMP.b RemoveZero CMP.b RemoveZero
BNE + BNE +
LDA.w #BlankCreditsTile LDA.w #BlankCreditsTile
BRA ++ BRA ++
+ DEC.b RemoveZero + DEC.b RemoveZero
CLC CLC
ADC.b Temp ADC.b Temp
++ %StripeTile() ++ %StripeTile()
LDA.l $7F5007 LDA.l $7F5007
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
%StripeEnd() %StripeEnd()
.endStats .endStats
PLB PLB
RTL RTL
.timeStat .timeStat
; Output format: HH:MM:SS.FF ; Output format: HH:MM:SS.FF
; == Write Stripe header (VRAM address, i.e. tile coordinates) == ; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
LSR #3 LSR #3
AND.w #$001F ; X XXXX AND.w #$001F ; X XXXX
CLC CLC
ADC.b $C8 ADC.b $C8
XBA XBA
STA.w $1002,x STA.w $1002,x
; == Write Stripe header (Length of data) == ; == Write Stripe header (Length of data) ==
LDA.w #11*2-1 ; 11 tiles = 22 bytes LDA.w #11*2-1 ; 11 tiles = 22 bytes
XBA XBA
STA.w $1004,x STA.w $1004,x
PHX PHX
; == Load the actual stat words == ; == Load the actual stat words ==
LDA.w CreditsStats+5,y LDA.w CreditsStats+5,y
STA.b StatsPtr STA.b StatsPtr
LDA.w CreditsStats+6,y LDA.w CreditsStats+6,y
STA.b StatsPtr+1 STA.b StatsPtr+1
LDA.b [StatsPtr] LDA.b [StatsPtr]
STA.b ValueLow STA.b ValueLow
INC.b StatsPtr INC.b StatsPtr
INC.b StatsPtr INC.b StatsPtr
LDA.b [StatsPtr] LDA.b [StatsPtr]
STA.b ValueHigh STA.b ValueHigh
CMP.w #!MAX_FRAME_COUNT>>16+1 CMP.w #!MAX_FRAME_COUNT>>16+1
!BGE ++ !BGE ++
; == Convert total frames into hours, minutes, seconds and frames == ; == Convert total frames into hours, minutes, seconds and frames ==
%CountUnits(!FRAMES_PER_HOUR, Hours) %CountUnits(!FRAMES_PER_HOUR, Hours)
%CountUnits(!FRAMES_PER_MINUTE, Minutes) %CountUnits(!FRAMES_PER_MINUTE, Minutes)
%CountUnits(!FRAMES_PER_SECOND, Seconds) %CountUnits(!FRAMES_PER_SECOND, Seconds)
; == Cap at 99:59:59.59 == ; == Cap at 99:59:59.59 ==
LDA.b Hours LDA.b Hours
CMP.w #100 CMP.w #100
!BLT + !BLT +
++ LDA.w #99 ++ LDA.w #99
STA.b Hours STA.b Hours
LDA.w #59 LDA.w #59
STA.b Minutes STA.b Minutes
STA.b Seconds STA.b Seconds
STA.b ValueLow STA.b ValueLow
+ +
; == Load tile base (upper or lower half of white two-line zero) == ; == Load tile base (upper or lower half of white two-line zero) ==
LDA.b StatsBottom LDA.b StatsBottom
BNE + BNE +
LDA.w #$3D40 LDA.w #$3D40
BRA ++ BRA ++
+ LDA.w #$3D50 + LDA.w #$3D50
++ STA.b Temp ++ STA.b Temp
PLX PLX
; == Display value == ; == Display value ==
LDA.b Hours LDA.b Hours
JSL HexToDecStats JSL HexToDecStats
LDA.l $7F5006 LDA.l $7F5006
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.l $7F5007 LDA.l $7F5007
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.w #!ColonOffset LDA.w #!ColonOffset
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.b Minutes LDA.b Minutes
JSL HexToDecStats JSL HexToDecStats
LDA.l $7F5006 LDA.l $7F5006
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.l $7F5007 LDA.l $7F5007
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.w #!ColonOffset LDA.w #!ColonOffset
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.b Seconds LDA.b Seconds
JSL HexToDecStats JSL HexToDecStats
LDA.l $7F5006 LDA.l $7F5006
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.l $7F5007 LDA.l $7F5007
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.w #!PeriodOffset LDA.w #!PeriodOffset
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.b ValueLow LDA.b ValueLow
JSL HexToDecStats JSL HexToDecStats
LDA.l $7F5006 LDA.l $7F5006
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
LDA.l $7F5007 LDA.l $7F5007
AND.w #$00FF AND.w #$00FF
CLC CLC
ADC.b Temp ADC.b Temp
%StripeTile() %StripeTile()
%StripeEnd() %StripeEnd()
JMP .endStats JMP .endStats
RenderLineNumber: RenderLineNumber:
%StripeStart(0, 3) %StripeStart(0, 3)
STZ.b StatsBottom STZ.b StatsBottom
LDA.b $CA LDA.b $CA
TAY TAY
AND.w #$0001 AND.w #$0001
BEQ + BEQ +
DEY DEY
INC.b StatsBottom INC.b StatsBottom
+ +
JSR LastHexDigit JSR LastHexDigit
PHA PHA
JSR LastHexDigit JSR LastHexDigit
PHA PHA
JSR LastHexDigit JSR LastHexDigit
%StripeTile() %StripeTile()
PLA PLA
%StripeTile() %StripeTile()
PLA PLA
%StripeTile() %StripeTile()
%StripeEnd() %StripeEnd()
RTS RTS
LoadModifiedFont: LoadModifiedFont:
; Based on CopyFontToVram(Bank00) ; Based on CopyFontToVram(Bank00)
; copies font graphics to VRAM (for BG3) ; copies font graphics to VRAM (for BG3)
; set name base table to vram $4000 (word) ; set name base table to vram $4000 (word)
LDA.b #$02 : STA.w OBSEL LDA.b #$02 : STA.w OBSEL
; increment on writes to $2119 ; increment on writes to $2119
LDA.b #$80 : STA.w VMAIN LDA.b #$80 : STA.w VMAIN
; set bank of the source address (see below) ; set bank of the source address (see below)
LDA.b #FontGfx>>16 : STA.b Scrap02 LDA.b #FontGfx>>16 : STA.b Scrap02
REP #$30 REP #$30
; vram target address is $7000 (word) ; vram target address is $7000 (word)
LDA.w #$7000 : STA.w VMADDL LDA.w #$7000 : STA.w VMADDL
; $00[3] = $0E8000 (offset for the font data) ; $00[3] = $0E8000 (offset for the font data)
LDA.w #FontGfx : STA.b Scrap00 LDA.w #FontGfx : STA.b Scrap00
; going to write 0x1000 bytes (0x800 words) ; going to write 0x1000 bytes (0x800 words)
LDX.w #FontGfxEnd-FontGfx/2-1 LDX.w #FontGfxEnd-FontGfx/2-1
.nextWord .nextWord
; read a word from the font data ; read a word from the font data
LDA.b [$00] : STA.w VMDATAL LDA.b [$00] : STA.w VMDATAL
; increment source address by 2 ; increment source address by 2
INC.b Scrap00 : INC.b Scrap00 INC.b Scrap00 : INC.b Scrap00
DEX : BPL .nextWord DEX : BPL .nextWord
SEP #$30 SEP #$30
JSL LoadFullItemTilesCredits JSL LoadFullItemTilesCredits
RTL RTL
LoadFullItemTilesCredits: LoadFullItemTilesCredits:
; Based on CopyFontToVram(Bank00) ; Based on CopyFontToVram(Bank00)
@@ -584,17 +584,17 @@ LoadFullItemTilesCredits:
DEX : BPL .nextWord DEX : BPL .nextWord
SEP #$30 SEP #$30
RTL RTL
CheckFontTable: CheckFontTable:
TAY TAY
PHB PHB
PHK PHK
PLB PLB
LDA.w FontTable,Y LDA.w FontTable,Y
PLB PLB
RTL RTL
NearEnding: NearEnding:
STZ.w $012A ; disable triforce helper thread STZ.w $012A ; disable triforce helper thread
@@ -602,7 +602,7 @@ NearEnding:
REP #$10 REP #$10
JSL AltBufferTable_credits JSL AltBufferTable_credits
JSR DrawEndingItems JSR DrawEndingItems
JML.l $00ec03 ; PaletteFilter_InitTheEndSprite JML.l $80EC03 ; PaletteFilter_InitTheEndSprite
EndingItems: EndingItems:
; This function is not strictly needed, simply updating the tracker ; This function is not strictly needed, simply updating the tracker
@@ -621,20 +621,20 @@ DrawEndingItems:
RTS RTS
FontTable: FontTable:
incbin stats/fonttable.bin incbin stats/fonttable.bin
CreditsStats: CreditsStats:
incsrc stats/statConfig.asm incsrc stats/statConfig.asm
dw $FFFF dw $FFFF
org $0eedd9 org $0EEDD9
JSL EndingItems JSL EndingItems
org $0eedaf org $0EEDAF
JSL NearEnding JSL NearEnding
org $0EE651 org $0EE651
JSL LoadModifiedFont JSL LoadModifiedFont
org $0EE828 org $0EE828
JSL PreparePointer JSL PreparePointer
@@ -646,13 +646,13 @@ org $0EE83F
org $0EE853 org $0EE853
LDA.b [CreditsPtr],Y LDA.b [CreditsPtr],Y
NOP NOP
AND.w #$00ff AND.w #$00FF
ASL A ASL A
JSL CheckFontTable JSL CheckFontTable
org $0ee86d org $0EE86D
JSL RenderCreditsStatCounter JSL RenderCreditsStatCounter
JMP.w AfterDeathCounterOutput JMP.w AfterDeathCounterOutput
org $0ee8fd org $8EE8FD
AfterDeathCounterOutput: AfterDeathCounterOutput:

1358
tables.asm

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
RenderCharSetColorExtended_init: RenderCharSetColorExtended_init:
stz.b Scrap0C stz.b Scrap0C
jsl $00d84e jsl $80d84e
rtl rtl
RenderCharSetColorExtended_close: RenderCharSetColorExtended_close:

View File

@@ -1,116 +1,128 @@
;================================================================================ ;===================================================================================================
; Vanilla Labels ; Vanilla Labels
;================================================================================ ;===================================================================================================
; EVERY LABEL SHOULD BE IN A FAST ROM BANK
;===================================================================================================
; Labels for routines in the vanilla portion of the ROM. More or less in sequential ; Labels for routines in the vanilla portion of the ROM. More or less in sequential
; order. Most of these names came from the MoN US disassembly. But we should ; order. Most of these names came from the MoN US disassembly. But we should
; refer to the JP 1.0 disassembly as that's what the randomizer is based on. ; refer to the JP 1.0 disassembly as that's what the randomizer is based on.
; All routines can be assumed to return long unless otherwise noted. ;===================================================================================================
;================================================================================ ;---------------------------------------------------------------------------------------------------
;===================================================================================================
; Long routines (use JSL)
;===================================================================================================
Vram_EraseTilemaps_triforce = $808333
JumpTableLocal = $808781
JumpTableLong = $80879C
Sound_LoadLightWorldSongBank = $808913
Sound_LoadLightWorldSongBank_do_load = $80891D
EnableForceBlank = $80893D
DungeonMask = $8098C0
DecompSwordGfx = $80D308
DecompShieldGfx = $80D348
Tagalong_LoadGfx = $80D463
GetAnimatedSpriteTile = $80D51B
GetAnimatedSpriteTile_variable = $80D52D
Attract_DecompressStoryGfx = $80D84E
LoadSelectScreenGfx = $80E529
PrepDungeonExit = $80F945
Mirror_InitHdmaSettings = $80FDEE
Dungeon_LoadRoom = $81873A
Module_PreDungeon = $82821E
Module_PreDungeon_setAmbientSfx = $828296
Dungeon_SaveRoomData = $82A0A8
Dungeon_SaveRoomData_justKeys = $82A0BE
Dungeon_SaveRoomQuadrantData = $82B861
LoadGearPalettes_bunny = $82FD8A
LoadGearPalettes_variable = $82FD95
Filter_Majorly_Whiten_Color = $82FEAB
Sprite_SpawnFallingItem = $85A51D
Sprite_DrawMultiple = $85DF6C
Sprite_DrawMultiple_quantity_preset = $85DF70
Sprite_DrawMultiple_player_deferred = $85DF75
Sprite_ShowSolicitedMessageIfPlayerFacing = $85E1A7
Sprite_ShowMessageFromPlayerContact = $85E1F0
Sprite_ShowMessageUnconditional = $85E219
Sprite_ZeldaLong = $85EC96
Sprite_EB_HeartPiece_handle_flags = $85F0C0
Player_ApplyRumbleToSprites = $8680FA
Utility_CheckIfHitBoxesOverlapLong = $8683E6
Sprite_PrepAndDrawSingleLargeLong = $86DBF8
Sprite_PrepAndDrawSingleSmallLong = $86DC00
Sprite_DrawShadowLong = $86DC5C
DashKey_Draw = $86DD40
Sprite_ApplySpeedTowardsPlayerLong = $86EA18
Sprite_DirectionToFacePlayerLong = $86EAA6
Sprite_CheckDamageToPlayerSameLayerLong = $86F12F
OAM_AllocateDeferToPlayerLong = $86F86A
Player_HaltDashAttackLong = $8791B3
Link_ReceiveItem = $87999D
Sprite_CheckIfPlayerPreoccupied = $87F4AA
Ancilla_ReceiveItem = $88C3AE
Ancilla_BreakTowerSeal_draw_single_crystal = $88CE93
Ancilla_BreakTowerSeal_stop_spawning_sparkles = $88CEC3
BreakTowerSeal_ExecuteSparkles = $88CF59
Ancilla_SetOam_XY_Long = $88F710
AddReceivedItem = $8985E2
AddPendantOrCrystal = $898BAD
AddWeathervaneExplosion = $898CFD
AddDashTremor = $8993DF
AddAncillaLong = $899D04
Ancilla_CheckIfAlreadyExistsLong = $899D1A
GiveRupeeGift = $89AD58
Sprite_SetSpawnedCoords = $89AE64
OverworldMap_InitGfx = $8ABA4F
OverworldMap_DarkWorldTilemap = $8ABA99
OverworldMap_LoadSprGfx = $8ABAB9
NameFile_MakeScreenVisible = $8CD7D1
InitializeSaveFile = $8CDB3E
InitializeSaveFile_build_checksum = $8CDBC0
GetRandomInt = $8DBA71
OAM_AllocateFromRegionA = $8DBA80
OAM_AllocateFromRegionB = $8DBA84
OAM_AllocateFromRegionC = $8DBA88
OAM_AllocateFromRegionD = $8DBA8C
OAM_AllocateFromRegionE = $8DBA90
OAM_AllocateFromRegionF = $8DBA94
Sound_SetSfxPanWithPlayerCoords = $8DBB67
Sound_SetSfx1PanLong = $8DBB6E
Sound_SetSfx2PanLong = $8DBB7C
Sound_SetSfx3PanLong = $8DBB8A
HUD_RefreshIconLong = $8DDB7F
Equipment_UpdateEquippedItemLong = $8DDD32
BottleMenu_movingOn = $8DE01E
RestoreNormalMenu = $8DE346
Equipment_SearchForEquippedItemLong = $8DE395
HUD_RebuildLong = $8DFA78
HUD_RebuildIndoor_Palace = $8DFA88
HUD_RebuildLong2 = $8DFA88
Messaging_Text = $8EEE10
Overworld_TileAttr = $8FFD94
Overworld_DrawPersistentMap16 = $9BC97C
Palette_Sword = $9BED03
Palette_Shield = $9BED29
Palette_ArmorAndGloves = $9BEDF9
Palette_Hud = $9BEE52
Palette_SelectScreen = $9BEF96
Sprite_NullifyHookshotDrag = $9CF500
Ancilla_CheckForAvailableSlot = $9CF537
ShopKeeper_RapidTerminateReceiveItem = $9CFAAA
Filter_MajorWhitenMain = $9DE9B6
Sprite_SpawnDynamically = $9DF65D
Sprite_SpawnDynamically_arbitrary = $9DF65F
DiggingGameGuy_AttemptPrizeSpawn = $9DFD4B
Sprite_GetEmptyBottleIndex = $9EDE28
Sprite_PlayerCantPassThrough = $9EF4E7
;===================================================================================================
;---------------------------------------------------------------------------------------------------
;===================================================================================================
; Local routines (use JSR)
;===================================================================================================
;---------------------------------------------------------------------------------------------------
;===================================================================================================
Chicken_SpawnAvengerChicken = $86A7DB
DrawProgressIcons = $8DE9C8
DrawEquipment = $8DED29
UseImplicitRegIndexedLocalJumpTable = $008781 ;===================================================================================================
UseImplicitRegIndexedLongJumpTable = $00879C
Vram_EraseTilemaps_triforce = 008333
Sound_LoadLightWorldSongBank = $008913
Sound_LoadLightWorldSongBank_do_load = $00891D
EnableForceBlank = $00893D
DungeonMask = $0098C0
DecompSwordGfx = $00D308
DecompShieldGfx = $00D348
Tagalong_LoadGfx = $00D463
GetAnimatedSpriteTile = $00D51B
GetAnimatedSpriteTile_variable = $00D52D
Attract_DecompressStoryGfx = $00D84E
LoadSelectScreenGfx = $00E529
PrepDungeonExit = $00F945
Mirror_InitHdmaSettings = $00FDEE
Dungeon_LoadRoom = $01873A
Module_PreDungeon = $02821E
Module_PreDungeon_setAmbientSfx = $028296
Dungeon_SaveRoomData = $02A0A8
Dungeon_SaveRoomData_justKeys = $02A0BE
Dungeon_SaveRoomQuadrantData = $02B861
LoadGearPalettes_bunny = $02FD8A
LoadGearPalettes_variable = $02FD95
Filter_Majorly_Whiten_Color = $02FEAB
Sprite_SpawnFallingItem = $05A51D
Sprite_DrawMultiple = $05DF6C
Sprite_DrawMultiple_quantity_preset = $05DF70
Sprite_DrawMultiple_player_deferred = $05DF75
Sprite_ShowSolicitedMessageIfPlayerFacing = $05E1A7
Sprite_ShowMessageFromPlayerContact = $05E1F0
Sprite_ShowMessageUnconditional = $05E219
Sprite_ZeldaLong = $05EC96
Sprite_EB_HeartPiece_handle_flags = $05F0C0
Player_ApplyRumbleToSprites = $0680FA
Utility_CheckIfHitBoxesOverlapLong = $0683E6
Chicken_SpawnAvengerChicken = $06A7DB ; returns short
Sprite_DrawShadowLong = $06DC5C
DashKey_Draw = $06DD40
Sprite_PrepAndDrawSingleLargeLong = $06DBF8
Sprite_PrepAndDrawSingleSmallLong = $06DC00
Sprite_ApplySpeedTowardsPlayerLong = $06EA18
Sprite_DirectionToFacePlayerLong = $06EAA6
Sprite_CheckDamageToPlayerSameLayerLong = $06F12F
OAM_AllocateDeferToPlayerLong = $06F86A
Player_HaltDashAttackLong = $0791B3
Link_ReceiveItem = $07999D
Sprite_CheckIfPlayerPreoccupied = $07F4AA
Ancilla_ReceiveItem = $08C3AE
Ancilla_BreakTowerSeal_draw_single_crystal = $08CE93
Ancilla_BreakTowerSeal_stop_spawning_sparkles = $08CEC3
BreakTowerSeal_ExecuteSparkles = $08CF59
Ancilla_SetOam_XY_Long = $08F710
AddReceivedItem = $0985E2
AddPendantOrCrystal = $098BAD
AddWeathervaneExplosion = $098CFD
AddDashTremor = $0993DF
AddAncillaLong = $099D04
Ancilla_CheckIfAlreadyExistsLong = $099D1A
Sprite_SetSpawnedCoords = $09AE64
GiveRupeeGift = $09AD58
OverworldMap_InitGfx = $0ABA4F
OverworldMap_DarkWorldTilemap = $0ABA99
OverworldMap_LoadSprGfx = $0ABAB9
NameFile_MakeScreenVisible = $0CD7D1
InitializeSaveFile = $0CDB3E
InitializeSaveFile_build_checksum = $0CDBC0
GetRandomInt = $0DBA71
OAM_AllocateFromRegionA = $0DBA80
OAM_AllocateFromRegionB = $0DBA84
OAM_AllocateFromRegionC = $0DBA88
OAM_AllocateFromRegionD = $0DBA8C
OAM_AllocateFromRegionE = $0DBA90
OAM_AllocateFromRegionF = $0DBA94
Sound_SetSfxPanWithPlayerCoords = $0DBB67
Sound_SetSfx1PanLong = $0DBB6E
Sound_SetSfx2PanLong = $0DBB7C
Sound_SetSfx3PanLong = $0DBB8A
HUD_RefreshIconLong = $0DDB7F
Equipment_UpdateEquippedItemLong = $0DDD32
BottleMenu_movingOn = $0DE01E
RestoreNormalMenu = $0DE346
Equipment_SearchForEquippedItemLong = $0DE395
DrawProgressIcons = $0DE9C8 ; this returns short
DrawEquipment = $0DED29 ; this returns short
HUD_RebuildLong = $0DFA78
HUD_RebuildIndoor_Palace = $0DFA88
HUD_RebuildLong2 = $0DFA88
Messaging_Text = $0EEE10
Overworld_TileAttr = $0FFD94
Overworld_DrawPersistentMap16 = $1BC97C
Palette_Sword = $1BED03
Palette_Shield = $1BED29
Palette_ArmorAndGloves = $1BEDF9
Palette_Hud = $1BEE52
Palette_SelectScreen = $1BEF96
ShopKeeper_RapidTerminateReceiveItem = $1CFAAA
Sprite_NullifyHookshotDrag = $1CF500
Ancilla_CheckForAvailableSlot = $1CF537
Filter_MajorWhitenMain = $1DE9B6
Sprite_SpawnDynamically = $1DF65D
Sprite_SpawnDynamically_arbitrary = $1DF65F
DiggingGameGuy_AttemptPrizeSpawn = $1DFD4B
Sprite_GetEmptyBottleIndex = $1EDE28
Sprite_PlayerCantPassThrough = $1EF4E7

View File

@@ -1,15 +0,0 @@
;--------------------------------------------------------------------------------
CheckZSNES:
SEP #$28
LDA.b #$FF
CLC
ADC.b #$FF
CMP.b #$64
CLD
BEQ .zsnes
REP #$20
LDA.w #$01FF : TCS ; thing we wrote over - initialize stack
JML.l ReturnCheckZSNES
.zsnes
JML DontUseZSNES
;--------------------------------------------------------------------------------