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)
|
||||
;db #$23, $4E
|
||||
;db $23, $4E
|
||||
|
||||
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)
|
||||
;db #$55 ; enable S-RTC
|
||||
;db $55 ; enable S-RTC
|
||||
|
||||
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))
|
||||
db #$05 ; mark sram as 32k
|
||||
db $05 ; mark sram as 32k
|
||||
|
||||
org $3FFFFF ; <- 1FFFFF
|
||||
db #$00 ; expand file to 2mb
|
||||
org $BFFFFF ; <- 1FFFFF
|
||||
db $00 ; expand file to 2mb
|
||||
|
||||
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)
|
||||
@@ -57,8 +57,7 @@ incsrc sram.asm
|
||||
incsrc registers.asm
|
||||
incsrc vanillalabels.asm
|
||||
|
||||
;org $208000 ; bank #$20
|
||||
org $A08000 ; bank #$A0
|
||||
org $A08000 ; bank $20
|
||||
incsrc itemdowngrade.asm
|
||||
incsrc bugfixes.asm
|
||||
incsrc darkworldspawn.asm
|
||||
@@ -97,7 +96,7 @@ incsrc roomloading.asm
|
||||
incsrc icepalacegraphics.asm
|
||||
warnpc $A18000
|
||||
|
||||
org $1C8000 ; text tables for translation
|
||||
org $9C8000 ; text tables for translation
|
||||
incbin "data/i18n_en.bin"
|
||||
warnpc $1CF356
|
||||
|
||||
@@ -154,8 +153,9 @@ incsrc darkroomitems.asm
|
||||
incsrc fastcredits.asm
|
||||
incsrc msu.asm
|
||||
incsrc dungeonmap.asm
|
||||
|
||||
if !FEATURE_NEW_TEXT
|
||||
incsrc textrenderer.asm
|
||||
incsrc textrenderer.asm
|
||||
endif
|
||||
warnpc $A58000
|
||||
|
||||
@@ -167,101 +167,102 @@ incsrc utilities.asm
|
||||
org $A38000
|
||||
incsrc stats/main.asm
|
||||
|
||||
org $308000 ; bank #$30
|
||||
org $B08000 ; bank $30
|
||||
incsrc tables.asm
|
||||
|
||||
org $348000
|
||||
org $B48000
|
||||
incsrc spc.asm
|
||||
|
||||
org $318000 ; bank #$31
|
||||
org $B18000 ; bank $31
|
||||
GFX_Mire_Bombos:
|
||||
incbin "data/99ff1_bombos.gfx"
|
||||
warnpc $318800
|
||||
warnpc $B18800
|
||||
|
||||
org $318800
|
||||
org $B18800
|
||||
GFX_Mire_Quake:
|
||||
incbin "data/99ff1_quake.gfx"
|
||||
warnpc $319000
|
||||
warnpc $B19000
|
||||
|
||||
org $319000
|
||||
org $B19000
|
||||
GFX_TRock_Bombos:
|
||||
incbin "data/a6fc4_bombos.gfx"
|
||||
warnpc $319800
|
||||
warnpc $B19800
|
||||
|
||||
org $319800
|
||||
org $B19800
|
||||
GFX_TRock_Ether:
|
||||
incbin "data/a6fc4_ether.gfx"
|
||||
warnpc $31A000
|
||||
warnpc $B1A000
|
||||
|
||||
org $31A000
|
||||
org $B1A000
|
||||
GFX_HUD_Items:
|
||||
incbin "data/c2807_v4.gfx"
|
||||
warnpc $31A800
|
||||
warnpc $B1A800
|
||||
|
||||
org $31A800
|
||||
org $B1A800
|
||||
|
||||
warnpc $31B000
|
||||
warnpc $B1B000
|
||||
|
||||
org $31B000
|
||||
org $B1B000
|
||||
GFX_HUD_Main:
|
||||
incbin "data/c2e3e.gfx"
|
||||
warnpc $31B800
|
||||
warnpc $B1B800
|
||||
|
||||
org $31C000
|
||||
org $B1C000
|
||||
IcePalaceFloorGfx:
|
||||
incbin "data/ice_palace_floor.bin"
|
||||
warnpc $31C801
|
||||
warnpc $B1C801
|
||||
|
||||
org $31C800
|
||||
org $B1C800
|
||||
Damage_Table:
|
||||
incbin "data/damage_table.bin"
|
||||
warnpc $31D001
|
||||
warnpc $B1D001
|
||||
|
||||
org $31D000
|
||||
org $B1D000
|
||||
FileSelectNewGraphics:
|
||||
incbin "data/fileselect.chr.gfx"
|
||||
warnpc $31E001
|
||||
warnpc $B1E001
|
||||
|
||||
org $31E000
|
||||
org $B1E000
|
||||
InvertedCastleHole: ;address used by front end. DO NOT MOVE!
|
||||
incbin "data/sheet73.gfx"
|
||||
warnpc $31E501
|
||||
warnpc $B1E501
|
||||
|
||||
org $338000
|
||||
org $B38000
|
||||
GFX_HUD_Palette:
|
||||
incbin "data/hudpalette.pal"
|
||||
warnpc $338041
|
||||
warnpc $B38041
|
||||
|
||||
org $339000
|
||||
org $B39000
|
||||
ExpandedTrinexx:
|
||||
incbin "data/sheet178.gfx"
|
||||
warnpc $339600
|
||||
warnpc $B39600
|
||||
|
||||
org $339600
|
||||
org $B39600
|
||||
BossMapIconGFX:
|
||||
incbin "data/bossicons.4bpp"
|
||||
|
||||
if !FEATURE_NEW_TEXT
|
||||
org $339C00
|
||||
NewFont:
|
||||
incbin "data/newfont.bin"
|
||||
NewFontInverted:
|
||||
incbin "data/newfont_inverted.bin"
|
||||
org $B39C00
|
||||
NewFont:
|
||||
incbin "data/newfont.bin"
|
||||
NewFontInverted:
|
||||
incbin "data/newfont_inverted.bin"
|
||||
|
||||
org $0CD7DF
|
||||
incbin "data/text_unscramble1.bin"
|
||||
org $0CE4D5
|
||||
incbin "data/text_unscramble2.bin"
|
||||
org $0CD7DF
|
||||
incbin "data/text_unscramble1.bin"
|
||||
org $0CE4D5
|
||||
incbin "data/text_unscramble2.bin"
|
||||
endif
|
||||
|
||||
org $328000
|
||||
org $B28000
|
||||
Extra_Text_Table:
|
||||
incsrc itemtext.asm
|
||||
|
||||
incsrc externalhooks.asm
|
||||
;================================================================================
|
||||
org $119100 ; PC 0x89100
|
||||
org $919100 ; PC 0x89100
|
||||
incbin "data/map_icons.gfx"
|
||||
warnpc $119401
|
||||
warnpc $919401
|
||||
;================================================================================
|
||||
org $AF8000 ; PC 0x178000
|
||||
Static_RNG: ; each line below is 512 bytes of rng
|
||||
|
||||
@@ -153,7 +153,7 @@ RestoreBgEther:
|
||||
INX #2 : CPX.b #$10 : BNE -
|
||||
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:
|
||||
LDA.l DisableFlashing
|
||||
@@ -161,7 +161,7 @@ DDMConditionalLightning:
|
||||
BNE +
|
||||
LDA.w Scrap
|
||||
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
|
||||
-
|
||||
@@ -172,7 +172,7 @@ DDMConditionalLightning:
|
||||
LDA.w $F523, Y : LDA.l PaletteBuffer+$F0, X
|
||||
INY #2
|
||||
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:
|
||||
LDA.l DisableFlashing : REP #$20 : BNE +
|
||||
@@ -222,17 +222,17 @@ LoadElectroPalette:
|
||||
LDA.w #$0404 : STA.b Scrap0E
|
||||
LDA.w #$001B : STA.b Scrap02
|
||||
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
|
||||
JSR ConditionalLoadGearPalette
|
||||
SEP #$10
|
||||
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
|
||||
JSR ConditionalLoadGearPalette
|
||||
SEP #$10
|
||||
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
|
||||
JSR ConditionalLoadGearPalette
|
||||
SEP #$30
|
||||
|
||||
@@ -119,5 +119,5 @@ HandleOneMindController:
|
||||
.no_onemind
|
||||
STZ.b NMIDoneFlag
|
||||
|
||||
JML $008034 ; reset frame loop
|
||||
JML $808034 ; reset frame loop
|
||||
|
||||
|
||||
@@ -255,9 +255,9 @@ endmacro
|
||||
FastSpriteDecomp:
|
||||
SEP #$30
|
||||
|
||||
LDA.l $00CFC0,X : PHA : PLB ; bank
|
||||
LDA.l $00D09F,X : XBA ; high
|
||||
LDA.l $00D17E,X ; low
|
||||
LDA.l $80CFC0,X : PHA : PLB ; bank
|
||||
LDA.l $80D09F,X : XBA ; high
|
||||
LDA.l $80D17E,X ; low
|
||||
|
||||
REP #$10
|
||||
|
||||
@@ -334,7 +334,6 @@ FastSpriteDecomp:
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
AND.b #$E0
|
||||
STA.b DecompTestByte
|
||||
|
||||
LDA.b DecompCommand
|
||||
@@ -395,19 +394,24 @@ FastSpriteDecomp:
|
||||
STY.b DecompSaveY
|
||||
|
||||
LDY.b DecompSize
|
||||
DEY
|
||||
|
||||
.next_word
|
||||
STA.l DecompBuffer2,X
|
||||
|
||||
INX
|
||||
DEY
|
||||
BEQ .done_restore_y
|
||||
|
||||
INX
|
||||
DEY
|
||||
BNE .next_word
|
||||
|
||||
.done_restore_y
|
||||
DEY
|
||||
DEY
|
||||
BPL .next_word
|
||||
|
||||
INY
|
||||
BEQ .not_too_far
|
||||
|
||||
DEX
|
||||
|
||||
.not_too_far
|
||||
SEP #$20
|
||||
|
||||
LDY.b DecompSaveY
|
||||
|
||||
@@ -341,7 +341,7 @@ AgahnimAsksAboutPed:
|
||||
STA.w TextID
|
||||
|
||||
.vanilla
|
||||
JML $05FA8E ; Sprite_ShowMessageMinimal
|
||||
JML $85FA8E ; Sprite_ShowMessageMinimal
|
||||
;--------------------------------------------------------------------------------
|
||||
Main_ShowTextMessage_Alt:
|
||||
; 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
|
||||
; 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
|
||||
|
||||
@@ -490,7 +490,7 @@ Sprite_ShowSolicitedMessageIfPlayerFacing_PreserveMessage:
|
||||
|
||||
; Make sure that the sprite is facing towards the player, otherwise
|
||||
; 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
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
StoreLastOverworldDoorID:
|
||||
TXA : INC
|
||||
STA.l PreviousOverworldDoor
|
||||
LDA.l $1BBB73, X : STA.w EntranceIndex
|
||||
LDA.l $9BBB73, X : STA.w EntranceIndex
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
;--------------------------------------------------------------------------------
|
||||
DropSafeDungeon:
|
||||
LDA.w DungeonID : CMP.b #$08 : BEQ +
|
||||
LDA.l $01C6FC, X : JML Sprite_SpawnFallingItem
|
||||
LDA.l $81C6FC, X : JML Sprite_SpawnFallingItem
|
||||
+
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -2,7 +2,7 @@ NewElderCode:
|
||||
{
|
||||
LDA.b OverworldIndex : CMP.b #$1B : BEQ .newCodeContinue
|
||||
;Restore Jump we can keep the RTL so JML
|
||||
JML $05F0CD
|
||||
JML $85F0CD
|
||||
.newCodeContinue
|
||||
PHB : PHK : PLB
|
||||
LDA.b #$07 : STA.w SpriteOAMProp, X ; Palette
|
||||
|
||||
@@ -29,7 +29,7 @@ LockAgahnimDoors:
|
||||
LDA.w #$0001 : RTL ;Keep the door locked
|
||||
++
|
||||
SEP #$30
|
||||
JSL $099B6F ;Add tower break seal
|
||||
JSL $899B6F ;Add tower break seal
|
||||
REP #$30
|
||||
LDA.w #$0001 ;Prevent door from opening that frame otherwise it glitchy
|
||||
RTL
|
||||
@@ -142,11 +142,11 @@ JML.l AllowStartFromExitReturn
|
||||
|
||||
.doStart
|
||||
|
||||
LDA.l $028481, X ;Module_LocationMenu_starting_points
|
||||
LDA.l $828481, X ;Module_LocationMenu_starting_points
|
||||
ASL : TAX
|
||||
|
||||
LDA.l $02D8D2, X : STA.b RoomIndex
|
||||
LDA.l $02D8D3, X : STA.b RoomIndex+1
|
||||
LDA.l $82D8D2, X : STA.b RoomIndex
|
||||
LDA.l $82D8D3, X : STA.b RoomIndex+1
|
||||
|
||||
; Go to pre-overworld mode
|
||||
LDA.b #$08 : STA.b GameMode
|
||||
@@ -165,9 +165,9 @@ RTL
|
||||
CheckHole:
|
||||
LDX.w #$0024
|
||||
.nextHoleClassic
|
||||
LDA.b Scrap00 : CMP.l $1BB800, X
|
||||
LDA.b Scrap00 : CMP.l $9BB800, X
|
||||
BNE .wrongMap16Classic
|
||||
LDA.b OverworldIndex : CMP.l $1BB826, X
|
||||
LDA.b OverworldIndex : CMP.l $9BB826, X
|
||||
BEQ .matchedHoleClassic
|
||||
.wrongMap16Classic
|
||||
DEX #2 : BPL .nextHoleClassic
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
org $298000 ; 0x148000
|
||||
org $A98000 ; 0x148000
|
||||
Ext_OnFileCreate: ;x
|
||||
RTL : RTL : RTL : RTL : RTL
|
||||
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
|
||||
|
||||
table "data/bsodencode.txt"
|
||||
|
||||
@@ -49,10 +49,10 @@ FastCreditsCutsceneScrollY:
|
||||
|
||||
FastCreditsCutsceneScroll:
|
||||
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
|
||||
LDA.l $0EC348,X ; get movement
|
||||
LDA.l $8EC348,X ; get movement
|
||||
BPL ++ ; if positive, leave saved carry alone
|
||||
INC.b Scrap00 ; otherwise, flip it
|
||||
++ ROR.b Scrap00 ; recover carry
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
; Written over and used by OnEnterWater hook.
|
||||
UnequipCapeQuiet:
|
||||
LDA.b #$20 : STA.w PoofTimer
|
||||
STZ.w NoDamage
|
||||
STZ.b CapeOn
|
||||
STZ.w LinkZap
|
||||
LDA.b #$20 : STA.w PoofTimer
|
||||
STZ.w NoDamage
|
||||
STZ.b CapeOn
|
||||
STZ.w LinkZap
|
||||
RTL
|
||||
|
||||
protectff:
|
||||
@@ -43,7 +43,7 @@ protectff:
|
||||
BMI .special_overworld
|
||||
|
||||
AND.b #$3F
|
||||
CMP.l $02A4E3,X
|
||||
CMP.l $82A4E3,X
|
||||
BEQ ++
|
||||
|
||||
.protect
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
; Frame Hook
|
||||
;--------------------------------------------------------------------------------
|
||||
FrameHookAction:
|
||||
JSL $0080B5 ; Module_MainRouting
|
||||
JSL $8080B5 ; Module_MainRouting
|
||||
JSL CheckMusicLoadRequest
|
||||
PHP : REP #$30 : PHA
|
||||
SEP #$20
|
||||
|
||||
@@ -81,7 +81,7 @@ GetItemDamageValue:
|
||||
CPX.b #$3d : BEQ .hookshot
|
||||
|
||||
.normal
|
||||
LDA.l $0db8f1,x ;what we wrote over
|
||||
LDA.l $8DB8F1,x ;what we wrote over
|
||||
RTL
|
||||
.boomerang
|
||||
LDA.l StunItemAction : AND.b #$01 : BNE .normal
|
||||
|
||||
@@ -55,76 +55,76 @@
|
||||
!FSTILE_Y_TOP = $1D82
|
||||
!FSTILE_Y_BOTTOM = $1D92
|
||||
;--------------------------------------------------------------------------------
|
||||
org $0CDE60 ; <- 65E60
|
||||
org $8CDE60 ; <- 65E60
|
||||
FileSelect_CopyFile_Top:
|
||||
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
|
||||
;--------------------------------------------------------------------------------
|
||||
org $0CDE7A ; <- 65E7A
|
||||
org $8CDE7A ; <- 65E7A
|
||||
FileSelect_CopyFile_Bottom:
|
||||
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
|
||||
;--------------------------------------------------------------------------------
|
||||
org $0CDE94 ; <- 65E94
|
||||
org $8CDE94 ; <- 65E94
|
||||
FileSelect_KillFile_Top:
|
||||
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
|
||||
|
||||
org $0CDEB2 ; <- 65EB2
|
||||
org $8CDEB2 ; <- 65EB2
|
||||
FileSelect_KillFile_Bottom:
|
||||
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
|
||||
|
||||
;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
|
||||
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
|
||||
|
||||
;CopyFile_Which:
|
||||
org $0CE2DB ; <- 662DB
|
||||
org $8CE2DB ; <- 662DB
|
||||
dw $0D80, $0D61, $0D62, $0D4C, $0D61, $0D86, !FSTILE_SPACE
|
||||
org $0CE2ED ; <- 662ED
|
||||
org $8CE2ED ; <- 662ED
|
||||
dw $0D90, $0D71, $0D72, $0D5C, $0D71, $0D96, !FSTILE_SPACE
|
||||
|
||||
;CopyFile_Where:
|
||||
org $0CE39C ; <- 6639C
|
||||
org $8CE39C ; <- 6639C
|
||||
dw $0D80, $0D61, $0D4E, $0D6B, $0D4E, $0D86, !FSTILE_SPACE
|
||||
org $0CE3AE ; <- 663AE
|
||||
org $8CE3AE ; <- 663AE
|
||||
dw $0D90, $0D71, $0D5E, $0D7B, $0D5E, $0D96, !FSTILE_SPACE
|
||||
|
||||
;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
|
||||
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
|
||||
|
||||
;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
|
||||
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
|
||||
|
||||
;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
|
||||
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
|
||||
|
||||
;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
|
||||
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
|
||||
|
||||
;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
|
||||
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
|
||||
|
||||
;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
|
||||
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
|
||||
|
||||
@@ -19,7 +19,7 @@ HeartPieceGet:
|
||||
|
||||
.notHeart
|
||||
.giveItem
|
||||
JSL.l $0791B3 ; Player_HaltDashAttackLong
|
||||
JSL.l $8791B3 ; Player_HaltDashAttackLong
|
||||
STZ.w ItemReceiptMethod ; 0 = Receiving item from an NPC or message
|
||||
|
||||
JSL.l Link_ReceiveItem
|
||||
@@ -155,7 +155,7 @@ LoadHeartPieceRoomValue:
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
HPItemReset:
|
||||
JSL $09AD58 ; GiveRupeeGift - thing we wrote over
|
||||
JSL $89AD58 ; GiveRupeeGift - thing we wrote over
|
||||
PHA : LDA.b #$01 : STA.l RedrawFlag : PLA
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -378,9 +378,9 @@ RTL
|
||||
;#13 - Ganon's Tower - Agahnim II
|
||||
;#0 - Pyramid of Power - Ganon
|
||||
;--------------------------------------------------------------------------------
|
||||
;JSL $06DD40 ; DashKey_Draw
|
||||
;JSL $06DBF8 ; Sprite_PrepAndDrawSingleLargeLong
|
||||
;JSL $06DC00 ; Sprite_PrepAndDrawSingleSmallLong ; draw first cell correctly
|
||||
;JSL $00D51B ; GetAnimatedSpriteTile
|
||||
;JSL $00D52D ; GetAnimatedSpriteTile.variable
|
||||
;JSL $86DD40 ; DashKey_Draw
|
||||
;JSL $86DBF8 ; Sprite_PrepAndDrawSingleLargeLong
|
||||
;JSL $86DC00 ; Sprite_PrepAndDrawSingleSmallLong ; draw first cell correctly
|
||||
;JSL $80D51B ; GetAnimatedSpriteTile
|
||||
;JSL $80D52D ; GetAnimatedSpriteTile.variable
|
||||
;================================================================================
|
||||
|
||||
84
hud.asm
84
hud.asm
@@ -1,47 +1,47 @@
|
||||
;org $0DFE97 ; <- 6FE97 - headsup_display.asm:1009 (.hud_tilemap)
|
||||
; DO NOT EXCEED 0x150
|
||||
HUD_TileMap:
|
||||
dw $207F, $207F, $2850, $A856
|
||||
dw $2852, $285B, $285B, $285C
|
||||
;dw $207F, $3CA8, $207F, $207F, $207F
|
||||
dw $207F, $207F, $2850, $A856
|
||||
dw $2852, $285B, $285B, $285C
|
||||
;dw $207F, $3CA8, $207F, $207F, $207F
|
||||
dw $207F, $3C02, $3C03, $207F, $207F ; normal mode
|
||||
;dw $3C02, $3C03, $207F, $207F, $207F ; rupee arrows
|
||||
dw $2C88, $2C89, $207F, $20A7
|
||||
dw $20A9, $207F, $2871 ;, $207F
|
||||
dw $207F, $207F, $288B, $288F
|
||||
dw $24AB, $24AC, $688F, $688B
|
||||
dw $207F, $207F, $207F, $207F
|
||||
dw $207F, $207F, $2854, $2871
|
||||
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, $2854, $304E
|
||||
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, $2854, $305E
|
||||
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, $2854, $305E
|
||||
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, $A850, $2856
|
||||
dw $E850
|
||||
dw $2C88, $2C89, $207F, $20A7
|
||||
dw $20A9, $207F, $2871 ;, $207F
|
||||
dw $207F, $207F, $288B, $288F
|
||||
dw $24AB, $24AC, $688F, $688B
|
||||
dw $207F, $207F, $207F, $207F
|
||||
dw $207F, $207F, $2854, $2871
|
||||
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, $2854, $304E
|
||||
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, $2854, $305E
|
||||
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, $2854, $305E
|
||||
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, $A850, $2856
|
||||
dw $E850
|
||||
|
||||
2
init.asm
2
init.asm
@@ -71,7 +71,7 @@ Init_PostRAMClear:
|
||||
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
|
||||
fill $500 ;
|
||||
|
||||
org $30B000 ; PC 0x183000
|
||||
org $B0B000 ; PC 0x183000
|
||||
InitSRAMTable:
|
||||
InitRoomDataWRAM:
|
||||
org $30B060 ; PC 0x183060
|
||||
org $B0B060 ; PC 0x183060
|
||||
InitATAltarRoom: dw $0000 ; aga curtains
|
||||
org $30B092 ; PC 0x183092
|
||||
org $B0B092 ; PC 0x183092
|
||||
InitSWBackEntryRoom: dw $0000 ; skull woods curtains
|
||||
|
||||
org $30B20C
|
||||
org $B0B20C
|
||||
dw $F000, $F000 ; Pre-open kak bomb hut & brewery
|
||||
|
||||
org $30B280 ; PC 0x183280 - 0x1832FF
|
||||
org $B0B280 ; PC 0x183280 - 0x1832FF
|
||||
InitOverworldEvents:
|
||||
org $30B282 ; PC 0x183282 - Lumberjacks
|
||||
org $B0B282 ; PC 0x183282 - Lumberjacks
|
||||
InitLumberjackOW: db $00
|
||||
org $30B29B ; PC 0x18329B - Open castle gate
|
||||
org $B0B29B ; PC 0x18329B - Open castle gate
|
||||
InitHyruleCastleOW: db $20
|
||||
org $30B2DB ; PC 0x1832DB - Pyramid hole
|
||||
org $B0B2DB ; PC 0x1832DB - Pyramid hole
|
||||
InitPyramidOW: db $00
|
||||
org $30B2C3 ; PC 0x1832C3 - GT
|
||||
org $B0B2C3 ; PC 0x1832C3 - GT
|
||||
InitDDMWestOW: db $00
|
||||
|
||||
|
||||
org $30B340 ; PC 0x183340
|
||||
org $B0B340 ; PC 0x183340
|
||||
StartingEquipment:
|
||||
StartingBow: skip 1 ; PC 0x183340
|
||||
StartingBoomerang: skip 1 ; PC 0x183341
|
||||
@@ -129,13 +129,13 @@ InitDroppedFollowerIndoors: skip 1 ; PC 0x1833D1
|
||||
InitDroppedFollowerLayer: skip 1 ; PC 0x1833D2
|
||||
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
|
||||
dw $0181, $0162, $0168, $018C
|
||||
dw $0166, $014E, $0162, $018C
|
||||
dw $0165, $0162, $0167, $018C
|
||||
|
||||
org $30B401 ; PC 0x183401
|
||||
org $B0B401 ; PC 0x183401
|
||||
InitDeathCounter:
|
||||
dw $FFFF
|
||||
|
||||
@@ -147,29 +147,29 @@ dw $FFFF
|
||||
; excluding ~28 bytes (File name, validity value, and checksum.)
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
org $30B414 ; PC 0x183414-0x183416
|
||||
org $B0B414 ; PC 0x183414-0x183416
|
||||
InitMapOverlay: dw $0000
|
||||
|
||||
org $30B417 ; PC 0x183417
|
||||
org $B0B417 ; PC 0x183417
|
||||
InitHighestSword: db $00
|
||||
|
||||
org $30B414 ; PC 0x183418-0x183419
|
||||
org $B0B414 ; PC 0x183418-0x183419
|
||||
InitGoalCounter: dw $0000
|
||||
|
||||
org $30B422 ; PC 0x183422
|
||||
org $B0B422 ; PC 0x183422
|
||||
InitHighestShield: db $00
|
||||
|
||||
org $30B428 ; PC 0x183428
|
||||
org $B0B428 ; PC 0x183428
|
||||
InitMapsCompasses: db $00
|
||||
|
||||
org $30B429 ; PC 0x183429
|
||||
org $B0B429 ; PC 0x183429
|
||||
InitPendantCounter: db $00
|
||||
|
||||
org $30B454 ; PC 0x183454-0x183457
|
||||
org $B0B454 ; PC 0x183454-0x183457
|
||||
InitChallengeTimer: dw $0000, $0000
|
||||
|
||||
org $30B46E ; PC 0x18346E
|
||||
org $B0B46E ; PC 0x18346E
|
||||
InitHighestMail: db $00
|
||||
|
||||
org $30B471 ; PC 0x183471
|
||||
org $B0B471 ; PC 0x183471
|
||||
InitCrystalCounter: db $00
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
org $328000
|
||||
org $B28000
|
||||
; You have found
|
||||
; the map of
|
||||
Notice_MapOf:
|
||||
|
||||
@@ -14,5 +14,5 @@ MaidenCrystalScript:
|
||||
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
|
||||
+
|
||||
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
|
||||
|
||||
SEP #$20
|
||||
JSL $00D7C8
|
||||
JSL $80D7C8
|
||||
LDA.b #$80 : STA.b HDMAENQ
|
||||
LDX.b #$04 ; bunny theme
|
||||
|
||||
@@ -245,10 +245,10 @@ RTL
|
||||
;
|
||||
; On entry, A = $8A (overworld area being loaded)
|
||||
Overworld_MosaicDarkWorldChecks:
|
||||
CMP.b #$40 : beq .checkCrystals
|
||||
CMP.b #$42 : beq .checkCrystals
|
||||
CMP.b #$50 : beq .checkCrystals
|
||||
CMP.b #$51 : bne .doFade
|
||||
CMP.b #$40 : BEQ .checkCrystals
|
||||
CMP.b #$42 : BEQ .checkCrystals
|
||||
CMP.b #$50 : BEQ .checkCrystals
|
||||
CMP.b #$51 : BNE .doFade
|
||||
|
||||
.checkCrystals
|
||||
LDA.l CrystalsField : CMP.b #$7F : BEQ .done
|
||||
|
||||
10
npcitems.asm
10
npcitems.asm
@@ -55,7 +55,7 @@ ItemCheck_TreeKid2:
|
||||
RTL
|
||||
|
||||
ItemCheck_TreeKid3:
|
||||
JSL $0DD030 ; FluteAardvark_Draw - thing we wrote over
|
||||
JSL $8DD030 ; FluteAardvark_Draw - thing we wrote over
|
||||
LDA.l NpcFlags : AND.b #$08
|
||||
BNE .done
|
||||
|
||||
@@ -176,7 +176,7 @@ RTL
|
||||
; Randomize Zora King
|
||||
;--------------------------------------------------------------------------------
|
||||
LoadZoraKingItemGFX:
|
||||
LDA.l $1DE1C3 ; location randomizer writes zora item to
|
||||
LDA.l $9DE1C3 ; location randomizer writes zora item to
|
||||
JML.l PrepDynamicTile
|
||||
;--------------------------------------------------------------------------------
|
||||
JumpToSplashItemTarget:
|
||||
@@ -188,17 +188,17 @@ JumpToSplashItemTarget:
|
||||
; Randomize Catfish
|
||||
;--------------------------------------------------------------------------------
|
||||
LoadCatfishItemGFX:
|
||||
LDA.l $1DE185 ; location randomizer writes catfish item to
|
||||
LDA.l $9DE185 ; location randomizer writes catfish item to
|
||||
JML PrepDynamicTile
|
||||
;--------------------------------------------------------------------------------
|
||||
DrawThrownItem:
|
||||
LDA.b OverworldIndex : CMP.b #$81 : BNE .catfish
|
||||
.zora
|
||||
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
|
||||
.catfish
|
||||
LDA.l $1DE185 ; location randomizer writes catfish item to
|
||||
LDA.l $9DE185 ; location randomizer writes catfish item to
|
||||
.draw
|
||||
JML DrawDynamicTile
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Module_Password:
|
||||
LDA.b GameSubMode
|
||||
|
||||
JSL.l UseImplicitRegIndexedLongJumpTable
|
||||
JSL.l JumpTableLong
|
||||
|
||||
dl Password_BeginInit ; 0
|
||||
dl Password_EndInit ; 1
|
||||
|
||||
37
rngfixes.asm
37
rngfixes.asm
@@ -35,9 +35,8 @@ RTL
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
FixChestCounterForChestGame:
|
||||
JSL.l DecrementItemCounter
|
||||
JSL.l $0DBA71
|
||||
RTL
|
||||
JSL DecrementItemCounter
|
||||
JML $8DBA71
|
||||
;--------------------------------------------------------------------------------
|
||||
RNG_Lanmolas1:
|
||||
LDA.b #$00 : BRA _rng_done
|
||||
@@ -129,20 +128,20 @@ InitRNGPointerTable:
|
||||
PLP : PLX
|
||||
RTL
|
||||
.rngDefaults
|
||||
dw #$0000 ; 00 = Lanmolas 1
|
||||
dw #$0040 ; 01 = Moldorm 1
|
||||
dw #$0080 ; 02 = Agahnim 1
|
||||
dw #$00C0 ; 03 = Helmasaur
|
||||
dw #$0100 ; 04 = Arrghus
|
||||
dw #$0140 ; 05 = Mothula
|
||||
dw #$0180 ; 06 = Kholdstare
|
||||
dw #$01C0 ; 07 = Vitreous
|
||||
dw #$0200 ; 08 = Trinexx
|
||||
dw #$0240 ; 09 = Lanmolas 2
|
||||
dw #$0280 ; 10 = Moldorm 2
|
||||
dw #$02C0 ; 11 = Agahnim 2
|
||||
dw #$0300 ; 12 = Agahnim 2 Phantoms
|
||||
dw #$0340 ; 13 = Ganon
|
||||
dw #$0380 ; 14 = Ganon Extra Warp
|
||||
dw #$03C0 ; 15 = Standard Escape Enemy Drops
|
||||
dw $0000 ; 00 = Lanmolas 1
|
||||
dw $0040 ; 01 = Moldorm 1
|
||||
dw $0080 ; 02 = Agahnim 1
|
||||
dw $00C0 ; 03 = Helmasaur
|
||||
dw $0100 ; 04 = Arrghus
|
||||
dw $0140 ; 05 = Mothula
|
||||
dw $0180 ; 06 = Kholdstare
|
||||
dw $01C0 ; 07 = Vitreous
|
||||
dw $0200 ; 08 = Trinexx
|
||||
dw $0240 ; 09 = Lanmolas 2
|
||||
dw $0280 ; 10 = Moldorm 2
|
||||
dw $02C0 ; 11 = Agahnim 2
|
||||
dw $0300 ; 12 = Agahnim 2 Phantoms
|
||||
dw $0340 ; 13 = Ganon
|
||||
dw $0380 ; 14 = Ganon Extra Warp
|
||||
dw $03C0 ; 15 = Standard Escape Enemy Drops
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -7,7 +7,7 @@ LoadRoomHook:
|
||||
LDX.b RoomIndex ; Room ID
|
||||
LDA.l RoomCallbackTable, X
|
||||
SEP #$10 ; 8 bit XY
|
||||
JSL UseImplicitRegIndexedLongJumpTable
|
||||
JSL JumpTableLong
|
||||
; Callback routines:
|
||||
dl NoCallback ; 00
|
||||
dl IcePalaceBombosSE ; 01
|
||||
|
||||
@@ -332,7 +332,7 @@ Shopkepeer_CallOriginal:
|
||||
LDA.b #ShopkeeperJumpTable>>8 : PHA
|
||||
LDA.b #ShopkeeperJumpTable : PHA
|
||||
LDA.w SpriteItemType, X
|
||||
JML.l UseImplicitRegIndexedLocalJumpTable
|
||||
JML.l JumpTableLocal
|
||||
;--------------------------------------------------------------------------------
|
||||
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
|
||||
|
||||
org $1BEDF9
|
||||
JSL SpriteSwap_Palette_ArmorAndGloves ;4bytes
|
||||
RTL ;1byte
|
||||
NOP #$01
|
||||
JSL SpriteSwap_Palette_ArmorAndGloves ; 4bytes
|
||||
RTL ; 1byte
|
||||
NOP
|
||||
|
||||
org $1BEE1B
|
||||
JSL SpriteSwap_Palette_ArmorAndGloves_part_two
|
||||
RTL
|
||||
|
||||
!BANK_BASE = $29
|
||||
!BANK_BASE = $A9
|
||||
|
||||
org $BF8000
|
||||
SwapSpriteIfNecessary:
|
||||
PHP
|
||||
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
|
||||
STZ.w SkipOAM ; Set Normal Sprite NMI
|
||||
STZ.w SkipOAM ; Set Normal Sprite NMI
|
||||
JSL.l SpriteSwap_Palette_ArmorAndGloves_part_two
|
||||
+
|
||||
PLP
|
||||
@@ -26,57 +26,57 @@ RTL
|
||||
|
||||
SpriteSwap_Palette_ArmorAndGloves:
|
||||
{
|
||||
;DEDF9
|
||||
LDA.l SpriteSwapper : BNE .continue
|
||||
LDA.b #$10 : STA.b PlayerSpriteBank ; Load Original Sprite Location
|
||||
REP #$21
|
||||
LDA.l ArmorEquipment
|
||||
JSL $1BEDFF ; Read Original Palette Code
|
||||
RTL
|
||||
.part_two
|
||||
SEP #$30
|
||||
LDA.l SpriteSwapper : BNE .continue
|
||||
REP #$30
|
||||
LDA.l GloveEquipment
|
||||
JSL $1BEE21 ; Read Original Palette Code
|
||||
RTL
|
||||
; DEDF9
|
||||
LDA.l SpriteSwapper : BNE .continue
|
||||
LDA.b #$10 : STA.b PlayerSpriteBank ; Load Original Sprite Location
|
||||
REP #$21
|
||||
LDA.l ArmorEquipment
|
||||
JSL $9BEDFF ; Read Original Palette Code
|
||||
RTL
|
||||
.part_two
|
||||
SEP #$30
|
||||
LDA.l SpriteSwapper : BNE .continue
|
||||
REP #$30
|
||||
LDA.l GloveEquipment
|
||||
JSL $9BEE21 ; Read Original Palette Code
|
||||
RTL
|
||||
|
||||
.continue
|
||||
.continue
|
||||
|
||||
PHX : PHY : PHA
|
||||
; Load armor palette
|
||||
PHB : PHK : PLB
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
|
||||
; Check what Link's armor value is.
|
||||
LDA.l ArmorEquipment : AND.w #$00FF : TAX
|
||||
|
||||
LDA.l $1BEC06, X : AND.w #$00FF : ASL A : ADC.w #$F000 : STA.b Scrap00
|
||||
;replace D308 by 7000 and search
|
||||
REP #$10 ; set 16-bit index registers
|
||||
|
||||
LDA.w #$01E2 ; Target SP-7 (sprite palette 6)
|
||||
LDX.w #$000E ; Palette has 15 colors
|
||||
|
||||
TXY : TAX
|
||||
|
||||
LDA.b PlayerSpriteBank : AND.w #$00FF : STA.b Scrap02
|
||||
PHX : PHY : PHA
|
||||
; Load armor palette
|
||||
PHB : PHK : PLB
|
||||
REP #$20 ; set 16-bit accumulator
|
||||
|
||||
; Check what Link's armor value is.
|
||||
LDA.l ArmorEquipment : AND.w #$00FF : TAX
|
||||
|
||||
LDA.l $9BEC06, X : AND.w #$00FF : ASL A : ADC.w #$F000 : STA.b Scrap00
|
||||
; replace D308 by 7000 and search
|
||||
REP #$10 ; set 16-bit index registers
|
||||
|
||||
LDA.w #$01E2 ; Target SP-7 (sprite palette 6)
|
||||
LDX.w #$000E ; Palette has 15 colors
|
||||
|
||||
TXY : TAX
|
||||
|
||||
LDA.b PlayerSpriteBank : AND.w #$00FF : STA.b Scrap02
|
||||
|
||||
.loop
|
||||
|
||||
LDA.b [Scrap00] : STA.l PaletteBufferAux, X : STA.l PaletteBuffer, X
|
||||
|
||||
INC.b Scrap00 : INC.b Scrap00
|
||||
|
||||
INX #2
|
||||
|
||||
DEY : BPL .loop
|
||||
LDA.b [Scrap00] : STA.l PaletteBufferAux, X : STA.l PaletteBuffer, X
|
||||
|
||||
SEP #$30
|
||||
|
||||
|
||||
PLB
|
||||
INC.b NMICGRAM
|
||||
PLA : PLY : PLX
|
||||
RTL
|
||||
INC.b Scrap00 : INC.b Scrap00
|
||||
|
||||
INX #2
|
||||
|
||||
DEY : BPL .loop
|
||||
|
||||
SEP #$30
|
||||
|
||||
|
||||
PLB
|
||||
INC.b NMICGRAM
|
||||
PLA : PLY : PLX
|
||||
RTL
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ DecrementSaveCounter:
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
DungeonHoleWarpTransition:
|
||||
LDA.l $01C31F, X
|
||||
LDA.l $81C31F, X
|
||||
BRA StatTransitionCounter
|
||||
DungeonHoleEntranceTransition:
|
||||
JSL EnableForceBlank
|
||||
|
||||
890
stats/main.asm
890
stats/main.asm
@@ -5,7 +5,7 @@ lorom
|
||||
!BLT = "BCC"
|
||||
!BGE = "BCS"
|
||||
|
||||
org $238000
|
||||
org $A38000
|
||||
incsrc stats/credits.asm
|
||||
|
||||
FontGfx:
|
||||
@@ -41,8 +41,8 @@ PreparePointer:
|
||||
LDY.w #$0000
|
||||
RTL
|
||||
|
||||
; 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
|
||||
; 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
|
||||
; End of data: 1111 1111 1111 1111
|
||||
|
||||
; X X offset (measured in 8x8 tiles)
|
||||
@@ -58,55 +58,55 @@ RTL
|
||||
; A Memory Address
|
||||
|
||||
ValueCaps:
|
||||
dw 0
|
||||
dw 9
|
||||
dw 99
|
||||
dw 999
|
||||
dw 9999
|
||||
dw 9999 ; TODO - 5 digits need to be fixed at a later date
|
||||
dw 0
|
||||
dw 9
|
||||
dw 99
|
||||
dw 999
|
||||
dw 9999
|
||||
dw 9999 ; TODO - 5 digits need to be fixed at a later date
|
||||
|
||||
BitMasks:
|
||||
dw $FFFF
|
||||
dw $0001
|
||||
dw $0003
|
||||
dw $0007
|
||||
dw $000F
|
||||
dw $001F
|
||||
dw $003F
|
||||
dw $007F
|
||||
dw $00FF
|
||||
dw $01FF
|
||||
dw $03FF
|
||||
dw $07FF
|
||||
dw $0FFF
|
||||
dw $1FFF
|
||||
dw $3FFF
|
||||
dw $7FFF
|
||||
dw $FFFF
|
||||
dw $0001
|
||||
dw $0003
|
||||
dw $0007
|
||||
dw $000F
|
||||
dw $001F
|
||||
dw $003F
|
||||
dw $007F
|
||||
dw $00FF
|
||||
dw $01FF
|
||||
dw $03FF
|
||||
dw $07FF
|
||||
dw $0FFF
|
||||
dw $1FFF
|
||||
dw $3FFF
|
||||
dw $7FFF
|
||||
|
||||
macro StripeStart(xPos, length)
|
||||
LDA.b $C8
|
||||
CLC
|
||||
ADC.w #<xPos>
|
||||
XBA
|
||||
STA.w $1002,x
|
||||
|
||||
LDA.w #<length>*2-1
|
||||
XBA
|
||||
LDA.w #$0500
|
||||
STA.w $1004,x
|
||||
LDA.b $C8
|
||||
CLC
|
||||
ADC.w #<xPos>
|
||||
XBA
|
||||
STA.w $1002,x
|
||||
|
||||
LDA.w #<length>*2-1
|
||||
XBA
|
||||
LDA.w #$0500
|
||||
STA.w $1004,x
|
||||
endmacro
|
||||
|
||||
macro StripeTile()
|
||||
STA.w $1006,x
|
||||
INX
|
||||
INX
|
||||
STA.w $1006,x
|
||||
INX
|
||||
INX
|
||||
endmacro
|
||||
|
||||
macro StripeEnd()
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
INX
|
||||
endmacro
|
||||
|
||||
HexToDecStats:
|
||||
@@ -140,52 +140,52 @@ HexToDecStats:
|
||||
RTL
|
||||
|
||||
LastHexDigit:
|
||||
TYA
|
||||
AND.w #$000F
|
||||
PHA
|
||||
TYA
|
||||
LSR #4
|
||||
TAY
|
||||
CLC
|
||||
LDA.b StatsBottom
|
||||
BNE +
|
||||
; Upper half
|
||||
PLA
|
||||
ADC #$3D40
|
||||
RTS
|
||||
+ ; Lower half
|
||||
PLA
|
||||
ADC #$3D50
|
||||
RTS
|
||||
|
||||
FindLine:
|
||||
LDY.w #$0000
|
||||
TYA
|
||||
AND.w #$000F
|
||||
PHA
|
||||
TYA
|
||||
LSR #4
|
||||
TAY
|
||||
CLC
|
||||
LDA.b StatsBottom
|
||||
BNE +
|
||||
; Upper half
|
||||
PLA
|
||||
ADC #$3D40
|
||||
RTS
|
||||
+ ; Lower half
|
||||
PLA
|
||||
ADC #$3D50
|
||||
RTS
|
||||
|
||||
FindLine:
|
||||
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
|
||||
SEC
|
||||
RTS
|
||||
|
||||
SEC
|
||||
RTS
|
||||
|
||||
.noLine
|
||||
CLC
|
||||
RTS
|
||||
CLC
|
||||
RTS
|
||||
|
||||
!FRAMES_PER_SECOND = 60
|
||||
!FRAMES_PER_MINUTE = 60*60
|
||||
@@ -193,20 +193,20 @@ FindLine:
|
||||
!MAX_FRAME_COUNT = 59*60+59*60+59*60+99
|
||||
|
||||
macro CountUnits(framesPerUnit, unitCounter)
|
||||
STZ.b <unitCounter>
|
||||
STZ.b <unitCounter>
|
||||
?loop:
|
||||
LDA.b ValueLow
|
||||
SEC
|
||||
SBC.w #<framesPerUnit>
|
||||
STA.b Temp
|
||||
LDA.b ValueHigh
|
||||
SBC.w #<framesPerUnit>>>16
|
||||
BCC ?end
|
||||
STA.b ValueHigh
|
||||
LDA.b Temp
|
||||
STA.b ValueLow
|
||||
INC.b <unitCounter>
|
||||
BRA ?loop
|
||||
LDA.b ValueLow
|
||||
SEC
|
||||
SBC.w #<framesPerUnit>
|
||||
STA.b Temp
|
||||
LDA.b ValueHigh
|
||||
SBC.w #<framesPerUnit>>>16
|
||||
BCC ?end
|
||||
STA.b ValueHigh
|
||||
LDA.b Temp
|
||||
STA.b ValueLow
|
||||
INC.b <unitCounter>
|
||||
BRA ?loop
|
||||
?end:
|
||||
endmacro
|
||||
|
||||
@@ -215,342 +215,342 @@ endmacro
|
||||
BlankCreditsTile = $883D
|
||||
|
||||
RenderCreditsStatCounter:
|
||||
PHB
|
||||
PHK
|
||||
PLB
|
||||
|
||||
JSR FindLine
|
||||
BCS +
|
||||
JMP .endStats
|
||||
+
|
||||
|
||||
; XXXX X00L LLLL LLLL BBBB SSSS CCC- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA
|
||||
|
||||
; == Determine stat type ==
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR
|
||||
AND.w #$0003 ; TT
|
||||
CMP.w #$0000
|
||||
BEQ .normalStat
|
||||
JMP .timeStat
|
||||
PHB
|
||||
PHK
|
||||
PLB
|
||||
|
||||
JSR FindLine
|
||||
BCS +
|
||||
JMP .endStats
|
||||
+
|
||||
|
||||
; XXXX X00L LLLL LLLL BBBB SSSS CCC- ---- ---- ---- AAAA AAAA AAAA AAAA AAAA AAAA
|
||||
|
||||
; == Determine stat type ==
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR
|
||||
AND.w #$0003 ; TT
|
||||
CMP.w #$0000
|
||||
BEQ .normalStat
|
||||
JMP .timeStat
|
||||
|
||||
.normalStat
|
||||
; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR #3
|
||||
AND.w #$001F ; X XXXX
|
||||
CLC
|
||||
ADC.w $C8
|
||||
XBA
|
||||
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
|
||||
; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR #3
|
||||
AND.w #$001F ; X XXXX
|
||||
CLC
|
||||
ADC.w $C8
|
||||
XBA
|
||||
STA.w $1002,x
|
||||
|
||||
; == Load the actual stat word ==
|
||||
LDA.w CreditsStats+5,y
|
||||
STA.b StatsPtr
|
||||
LDA.w CreditsStats+6,y
|
||||
STA.b StatsPtr+1
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueLow
|
||||
|
||||
; == 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
|
||||
; == 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 ==
|
||||
LDA.w CreditsStats+5,y
|
||||
STA.b StatsPtr
|
||||
LDA.w CreditsStats+6,y
|
||||
STA.b StatsPtr+1
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueLow
|
||||
|
||||
; == 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
|
||||
AND.w #$001E
|
||||
TAX
|
||||
LDA.l BitMasks,x
|
||||
AND.b ValueLow
|
||||
STA.b ValueLow
|
||||
|
||||
; == Cap value ==
|
||||
LDA.w CreditsStats+3,y; ---- ---- CCC- ----
|
||||
LSR #5
|
||||
AND.w #$0007 ; CCC
|
||||
BEQ +
|
||||
ASL : TAX
|
||||
LDA.l ValueCaps,x
|
||||
CMP.b ValueLow
|
||||
!BGE +
|
||||
STA.b ValueLow
|
||||
+
|
||||
; == Display value ==
|
||||
LDA.b ValueLow
|
||||
JSL HexToDecStats
|
||||
PLX
|
||||
STZ.b RemoveZero
|
||||
|
||||
LDA.l $7F5004
|
||||
AND.w #$00FF
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA.w #BlankCreditsTile
|
||||
BRA ++
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA.l $7F5005
|
||||
AND.w #$00FF
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA.w #BlankCreditsTile
|
||||
BRA ++
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA.w #BlankCreditsTile
|
||||
BRA ++
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
%StripeEnd()
|
||||
TAX
|
||||
LDA.l BitMasks,x
|
||||
AND.b ValueLow
|
||||
STA.b ValueLow
|
||||
|
||||
; == Cap value ==
|
||||
LDA.w CreditsStats+3,y; ---- ---- CCC- ----
|
||||
LSR #5
|
||||
AND.w #$0007 ; CCC
|
||||
BEQ +
|
||||
ASL : TAX
|
||||
LDA.l ValueCaps,x
|
||||
CMP.b ValueLow
|
||||
!BGE +
|
||||
STA.b ValueLow
|
||||
+
|
||||
; == Display value ==
|
||||
LDA.b ValueLow
|
||||
JSL HexToDecStats
|
||||
PLX
|
||||
STZ.b RemoveZero
|
||||
|
||||
LDA.l $7F5004
|
||||
AND.w #$00FF
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA.w #BlankCreditsTile
|
||||
BRA ++
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA.l $7F5005
|
||||
AND.w #$00FF
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA.w #BlankCreditsTile
|
||||
BRA ++
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CMP.b RemoveZero
|
||||
BNE +
|
||||
LDA.w #BlankCreditsTile
|
||||
BRA ++
|
||||
+ DEC.b RemoveZero
|
||||
CLC
|
||||
ADC.b Temp
|
||||
++ %StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
%StripeEnd()
|
||||
.endStats
|
||||
|
||||
PLB
|
||||
RTL
|
||||
|
||||
PLB
|
||||
RTL
|
||||
|
||||
.timeStat
|
||||
; Output format: HH:MM:SS.FF
|
||||
|
||||
; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR #3
|
||||
AND.w #$001F ; X XXXX
|
||||
CLC
|
||||
ADC.b $C8
|
||||
XBA
|
||||
STA.w $1002,x
|
||||
|
||||
; == Write Stripe header (Length of data) ==
|
||||
LDA.w #11*2-1 ; 11 tiles = 22 bytes
|
||||
XBA
|
||||
STA.w $1004,x
|
||||
PHX
|
||||
|
||||
; == Load the actual stat words ==
|
||||
LDA.w CreditsStats+5,y
|
||||
STA.b StatsPtr
|
||||
LDA.w CreditsStats+6,y
|
||||
STA.b StatsPtr+1
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueLow
|
||||
INC.b StatsPtr
|
||||
INC.b StatsPtr
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueHigh
|
||||
|
||||
CMP.w #!MAX_FRAME_COUNT>>16+1
|
||||
!BGE ++
|
||||
|
||||
; == Convert total frames into hours, minutes, seconds and frames ==
|
||||
%CountUnits(!FRAMES_PER_HOUR, Hours)
|
||||
%CountUnits(!FRAMES_PER_MINUTE, Minutes)
|
||||
%CountUnits(!FRAMES_PER_SECOND, Seconds)
|
||||
|
||||
; == Cap at 99:59:59.59 ==
|
||||
LDA.b Hours
|
||||
CMP.w #100
|
||||
!BLT +
|
||||
++ LDA.w #99
|
||||
STA.b Hours
|
||||
LDA.w #59
|
||||
STA.b Minutes
|
||||
STA.b Seconds
|
||||
STA.b ValueLow
|
||||
; Output format: HH:MM:SS.FF
|
||||
|
||||
; == Write Stripe header (VRAM address, i.e. tile coordinates) ==
|
||||
LDA.w CreditsStats,y ; LLLL LLLL XXXX XTTL
|
||||
LSR #3
|
||||
AND.w #$001F ; X XXXX
|
||||
CLC
|
||||
ADC.b $C8
|
||||
XBA
|
||||
STA.w $1002,x
|
||||
|
||||
; == Write Stripe header (Length of data) ==
|
||||
LDA.w #11*2-1 ; 11 tiles = 22 bytes
|
||||
XBA
|
||||
STA.w $1004,x
|
||||
PHX
|
||||
|
||||
; == Load the actual stat words ==
|
||||
LDA.w CreditsStats+5,y
|
||||
STA.b StatsPtr
|
||||
LDA.w CreditsStats+6,y
|
||||
STA.b StatsPtr+1
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueLow
|
||||
INC.b StatsPtr
|
||||
INC.b StatsPtr
|
||||
LDA.b [StatsPtr]
|
||||
STA.b ValueHigh
|
||||
|
||||
CMP.w #!MAX_FRAME_COUNT>>16+1
|
||||
!BGE ++
|
||||
|
||||
; == Convert total frames into hours, minutes, seconds and frames ==
|
||||
%CountUnits(!FRAMES_PER_HOUR, Hours)
|
||||
%CountUnits(!FRAMES_PER_MINUTE, Minutes)
|
||||
%CountUnits(!FRAMES_PER_SECOND, Seconds)
|
||||
|
||||
; == Cap at 99:59:59.59 ==
|
||||
LDA.b Hours
|
||||
CMP.w #100
|
||||
!BLT +
|
||||
++ LDA.w #99
|
||||
STA.b Hours
|
||||
LDA.w #59
|
||||
STA.b Minutes
|
||||
STA.b Seconds
|
||||
STA.b ValueLow
|
||||
+
|
||||
|
||||
; == 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
|
||||
|
||||
PLX
|
||||
|
||||
; == Display value ==
|
||||
LDA.b Hours
|
||||
JSL HexToDecStats
|
||||
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!ColonOffset
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.b Minutes
|
||||
JSL HexToDecStats
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!ColonOffset
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.b Seconds
|
||||
JSL HexToDecStats
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!PeriodOffset
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.b ValueLow
|
||||
JSL HexToDecStats
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
%StripeEnd()
|
||||
JMP .endStats
|
||||
|
||||
|
||||
|
||||
; == 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
|
||||
|
||||
PLX
|
||||
|
||||
; == Display value ==
|
||||
LDA.b Hours
|
||||
JSL HexToDecStats
|
||||
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!ColonOffset
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.b Minutes
|
||||
JSL HexToDecStats
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!ColonOffset
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.b Seconds
|
||||
JSL HexToDecStats
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.w #!PeriodOffset
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.b ValueLow
|
||||
JSL HexToDecStats
|
||||
LDA.l $7F5006
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
LDA.l $7F5007
|
||||
AND.w #$00FF
|
||||
CLC
|
||||
ADC.b Temp
|
||||
%StripeTile()
|
||||
|
||||
%StripeEnd()
|
||||
JMP .endStats
|
||||
|
||||
|
||||
RenderLineNumber:
|
||||
%StripeStart(0, 3)
|
||||
|
||||
STZ.b StatsBottom
|
||||
LDA.b $CA
|
||||
TAY
|
||||
AND.w #$0001
|
||||
BEQ +
|
||||
DEY
|
||||
INC.b StatsBottom
|
||||
+
|
||||
JSR LastHexDigit
|
||||
PHA
|
||||
JSR LastHexDigit
|
||||
PHA
|
||||
JSR LastHexDigit
|
||||
%StripeTile()
|
||||
PLA
|
||||
%StripeTile()
|
||||
PLA
|
||||
%StripeTile()
|
||||
|
||||
%StripeEnd()
|
||||
|
||||
RTS
|
||||
|
||||
%StripeStart(0, 3)
|
||||
|
||||
STZ.b StatsBottom
|
||||
LDA.b $CA
|
||||
TAY
|
||||
AND.w #$0001
|
||||
BEQ +
|
||||
DEY
|
||||
INC.b StatsBottom
|
||||
+
|
||||
JSR LastHexDigit
|
||||
PHA
|
||||
JSR LastHexDigit
|
||||
PHA
|
||||
JSR LastHexDigit
|
||||
%StripeTile()
|
||||
PLA
|
||||
%StripeTile()
|
||||
PLA
|
||||
%StripeTile()
|
||||
|
||||
%StripeEnd()
|
||||
|
||||
RTS
|
||||
|
||||
LoadModifiedFont:
|
||||
; Based on CopyFontToVram(Bank00)
|
||||
; copies font graphics to VRAM (for BG3)
|
||||
|
||||
; set name base table to vram $4000 (word)
|
||||
LDA.b #$02 : STA.w OBSEL
|
||||
|
||||
; increment on writes to $2119
|
||||
LDA.b #$80 : STA.w VMAIN
|
||||
|
||||
; set bank of the source address (see below)
|
||||
LDA.b #FontGfx>>16 : STA.b Scrap02
|
||||
|
||||
REP #$30
|
||||
|
||||
; vram target address is $7000 (word)
|
||||
LDA.w #$7000 : STA.w VMADDL
|
||||
|
||||
; $00[3] = $0E8000 (offset for the font data)
|
||||
LDA.w #FontGfx : STA.b Scrap00
|
||||
|
||||
; going to write 0x1000 bytes (0x800 words)
|
||||
LDX.w #FontGfxEnd-FontGfx/2-1
|
||||
|
||||
; Based on CopyFontToVram(Bank00)
|
||||
; copies font graphics to VRAM (for BG3)
|
||||
|
||||
; set name base table to vram $4000 (word)
|
||||
LDA.b #$02 : STA.w OBSEL
|
||||
|
||||
; increment on writes to $2119
|
||||
LDA.b #$80 : STA.w VMAIN
|
||||
|
||||
; set bank of the source address (see below)
|
||||
LDA.b #FontGfx>>16 : STA.b Scrap02
|
||||
|
||||
REP #$30
|
||||
|
||||
; vram target address is $7000 (word)
|
||||
LDA.w #$7000 : STA.w VMADDL
|
||||
|
||||
; $00[3] = $0E8000 (offset for the font data)
|
||||
LDA.w #FontGfx : STA.b Scrap00
|
||||
|
||||
; going to write 0x1000 bytes (0x800 words)
|
||||
LDX.w #FontGfxEnd-FontGfx/2-1
|
||||
|
||||
.nextWord
|
||||
|
||||
; read a word from the font data
|
||||
LDA.b [$00] : STA.w VMDATAL
|
||||
|
||||
; increment source address by 2
|
||||
INC.b Scrap00 : INC.b Scrap00
|
||||
|
||||
DEX : BPL .nextWord
|
||||
|
||||
SEP #$30
|
||||
; read a word from the font data
|
||||
LDA.b [$00] : STA.w VMDATAL
|
||||
|
||||
; increment source address by 2
|
||||
INC.b Scrap00 : INC.b Scrap00
|
||||
|
||||
DEX : BPL .nextWord
|
||||
|
||||
SEP #$30
|
||||
JSL LoadFullItemTilesCredits
|
||||
|
||||
RTL
|
||||
RTL
|
||||
|
||||
LoadFullItemTilesCredits:
|
||||
; Based on CopyFontToVram(Bank00)
|
||||
@@ -584,17 +584,17 @@ LoadFullItemTilesCredits:
|
||||
DEX : BPL .nextWord
|
||||
|
||||
SEP #$30
|
||||
|
||||
RTL
|
||||
|
||||
|
||||
RTL
|
||||
|
||||
CheckFontTable:
|
||||
TAY
|
||||
PHB
|
||||
PHK
|
||||
PLB
|
||||
LDA.w FontTable,Y
|
||||
PLB
|
||||
RTL
|
||||
TAY
|
||||
PHB
|
||||
PHK
|
||||
PLB
|
||||
LDA.w FontTable,Y
|
||||
PLB
|
||||
RTL
|
||||
|
||||
NearEnding:
|
||||
STZ.w $012A ; disable triforce helper thread
|
||||
@@ -602,7 +602,7 @@ NearEnding:
|
||||
REP #$10
|
||||
JSL AltBufferTable_credits
|
||||
JSR DrawEndingItems
|
||||
JML.l $00ec03 ; PaletteFilter_InitTheEndSprite
|
||||
JML.l $80EC03 ; PaletteFilter_InitTheEndSprite
|
||||
|
||||
EndingItems:
|
||||
; This function is not strictly needed, simply updating the tracker
|
||||
@@ -621,20 +621,20 @@ DrawEndingItems:
|
||||
RTS
|
||||
|
||||
FontTable:
|
||||
incbin stats/fonttable.bin
|
||||
incbin stats/fonttable.bin
|
||||
|
||||
CreditsStats:
|
||||
incsrc stats/statConfig.asm
|
||||
dw $FFFF
|
||||
|
||||
org $0eedd9
|
||||
JSL EndingItems
|
||||
org $0EEDD9
|
||||
JSL EndingItems
|
||||
|
||||
org $0eedaf
|
||||
org $0EEDAF
|
||||
JSL NearEnding
|
||||
|
||||
org $0EE651
|
||||
JSL LoadModifiedFont
|
||||
JSL LoadModifiedFont
|
||||
|
||||
org $0EE828
|
||||
JSL PreparePointer
|
||||
@@ -646,13 +646,13 @@ org $0EE83F
|
||||
org $0EE853
|
||||
LDA.b [CreditsPtr],Y
|
||||
NOP
|
||||
AND.w #$00ff
|
||||
ASL A
|
||||
JSL CheckFontTable
|
||||
|
||||
org $0ee86d
|
||||
JSL RenderCreditsStatCounter
|
||||
JMP.w AfterDeathCounterOutput
|
||||
|
||||
org $0ee8fd
|
||||
AfterDeathCounterOutput:
|
||||
AND.w #$00FF
|
||||
ASL A
|
||||
JSL CheckFontTable
|
||||
|
||||
org $0EE86D
|
||||
JSL RenderCreditsStatCounter
|
||||
JMP.w AfterDeathCounterOutput
|
||||
|
||||
org $8EE8FD
|
||||
AfterDeathCounterOutput:
|
||||
|
||||
1358
tables.asm
1358
tables.asm
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
RenderCharSetColorExtended_init:
|
||||
stz.b Scrap0C
|
||||
jsl $00d84e
|
||||
jsl $80d84e
|
||||
rtl
|
||||
|
||||
RenderCharSetColorExtended_close:
|
||||
|
||||
@@ -1,116 +1,128 @@
|
||||
;================================================================================
|
||||
;===================================================================================================
|
||||
; 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
|
||||
; 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.
|
||||
; 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