Merged in DR v1.4.5
This commit is contained in:
@@ -57,7 +57,7 @@ GiveBonkItem:
|
|||||||
PHY : LDY.b #$24 : JSL AddInventory : PLY ; do inventory processing for a small key
|
PHY : LDY.b #$24 : JSL AddInventory : PLY ; do inventory processing for a small key
|
||||||
LDA.l CurrentSmallKeys : INC A : STA.l CurrentSmallKeys
|
LDA.l CurrentSmallKeys : INC A : STA.l CurrentSmallKeys
|
||||||
LDA.b #$2F : JSL Sound_SetSfx3PanLong
|
LDA.b #$2F : JSL Sound_SetSfx3PanLong
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
RTL
|
RTL
|
||||||
.notKey
|
.notKey
|
||||||
PHY : TAY : JSL Link_ReceiveItem : PLY
|
PHY : TAY : JSL Link_ReceiveItem : PLY
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
rm ../working.sfc
|
rm ../working.sfc
|
||||||
cp ../alttp.sfc ../working.sfc
|
cp ../alttp.sfc ../working.sfc
|
||||||
./bin/linux/asar LTTP_RND_GeneralBugfixes.asm ../working.sfc
|
./bin/linux/asar -DFEATURE_PATREON_SUPPORTERS=1 LTTP_RND_GeneralBugfixes.asm ../working.sfc
|
||||||
|
|||||||
61
data/textbytecharmap.txt
Normal file
61
data/textbytecharmap.txt
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
'=9D
|
||||||
|
A=AA
|
||||||
|
B=AB
|
||||||
|
C=AC
|
||||||
|
D=AD
|
||||||
|
E=AE
|
||||||
|
F=AF
|
||||||
|
G=B0
|
||||||
|
H=B1
|
||||||
|
I=B2
|
||||||
|
J=B3
|
||||||
|
K=B4
|
||||||
|
L=B5
|
||||||
|
M=B6
|
||||||
|
N=B7
|
||||||
|
O=B8
|
||||||
|
P=B9
|
||||||
|
Q=BA
|
||||||
|
R=BB
|
||||||
|
S=BC
|
||||||
|
T=BD
|
||||||
|
U=BE
|
||||||
|
V=BF
|
||||||
|
W=C0
|
||||||
|
X=C1
|
||||||
|
Y=C2
|
||||||
|
Z=C3
|
||||||
|
?=C6
|
||||||
|
!=C7
|
||||||
|
,=C8
|
||||||
|
-=C9
|
||||||
|
.=CD
|
||||||
|
~=CE
|
||||||
|
a=D0
|
||||||
|
b=D1
|
||||||
|
c=D2
|
||||||
|
d=D3
|
||||||
|
e=D4
|
||||||
|
f=D5
|
||||||
|
g=D6
|
||||||
|
h=D7
|
||||||
|
i=D8
|
||||||
|
j=D9
|
||||||
|
k=DA
|
||||||
|
l=DB
|
||||||
|
m=DC
|
||||||
|
n=DD
|
||||||
|
o=DE
|
||||||
|
p=DF
|
||||||
|
q=E0
|
||||||
|
r=E1
|
||||||
|
s=E2
|
||||||
|
t=E3
|
||||||
|
u=E4
|
||||||
|
v=E5
|
||||||
|
w=E6
|
||||||
|
x=E7
|
||||||
|
y=E8
|
||||||
|
z=E9
|
||||||
|
:=EA
|
||||||
|
=FF
|
||||||
61
data/textwordcharmap.txt
Normal file
61
data/textwordcharmap.txt
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
'=9D00
|
||||||
|
A=AA00
|
||||||
|
B=AB00
|
||||||
|
C=AC00
|
||||||
|
D=AD00
|
||||||
|
E=AE00
|
||||||
|
F=AF00
|
||||||
|
G=B000
|
||||||
|
H=B100
|
||||||
|
I=B200
|
||||||
|
J=B300
|
||||||
|
K=B400
|
||||||
|
L=B500
|
||||||
|
M=B600
|
||||||
|
N=B700
|
||||||
|
O=B800
|
||||||
|
P=B900
|
||||||
|
Q=BA00
|
||||||
|
R=BB00
|
||||||
|
S=BC00
|
||||||
|
T=BD00
|
||||||
|
U=BE00
|
||||||
|
V=BF00
|
||||||
|
W=C000
|
||||||
|
X=C100
|
||||||
|
Y=C200
|
||||||
|
Z=C300
|
||||||
|
?=C600
|
||||||
|
!=C700
|
||||||
|
,=C800
|
||||||
|
-=C900
|
||||||
|
.=CD00
|
||||||
|
~=CE00
|
||||||
|
a=D000
|
||||||
|
b=D100
|
||||||
|
c=D200
|
||||||
|
d=D300
|
||||||
|
e=D400
|
||||||
|
f=D500
|
||||||
|
g=D600
|
||||||
|
h=D700
|
||||||
|
i=D800
|
||||||
|
j=D900
|
||||||
|
k=DA00
|
||||||
|
l=DB00
|
||||||
|
m=DC00
|
||||||
|
n=DD00
|
||||||
|
o=DE00
|
||||||
|
p=DF00
|
||||||
|
q=E000
|
||||||
|
r=E100
|
||||||
|
s=E200
|
||||||
|
t=E300
|
||||||
|
u=E400
|
||||||
|
v=E500
|
||||||
|
w=E600
|
||||||
|
x=E700
|
||||||
|
y=E800
|
||||||
|
z=E900
|
||||||
|
:=EA00
|
||||||
|
=FF00
|
||||||
50
dialog.asm
50
dialog.asm
@@ -61,7 +61,7 @@ LoadDialogAddressIndirect:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
FreeDungeonItemNotice:
|
FreeDungeonItemNotice:
|
||||||
STA.w ScratchBufferV
|
STA.l ScratchBufferV
|
||||||
|
|
||||||
PHA : PHX : PHY
|
PHA : PHX : PHY
|
||||||
PHP
|
PHP
|
||||||
@@ -70,59 +70,59 @@ FreeDungeonItemNotice:
|
|||||||
REP #$10 ; set 16-bit index registers
|
REP #$10 ; set 16-bit index registers
|
||||||
PEI.b (Scrap00)
|
PEI.b (Scrap00)
|
||||||
LDA.b Scrap02 : PHA
|
LDA.b Scrap02 : PHA
|
||||||
LDA.w ScratchBufferNV : PHA
|
LDA.l ScratchBufferNV : PHA
|
||||||
LDA.w ScratchBufferNV+1 : PHA
|
LDA.l ScratchBufferNV+1 : PHA
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
|
|
||||||
LDA.l FreeItemText : BNE + : JMP .skip : +
|
LDA.l FreeItemText : BNE + : JMP .skip : +
|
||||||
|
|
||||||
LDA.b #$00 : STA.w ScratchBufferNV ; initialize scratch
|
LDA.b #$00 : STA.l ScratchBufferNV ; initialize scratch
|
||||||
LDA.l FreeItemText : AND.b #$01 : BEQ + ; show message for general small key
|
LDA.l FreeItemText : AND.b #$01 : BEQ + ; show message for general small key
|
||||||
LDA.w ScratchBufferV : CMP.b #$24 : BNE + ; general small key
|
LDA.l ScratchBufferV : CMP.b #$24 : BNE + ; general small key
|
||||||
%CopyDialog(Notice_SmallKeyOf)
|
%CopyDialog(Notice_SmallKeyOf)
|
||||||
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
||||||
%CopyDialog(Notice_Self)
|
%CopyDialog(Notice_Self)
|
||||||
JMP .done
|
JMP .done
|
||||||
+ : LDA.l FreeItemText : AND.b #$02 : BEQ + ; show message for general compass
|
+ : LDA.l FreeItemText : AND.b #$02 : BEQ + ; show message for general compass
|
||||||
LDA.w ScratchBufferV : CMP.b #$25 : BNE + ; general compass
|
LDA.l ScratchBufferV : CMP.b #$25 : BNE + ; general compass
|
||||||
%CopyDialog(Notice_CompassOf)
|
%CopyDialog(Notice_CompassOf)
|
||||||
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
||||||
%CopyDialog(Notice_Self)
|
%CopyDialog(Notice_Self)
|
||||||
JMP .done
|
JMP .done
|
||||||
+ : LDA.l FreeItemText : AND.b #$04 : BEQ + ; show message for general map
|
+ : LDA.l FreeItemText : AND.b #$04 : BEQ + ; show message for general map
|
||||||
LDA.w ScratchBufferV : CMP.b #$33 : BNE + ; general map
|
LDA.l ScratchBufferV : CMP.b #$33 : BNE + ; general map
|
||||||
%CopyDialog(Notice_MapOf)
|
%CopyDialog(Notice_MapOf)
|
||||||
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
||||||
%CopyDialog(Notice_Self)
|
%CopyDialog(Notice_Self)
|
||||||
JMP .done
|
JMP .done
|
||||||
+ : LDA.l FreeItemText : AND.b #$08 : BEQ + ; show message for general big key
|
+ : LDA.l FreeItemText : AND.b #$08 : BEQ + ; show message for general big key
|
||||||
LDA.w ScratchBufferV : CMP.b #$32 : BNE + ; general big key
|
LDA.l ScratchBufferV : CMP.b #$32 : BNE + ; general big key
|
||||||
%CopyDialog(Notice_BigKeyOf)
|
%CopyDialog(Notice_BigKeyOf)
|
||||||
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
||||||
%CopyDialog(Notice_Self)
|
%CopyDialog(Notice_Self)
|
||||||
JMP .done
|
JMP .done
|
||||||
+
|
+
|
||||||
LDA.l FreeItemText : AND.b #$04 : BEQ + ; show message for dungeon map
|
LDA.l FreeItemText : AND.b #$04 : BEQ + ; show message for dungeon map
|
||||||
LDA.w ScratchBufferV : AND.b #$F0 ; looking at high bits only
|
LDA.l ScratchBufferV : AND.b #$F0 ; looking at high bits only
|
||||||
CMP.b #$70 : BNE + ; map of...
|
CMP.b #$70 : BNE + ; map of...
|
||||||
%CopyDialog(Notice_MapOf)
|
%CopyDialog(Notice_MapOf)
|
||||||
JMP .dungeon
|
JMP .dungeon
|
||||||
+ : LDA.l FreeItemText : AND.b #$02 : BEQ + ; show message for dungeon compass
|
+ : LDA.l FreeItemText : AND.b #$02 : BEQ + ; show message for dungeon compass
|
||||||
LDA.w ScratchBufferV : AND.b #$F0 : CMP.b #$80 : BNE + ; compass of...
|
LDA.l ScratchBufferV : AND.b #$F0 : CMP.b #$80 : BNE + ; compass of...
|
||||||
%CopyDialog(Notice_CompassOf)
|
%CopyDialog(Notice_CompassOf)
|
||||||
JMP .dungeon
|
JMP .dungeon
|
||||||
+ : LDA.l FreeItemText : AND.b #$08 : BEQ + ; show message for dungeon big key
|
+ : LDA.l FreeItemText : AND.b #$08 : BEQ + ; show message for dungeon big key
|
||||||
LDA.w ScratchBufferV : AND.b #$F0 : CMP.b #$90 : BNE + ; big key of...
|
LDA.l ScratchBufferV : AND.b #$F0 : CMP.b #$90 : BNE + ; big key of...
|
||||||
%CopyDialog(Notice_BigKeyOf)
|
%CopyDialog(Notice_BigKeyOf)
|
||||||
JMP .dungeon
|
JMP .dungeon
|
||||||
+ : LDA.l FreeItemText : AND.b #$01 : BEQ + ; show message for dungeon small key
|
+ : LDA.l FreeItemText : AND.b #$01 : BEQ + ; show message for dungeon small key
|
||||||
LDA.w ScratchBufferV : AND.b #$F0 : CMP.b #$A0 : BNE + ; small key of...
|
LDA.l ScratchBufferV : AND.b #$F0 : CMP.b #$A0 : BNE + ; small key of...
|
||||||
LDA.w ScratchBufferV : CMP.b #$AF : BNE ++ : JMP .skip : ++
|
LDA.l ScratchBufferV : CMP.b #$AF : BNE ++ : JMP .skip : ++
|
||||||
%CopyDialog(Notice_SmallKeyOf)
|
%CopyDialog(Notice_SmallKeyOf)
|
||||||
LDA.b #$01 : STA.w ScratchBufferNV ; set up a flip for small keys
|
LDA.b #$01 : STA.l ScratchBufferNV ; set up a flip for small keys
|
||||||
BRA .dungeon
|
BRA .dungeon
|
||||||
+ : LDA.l FreeItemText : AND.b #$20 : BEQ + ; show message for crystal
|
+ : LDA.l FreeItemText : AND.b #$20 : BEQ + ; show message for crystal
|
||||||
LDA.w ScratchBufferV : CMP.b #$B0 : !BLT + ; crystal #
|
LDA.l ScratchBufferV : CMP.b #$B0 : !BLT + ; crystal #
|
||||||
CMP.b #$B7 : !BGE +
|
CMP.b #$B7 : !BGE +
|
||||||
%CopyDialog(Notice_Crystal)
|
%CopyDialog(Notice_Crystal)
|
||||||
JMP .crystal
|
JMP .crystal
|
||||||
@@ -131,14 +131,14 @@ FreeDungeonItemNotice:
|
|||||||
|
|
||||||
.dungeon
|
.dungeon
|
||||||
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
||||||
LDA.w ScratchBufferV
|
LDA.l ScratchBufferV
|
||||||
AND.b #$0F
|
AND.b #$0F
|
||||||
STA.w ScratchBufferNV+1
|
STA.l ScratchBufferNV+1
|
||||||
LDA.w ScratchBufferNV : BEQ +
|
LDA.l ScratchBufferNV : BEQ +
|
||||||
LDA.w ScratchBufferNV
|
LDA.l ScratchBufferNV
|
||||||
LDA.b #$0F : !SUB.w ScratchBufferNV+1 : STA.w ScratchBufferNV+1 ; flip the values for small keys
|
LDA.b #$0F : !SUB.l ScratchBufferNV+1 : STA.l ScratchBufferNV+1 ; flip the values for small keys
|
||||||
+
|
+
|
||||||
LDA.w ScratchBufferNV+1
|
LDA.l ScratchBufferNV+1
|
||||||
ASL : TAX
|
ASL : TAX
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.l DungeonItemIDMap,X : CMP.w #$0003 : BCC .hc_sewers
|
LDA.l DungeonItemIDMap,X : CMP.w #$0003 : BCC .hc_sewers
|
||||||
@@ -152,7 +152,7 @@ FreeDungeonItemNotice:
|
|||||||
JMP .done
|
JMP .done
|
||||||
+
|
+
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.w ScratchBufferNV+1
|
LDA.l ScratchBufferNV+1
|
||||||
CMP.b #$00 : BNE + ; ...light world
|
CMP.b #$00 : BNE + ; ...light world
|
||||||
%CopyDialog(Notice_LightWorld) : JMP .done
|
%CopyDialog(Notice_LightWorld) : JMP .done
|
||||||
+ : CMP.b #$01 : BNE + ; ...dark world
|
+ : CMP.b #$01 : BNE + ; ...dark world
|
||||||
@@ -190,7 +190,7 @@ FreeDungeonItemNotice:
|
|||||||
|
|
||||||
.crystal
|
.crystal
|
||||||
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
||||||
LDA.w ScratchBufferV
|
LDA.l ScratchBufferV
|
||||||
AND.b #$0F ; looking at low bits only
|
AND.b #$0F ; looking at low bits only
|
||||||
CMP.b #$00 : BNE +
|
CMP.b #$00 : BNE +
|
||||||
%CopyDialog(Notice_Six) : JMP .done
|
%CopyDialog(Notice_Six) : JMP .done
|
||||||
@@ -216,8 +216,8 @@ FreeDungeonItemNotice:
|
|||||||
|
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
.skip
|
.skip
|
||||||
PLA : STA.w ScratchBufferNV+1
|
PLA : STA.l ScratchBufferNV+1
|
||||||
PLA : STA.w ScratchBufferNV
|
PLA : STA.l ScratchBufferNV
|
||||||
PLA : STA.b Scrap02
|
PLA : STA.b Scrap02
|
||||||
REP #$20
|
REP #$20
|
||||||
PLA : STA.b Scrap00
|
PLA : STA.b Scrap00
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ SpawnDungeonPrize:
|
|||||||
PHX : PHB
|
PHX : PHB
|
||||||
STA.w ItemReceiptID
|
STA.w ItemReceiptID
|
||||||
TAX
|
TAX
|
||||||
|
LDA.b $06,S : STA.b ScrapBuffer72 ; Store current RoomTag index
|
||||||
LDA.b #$29 : LDY.b #$06
|
LDA.b #$29 : LDY.b #$06
|
||||||
|
|
||||||
JSL AddAncillaLong
|
JSL AddAncillaLong
|
||||||
@@ -12,6 +13,7 @@ SpawnDungeonPrize:
|
|||||||
LDA.w ItemReceiptID
|
LDA.w ItemReceiptID
|
||||||
STA.w AncillaGet,X
|
STA.w AncillaGet,X
|
||||||
JSR AddDungeonPrizeAncilla
|
JSR AddDungeonPrizeAncilla
|
||||||
|
LDX.b ScrapBuffer72 : STZ.b RoomTag,X
|
||||||
.failed_spawn
|
.failed_spawn
|
||||||
PLB : PLX
|
PLB : PLX
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ JML AllowStartFromExitReturn
|
|||||||
STZ.b SubSubModule
|
STZ.b SubSubModule
|
||||||
STZ.w DeathReloadFlag
|
STZ.w DeathReloadFlag
|
||||||
STZ.w RespawnFlag
|
STZ.w RespawnFlag
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
|
|
||||||
JSL Equipment_SearchForEquippedItemLong
|
JSL Equipment_SearchForEquippedItemLong
|
||||||
JSL HUD_RebuildIndoor_Palace
|
JSL HUD_RebuildIndoor_Palace
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ JML ReturnFromOnDrawHud
|
|||||||
OnDungeonEntrance:
|
OnDungeonEntrance:
|
||||||
STA.l PegColor ; thing we wrote over
|
STA.l PegColor ; thing we wrote over
|
||||||
JSL MaybeFlagDungeonTotalsEntrance
|
JSL MaybeFlagDungeonTotalsEntrance
|
||||||
INC.w UpdateHUDFlag
|
LDA.w #$0001 : STA.l UpdateHUDFlag
|
||||||
SEP #$30
|
SEP #$30
|
||||||
JSL DynamicDropGFXClear
|
JSL DynamicDropGFXClear
|
||||||
REP #$30
|
REP #$30
|
||||||
@@ -54,7 +54,7 @@ OnDungeonExit:
|
|||||||
STA.w DungeonID : STZ.w Map16ChangeIndex ; thing we wrote over
|
STA.w DungeonID : STZ.w Map16ChangeIndex ; thing we wrote over
|
||||||
|
|
||||||
PHA : PHP
|
PHA : PHP
|
||||||
INC.w UpdateHUDFlag
|
LDA.w #$0001 : STA.l UpdateHUDFlag
|
||||||
JSL HUD_RebuildLong
|
JSL HUD_RebuildLong
|
||||||
JSL FloodGateResetInner
|
JSL FloodGateResetInner
|
||||||
JSL SetSilverBowMode
|
JSL SetSilverBowMode
|
||||||
@@ -238,7 +238,7 @@ OnOWTransition:
|
|||||||
PHP
|
PHP
|
||||||
SEP #$20 ; set 8-bit accumulator
|
SEP #$20 ; set 8-bit accumulator
|
||||||
LDA.b #$FF : STA.l RNGLockIn ; clear lock-in
|
LDA.b #$FF : STA.l RNGLockIn ; clear lock-in
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
PLP
|
PLP
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -299,7 +299,13 @@ DrawPlayerFileShared:
|
|||||||
%fs_drawItemBasic(EquipmentSRAM+$12,9,18,FileSelectItems_cape)
|
%fs_drawItemBasic(EquipmentSRAM+$12,9,18,FileSelectItems_cape)
|
||||||
|
|
||||||
; Mirror
|
; Mirror
|
||||||
%fs_drawItemBasic(EquipmentSRAM+$13,9,20,FileSelectItems_mirror)
|
LDA.l EquipmentSRAM+$13 : AND.w #$00FF : BEQ +
|
||||||
|
CMP.w #$0001 : BNE +
|
||||||
|
%fs_drawItem(9,20,FileSelectItems_mirrorScroll)
|
||||||
|
BRA ++
|
||||||
|
+
|
||||||
|
%fs_drawItemBasic(EquipmentSRAM+$13,9,20,FileSelectItems_mirror)
|
||||||
|
++
|
||||||
|
|
||||||
; Bottles
|
; Bottles
|
||||||
%fs_drawBottle(EquipmentSRAM+$1C,3,23)
|
%fs_drawBottle(EquipmentSRAM+$1C,3,23)
|
||||||
@@ -390,7 +396,13 @@ DrawPlayerFileShared:
|
|||||||
LDA.l HexToDecDigit5 : AND.w #$00FF : ORA.w #!FS_COLOR_BW|$02E0 : %fs_draw8x8(11,27)
|
LDA.l HexToDecDigit5 : AND.w #$00FF : ORA.w #!FS_COLOR_BW|$02E0 : %fs_draw8x8(11,27)
|
||||||
|
|
||||||
; Boots
|
; Boots
|
||||||
%fs_drawItemBasic(EquipmentSRAM+$15,3,28,FileSelectItems_boots)
|
LDA.l EquipmentSRAM+$15 : AND.w #$00FF : BNE +
|
||||||
|
LDA.l FakeBoots : AND.w #$00FF : BEQ +
|
||||||
|
%fs_drawItem(3,28,FileSelectItems_fakeBoots)
|
||||||
|
BRA ++
|
||||||
|
+
|
||||||
|
%fs_drawItemBasic(EquipmentSRAM+$15,3,28,FileSelectItems_boots)
|
||||||
|
++
|
||||||
|
|
||||||
; Gloves
|
; Gloves
|
||||||
LDA.l EquipmentSRAM+$14 : AND.w #$00FF : BNE +
|
LDA.l EquipmentSRAM+$14 : AND.w #$00FF : BNE +
|
||||||
@@ -537,12 +549,16 @@ FileSelectItems:
|
|||||||
dw #$0288|!FS_COLOR_RED, #$0289|!FS_COLOR_RED, #$0298|!FS_COLOR_RED, #$0299|!FS_COLOR_RED
|
dw #$0288|!FS_COLOR_RED, #$0289|!FS_COLOR_RED, #$0298|!FS_COLOR_RED, #$0299|!FS_COLOR_RED
|
||||||
.mirror
|
.mirror
|
||||||
dw #$028A|!FS_COLOR_BLUE, #$028B|!FS_COLOR_BLUE, #$029A|!FS_COLOR_BLUE, #$029B|!FS_COLOR_BLUE
|
dw #$028A|!FS_COLOR_BLUE, #$028B|!FS_COLOR_BLUE, #$029A|!FS_COLOR_BLUE, #$029B|!FS_COLOR_BLUE
|
||||||
|
.mirrorScroll
|
||||||
|
dw #$02C2|!FS_COLOR_YELLOW, #$02C3|!FS_COLOR_YELLOW, #$02D2|!FS_COLOR_YELLOW, #$02d3|!FS_COLOR_YELLOW
|
||||||
|
|
||||||
.flippers
|
.flippers
|
||||||
dw #$024E|!FS_COLOR_BLUE, #$024F|!FS_COLOR_BLUE, #$025F|!FS_COLOR_BLUE|!FS_HFLIP, #$025F|!FS_COLOR_BLUE
|
dw #$024E|!FS_COLOR_BLUE, #$024F|!FS_COLOR_BLUE, #$025F|!FS_COLOR_BLUE|!FS_HFLIP, #$025F|!FS_COLOR_BLUE
|
||||||
|
|
||||||
.boots
|
.boots
|
||||||
dw #$028C|!FS_COLOR_BOOTS, #$028D|!FS_COLOR_BOOTS, #$029C|!FS_COLOR_BOOTS, #$029D|!FS_COLOR_BOOTS
|
dw #$028C|!FS_COLOR_BOOTS, #$028D|!FS_COLOR_BOOTS, #$029C|!FS_COLOR_BOOTS, #$029D|!FS_COLOR_BOOTS
|
||||||
|
.fakeBoots
|
||||||
|
dw #$028C|!FS_COLOR_BLUE, #$028D|!FS_COLOR_BLUE, #$029C|!FS_COLOR_BLUE, #$029D|!FS_COLOR_BLUE
|
||||||
|
|
||||||
.pearl
|
.pearl
|
||||||
dw #$02A4|!FS_COLOR_RED, #$02A5|!FS_COLOR_RED, #$02B4|!FS_COLOR_RED, #$02B5|!FS_COLOR_RED
|
dw #$02A4|!FS_COLOR_RED, #$02A5|!FS_COLOR_RED, #$02B4|!FS_COLOR_RED, #$02B5|!FS_COLOR_RED
|
||||||
|
|||||||
10
hooks.asm
10
hooks.asm
@@ -757,11 +757,17 @@ org $8DE7B9 ; <- 6E7B9 - equipment.asm : 1548 (LDA.w #$16D0 : STA $00)
|
|||||||
JSL DrawGlovesInMenuLocation : NOP
|
JSL DrawGlovesInMenuLocation : NOP
|
||||||
org $8DE7CF ; <- 6E7CF - equipment.asm : 1554 (LDA.w #$16C8 : STA $00)
|
org $8DE7CF ; <- 6E7CF - equipment.asm : 1554 (LDA.w #$16C8 : STA $00)
|
||||||
JSL DrawBootsInMenuLocation : NOP
|
JSL DrawBootsInMenuLocation : NOP
|
||||||
|
org $8DE7DD
|
||||||
|
JSL ChangeBootsColorForFakeBoots : NOP
|
||||||
org $8DE7E5 ; <- 6E7E5 - equipment.asm : 1560 (LDA.w #$16D8 : STA $00)
|
org $8DE7E5 ; <- 6E7E5 - equipment.asm : 1560 (LDA.w #$16D8 : STA $00)
|
||||||
JSL DrawFlippersInMenuLocation : NOP
|
JSL DrawFlippersInMenuLocation : NOP
|
||||||
org $8DECEB ; <- 6ECEB - equipment.asm : 1946 (LDA.w #$16E0 : STA $00)
|
org $8DECEB ; <- 6ECEB - equipment.asm : 1946 (LDA.w #$16E0 : STA $00)
|
||||||
JSL DrawMoonPearlInMenuLocation : NOP
|
JSL DrawMoonPearlInMenuLocation : NOP
|
||||||
|
|
||||||
|
; Fake boots icon
|
||||||
|
org $8DF851
|
||||||
|
dw $2C29, $2C2A, $2C2B, $2C2C
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Zelda S&Q Mirror Fix
|
; Zelda S&Q Mirror Fix
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -1042,7 +1048,7 @@ org $81C517 : JSL CheckDungeonCompletion
|
|||||||
org $81C523 : JSL CheckDungeonCompletion
|
org $81C523 : JSL CheckDungeonCompletion
|
||||||
org $81C710 : JSL CheckSpawnPrize
|
org $81C710 : JSL CheckSpawnPrize
|
||||||
BCS RoomTag_GetHeartForPrize_spawn_prize : BRA RoomTag_GetHeartForPrize_delete_tag
|
BCS RoomTag_GetHeartForPrize_spawn_prize : BRA RoomTag_GetHeartForPrize_delete_tag
|
||||||
org $81C742 : JSL SpawnDungeonPrize
|
org $81C742 : JSL SpawnDungeonPrize : PLA : RTS
|
||||||
org $8799EA : JML SetItemPose
|
org $8799EA : JML SetItemPose
|
||||||
org $88C415 : JSL PendantMusicCheck
|
org $88C415 : JSL PendantMusicCheck
|
||||||
BCS Ancilla22_ItemReceipt_is_pendant : BRA Ancilla22_ItemReceipt_wait_for_music
|
BCS Ancilla22_ItemReceipt_is_pendant : BRA Ancilla22_ItemReceipt_wait_for_music
|
||||||
@@ -1491,7 +1497,7 @@ RebuildHUD_update_long:
|
|||||||
JSR RebuildHUD_update : RTL
|
JSR RebuildHUD_update : RTL
|
||||||
|
|
||||||
RefreshIcon_UpdateHUD:
|
RefreshIcon_UpdateHUD:
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
JSR RebuildHUD
|
JSR RebuildHUD
|
||||||
JSR UpdateEquippedItem
|
JSR UpdateEquippedItem
|
||||||
RTS
|
RTS
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ AddInventory:
|
|||||||
LDA.l BootsEquipment : AND.w #$00FF : BNE +
|
LDA.l BootsEquipment : AND.w #$00FF : BNE +
|
||||||
TYA : STA.l PreBootsLocations
|
TYA : STA.l PreBootsLocations
|
||||||
+
|
+
|
||||||
LDA.l MirrorEquipment : AND.w #$00FF : BNE +
|
LDA.l MirrorEquipment : AND.w #$00FE : BNE + ; FE to ignore mirror scroll
|
||||||
TYA : STA.l PreMirrorLocations
|
TYA : STA.l PreMirrorLocations
|
||||||
+
|
+
|
||||||
LDA.l FluteEquipment : AND.w #$00FF : BNE +
|
LDA.l FluteEquipment : AND.w #$00FF : BNE +
|
||||||
@@ -254,10 +254,9 @@ StampItem:
|
|||||||
LDA.b [Scrap0B] : BNE .skip
|
LDA.b [Scrap0B] : BNE .skip
|
||||||
INC.b Scrap0B : INC.b Scrap0B
|
INC.b Scrap0B : INC.b Scrap0B
|
||||||
LDA.b [Scrap0B] : BNE .skip
|
LDA.b [Scrap0B] : BNE .skip
|
||||||
|
LDA.l NMIFrames+2 : STA.b [Scrap0B]
|
||||||
DEC.b Scrap0B : DEC.b Scrap0B
|
DEC.b Scrap0B : DEC.b Scrap0B
|
||||||
LDA.l NMIFrames : STA.b [Scrap0B]
|
LDA.l NMIFrames : STA.b [Scrap0B]
|
||||||
INC.b Scrap0B : INC.b Scrap0B
|
|
||||||
LDA.l NMIFrames+2 : STA.b [Scrap0B]
|
|
||||||
.skip
|
.skip
|
||||||
SEP #$20
|
SEP #$20
|
||||||
RTS
|
RTS
|
||||||
@@ -374,7 +373,7 @@ HUDRefresh:
|
|||||||
+
|
+
|
||||||
|
|
||||||
JSL HUD_RefreshIconLong ; thing we wrote over
|
JSL HUD_RefreshIconLong ; thing we wrote over
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
JSL PostItemGet
|
JSL PostItemGet
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -389,7 +388,7 @@ HandleBombAbsorbtion:
|
|||||||
LDA.b #$04 : STA.w ItemCursor ; set selected item to bombs
|
LDA.b #$04 : STA.w ItemCursor ; set selected item to bombs
|
||||||
LDA.b #$01 : STA.w CurrentYItem ; set selected item to bombs
|
LDA.b #$01 : STA.w CurrentYItem ; set selected item to bombs
|
||||||
JSL HUD_RebuildLong
|
JSL HUD_RebuildLong
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
+
|
+
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -765,7 +765,7 @@ endmacro
|
|||||||
%InventoryItem($46, $0001, $0000, $0000) ; 46 - 300 rupees
|
%InventoryItem($46, $0001, $0000, $0000) ; 46 - 300 rupees
|
||||||
%InventoryItem($47, $0001, $0000, $0000) ; 47 - 20 rupees green
|
%InventoryItem($47, $0001, $0000, $0000) ; 47 - 20 rupees green
|
||||||
%InventoryItem($48, $0085, $0000, $0000) ; 48 - Full bottle (good bee)
|
%InventoryItem($48, $0085, $0000, $0000) ; 48 - Full bottle (good bee)
|
||||||
%InventoryItem($49, $0081, $0000, $0000) ; 49 - Tossed fighter sword
|
%InventoryItem($49, $0081, SwordTime, $0000) ; 49 - Tossed fighter sword
|
||||||
%InventoryItem($4A, $0085, FluteTime, $0000) ; 4A - Active Flute
|
%InventoryItem($4A, $0085, FluteTime, $0000) ; 4A - Active Flute
|
||||||
%InventoryItem($4B, $0089, BootsTime, $0000) ; 4B - Boots
|
%InventoryItem($4B, $0089, BootsTime, $0000) ; 4B - Boots
|
||||||
%InventoryItem($4C, $0015, $0000, CapacityUpgrades) ; 4C - Bomb capacity (50)
|
%InventoryItem($4C, $0015, $0000, CapacityUpgrades) ; 4C - Bomb capacity (50)
|
||||||
|
|||||||
132
itemtext.asm
132
itemtext.asm
@@ -1,147 +1,149 @@
|
|||||||
|
table "data/textwordcharmap.txt"
|
||||||
|
|
||||||
org $B28000
|
org $B28000
|
||||||
; You have found
|
; You have found
|
||||||
; the map of
|
; the map of
|
||||||
Notice_MapOf:
|
Notice_MapOf:
|
||||||
db $74, $00, $C2, $00, $DE, $00, $E4, $00, $FF, $00, $D7, $00, $D0, $00, $E5, $00, $D4, $00, $FF, $00, $D5, $00, $DE, $00, $E4, $00, $DD, $00, $D3
|
db $74 : dw "You have found"
|
||||||
db $75, $00, $E3, $00, $D7, $00, $D4, $00, $FF, $00, $DC, $00, $D0, $00, $DF, $00, $FF, $00, $DE, $00, $D5
|
db $75 : dw "the map of"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; You have found
|
; You have found
|
||||||
; the compass of
|
; the compass of
|
||||||
Notice_CompassOf:
|
Notice_CompassOf:
|
||||||
db $74, $00, $C2, $00, $DE, $00, $E4, $00, $FF, $00, $D7, $00, $D0, $00, $E5, $00, $D4, $00, $FF, $00, $D5, $00, $DE, $00, $E4, $00, $DD, $00, $D3
|
db $74 : dw "You have found"
|
||||||
db $75, $00, $E3, $00, $D7, $00, $D4, $00, $FF, $00, $D2, $00, $DE, $00, $DC, $00, $DF, $00, $D0, $00, $E2, $00, $E2, $00, $FF, $00, $DE, $00, $D5
|
db $75 : dw "the compass of"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Oh look! it's
|
; Oh look! it's
|
||||||
; the big key of
|
; the big key of
|
||||||
Notice_BigKeyOf:
|
Notice_BigKeyOf:
|
||||||
db $74, $00, $B8, $00, $D7, $00, $FF, $00, $DB, $00, $DE, $00, $DE, $00, $DA, $00, $C7, $00, $FF, $00, $D8, $00, $E3, $00, $9D, $00, $E2
|
db $74 : dw "Oh look! it's"
|
||||||
db $75, $00, $E3, $00, $D7, $00, $D4, $00, $FF, $00, $D1, $00, $D8, $00, $D6, $00, $FF, $00, $DA, $00, $D4, $00, $E8, $00, $FF, $00, $DE, $00, $D5
|
db $75 : dw "the big key of"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; this is a
|
; This is a
|
||||||
; small key to
|
; small key to
|
||||||
Notice_SmallKeyOf:
|
Notice_SmallKeyOf:
|
||||||
db $74, $00, $BD, $00, $D7, $00, $D8, $00, $E2, $00, $FF, $00, $D8, $00, $E2, $00, $FF, $00, $D0
|
db $74 : dw "This is a"
|
||||||
db $75, $00, $E2, $00, $DC, $00, $D0, $00, $DB, $00, $DB, $00, $FF, $00, $DA, $00, $D4, $00, $E8, $00, $FF, $00, $E3, $00, $DE
|
db $75 : dw "small key to"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; You picked up
|
; You picked up
|
||||||
Notice_Crystal:
|
Notice_Crystal:
|
||||||
db $74, $00, $C2, $00, $DE, $00, $E4, $00, $FF, $00, $DF, $00, $D8, $00, $D2, $00, $DA, $00, $D4, $00, $D3, $00, $FF, $00, $E4, $00, $DF
|
db $74 : dw "You picked up"
|
||||||
dw $7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; light world
|
; Light World
|
||||||
Notice_LightWorld:
|
Notice_LightWorld:
|
||||||
db $76, $00, $B5, $00, $D8, $00, $D6, $00, $D7, $00, $E3, $00, $FF, $00, $C0, $00, $DE, $00, $E1, $00, $DB, $00, $D3
|
db $76 : dw "Light World"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; dark world
|
; Dark World
|
||||||
Notice_DarkWorld:
|
Notice_DarkWorld:
|
||||||
db $76, $00, $AD, $00, $D0, $00, $E1, $00, $DA, $00, $FF, $00, $C0, $00, $DE, $00, $E1, $00, $DB, $00, $D3
|
db $76 : dw "Dark World"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Ganons Tower
|
; Ganons Tower
|
||||||
Notice_GTower:
|
Notice_GTower:
|
||||||
db $76, $00, $B0, $00, $D0, $00, $DD, $00, $DE, $00, $DD, $00, $E2, $00, $FF, $00, $BD, $00, $DE, $00, $E6, $00, $D4, $00, $E1
|
db $76 : dw "Ganons Tower"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Turtle Rock
|
; Turtle Rock
|
||||||
Notice_TRock:
|
Notice_TRock:
|
||||||
db $76, $00, $BD, $00, $E4, $00, $E1, $00, $E3, $00, $DB, $00, $D4, $00, $FF, $00, $BB, $00, $DE, $00, $D2, $00, $DA
|
db $76 : dw "Turtle Rock"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Thieves Town
|
; Thieves Town
|
||||||
Notice_Thieves:
|
Notice_Thieves:
|
||||||
db $76, $00, $BD, $00, $D7, $00, $D8, $00, $D4, $00, $E5, $00, $D4, $00, $E2, $00, $FF, $00, $BD, $00, $DE, $00, $E6, $00, $DD
|
db $76 : dw "Thieves Town"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Tower of Hera
|
; Tower of Hera
|
||||||
Notice_Hera:
|
Notice_Hera:
|
||||||
db $76, $00, $BD, $00, $DE, $00, $E6, $00, $D4, $00, $E1, $00, $FF, $00, $DE, $00, $D5, $00, $FF, $00, $B1, $00, $D4, $00, $E1, $00, $D0
|
db $76 : dw "Tower of Hera"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Ice Palace
|
; Ice Palace
|
||||||
Notice_Ice:
|
Notice_Ice:
|
||||||
db $76, $00, $B2, $00, $D2, $00, $D4, $00, $FF, $00, $B9, $00, $D0, $00, $DB, $00, $D0, $00, $D2, $00, $D4
|
db $76 : dw "Ice Palace"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Skull Woods
|
; Skull Woods
|
||||||
Notice_Skull:
|
Notice_Skull:
|
||||||
db $76, $00, $BC, $00, $DA, $00, $E4, $00, $DB, $00, $DB, $00, $FF, $00, $C0, $00, $DE, $00, $DE, $00, $D3, $00, $E2
|
db $76 : dw "Skull Woods"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Misery Mire
|
; Misery Mire
|
||||||
Notice_Mire:
|
Notice_Mire:
|
||||||
db $76, $00, $B6, $00, $D8, $00, $E2, $00, $D4, $00, $E1, $00, $E8, $00, $FF, $00, $B6, $00, $D8, $00, $E1, $00, $D4
|
db $76 : dw "Misery Mire"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Dark Palace
|
; Dark Palace
|
||||||
Notice_PoD:
|
Notice_PoD:
|
||||||
db $76, $00, $AD, $00, $D0, $00, $E1, $00, $DA, $00, $FF, $00, $B9, $00, $D0, $00, $DB, $00, $D0, $00, $D2, $00, $D4
|
db $76 : dw "Dark Palace"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Swamp Palace
|
; Swamp Palace
|
||||||
Notice_Swamp:
|
Notice_Swamp:
|
||||||
db $76, $00, $BC, $00, $E6, $00, $D0, $00, $DC, $00, $DF, $00, $FF, $00, $B9, $00, $D0, $00, $DB, $00, $D0, $00, $D2, $00, $D4
|
db $76 : dw "Swamp Palace"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Castle Tower
|
; Castle Tower
|
||||||
Notice_AgaTower:
|
Notice_AgaTower:
|
||||||
db $76, $00, $AC, $00, $D0, $00, $E2, $00, $E3, $00, $DB, $00, $D4, $00, $FF, $00, $BD, $00, $DE, $00, $E6, $00, $D4, $00, $E1
|
db $76 : dw "Castle Tower"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Desert Palace
|
; Desert Palace
|
||||||
Notice_Desert:
|
Notice_Desert:
|
||||||
db $76, $00, $AD, $00, $D4, $00, $E2, $00, $D4, $00, $E1, $00, $E3, $00, $FF, $00, $B9, $00, $D0, $00, $DB, $00, $D0, $00, $D2, $00, $D4
|
db $76 : dw "Desert Palace"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Eastern Palace
|
; Eastern Palace
|
||||||
Notice_Eastern:
|
Notice_Eastern:
|
||||||
db $76, $00, $AE, $00, $D0, $00, $E2, $00, $E3, $00, $D4, $00, $E1, $00, $DD, $00, $FF, $00, $B9, $00, $D0, $00, $DB, $00, $D0, $00, $D2, $00, $D4
|
db $76 : dw "Eastern Palace"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Hyrule Castle
|
; Hyrule Castle
|
||||||
Notice_Castle:
|
Notice_Castle:
|
||||||
db $76, $00, $B1, $00, $E8, $00, $E1, $00, $E4, $00, $DB, $00, $D4, $00, $FF, $00, $AC, $00, $D0, $00, $E2, $00, $E3, $00, $DB, $00, $D4
|
db $76 : dw "Hyrule Castle"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Hyrule Castle
|
; Hyrule Castle
|
||||||
Notice_Sewers:
|
Notice_Sewers:
|
||||||
db $76, $00, $B1, $00, $E8, $00, $E1, $00, $E4, $00, $DB, $00, $D4, $00, $FF, $00, $AC, $00, $D0, $00, $E2, $00, $E3, $00, $DB, $00, $D4
|
db $76 : dw "Hyrule Castle"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; This Dungeon
|
; This Dungeon
|
||||||
Notice_Self:
|
Notice_Self:
|
||||||
db $76, $00, $E3, $00, $D7, $00, $D8, $00, $E2, $00, $FF, $00, $D3, $00, $E4, $00, $DD, $00, $D6, $00, $D4, $00, $DE, $00, $Dd
|
db $76 : dw "this dungeon"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
; Crystal numbers
|
; Crystal numbers
|
||||||
Notice_One:
|
Notice_One:
|
||||||
db $75, $00, $D2, $00, $E1, $00, $E8, $00, $E2, $00, $E3, $00, $D0, $00, $DB, $00, $FF, $00, $DE, $00, $DD, $00, $D4
|
db $75 : dw "crystal one"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
Notice_Two:
|
Notice_Two:
|
||||||
db $75, $00, $D2, $00, $E1, $00, $E8, $00, $E2, $00, $E3, $00, $D0, $00, $DB, $00, $FF, $00, $E3, $00, $E6, $00, $DE
|
db $75 : dw "crystal two"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
Notice_Three:
|
Notice_Three:
|
||||||
db $75, $00, $D2, $00, $E1, $00, $E8, $00, $E2, $00, $E3, $00, $D0, $00, $DB, $00, $FF, $00, $E3, $00, $D7, $00, $E1, $00, $D4, $00, $D4
|
db $75 : dw "crystal three"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
Notice_Four:
|
Notice_Four:
|
||||||
db $75, $00, $D2, $00, $E1, $00, $E8, $00, $E2, $00, $E3, $00, $D0, $00, $DB, $00, $FF, $00, $D5, $00, $DE, $00, $E4, $00, $E1
|
db $75 : dw "crystal four"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
Notice_Five:
|
Notice_Five:
|
||||||
db $75, $00, $D2, $00, $E1, $00, $E8, $00, $E2, $00, $E3, $00, $D0, $00, $DB, $00, $FF, $00, $D5, $00, $D8, $00, $E5, $00, $D4
|
db $75 : dw "crystal five"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
Notice_Six:
|
Notice_Six:
|
||||||
db $75, $00, $D2, $00, $E1, $00, $E8, $00, $E2, $00, $E3, $00, $D0, $00, $DB, $00, $FF, $00, $E2, $00, $D8, $00, $E7
|
db $75 : dw "crystal six"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|
||||||
Notice_Seven:
|
Notice_Seven:
|
||||||
db $75, $00, $D2, $00, $E1, $00, $E8, $00, $E2, $00, $E3, $00, $D0, $00, $DB, $00, $FF, $00, $E2, $00, $D4, $00, $E5, $00, $D4, $00, $DD
|
db $75 : dw "crystal seven"
|
||||||
dw #$7F7F
|
dw $7F7F
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ RevealPotItem:
|
|||||||
; Could increment GT Tower Pre Big Key but we aren't showing that stat right now
|
; Could increment GT Tower Pre Big Key but we aren't showing that stat right now
|
||||||
+ REP #$10
|
+ REP #$10
|
||||||
LDA.l TotalItemCounter : INC : STA.l TotalItemCounter ; Increment Item Total
|
LDA.l TotalItemCounter : INC : STA.l TotalItemCounter ; Increment Item Total
|
||||||
INC.w UpdateHUDFlag
|
LDA.w #$0001 : STA.l UpdateHUDFlag
|
||||||
.obtained
|
.obtained
|
||||||
PLY : PLX
|
PLY : PLX
|
||||||
|
|
||||||
@@ -317,7 +317,7 @@ IncrementCountsForSubstitute:
|
|||||||
; Could increment GT Tower Pre Big Key but we aren't showing that stat right now
|
; Could increment GT Tower Pre Big Key but we aren't showing that stat right now
|
||||||
+
|
+
|
||||||
LDA.l TotalItemCounter : INC : STA.l TotalItemCounter ; Increment Item Total
|
LDA.l TotalItemCounter : INC : STA.l TotalItemCounter ; Increment Item Total
|
||||||
INC.w UpdateHUDFlag
|
LDA.w #$0001 : STA.l UpdateHUDFlag
|
||||||
.obtained
|
.obtained
|
||||||
SEP #$30 : PLX
|
SEP #$30 : PLX
|
||||||
RTS
|
RTS
|
||||||
@@ -556,7 +556,7 @@ IncrementCountForMinor:
|
|||||||
; Could increment GT Tower Pre Big Key but we aren't showing that stat right now
|
; Could increment GT Tower Pre Big Key but we aren't showing that stat right now
|
||||||
+
|
+
|
||||||
LDA.l TotalItemCounter : INC : STA.l TotalItemCounter ; Increment Item Total
|
LDA.l TotalItemCounter : INC : STA.l TotalItemCounter ; Increment Item Total
|
||||||
INC.w UpdateHUDFlag
|
LDA.w #$0001 : STA.l UpdateHUDFlag
|
||||||
.obtained
|
.obtained
|
||||||
SEP #$30 : PLX
|
SEP #$30 : PLX
|
||||||
RTS
|
RTS
|
||||||
@@ -674,12 +674,6 @@ KeyGet:
|
|||||||
+ LDY.w SprItemReceipt, X
|
+ LDY.w SprItemReceipt, X
|
||||||
LDA.w SprItemIndex, X : STA.w SpawnedItemIndex
|
LDA.w SprItemIndex, X : STA.w SpawnedItemIndex
|
||||||
LDA.w SprItemFlags, X : STA.w SpawnedItemFlag
|
LDA.w SprItemFlags, X : STA.w SpawnedItemFlag
|
||||||
; LDA.b RoomIndex : CMP.b #$87 : BNE + ;check for hera cage
|
|
||||||
; LDA.w SpawnedItemFlag : BNE + ; if it came from a pot, it's fine
|
|
||||||
; JSR ShouldKeyBeCountedForDungeon : BCC ++
|
|
||||||
; JSL CountChestKeyLong
|
|
||||||
; ++ PLA : RTL
|
|
||||||
;+
|
|
||||||
STY.b Scrap00
|
STY.b Scrap00
|
||||||
LDA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID
|
LDA.w SprItemMWPlayer, X : STA.l !MULTIWORLD_ITEM_PLAYER_ID
|
||||||
STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .receive
|
STA.l !MULTIWORLD_SPRITEITEM_PLAYER_ID : BNE .receive
|
||||||
@@ -706,18 +700,6 @@ KeyGet:
|
|||||||
KeyTable:
|
KeyTable:
|
||||||
db $A0, $A0, $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD
|
db $A0, $A0, $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD
|
||||||
|
|
||||||
; Input Y - the item type
|
|
||||||
ShouldKeyBeCountedForDungeon:
|
|
||||||
PHX
|
|
||||||
LDA.w DungeonID : CMP.b #$FF : BEQ .done
|
|
||||||
LSR : TAX
|
|
||||||
TYA : CMP.w KeyTable, X : BNE +
|
|
||||||
- PLX : SEC : RTS
|
|
||||||
+ CMP.b #$24 : BEQ -
|
|
||||||
.done
|
|
||||||
PLX : CLC : RTS
|
|
||||||
|
|
||||||
|
|
||||||
BigKeyGet:
|
BigKeyGet:
|
||||||
LDY.w SprItemReceipt, X
|
LDY.w SprItemReceipt, X
|
||||||
CPY.b #$32 : BNE +
|
CPY.b #$32 : BNE +
|
||||||
|
|||||||
98
msu.asm
98
msu.asm
@@ -164,27 +164,27 @@ CheckMusicLoadRequest:
|
|||||||
|
|
||||||
.continue
|
.continue
|
||||||
LDA.l TournamentSeed : BNE +++
|
LDA.l TournamentSeed : BNE +++
|
||||||
LDA.w MSUPackRequest
|
LDA.l MSUPackRequest
|
||||||
CMP.w MSUPackCurrent : BEQ +++
|
CMP.l MSUPackCurrent : BEQ +++
|
||||||
CMP.w MSUPackCount : !BLT ++
|
CMP.l MSUPackCount : !BLT ++
|
||||||
CMP.b #$FE : !BLT +
|
CMP.b #$FE : !BLT +
|
||||||
STA.w MSUPackCurrent
|
STA.l MSUPackCurrent
|
||||||
SEP #$10
|
SEP #$10
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
LDX.b #$07
|
LDX.b #$07
|
||||||
-
|
-
|
||||||
STA.w MSUFallbackTable,X
|
STA.l MSUFallbackTable,X
|
||||||
DEX : BPL -
|
DEX : BPL -
|
||||||
REP #$10
|
REP #$10
|
||||||
BRA +++
|
BRA +++
|
||||||
+ : LDA.w MSUPackCurrent : STA.w MSUPackRequest
|
+ : LDA.l MSUPackCurrent : STA.l MSUPackRequest
|
||||||
++ : STA.w MSUPackCurrent
|
++ : STA.l MSUPackCurrent
|
||||||
JSL MSUInit_check_fallback
|
JSL MSUInit_check_fallback
|
||||||
+++
|
+++
|
||||||
|
|
||||||
LDA.w MusicControlRequest : CMP.b #$08 : BEQ ++ ; Mirror SFX is not affected by NoBGM or pack $FE
|
LDA.w MusicControlRequest : CMP.b #$08 : BEQ ++ ; Mirror SFX is not affected by NoBGM or pack $FE
|
||||||
LDA.l NoBGM : BNE +
|
LDA.l NoBGM : BNE +
|
||||||
LDA.w MSUPackCurrent : CMP.b #$FE : BNE ++
|
LDA.l MSUPackCurrent : CMP.b #$FE : BNE ++
|
||||||
+ : JMP .mute
|
+ : JMP .mute
|
||||||
++
|
++
|
||||||
|
|
||||||
@@ -253,7 +253,7 @@ CheckMusicLoadRequest:
|
|||||||
LDA.l MusicShuffleTable-1,X : DEC : PHA
|
LDA.l MusicShuffleTable-1,X : DEC : PHA
|
||||||
AND.b #$07 : TAY
|
AND.b #$07 : TAY
|
||||||
PLA : LSR #3 : TAX
|
PLA : LSR #3 : TAX
|
||||||
LDA.w MSUFallbackTable,X : BEQ .secondary_fallback : CMP.b #$FF : BEQ .mute
|
LDA.l MSUFallbackTable,X : BEQ .secondary_fallback : CMP.b #$FF : BEQ .mute
|
||||||
|
|
||||||
- : CPY.b #$00 : BEQ +
|
- : CPY.b #$00 : BEQ +
|
||||||
LSR : DEY : BRA -
|
LSR : DEY : BRA -
|
||||||
@@ -369,7 +369,7 @@ SpiralStairsPreCheck:
|
|||||||
+
|
+
|
||||||
|
|
||||||
LDA.l BigKeyField : AND.w #$0004 : BEQ .done ; Check that we have the GT big key
|
LDA.l BigKeyField : AND.w #$0004 : BEQ .done ; Check that we have the GT big key
|
||||||
LDA.w MSUFallbackTable+7 : AND.w #$0004 : BEQ .done ; Check that we have the extended track
|
LDA.l MSUFallbackTable+7 : AND.w #$0004 : BEQ .done ; Check that we have the extended track
|
||||||
|
|
||||||
.fade
|
.fade
|
||||||
LDX.b #$F1 : STX.w MusicControlRequest
|
LDX.b #$F1 : STX.w MusicControlRequest
|
||||||
@@ -426,10 +426,10 @@ MSUInit:
|
|||||||
PHP
|
PHP
|
||||||
|
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
STA.w MSULoadedTrack
|
STA.l MSULoadedTrack
|
||||||
STA.w MSUResumeTrack
|
STA.l MSUResumeTrack
|
||||||
STA.w MSUResumeTime : STA.w MSUResumeTime+1 : STA.w MSUResumeTime+2 : STA.w MSUResumeTime+3
|
STA.l MSUResumeTime : STA.l MSUResumeTime+1 : STA.l MSUResumeTime+2 : STA.l MSUResumeTime+3
|
||||||
STA.w MSUResumeControl
|
STA.l MSUResumeControl
|
||||||
|
|
||||||
LDA.l NoBGM : BNE .done
|
LDA.l NoBGM : BNE .done
|
||||||
|
|
||||||
@@ -456,7 +456,7 @@ MSUInit:
|
|||||||
.wait_pack
|
.wait_pack
|
||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_BUSY : BNE .wait_pack
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_BUSY : BNE .wait_pack
|
||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BEQ .check_pack
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BEQ .check_pack
|
||||||
TXA : STA.w MSUPackCount
|
TXA : STA.l MSUPackCount
|
||||||
BRA +
|
BRA +
|
||||||
|
|
||||||
; Check the current MSU-1 pack for tracks that require SPC fallback
|
; Check the current MSU-1 pack for tracks that require SPC fallback
|
||||||
@@ -478,7 +478,7 @@ MSUInit:
|
|||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE +
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE +
|
||||||
SEC
|
SEC
|
||||||
+
|
+
|
||||||
LDA.w MSUFallbackTable,X : ROL : STA.w MSUFallbackTable,X
|
LDA.l MSUFallbackTable,X : ROL : STA.l MSUFallbackTable,X
|
||||||
|
|
||||||
DEY : BPL .next_track
|
DEY : BPL .next_track
|
||||||
DEX : BPL +
|
DEX : BPL +
|
||||||
@@ -499,25 +499,25 @@ MSUInit:
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
MSUStopPlaying:
|
MSUStopPlaying:
|
||||||
PHA : XBA : PHA
|
PHA : XBA : PHA
|
||||||
LDA.w MSULoadedTrack
|
LDA.l MSULoadedTrack
|
||||||
JSR IsResumableTrack : BCC +
|
JSR IsResumableTrack : BCC +
|
||||||
; dont save if we already saved recently
|
; dont save if we already saved recently
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.w MSUResumeTrack : AND.w #$00FF : BEQ ++
|
LDA.l MSUResumeTrack : AND.w #$00FF : BEQ ++
|
||||||
LDA.l NMIFrames : !SUB.w MSUResumeTime : PHA
|
LDA.l NMIFrames : !SUB.l MSUResumeTime : PHA
|
||||||
LDA.l NMIFrames+2 : SBC.w MSUResumeTime+2 : BNE +++
|
LDA.l NMIFrames+2 : SBC.l MSUResumeTime+2 : BNE +++
|
||||||
PLA : CMP.l MSUResumeTimer : !BLT .too_early
|
PLA : CMP.l MSUResumeTimer : !BLT .too_early
|
||||||
BRA ++
|
BRA ++
|
||||||
+++
|
+++
|
||||||
PLA
|
PLA
|
||||||
++
|
++
|
||||||
; saving
|
; saving
|
||||||
LDA.l NMIFrames : STA.w MSUResumeTime
|
LDA.l NMIFrames : STA.l MSUResumeTime
|
||||||
LDA.l NMIFrames+2 : STA.w MSUResumeTime+2
|
LDA.l NMIFrames+2 : STA.l MSUResumeTime+2
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
LDA.w MSULoadedTrack : STA.w MSUResumeTrack
|
LDA.l MSULoadedTrack : STA.l MSUResumeTrack
|
||||||
LDA.b #$00 : STA.w MSULoadedTrack ; dont take this path if we're calling again
|
LDA.b #$00 : STA.l MSULoadedTrack ; dont take this path if we're calling again
|
||||||
LDA.b #!FLAG_MSU_RESUME : STA.w MSUCTL ; save this track's position
|
LDA.b #!FLAG_MSU_RESUME : STA.w MSUCTL ; save this track's position
|
||||||
PLA : XBA : PLA
|
PLA : XBA : PLA
|
||||||
RTS
|
RTS
|
||||||
@@ -548,23 +548,23 @@ MSUMain:
|
|||||||
LDX.w MusicControl : BEQ +
|
LDX.w MusicControl : BEQ +
|
||||||
JMP .command_ff
|
JMP .command_ff
|
||||||
+
|
+
|
||||||
LDA.w MSUDelayedCommand : BEQ .do_fade
|
LDA.l MSUDelayedCommand : BEQ .do_fade
|
||||||
|
|
||||||
.check_busy
|
.check_busy
|
||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_BUSY : BNE -
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_BUSY : BNE -
|
||||||
.ready
|
.ready
|
||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE -
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE -
|
||||||
.start
|
.start
|
||||||
LDA.w MSUResumeControl : BIT.b #!FLAG_RESUME_CANCEL : BEQ +
|
LDA.l MSUResumeControl : BIT.b #!FLAG_RESUME_CANCEL : BEQ +
|
||||||
EOR.b #!FLAG_RESUME_CANCEL : STA.w MSUResumeControl
|
EOR.b #!FLAG_RESUME_CANCEL : STA.l MSUResumeControl
|
||||||
REP #$20 : LDA.w MSULoadedTrack : STA.w MSUTRACK : SEP #$20
|
REP #$20 : LDA.l MSULoadedTrack : STA.w MSUTRACK : SEP #$20
|
||||||
BRA -
|
BRA -
|
||||||
+
|
+
|
||||||
LDA.b #!VAL_VOLUME_FULL
|
LDA.b #!VAL_VOLUME_FULL
|
||||||
STA.w TargetVolume
|
STA.w TargetVolume
|
||||||
|
|
||||||
LDA.w MSUResumeControl : BIT.b #!FLAG_RESUME_FADEIN : BEQ +
|
LDA.l MSUResumeControl : BIT.b #!FLAG_RESUME_FADEIN : BEQ +
|
||||||
EOR.b #!FLAG_RESUME_FADEIN : STA.w MSUResumeControl
|
EOR.b #!FLAG_RESUME_FADEIN : STA.l MSUResumeControl
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
BRA ++
|
BRA ++
|
||||||
+
|
+
|
||||||
@@ -576,17 +576,17 @@ MSUMain:
|
|||||||
LDA.w CurrentMSUTrack : DEC : PHA
|
LDA.w CurrentMSUTrack : DEC : PHA
|
||||||
AND.b #$07 : TAY
|
AND.b #$07 : TAY
|
||||||
PLA : LSR #3 : TAX
|
PLA : LSR #3 : TAX
|
||||||
LDA.w MSUFallbackTable,X : BEQ +++ : CMP.b #$FF : BEQ ++
|
LDA.l MSUFallbackTable,X : BEQ +++ : CMP.b #$FF : BEQ ++
|
||||||
|
|
||||||
- : CPY.b #$00 : BEQ +
|
- : CPY.b #$00 : BEQ +
|
||||||
LSR : DEY : BRA -
|
LSR : DEY : BRA -
|
||||||
+
|
+
|
||||||
|
|
||||||
AND.b #$01 : BEQ +++
|
AND.b #$01 : BEQ +++
|
||||||
++ : LDA.w MSUDelayedCommand
|
++ : LDA.l MSUDelayedCommand
|
||||||
+++ : STA.w MSUCTL
|
+++ : STA.w MSUCTL
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
STA.w MSUDelayedCommand
|
STA.l MSUDelayedCommand
|
||||||
JML SPCContinue
|
JML SPCContinue
|
||||||
|
|
||||||
.do_fade:
|
.do_fade:
|
||||||
@@ -649,9 +649,9 @@ MSUMain:
|
|||||||
+
|
+
|
||||||
CPX.w CurrentControlRequest : BEQ -
|
CPX.w CurrentControlRequest : BEQ -
|
||||||
LDA.b #$00 : XBA
|
LDA.b #$00 : XBA
|
||||||
LDA.w MSUPackCurrent : BEQ +
|
LDA.l MSUPackCurrent : BEQ +
|
||||||
- : CMP.w MSUPackCount : !BLT +
|
- : CMP.l MSUPackCount : !BLT +
|
||||||
!SUB.w MSUPackCount : BRA -
|
!SUB.l MSUPackCount : BRA -
|
||||||
+
|
+
|
||||||
|
|
||||||
JSR MSUStopPlaying
|
JSR MSUStopPlaying
|
||||||
@@ -664,14 +664,14 @@ MSUMain:
|
|||||||
DEX : BNE -
|
DEX : BNE -
|
||||||
+
|
+
|
||||||
STA.w MSUTRACK
|
STA.w MSUTRACK
|
||||||
STA.w MSULoadedTrack
|
STA.l MSULoadedTrack
|
||||||
SEP #$20
|
SEP #$20
|
||||||
|
|
||||||
PLX
|
PLX
|
||||||
TXA : CMP.w MSUResumeTrack : BNE + ; dont resume if too late
|
TXA : CMP.l MSUResumeTrack : BNE + ; dont resume if too late
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.l NMIFrames : !SUB.w MSUResumeTime : PHA
|
LDA.l NMIFrames : !SUB.l MSUResumeTime : PHA
|
||||||
LDA.l NMIFrames+2 : SBC.w MSUResumeTime+2 : BNE ++
|
LDA.l NMIFrames+2 : SBC.l MSUResumeTime+2 : BNE ++
|
||||||
PLA : CMP.l MSUResumeTimer : !BGE +++
|
PLA : CMP.l MSUResumeTimer : !BGE +++
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #!FLAG_RESUME_FADEIN : BRA .done_resume
|
LDA.b #!FLAG_RESUME_FADEIN : BRA .done_resume
|
||||||
@@ -681,8 +681,8 @@ MSUMain:
|
|||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.b #!FLAG_RESUME_CANCEL
|
LDA.b #!FLAG_RESUME_CANCEL
|
||||||
.done_resume:
|
.done_resume:
|
||||||
STA.w MSUResumeControl
|
STA.l MSUResumeControl
|
||||||
LDA.b #$00 : STA.w MSUResumeTrack
|
LDA.b #$00 : STA.l MSUResumeTrack
|
||||||
+
|
+
|
||||||
CPX.b #$07 : BNE + ; Kakariko Village
|
CPX.b #$07 : BNE + ; Kakariko Village
|
||||||
LDA.b GameMode : CMP.b #$07 : BNE +
|
LDA.b GameMode : CMP.b #$07 : BNE +
|
||||||
@@ -692,12 +692,12 @@ MSUMain:
|
|||||||
+
|
+
|
||||||
TXA
|
TXA
|
||||||
++
|
++
|
||||||
STA.w MSULoadedTrack
|
STA.l MSULoadedTrack
|
||||||
STX.w CurrentMSUTrack
|
STX.w CurrentMSUTrack
|
||||||
LDA.w MSUPackCurrent : CMP.b #$FE : !BLT +
|
LDA.l MSUPackCurrent : CMP.b #$FE : !BLT +
|
||||||
LDA.b #$00 : BRA ++
|
LDA.b #$00 : BRA ++
|
||||||
+ : LDA.l MSUTrackList-1,X
|
+ : LDA.l MSUTrackList-1,X
|
||||||
++ : STA.w MSUDelayedCommand
|
++ : STA.l MSUDelayedCommand
|
||||||
LDA.l MSUExtendedFallbackList-1,X
|
LDA.l MSUExtendedFallbackList-1,X
|
||||||
CMP.b #17 : BEQ +
|
CMP.b #17 : BEQ +
|
||||||
CMP.b #22 : BEQ +
|
CMP.b #22 : BEQ +
|
||||||
@@ -747,9 +747,9 @@ PendantFanfareWait:
|
|||||||
LDA.w MSUID+2 : CMP.w #!VAL_MSU_ID_23 : BNE .spc
|
LDA.w MSUID+2 : CMP.w #!VAL_MSU_ID_23 : BNE .spc
|
||||||
LDA.w MSUID+4 : CMP.w #!VAL_MSU_ID_45 : BNE .spc
|
LDA.w MSUID+4 : CMP.w #!VAL_MSU_ID_45 : BNE .spc
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.w MSUPackCurrent : CMP.b #$FE : !BGE .spc
|
LDA.l MSUPackCurrent : CMP.b #$FE : !BGE .spc
|
||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc
|
||||||
LDA.w MSUDelayedCommand : BNE .continue
|
LDA.l MSUDelayedCommand : BNE .continue
|
||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
|
||||||
.continue
|
.continue
|
||||||
jml PendantFanfareContinue
|
jml PendantFanfareContinue
|
||||||
@@ -771,9 +771,9 @@ CrystalFanfareWait:
|
|||||||
LDA.w MSUID+2 : CMP.w #!VAL_MSU_ID_23 : BNE .spc
|
LDA.w MSUID+2 : CMP.w #!VAL_MSU_ID_23 : BNE .spc
|
||||||
LDA.w MSUID+4 : CMP.w #!VAL_MSU_ID_45 : BNE .spc
|
LDA.w MSUID+4 : CMP.w #!VAL_MSU_ID_45 : BNE .spc
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.w MSUPackCurrent : CMP.b #$FE : !BGE .spc
|
LDA.l MSUPackCurrent : CMP.b #$FE : !BGE .spc
|
||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc
|
||||||
LDA.w MSUDelayedCommand : BNE .continue
|
LDA.l MSUDelayedCommand : BNE .continue
|
||||||
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
|
LDA.w MSUSTATUS : BIT.b #!FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
|
||||||
.continue
|
.continue
|
||||||
jml CrystalFanfareContinue
|
jml CrystalFanfareContinue
|
||||||
|
|||||||
10
newhud.asm
10
newhud.asm
@@ -65,7 +65,7 @@ NewHUD_DrawArrows:
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
NewHUD_DrawGoal:
|
NewHUD_DrawGoal:
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.w UpdateHUDFlag : BEQ .no_goal
|
LDA.l UpdateHUDFlag : BEQ .no_goal
|
||||||
LDA.l GoalItemRequirement : BEQ .no_goal
|
LDA.l GoalItemRequirement : BEQ .no_goal
|
||||||
|
|
||||||
LDA.l GoalItemIcon : STA.w HUDGoalIndicator
|
LDA.l GoalItemIcon : STA.w HUDGoalIndicator
|
||||||
@@ -126,7 +126,7 @@ NewHUD_DrawKeys:
|
|||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
NewHUD_DrawDungeonCounters:
|
NewHUD_DrawDungeonCounters:
|
||||||
LDA.w UpdateHUDFlag : BEQ NewHUD_DrawPrizeIcon
|
LDA.l UpdateHUDFlag : BEQ NewHUD_DrawPrizeIcon
|
||||||
LDA.l CompassMode : ORA.l MapHUDMode : BIT.b #$03 : BEQ NewHUD_DrawPrizeIcon
|
LDA.l CompassMode : ORA.l MapHUDMode : BIT.b #$03 : BEQ NewHUD_DrawPrizeIcon
|
||||||
LDX.b IndoorsFlag : BNE +
|
LDX.b IndoorsFlag : BNE +
|
||||||
JMP NewHUD_DrawMagicMeter
|
JMP NewHUD_DrawMagicMeter
|
||||||
@@ -151,7 +151,7 @@ NewHUD_DrawPrizeIcon:
|
|||||||
LDA.b GameMode
|
LDA.b GameMode
|
||||||
CMP.b #$12 : BEQ .no_prize
|
CMP.b #$12 : BEQ .no_prize
|
||||||
CMP.b #$0E : BEQ +
|
CMP.b #$0E : BEQ +
|
||||||
LDA.w UpdateHUDFlag : BEQ NewHUD_DrawItemCounter
|
LDA.l UpdateHUDFlag : BEQ NewHUD_DrawItemCounter
|
||||||
+
|
+
|
||||||
LDA.w DungeonID
|
LDA.w DungeonID
|
||||||
CMP.b #$1A : BCS .no_prize
|
CMP.b #$1A : BCS .no_prize
|
||||||
@@ -201,7 +201,7 @@ NewHUD_DrawPrizeIcon:
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
NewHUD_DrawItemCounter:
|
NewHUD_DrawItemCounter:
|
||||||
REP #$20
|
REP #$20
|
||||||
LDA.w UpdateHUDFlag : BNE .continue
|
LDA.l UpdateHUDFlag : BNE .continue
|
||||||
.early_exit
|
.early_exit
|
||||||
JMP NewHUD_DrawMagicMeter
|
JMP NewHUD_DrawMagicMeter
|
||||||
.continue
|
.continue
|
||||||
@@ -279,7 +279,7 @@ NewHUD_DrawMagicMeter:
|
|||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
NewHUD_DoneDrawing:
|
NewHUD_DoneDrawing:
|
||||||
STZ.w UpdateHUDFlag
|
LDA.w #$0000 : STA.l UpdateHUDFlag
|
||||||
PLB
|
PLB
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
|||||||
38
newitems.asm
38
newitems.asm
@@ -437,7 +437,7 @@ ItemBehavior:
|
|||||||
.single_arrow
|
.single_arrow
|
||||||
LDA.l ArrowMode : BEQ +
|
LDA.l ArrowMode : BEQ +
|
||||||
LDA.l CurrentArrows : INC : STA.l CurrentArrows ; Should be sole write to this address
|
LDA.l CurrentArrows : INC : STA.l CurrentArrows ; Should be sole write to this address
|
||||||
INC.w UpdateHUDFlag ; in retro/rupee bow mode.
|
LDA.b #$01 : STA.l UpdateHUDFlag ; in retro/rupee bow mode.
|
||||||
+
|
+
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
@@ -893,15 +893,15 @@ ResolveLootID:
|
|||||||
JMP .have_item
|
JMP .have_item
|
||||||
|
|
||||||
.rng_single
|
.rng_single
|
||||||
JSL GetRNGItemSingle : STA.w ScratchBufferV+6
|
JSL GetRNGItemSingle : STA.l ScratchBufferV+6
|
||||||
XBA : JSR MarkRNGItemSingle
|
XBA : JSR MarkRNGItemSingle
|
||||||
LDA.b #$FF : STA.l RNGLockIn ; clear lock-in
|
LDA.b #$FF : STA.l RNGLockIn ; clear lock-in
|
||||||
LDA.w ScratchBufferV+6 : JMP .get_item
|
LDA.l ScratchBufferV+6 : JMP .get_item
|
||||||
|
|
||||||
.rng_multi
|
.rng_multi
|
||||||
JSL GetRNGItemMulti : STA.w ScratchBufferV+6
|
JSL GetRNGItemMulti : STA.l ScratchBufferV+6
|
||||||
LDA.b #$FF : STA.l RNGLockIn ; clear lock-in
|
LDA.b #$FF : STA.l RNGLockIn ; clear lock-in
|
||||||
LDA.w ScratchBufferV+6 : JMP .get_item
|
LDA.l ScratchBufferV+6 : JMP .get_item
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DungeonItemMasks:
|
DungeonItemMasks:
|
||||||
@@ -956,7 +956,7 @@ HandleBowTracking:
|
|||||||
; at this point.
|
; at this point.
|
||||||
LDA.w ItemReceiptMethod : CMP.b #$01 : BEQ +
|
LDA.w ItemReceiptMethod : CMP.b #$01 : BEQ +
|
||||||
LDX.w CurrentSpriteSlot
|
LDX.w CurrentSpriteSlot
|
||||||
LDA.w SpriteMetaData,X : BEQ +
|
LDA.w SpriteMetaData,X : BEQ .done
|
||||||
BRA .done
|
BRA .done
|
||||||
+
|
+
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
@@ -1026,32 +1026,32 @@ GetRNGItemSingle:
|
|||||||
CMP.l RNGSingleTableSize : !BGE .single_reroll
|
CMP.l RNGSingleTableSize : !BGE .single_reroll
|
||||||
+++
|
+++
|
||||||
|
|
||||||
STA.w ScratchBufferV ; put our index value here
|
STA.l ScratchBufferV ; put our index value here
|
||||||
LDX.b #$00
|
LDX.b #$00
|
||||||
TAY
|
TAY
|
||||||
.recheck
|
.recheck
|
||||||
TYA
|
TYA
|
||||||
JSR CheckSingleItem : BEQ .single_unused ; already used
|
JSR CheckSingleItem : BEQ .single_unused ; already used
|
||||||
LDA.w ScratchBufferV : INC ; increment index
|
LDA.l ScratchBufferV : INC ; increment index
|
||||||
CMP.l RNGSingleTableSize : BCC +++ : LDA.b #$00 : +++ ; rollover index if needed
|
CMP.l RNGSingleTableSize : BCC +++ : LDA.b #$00 : +++ ; rollover index if needed
|
||||||
STA.w ScratchBufferV ; store index
|
STA.l ScratchBufferV ; store index
|
||||||
INX : TAY : TXA : CMP.l RNGSingleTableSize : BCC .recheck
|
INX : TAY : TXA : CMP.l RNGSingleTableSize : BCC .recheck
|
||||||
LDA.b #$5A ; everything is gone, default to null item - MAKE THIS AN OPTION FOR THIS AND THE OTHER ONE
|
LDA.b #$5A ; everything is gone, default to null item - MAKE THIS AN OPTION FOR THIS AND THE OTHER ONE
|
||||||
BRA .single_done
|
BRA .single_done
|
||||||
.single_unused
|
.single_unused
|
||||||
LDA.w ScratchBufferV
|
LDA.l ScratchBufferV
|
||||||
.single_done
|
.single_done
|
||||||
TAX : LDA.l RNGSingleItemTable, X
|
TAX : LDA.l RNGSingleItemTable, X
|
||||||
XBA : LDA.w ScratchBufferV : STA.l RNGLockIn : XBA
|
XBA : LDA.l ScratchBufferV : STA.l RNGLockIn : XBA
|
||||||
PLY
|
PLY
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CheckSingleItem:
|
CheckSingleItem:
|
||||||
LSR #3 : TAX
|
LSR #3 : TAX
|
||||||
LDA.l RNGItem, X : STA.w ScratchBufferV+2 ; load value to temporary
|
LDA.l RNGItem, X : STA.l ScratchBufferV+2 ; load value to temporary
|
||||||
PHX
|
PHX
|
||||||
LDA.w ScratchBufferV : AND.b #$07 : TAX ; load 0-7 part into X
|
LDA.l ScratchBufferV : AND.b #$07 : TAX ; load 0-7 part into X
|
||||||
LDA.w ScratchBufferV+2
|
LDA.l ScratchBufferV+2
|
||||||
---
|
---
|
||||||
CPX.b #$00 : BEQ +++
|
CPX.b #$00 : BEQ +++
|
||||||
LSR
|
LSR
|
||||||
@@ -1063,10 +1063,10 @@ CheckSingleItem:
|
|||||||
RTS
|
RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
MarkRNGItemSingle:
|
MarkRNGItemSingle:
|
||||||
LSR #3 : STA.w ScratchBufferV+1 : TAX
|
LSR #3 : STA.l ScratchBufferV+1 : TAX
|
||||||
LDA.l RNGItem, X
|
LDA.l RNGItem, X
|
||||||
STA.w ScratchBufferV+2
|
STA.l ScratchBufferV+2
|
||||||
LDA.w ScratchBufferV : AND.b #$07 : TAX ; load 0-7 part into X
|
LDA.l ScratchBufferV : AND.b #$07 : TAX ; load 0-7 part into X
|
||||||
LDA.b #01
|
LDA.b #01
|
||||||
---
|
---
|
||||||
CPX.b #$00 : BEQ +++
|
CPX.b #$00 : BEQ +++
|
||||||
@@ -1076,9 +1076,9 @@ MarkRNGItemSingle:
|
|||||||
+++
|
+++
|
||||||
|
|
||||||
PHA
|
PHA
|
||||||
LDA.w ScratchBufferV+1 : TAX
|
LDA.l ScratchBufferV+1 : TAX
|
||||||
PLA
|
PLA
|
||||||
ORA.w ScratchBufferV+2
|
ORA.l ScratchBufferV+2
|
||||||
STA.l RNGItem, X
|
STA.l RNGItem, X
|
||||||
RTS
|
RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ RTL
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
HUDRebuildIndoorHole:
|
HUDRebuildIndoorHole:
|
||||||
PHA
|
PHA
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
LDA.l GenericKeys : BEQ .normal
|
LDA.l GenericKeys : BEQ .normal
|
||||||
.generic
|
.generic
|
||||||
PLA
|
PLA
|
||||||
@@ -30,7 +30,7 @@ RTL
|
|||||||
RTL
|
RTL
|
||||||
;================================================================================
|
;================================================================================
|
||||||
HUDRebuildIndoor:
|
HUDRebuildIndoor:
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
LDA.l GenericKeys : BEQ .normal
|
LDA.l GenericKeys : BEQ .normal
|
||||||
.generic
|
.generic
|
||||||
LDA.b #$00 : STA.l RoomDarkness
|
LDA.b #$00 : STA.l RoomDarkness
|
||||||
@@ -166,6 +166,15 @@ DrawBootsInMenuLocation:
|
|||||||
LDA.w #$1588 : STA.b Scrap00
|
LDA.w #$1588 : STA.b Scrap00
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
ChangeBootsColorForFakeBoots:
|
||||||
|
LDA.l FakeBoots : AND.w #$00FF : BEQ +
|
||||||
|
LDA.l EquipmentSRAM+$15 : AND.w #$00FF : BNE +
|
||||||
|
LDA.w #$F851 ; address of ItemMenu_ItemIcons_usused_nothing, which has the fake boots now
|
||||||
|
BRA ++
|
||||||
|
+ LDA.w #$F821 ; address of ItemMenu_ItemIcons_boots
|
||||||
|
++ STA.b Scrap04
|
||||||
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
DrawGlovesInMenuLocation:
|
DrawGlovesInMenuLocation:
|
||||||
LDA.l DRMode : AND.w #$00FF : CMP.w #$0002 : BEQ +
|
LDA.l DRMode : AND.w #$00FF : CMP.w #$0002 : BEQ +
|
||||||
LDA.l HUDDungeonItems : BNE +
|
LDA.l HUDDungeonItems : BNE +
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ QuickSwap:
|
|||||||
|
|
||||||
LDA.l QuickSwapFlag : BEQ .done
|
LDA.l QuickSwapFlag : BEQ .done
|
||||||
LDA.w ItemCursor : BEQ .done ; Skip everything if we don't have any items
|
LDA.w ItemCursor : BEQ .done ; Skip everything if we don't have any items
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
LDY.b #$14
|
LDY.b #$14
|
||||||
PHX
|
PHX
|
||||||
XBA ; restore the stashed value
|
XBA ; restore the stashed value
|
||||||
|
|||||||
66
ram.asm
66
ram.asm
@@ -446,6 +446,13 @@ SpriteCoordCacheY = $7E0FDA ;
|
|||||||
;
|
;
|
||||||
NoMenu = $7E0FFC ; When set prevents menu, mirror, medallions
|
NoMenu = $7E0FFC ; When set prevents menu, mirror, medallions
|
||||||
;
|
;
|
||||||
|
;===================================================================================================
|
||||||
|
;===================================================================================================
|
||||||
|
; DO NOT ADD ANY RANDOMIZER VARIABLES TO THE SPACE FROM $1100 to $1FFF
|
||||||
|
;---------------------------------------------------------------------------------------------------
|
||||||
|
; It causes isses with major glitches
|
||||||
|
;===================================================================================================
|
||||||
|
;===================================================================================================
|
||||||
GFXStripes = $7E1000 ; Used by stripes for arbitrary VRAM transfers. $100 bytes.
|
GFXStripes = $7E1000 ; Used by stripes for arbitrary VRAM transfers. $100 bytes.
|
||||||
RoomStripes = $7E1100 ; Used for room drawing.
|
RoomStripes = $7E1100 ; Used for room drawing.
|
||||||
;
|
;
|
||||||
@@ -460,26 +467,7 @@ DelayTimer = $7E1CE9 ;
|
|||||||
;
|
;
|
||||||
TextID = $7E1CF0 ; Message ID and page. Word length.
|
TextID = $7E1CF0 ; Message ID and page. Word length.
|
||||||
;
|
;
|
||||||
UpdateHUDFlag = $7E1E03 ; Flag used to mark HUD updates and avoid heavy code segments.
|
|
||||||
;
|
|
||||||
ToastBuffer = $7E1E0E ; Multiworld buffer. Word length.
|
|
||||||
;
|
|
||||||
MSUResumeTime = $7E1E6B ; Mirrored MSU block
|
|
||||||
MSUResumeControl = $7E1E6F ;
|
|
||||||
MSUFallbackTable = $7E1E70 ;
|
|
||||||
MSUDelayedCommand = $7E1E79 ;
|
|
||||||
MSUPackCount = $7E1E7A ;
|
|
||||||
MSUPackCurrent = $7E1E7B ;
|
|
||||||
MSUPackRequest = $7E1E7C ;
|
|
||||||
MSULoadedTrack = $7E1E7D ;
|
|
||||||
MSUResumeTrack = $7E1E7F ;
|
|
||||||
|
|
||||||
ClockHours = $7E1E90 ; Clock Hours
|
|
||||||
ClockMinutes = $7E1E94 ; Clock Minutes
|
|
||||||
ClockSeconds = $7E1E98 ; Clock Seconds
|
|
||||||
ClockBuffer = $7E1E9C ; Clock Temporary
|
|
||||||
ScratchBufferNV = $7E1EA0 ; Non-volatile scratch buffer. Must preserve values through return.
|
|
||||||
ScratchBufferV = $7E1EB0 ; Volatile scratch buffer. Can clobber at will.
|
|
||||||
|
|
||||||
TileMapA = $7E2000
|
TileMapA = $7E2000
|
||||||
TileMapB = $7E4000
|
TileMapB = $7E4000
|
||||||
@@ -493,6 +481,28 @@ TileUploadBuffer = $7EA180 ; 0x300 bytes
|
|||||||
;
|
;
|
||||||
ItemGetGFX = $7EBD40 ; Item receipt graphics location
|
ItemGetGFX = $7EBD40 ; Item receipt graphics location
|
||||||
;
|
;
|
||||||
|
UpdateHUDFlag = $7EBE00 ; Flag used to mark HUD updates and avoid heavy code segments.
|
||||||
|
;
|
||||||
|
ToastBuffer = $7EBE02 ; Multiworld buffer. Word length.
|
||||||
|
;
|
||||||
|
|
||||||
|
MSUResumeTime = $7EBE6B ; Mirrored MSU block
|
||||||
|
MSUResumeControl = $7EBE6F ;
|
||||||
|
MSUFallbackTable = $7EBE70 ;
|
||||||
|
MSUDelayedCommand = $7EBE79 ;
|
||||||
|
MSUPackCount = $7EBE7A ;
|
||||||
|
MSUPackCurrent = $7EBE7B ;
|
||||||
|
MSUPackRequest = $7EBE7C ;
|
||||||
|
MSULoadedTrack = $7EBE7D ;
|
||||||
|
MSUResumeTrack = $7EBE7F ;
|
||||||
|
|
||||||
|
ClockHours = $7EBE90 ; Clock Hours
|
||||||
|
ClockMinutes = $7EBE94 ; Clock Minutes
|
||||||
|
ClockSeconds = $7EBE98 ; Clock Seconds
|
||||||
|
ClockBuffer = $7EBE9C ; Clock Temporary
|
||||||
|
ScratchBufferNV = $7EBEA0 ; Non-volatile scratch buffer. Must preserve values through return.
|
||||||
|
ScratchBufferV = $7EBEB0 ; Volatile scratch buffer. Can clobber at will.
|
||||||
|
|
||||||
RoomFade = $7EC005 ; Flags fade to black on room transitions. Word length.
|
RoomFade = $7EC005 ; Flags fade to black on room transitions. Word length.
|
||||||
FadeTimer = $7EC007 ; Timer for transition fading and mosaics. Word length.
|
FadeTimer = $7EC007 ; Timer for transition fading and mosaics. Word length.
|
||||||
FadeDirection = $7EC009 ; Word length
|
FadeDirection = $7EC009 ; Word length
|
||||||
@@ -969,23 +979,7 @@ endmacro
|
|||||||
%assertRAM(MessageSubModule, $7E1CD8)
|
%assertRAM(MessageSubModule, $7E1CD8)
|
||||||
%assertRAM(MessageCursor, $7E1CE8)
|
%assertRAM(MessageCursor, $7E1CE8)
|
||||||
%assertRAM(DelayTimer, $7E1CE9)
|
%assertRAM(DelayTimer, $7E1CE9)
|
||||||
%assertRAM(TextID, $7E1CF0)
|
|
||||||
%assertRAM(ToastBuffer, $7E1E0E)
|
|
||||||
%assertRAM(MSUResumeTime, $7E1E6B)
|
|
||||||
%assertRAM(MSUResumeControl, $7E1E6F)
|
|
||||||
%assertRAM(MSUFallbackTable, $7E1E70)
|
|
||||||
%assertRAM(MSUDelayedCommand, $7E1E79)
|
|
||||||
%assertRAM(MSUPackCount, $7E1E7A)
|
|
||||||
%assertRAM(MSUPackCurrent, $7E1E7B)
|
|
||||||
%assertRAM(MSUPackRequest, $7E1E7C)
|
|
||||||
%assertRAM(MSULoadedTrack, $7E1E7D)
|
|
||||||
%assertRAM(MSUResumeTrack, $7E1E7F)
|
|
||||||
%assertRAM(ClockHours, $7E1E90)
|
|
||||||
%assertRAM(ClockMinutes, $7E1E94)
|
|
||||||
%assertRAM(ClockSeconds, $7E1E98)
|
|
||||||
%assertRAM(ClockBuffer, $7E1E9C)
|
|
||||||
%assertRAM(ScratchBufferNV, $7E1EA0)
|
|
||||||
%assertRAM(ScratchBufferV, $7E1EB0)
|
|
||||||
%assertRAM(TileMapA, $7E2000)
|
%assertRAM(TileMapA, $7E2000)
|
||||||
%assertRAM(TileMapB, $7E4000)
|
%assertRAM(TileMapB, $7E4000)
|
||||||
%assertRAM(TileUploadBuffer, $7EA180)
|
%assertRAM(TileUploadBuffer, $7EA180)
|
||||||
|
|||||||
@@ -11,8 +11,9 @@ LoadBombCount16:
|
|||||||
.infinite
|
.infinite
|
||||||
RTL
|
RTL
|
||||||
StoreBombCount:
|
StoreBombCount:
|
||||||
INC.w UpdateHUDFlag
|
PHA
|
||||||
PHA : LDA.l InfiniteBombs : BEQ .finite
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
|
LDA.l InfiniteBombs : BEQ .finite
|
||||||
.infinite
|
.infinite
|
||||||
PLA : LDA.b #$01 : RTL
|
PLA : LDA.b #$01 : RTL
|
||||||
.finite
|
.finite
|
||||||
|
|||||||
18
stats.asm
18
stats.asm
@@ -78,12 +78,12 @@ IncrementSmallKeys:
|
|||||||
STA.l CurrentSmallKeys ; thing we wrote over, write small key count
|
STA.l CurrentSmallKeys ; thing we wrote over, write small key count
|
||||||
PHX
|
PHX
|
||||||
LDA.l StatsLocked : BNE +
|
LDA.l StatsLocked : BNE +
|
||||||
LDA.l SmallKeyCounter : INC : STA.l SmallKeyCounter
|
LDA.l SmallKeyCounter : INC : STA.l SmallKeyCounter
|
||||||
+
|
+
|
||||||
JSL UpdateKeys
|
JSL UpdateKeys
|
||||||
PHY : LDY.b #24 : JSL AddInventory : PLY
|
PHY : LDY.b #24 : JSL AddInventory : PLY
|
||||||
JSL HUD_RebuildLong
|
JSL HUD_RebuildLong
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
PLX
|
PLX
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -106,7 +106,7 @@ IncrementSmallKeysNoPrimary:
|
|||||||
++
|
++
|
||||||
PLP
|
PLP
|
||||||
+
|
+
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
JSL HUD_RebuildLong
|
JSL HUD_RebuildLong
|
||||||
PLX
|
PLX
|
||||||
RTL
|
RTL
|
||||||
@@ -330,15 +330,15 @@ StatsFinalPrep:
|
|||||||
INC : STA.l StatsLocked
|
INC : STA.l StatsLocked
|
||||||
|
|
||||||
JSL IncrementFinalSword
|
JSL IncrementFinalSword
|
||||||
|
|
||||||
LDA.l HighestMail : INC : STA.l HighestMail ; add green mail to mail count
|
LDA.l HighestMail : INC : STA.l HighestMail ; add green mail to mail count
|
||||||
|
LDA.l Aga2Duck : BEQ .ramPostOnly
|
||||||
LDA.l ScreenTransitions : DEC : STA.l ScreenTransitions ; remove extra transition from exiting gtower via duck
|
LDA.l ScreenTransitions : DEC : STA.l ScreenTransitions ; remove extra transition from exiting gtower via duck
|
||||||
|
|
||||||
.ramPostOnly
|
.ramPostOnly
|
||||||
LDA.l SwordBossKills : LSR #4 : !ADD.l SwordBossKills : STA.l BossKills
|
LDA.l SwordBossKills : LSR #4 : !ADD.l SwordBossKills : STA.l BossKills
|
||||||
LDA.l SwordBossKills+1 : LSR #4 : !ADD.l SwordBossKills+1 : !ADD.l BossKills : AND.b #$0F : STA.l BossKills
|
LDA.l SwordBossKills+1 : LSR #4 : !ADD.l SwordBossKills+1 : !ADD.l BossKills : AND.b #$0F : STA.l BossKills
|
||||||
|
|
||||||
LDA.l NMIFrames : !SUB.l LoopFrames : STA.l LagTime
|
LDA.l NMIFrames : !SUB.l LoopFrames : STA.l LagTime
|
||||||
LDA.l NMIFrames+1 : SBC.l LoopFrames+1 : STA.l LagTime+1
|
LDA.l NMIFrames+1 : SBC.l LoopFrames+1 : STA.l LagTime+1
|
||||||
LDA.l NMIFrames+2 : SBC.l LoopFrames+2 : STA.l LagTime+2
|
LDA.l NMIFrames+2 : SBC.l LoopFrames+2 : STA.l LagTime+2
|
||||||
@@ -356,7 +356,3 @@ StatsFinalPrep:
|
|||||||
STZ.b GameSubMode
|
STZ.b GameSubMode
|
||||||
STZ.b SubSubModule
|
STZ.b SubSubModule
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
; Notes:
|
|
||||||
; s&q counter
|
|
||||||
;================================================================================
|
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ db 2, 55
|
|||||||
db $5F, $6B, $68, $68, $61, $5F, $70, $65, $6B, $6A, $9F, $6E, $5D, $70, $61 ; "Collection Rate"
|
db $5F, $6B, $68, $68, $61, $5F, $70, $65, $6B, $6A, $9F, $6E, $5D, $70, $61 ; "Collection Rate"
|
||||||
db $9F, $9F, $9F, $9F, $9F, $9F, $9F, $9F ; " " 8 spaces
|
db $9F, $9F, $9F, $9F, $9F, $9F, $9F, $9F ; " " 8 spaces
|
||||||
print "Collection Rate High Start: ", pc
|
print "Collection Rate High Start: ", pc
|
||||||
|
warnpc $A38055
|
||||||
db $9F, $DB ; " /"
|
db $9F, $DB ; " /"
|
||||||
db $55, $54, $59 ; 216
|
db $55, $54, $59 ; 216
|
||||||
|
|
||||||
@@ -26,9 +27,48 @@ db 2, 55
|
|||||||
db $85, $91, $8E, $8E, $87, $85, $96, $8B, $91, $90, $9F, $94, $83, $96, $87 ; "Collection Rate"
|
db $85, $91, $8E, $8E, $87, $85, $96, $8B, $91, $90, $9F, $94, $83, $96, $87 ; "Collection Rate"
|
||||||
db $9F, $9F, $9F, $9F, $9F, $9F, $9F, $9F ; " " 8 spaces
|
db $9F, $9F, $9F, $9F, $9F, $9F, $9F, $9F ; " " 8 spaces
|
||||||
print "Collection Rate Low Start: ", pc
|
print "Collection Rate Low Start: ", pc
|
||||||
|
warnpc $A38073
|
||||||
db $9F, $EE ; " /"
|
db $9F, $EE ; " /"
|
||||||
db $7B, $7A, $7F ; 216
|
db $7B, $7A, $7F ; 216
|
||||||
|
|
||||||
|
!FEATURE_PATREON_SUPPORTERS ?= 0
|
||||||
|
|
||||||
|
table "data/creditscharmapbighi.txt"
|
||||||
|
PatronCredit1Hi:
|
||||||
|
db 2
|
||||||
|
db 55
|
||||||
|
db " " ; $23803E
|
||||||
|
|
||||||
|
table "data/creditscharmapbiglo.txt"
|
||||||
|
PatronCredit1Lo:
|
||||||
|
db 2
|
||||||
|
db 55
|
||||||
|
db " " ; $23805C
|
||||||
|
|
||||||
|
table "data/creditscharmapbighi.txt"
|
||||||
|
PatronCredit2Hi:
|
||||||
|
db 2
|
||||||
|
db 55
|
||||||
|
db " " ; $23807A
|
||||||
|
|
||||||
|
table "data/creditscharmapbiglo.txt"
|
||||||
|
PatronCredit2Lo:
|
||||||
|
db 2
|
||||||
|
db 55
|
||||||
|
db " " ; $238098
|
||||||
|
|
||||||
|
table "data/creditscharmapbighi.txt"
|
||||||
|
PatronCredit3Hi:
|
||||||
|
db 2
|
||||||
|
db 55
|
||||||
|
db " " ; $2380B6
|
||||||
|
|
||||||
|
table "data/creditscharmapbiglo.txt"
|
||||||
|
PatronCredit3Lo:
|
||||||
|
db 2
|
||||||
|
db 55
|
||||||
|
db " " ; $2380D4
|
||||||
|
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
|
|
||||||
CreditsLineTable:
|
CreditsLineTable:
|
||||||
@@ -522,6 +562,24 @@ CreditsLineBlank:
|
|||||||
%blankline()
|
%blankline()
|
||||||
%blankline()
|
%blankline()
|
||||||
|
|
||||||
|
if !FEATURE_PATREON_SUPPORTERS
|
||||||
|
%smallcredits("PATREON SUPPORTERS", "yellow")
|
||||||
|
|
||||||
|
%addarbline(PatronCredit1Hi)
|
||||||
|
%addarbline(PatronCredit1Lo)
|
||||||
|
|
||||||
|
%blankline()
|
||||||
|
%addarbline(PatronCredit2Hi)
|
||||||
|
%addarbline(PatronCredit2Lo)
|
||||||
|
|
||||||
|
%blankline()
|
||||||
|
%addarbline(PatronCredit3Hi)
|
||||||
|
%addarbline(PatronCredit3Lo)
|
||||||
|
|
||||||
|
%blankline()
|
||||||
|
%blankline()
|
||||||
|
endif
|
||||||
|
|
||||||
%smallcredits("SPECIAL THANKS", "red")
|
%smallcredits("SPECIAL THANKS", "red")
|
||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
@@ -550,7 +608,7 @@ CreditsLineBlank:
|
|||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
|
|
||||||
%bigcredits("AND&")
|
%bigcredits("AND")
|
||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
|
|
||||||
@@ -573,17 +631,20 @@ CreditsLineBlank:
|
|||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
if !FEATURE_PATREON_SUPPORTERS == 0
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
|
%emptyline()
|
||||||
|
%emptyline()
|
||||||
|
endif
|
||||||
|
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ CreditsStats:
|
|||||||
%AddStat(MenuFrames, 1, 8, 32, 4, !TOTAL_MENU_TIME_X, !TOTAL_MENU_TIME_Y)
|
%AddStat(MenuFrames, 1, 8, 32, 4, !TOTAL_MENU_TIME_X, !TOTAL_MENU_TIME_Y)
|
||||||
%AddStat(LagTime, 1, 0, 32, 4, !TOTAL_LAG_TIME_X, !TOTAL_LAG_TIME_Y)
|
%AddStat(LagTime, 1, 0, 32, 4, !TOTAL_LAG_TIME_X, !TOTAL_LAG_TIME_Y)
|
||||||
print "Collection Rate config: ", pc
|
print "Collection Rate config: ", pc
|
||||||
|
warnpc $A39864
|
||||||
%AddStat(TotalItemCounter, 0, 0, 16, 3, !COLLECTION_RATE_X, !COLLECTION_RATE_Y)
|
%AddStat(TotalItemCounter, 0, 0, 16, 3, !COLLECTION_RATE_X, !COLLECTION_RATE_Y)
|
||||||
%AddStat(NMIFrames, 1, 0, 32, 4, !TOTAL_TIME_X, !TOTAL_TIME_Y)
|
%AddStat(NMIFrames, 1, 0, 32, 4, !TOTAL_TIME_X, !TOTAL_TIME_Y)
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ LoadModifiedArmorLevel:
|
|||||||
CMP.b #$03 : !BLT + : LDA.b #$02 : +
|
CMP.b #$03 : !BLT + : LDA.b #$02 : +
|
||||||
STA.l ScratchBufferV
|
STA.l ScratchBufferV
|
||||||
PLA
|
PLA
|
||||||
!ADD.w ScratchBufferV
|
!ADD.l ScratchBufferV
|
||||||
RTL
|
RTL
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; MagicConsumption - Magic Inventory
|
; MagicConsumption - Magic Inventory
|
||||||
|
|||||||
45
timer.asm
45
timer.asm
@@ -36,12 +36,12 @@ endmacro
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CalculateTimer:
|
CalculateTimer:
|
||||||
LDA.w #$0000
|
LDA.w #$0000
|
||||||
STA.w ClockHours ; clear digit storage
|
STA.l ClockHours ; clear digit storage
|
||||||
STA.w ClockHours+2
|
STA.l ClockHours+2
|
||||||
STA.w ClockMinutes
|
STA.l ClockMinutes
|
||||||
STA.w ClockMinutes+2
|
STA.l ClockMinutes+2
|
||||||
STA.w ClockSeconds
|
STA.l ClockSeconds
|
||||||
STA.w ClockSeconds+2
|
STA.l ClockSeconds+2
|
||||||
|
|
||||||
LDA.l TimerStyle : AND.w #$00FF : CMP.w #$0002 : BNE + ; Stopwatch Mode
|
LDA.l TimerStyle : AND.w #$00FF : CMP.w #$0002 : BNE + ; Stopwatch Mode
|
||||||
%Sub32(NMIFrames,ChallengeTimer,ClockBuffer)
|
%Sub32(NMIFrames,ChallengeTimer,ClockBuffer)
|
||||||
@@ -57,8 +57,8 @@ CalculateTimer:
|
|||||||
LDA.l NMIFrames+2 : STA.l ChallengeTimer+2
|
LDA.l NMIFrames+2 : STA.l ChallengeTimer+2
|
||||||
RTS
|
RTS
|
||||||
++ CMP.w #$0001 : BNE ++ ; Negative Time
|
++ CMP.w #$0001 : BNE ++ ; Negative Time
|
||||||
LDA.w ClockBuffer : EOR.w #$FFFF : !ADD.w #$0001 : STA.w ClockBuffer
|
LDA.l ClockBuffer : EOR.w #$FFFF : !ADD.w #$0001 : STA.l ClockBuffer
|
||||||
LDA.w ClockBuffer+2 : EOR.w #$FFFF : ADC.w #$0000 : STA.w ClockBuffer+2
|
LDA.l ClockBuffer+2 : EOR.w #$FFFF : ADC.w #$0000 : STA.l ClockBuffer+2
|
||||||
LDA.w #$0001 : STA.l ClockStatus ; Set Negative Mode
|
LDA.w #$0001 : STA.l ClockStatus ; Set Negative Mode
|
||||||
BRA .prepDigits
|
BRA .prepDigits
|
||||||
++ CMP.w #$0002 : BNE ++ ; OHKO
|
++ CMP.w #$0002 : BNE ++ ; OHKO
|
||||||
@@ -92,12 +92,12 @@ CalculateTimer:
|
|||||||
%Sub32(ClockBuffer,.second,ClockBuffer) : BRA -
|
%Sub32(ClockBuffer,.second,ClockBuffer) : BRA -
|
||||||
+
|
+
|
||||||
|
|
||||||
LDA.w ClockHours : !ADD.w #$2490 : STA.w ClockHours ; convert decimal values to tiles
|
LDA.l ClockHours : !ADD.w #$2490 : STA.l ClockHours ; convert decimal values to tiles
|
||||||
LDA.w ClockHours+2 : !ADD.w #$2490 : STA.w ClockHours+2
|
LDA.l ClockHours+2 : !ADD.w #$2490 : STA.l ClockHours+2
|
||||||
LDA.w ClockMinutes : !ADD.w #$2490 : STA.w ClockMinutes
|
LDA.l ClockMinutes : !ADD.w #$2490 : STA.l ClockMinutes
|
||||||
LDA.w ClockMinutes+2 : !ADD.w #$2490 : STA.w ClockMinutes+2
|
LDA.l ClockMinutes+2 : !ADD.w #$2490 : STA.l ClockMinutes+2
|
||||||
LDA.w ClockSeconds : !ADD.w #$2490 : STA.w ClockSeconds
|
LDA.l ClockSeconds : !ADD.w #$2490 : STA.l ClockSeconds
|
||||||
LDA.w ClockSeconds+2 : !ADD.w #$2490 : STA.w ClockSeconds+2
|
LDA.l ClockSeconds+2 : !ADD.w #$2490 : STA.l ClockSeconds+2
|
||||||
RTS
|
RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
.hour
|
.hour
|
||||||
@@ -148,14 +148,14 @@ DrawChallengeTimer:
|
|||||||
BRA ++
|
BRA ++
|
||||||
+ ; Show Timer
|
+ ; Show Timer
|
||||||
LDA.l ClockStatus : AND.w #$0001 : !ADD.w #$2804 : STA.l HUDTileMapBuffer+$94
|
LDA.l ClockStatus : AND.w #$0001 : !ADD.w #$2804 : STA.l HUDTileMapBuffer+$94
|
||||||
LDA.w ClockHours+2 : STA.l HUDTileMapBuffer+$96
|
LDA.l ClockHours+2 : STA.l HUDTileMapBuffer+$96
|
||||||
LDA.w ClockHours : STA.l HUDTileMapBuffer+$98
|
LDA.l ClockHours : STA.l HUDTileMapBuffer+$98
|
||||||
LDA.w #$2806 : STA.l HUDTileMapBuffer+$9A
|
LDA.w #$2806 : STA.l HUDTileMapBuffer+$9A
|
||||||
LDA.w ClockMinutes+2 : STA.l HUDTileMapBuffer+$9C
|
LDA.l ClockMinutes+2 : STA.l HUDTileMapBuffer+$9C
|
||||||
LDA.w ClockMinutes : STA.l HUDTileMapBuffer+$9E
|
LDA.l ClockMinutes : STA.l HUDTileMapBuffer+$9E
|
||||||
LDA.w #$2806 : STA.l HUDTileMapBuffer+$A0
|
LDA.w #$2806 : STA.l HUDTileMapBuffer+$A0
|
||||||
LDA.w ClockSeconds+2 : STA.l HUDTileMapBuffer+$A2
|
LDA.l ClockSeconds+2 : STA.l HUDTileMapBuffer+$A2
|
||||||
LDA.w ClockSeconds : STA.l HUDTileMapBuffer+$A4
|
LDA.l ClockSeconds : STA.l HUDTileMapBuffer+$A4
|
||||||
++
|
++
|
||||||
LDA.b FrameCounter : AND.w #$001F : BNE + : JSR CalculateTimer : +
|
LDA.b FrameCounter : AND.w #$001F : BNE + : JSR CalculateTimer : +
|
||||||
|
|
||||||
@@ -174,12 +174,11 @@ RTL
|
|||||||
CheckOHKO:
|
CheckOHKO:
|
||||||
SEP #$20
|
SEP #$20
|
||||||
LDA.l OHKOFlag : CMP.l OHKOCached : BNE .change
|
LDA.l OHKOFlag : CMP.l OHKOCached : BNE .change
|
||||||
REP #$20
|
REP #$21
|
||||||
CLC
|
|
||||||
RTS
|
RTS
|
||||||
.change
|
.change
|
||||||
STA.l OHKOCached
|
STA.l OHKOCached
|
||||||
INC.w UpdateHUDFlag
|
LDA.b #$01 : STA.l UpdateHUDFlag
|
||||||
REP #$20
|
REP #$20
|
||||||
SEC
|
SEC
|
||||||
RTS
|
RTS
|
||||||
|
|||||||
@@ -4,8 +4,9 @@
|
|||||||
; in: X(w) - Length in Tiles
|
; in: X(w) - Length in Tiles
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DoToast:
|
DoToast:
|
||||||
PHY : PHP
|
PHY : PHP : PHA
|
||||||
LDY.w ToastBuffer
|
LDA.l ToastBuffer : TAY
|
||||||
|
PLA
|
||||||
JSL WriteVRAMBlock
|
JSL WriteVRAMBlock
|
||||||
PLP : PLY
|
PLP : PLY
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
Reference in New Issue
Block a user