fixes
turn a bunch of addresses into fast rom bunch of consistency clean ups in hooks move zsnes to failures
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
15
failure.asm
15
failure.asm
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|||||||
84
hud.asm
84
hud.asm
@@ -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
|
||||||
|
|||||||
2
init.asm
2
init.asm
@@ -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
|
||||||
|
|
||||||
;---------------------------------------------------------------------------------------------------
|
;---------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
org $328000
|
org $B28000
|
||||||
; You have found
|
; You have found
|
||||||
; the map of
|
; the map of
|
||||||
Notice_MapOf:
|
Notice_MapOf:
|
||||||
|
|||||||
@@ -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
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
10
music.asm
10
music.asm
@@ -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
|
||||||
|
|||||||
10
npcitems.asm
10
npcitems.asm
@@ -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
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
37
rngfixes.asm
37
rngfixes.asm
@@ -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
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|
||||||
|
|||||||
106
spriteswap.asm
106
spriteswap.asm
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
890
stats/main.asm
890
stats/main.asm
@@ -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
1358
tables.asm
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
RenderCharSetColorExtended_init:
|
RenderCharSetColorExtended_init:
|
||||||
stz.b Scrap0C
|
stz.b Scrap0C
|
||||||
jsl $00d84e
|
jsl $80d84e
|
||||||
rtl
|
rtl
|
||||||
|
|
||||||
RenderCharSetColorExtended_close:
|
RenderCharSetColorExtended_close:
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|
||||||
|
|||||||
15
zsnes.asm
15
zsnes.asm
@@ -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
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
Reference in New Issue
Block a user