Merge branch 'main' into kara
This commit is contained in:
@@ -55,7 +55,7 @@ db #$20, #$19, #$08, #$31 ; year/month/day
|
|||||||
!SRAM_SINK = "$7EF41E" ; <- change this (conflicts with Programmable item 3)
|
!SRAM_SINK = "$7EF41E" ; <- change this (conflicts with Programmable item 3)
|
||||||
;$7EF418 - Goal Item Counter
|
;$7EF418 - Goal Item Counter
|
||||||
;$7EF419 - Service Sequence
|
;$7EF419 - Service Sequence
|
||||||
;$7EF420 - $7EF466 - Stat Tracking Bank 1 (overlaps with RNG Item Flags)
|
;$7EF420 - $7EF468 - Stat Tracking Bank 1 (overlaps with RNG Item Flags)
|
||||||
;$7EF450 - $7EF45F - RNG Item (Single) Flags
|
;$7EF450 - $7EF45F - RNG Item (Single) Flags
|
||||||
;$7EF4A0 - $7EF4A7 - Service Request Block
|
;$7EF4A0 - $7EF4A7 - Service Request Block
|
||||||
!PROGRESSIVE_BOMBS = "$7EF4A8"
|
!PROGRESSIVE_BOMBS = "$7EF4A8"
|
||||||
@@ -92,6 +92,9 @@ db #$20, #$19, #$08, #$31 ; year/month/day
|
|||||||
;!REG_MUSIC_CONTROL = $012C
|
;!REG_MUSIC_CONTROL = $012C
|
||||||
!REG_MUSIC_CONTROL_REQUEST = $012C
|
!REG_MUSIC_CONTROL_REQUEST = $012C
|
||||||
|
|
||||||
|
!ONEMIND_ID = $7F5072
|
||||||
|
!ONEMIND_TIMER = $7F5073
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|
||||||
incsrc hooks.asm
|
incsrc hooks.asm
|
||||||
@@ -183,7 +186,7 @@ incsrc endingsequence.asm
|
|||||||
incsrc cuccostorm.asm
|
incsrc cuccostorm.asm
|
||||||
incsrc compression.asm
|
incsrc compression.asm
|
||||||
incsrc retro.asm
|
incsrc retro.asm
|
||||||
incsrc dpadinvert.asm
|
incsrc controllerjank.asm
|
||||||
incsrc boots.asm
|
incsrc boots.asm
|
||||||
incsrc events.asm
|
incsrc events.asm
|
||||||
incsrc fileselect.asm
|
incsrc fileselect.asm
|
||||||
@@ -578,6 +581,9 @@ AddDashTremor:
|
|||||||
org $099D04
|
org $099D04
|
||||||
AddAncillaLong:
|
AddAncillaLong:
|
||||||
|
|
||||||
|
org $099D1A
|
||||||
|
Ancilla_CheckIfAlreadyExistsLong:
|
||||||
|
|
||||||
org $09AE64
|
org $09AE64
|
||||||
Sprite_SetSpawnedCoords:
|
Sprite_SetSpawnedCoords:
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,31 @@
|
|||||||
; Filtered Joypad 1 Register: [AXLR | ????]
|
; Filtered Joypad 1 Register: [AXLR | ????]
|
||||||
; Filtered Joypad 1 Register: [BYST | udlr] [AXLR | ????]
|
; Filtered Joypad 1 Register: [BYST | udlr] [AXLR | ????]
|
||||||
!INVERT_DPAD = "$7F50CB"
|
!INVERT_DPAD = "$7F50CB"
|
||||||
|
|
||||||
InvertDPad:
|
InvertDPad:
|
||||||
LDA !INVERT_DPAD : BNE + : JMP .normal : +
|
LDA.l OneMindPlayerCount : BEQ .crowd_control
|
||||||
DEC : BEQ .dpadOnly
|
|
||||||
|
LDA.l !ONEMIND_ID
|
||||||
|
AND.b #$03
|
||||||
|
TAX
|
||||||
|
LDA.l .onemind_controller_offset, X
|
||||||
|
TAX
|
||||||
|
|
||||||
|
LDA.w $4218,X : STA.w $00
|
||||||
|
LDA.w $4219,X : STA.w $01
|
||||||
|
|
||||||
|
LDA #$80 : STA $4201 ; reset this so latch can read it, otherwise RNG breaks
|
||||||
|
|
||||||
|
JML.l InvertDPadReturn
|
||||||
|
|
||||||
|
.crowd_control
|
||||||
|
LDA !INVERT_DPAD : BNE +
|
||||||
|
|
||||||
|
LDA $4218 : STA $00
|
||||||
|
LDA $4219 : STA $01
|
||||||
|
JML.l InvertDPadReturn
|
||||||
|
|
||||||
|
+ DEC : BEQ .dpadOnly
|
||||||
DEC : BEQ .buttonsOnly
|
DEC : BEQ .buttonsOnly
|
||||||
DEC : BEQ .invertBoth
|
DEC : BEQ .invertBoth
|
||||||
.swapSides
|
.swapSides
|
||||||
@@ -45,8 +67,61 @@ JML.l InvertDPadReturn
|
|||||||
BIT.b #$03 : BEQ + : EOR.b #$03 : + ; swap left/right
|
BIT.b #$03 : BEQ + : EOR.b #$03 : + ; swap left/right
|
||||||
STA $01
|
STA $01
|
||||||
JML.l InvertDPadReturn
|
JML.l InvertDPadReturn
|
||||||
.normal
|
|
||||||
LDA $4218 : STA $00
|
.onemind_controller_offset
|
||||||
LDA $4219 : STA $01
|
db 0 ; player 0 - $4218 - joy1d1
|
||||||
JML.l InvertDPadReturn
|
db 0 ; player 1 - $4218 - joy1d1
|
||||||
|
db 2 ; player 2 - $421A - joy2d1
|
||||||
|
db 6 ; player 3 - $421E - joy2d2
|
||||||
|
db 2 ; player 4 - $421A - joy2d1
|
||||||
|
db 6 ; player 5 - $421E - joy2d2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
HandleOneMindController:
|
||||||
|
LDA.l OneMindPlayerCount
|
||||||
|
BEQ .no_onemind
|
||||||
|
|
||||||
|
REP #$20
|
||||||
|
|
||||||
|
LDA.l !ONEMIND_TIMER
|
||||||
|
DEC
|
||||||
|
BPL .no_switch
|
||||||
|
|
||||||
|
SEP #$20
|
||||||
|
LDA.l !ONEMIND_ID
|
||||||
|
INC
|
||||||
|
CMP.l OneMindPlayerCount
|
||||||
|
BCC .no_wrap
|
||||||
|
|
||||||
|
LDA.b #$01 ; reset to player 1
|
||||||
|
|
||||||
|
.no_wrap
|
||||||
|
STA.l !ONEMIND_ID
|
||||||
|
|
||||||
|
REP #$20
|
||||||
|
LDA.l OneMindTimer
|
||||||
|
|
||||||
|
.no_switch
|
||||||
|
STA.l !ONEMIND_TIMER
|
||||||
|
|
||||||
|
SEP #$20
|
||||||
|
LDA.l !ONEMIND_ID
|
||||||
|
|
||||||
|
CMP.b #$04 ; is it player 4 or 5?
|
||||||
|
BCC .no_multitap_switch
|
||||||
|
|
||||||
|
STZ.w $4201
|
||||||
|
|
||||||
|
.no_multitap_switch
|
||||||
|
|
||||||
|
.no_onemind
|
||||||
|
STZ.b $12
|
||||||
|
|
||||||
|
JML $008034 ; reset frame loop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
10
events.asm
10
events.asm
@@ -55,13 +55,16 @@ OnQuit:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OnUncleItemGet:
|
OnUncleItemGet:
|
||||||
JSL Link_ReceiveItem
|
PHA
|
||||||
|
|
||||||
LDA.l EscapeAssist
|
LDA.l EscapeAssist
|
||||||
BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : +
|
BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : +
|
||||||
BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : +
|
BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : +
|
||||||
BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : +
|
BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : +
|
||||||
|
|
||||||
|
PLA
|
||||||
|
JSL Link_ReceiveItem
|
||||||
|
|
||||||
LDA.l UncleRefill : BIT.b #$04 : BEQ + : LDA.b #$80 : STA $7EF373 : + ; refill magic
|
LDA.l UncleRefill : BIT.b #$04 : BEQ + : LDA.b #$80 : STA $7EF373 : + ; refill magic
|
||||||
LDA.l UncleRefill : BIT.b #$02 : BEQ + : LDA.b #50 : STA $7EF375 : + ; refill bombs
|
LDA.l UncleRefill : BIT.b #$02 : BEQ + : LDA.b #50 : STA $7EF375 : + ; refill bombs
|
||||||
LDA.l UncleRefill : BIT.b #$01 : BEQ + ; refill arrows
|
LDA.l UncleRefill : BIT.b #$01 : BEQ + ; refill arrows
|
||||||
@@ -234,6 +237,11 @@ PostItemAnimation:
|
|||||||
LDA.b #$00 : STA $7F509F
|
LDA.b #$00 : STA $7F509F
|
||||||
+
|
+
|
||||||
|
|
||||||
|
LDA.w $02E9 : CMP.b #$01 : BNE +
|
||||||
|
LDA.b $2F : BEQ +
|
||||||
|
JSL.l IncrementChestTurnCounter
|
||||||
|
+
|
||||||
|
|
||||||
STZ $02E9 : LDA $0C5E, X ; thing we wrote over to get here
|
STZ $02E9 : LDA $0C5E, X ; thing we wrote over to get here
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
30
hooks.asm
30
hooks.asm
@@ -14,6 +14,8 @@ dl Init_PostRAMClear
|
|||||||
org $008056 ; <- 56 - Bank00.asm : 77
|
org $008056 ; <- 56 - Bank00.asm : 77
|
||||||
JSL.l FrameHookAction
|
JSL.l FrameHookAction
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
org $00805D
|
||||||
|
JML HandleOneMindController
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; NMI Hook
|
; NMI Hook
|
||||||
@@ -48,8 +50,8 @@ ReturnCheckZSNES:
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;org $0083D9 ; <- 3D9 - Bank00.asm : 611 (LDA $4219 : STA $01)
|
;org $0083D9 ; <- 3D9 - Bank00.asm : 611 (LDA $4219 : STA $01)
|
||||||
;JSL.l InvertDPad : NOP
|
;JSL.l InvertDPad : NOP
|
||||||
org $0083D4 ; <- 3D4 - Bank00.asm : 610 (LDA $4218 : STA $00)
|
org $0083D1 ; <- 3D1 - Bank00.asm (STZ.w JOYPAD - useless instruction here)
|
||||||
JML.l InvertDPad : SKIP 6
|
JML.l InvertDPad : SKIP 9
|
||||||
InvertDPadReturn:
|
InvertDPadReturn:
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -319,17 +321,14 @@ JSL.l LoadBombCount16
|
|||||||
org $0DDEB3 ; <- 6DEB3 - equipment.asm : 328 (LDA $7EF33F, X)
|
org $0DDEB3 ; <- 6DEB3 - equipment.asm : 328 (LDA $7EF33F, X)
|
||||||
JSL.l IsItemAvailable
|
JSL.l IsItemAvailable
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $0DDDE6 ; <- 6DDE6 - equipment.asm : 146 (LDX.b #$12 ...)
|
org $0DDDE8 ; <- 6DDE8 - equipment.asm : 148 (LDA $7EF340)
|
||||||
JSL.l HaveAnyItems
|
JSL.l SearchForEquippedItem
|
||||||
BRA + : NOP #7 : +
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $0DDE6E ; <- 6DE6E - equipment.asm : 271 (LDX.b #$12 ...)
|
org $0DDE70 ; <- 6DE70 - equipment.asm : 273 (LDA $7EF340)
|
||||||
JSL.l HaveAnyItems
|
JSL.l SearchForEquippedItem
|
||||||
BRA + : NOP #7 : +
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $0DE39B ; <- 6E39B - equipment.asm : 1107 (LDX.b #$12 ...)
|
org $0DE39D ; <- 6E39D - equipment.asm : 1109 (LDA $7EF340)
|
||||||
JSL.l HaveAnyItems
|
JSL.l SearchForEquippedItem
|
||||||
BRA + : NOP #7 : +
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
@@ -2651,6 +2650,15 @@ JSL FastCreditsCutsceneTimer
|
|||||||
org $0EE773
|
org $0EE773
|
||||||
JSL FastTextScroll : NOP
|
JSL FastTextScroll : NOP
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
org $01FFEE : JSL IncrementDamageTakenCounter_Eight ; overworld pit
|
||||||
|
org $079506 : JSL IncrementDamageTakenCounter_Eight ; underworld pit
|
||||||
|
|
||||||
|
org $0780C6 : JSL IncrementDamageTakenCounter_Arb
|
||||||
|
|
||||||
|
org $07B0B1 : JSL IncrementMagicUseCounter
|
||||||
|
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Bomb-Only Mode
|
; Bomb-Only Mode
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
5
init.asm
5
init.asm
@@ -41,7 +41,12 @@ Init_Primary:
|
|||||||
CPX #$15 : !BLT -
|
CPX #$15 : !BLT -
|
||||||
.done
|
.done
|
||||||
|
|
||||||
|
REP #$20
|
||||||
|
LDA.l OneMindTimer : STA.l !ONEMIND_TIMER
|
||||||
|
SEP #$20
|
||||||
|
|
||||||
LDA.b #$01 : STA $420D ; enable fastrom access on upper banks
|
LDA.b #$01 : STA $420D ; enable fastrom access on upper banks
|
||||||
|
STA.l !ONEMIND_ID
|
||||||
|
|
||||||
LDA.b #$10 : STA $BC ; set default player sprite bank
|
LDA.b #$10 : STA $BC ; set default player sprite bank
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
; -
|
; -
|
||||||
; -
|
; -
|
||||||
; -
|
; -
|
||||||
; -
|
; q = quickswap lock
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; ProcessMenuButtons:
|
; ProcessMenuButtons:
|
||||||
; out: Carry - 0 = No Button, 1 = Yes Button
|
; out: Carry - 0 = No Button, 1 = Yes Button
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ QuickSwap:
|
|||||||
BRA .store
|
BRA .store
|
||||||
|
|
||||||
.special_swap
|
.special_swap
|
||||||
|
LDA !INVENTORY_SWAP_2 : ORA #$01 : STA !INVENTORY_SWAP_2
|
||||||
CPX.b #$02 : BEQ + ; boomerang
|
CPX.b #$02 : BEQ + ; boomerang
|
||||||
CPX.b #$01 : BEQ + ; bow
|
CPX.b #$01 : BEQ + ; bow
|
||||||
CPX.b #$05 : BEQ + ; powder
|
CPX.b #$05 : BEQ + ; powder
|
||||||
@@ -47,22 +48,14 @@ QuickSwap:
|
|||||||
LDA.b $F6 : AND.b #$40 ;what we wrote over
|
LDA.b $F6 : AND.b #$40 ;what we wrote over
|
||||||
RTL
|
RTL
|
||||||
RCode:
|
RCode:
|
||||||
LDA.w $0202 : TAX
|
LDX.w $0202
|
||||||
|
LDA.b $F2 : BIT #$20 : BNE ++ ; Still holding L from a previous frame
|
||||||
|
LDA !INVENTORY_SWAP_2 : AND #$FE : STA !INVENTORY_SWAP_2
|
||||||
|
BRA +
|
||||||
|
++
|
||||||
|
LDA !INVENTORY_SWAP_2 : BIT #$01 : BEQ +
|
||||||
|
RTS
|
||||||
-
|
-
|
||||||
; CPX.b #$0F : BNE + ; incrementing into bottle
|
|
||||||
; LDX.b #$00 : BRA ++
|
|
||||||
; + CPX.b #$10 : BNE + ; incrementing bottle
|
|
||||||
; LDA.l $7EF34F : TAX
|
|
||||||
; -- : ++
|
|
||||||
; CPX.b #$04 : BEQ .noMoreBottles
|
|
||||||
; INX
|
|
||||||
; LDA.l $7EF35B,X : BEQ --
|
|
||||||
; TXA : STA.l $7EF34F
|
|
||||||
; LDX #$10
|
|
||||||
; RTS
|
|
||||||
; .noMoreBottles
|
|
||||||
; LDX #$11
|
|
||||||
; BRA .nextItem
|
|
||||||
+ CPX.b #$14 : BNE + : LDX.b #$00 ;will wrap around to 1
|
+ CPX.b #$14 : BNE + : LDX.b #$00 ;will wrap around to 1
|
||||||
+ INX
|
+ INX
|
||||||
.nextItem
|
.nextItem
|
||||||
@@ -70,21 +63,14 @@ RCode:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
LCode:
|
LCode:
|
||||||
LDA.w $0202 : TAX
|
LDX.w $0202
|
||||||
|
LDA.b $F2 : BIT #$10 : BNE ++ ; Still holding R from a previous frame
|
||||||
|
LDA !INVENTORY_SWAP_2 : AND #$FE : STA !INVENTORY_SWAP_2
|
||||||
|
BRA +
|
||||||
|
++
|
||||||
|
LDA !INVENTORY_SWAP_2 : BIT #$01 : BEQ +
|
||||||
|
RTS
|
||||||
-
|
-
|
||||||
; CPX.b #$11 : BNE + ; decrementing into bottle
|
|
||||||
; LDX.b #$05 : BRA ++
|
|
||||||
; + CPX.b #$10 : BNE + ; decrementing bottle
|
|
||||||
; LDA.l $7EF34F : TAX
|
|
||||||
; -- : ++
|
|
||||||
; CPX.b #$01 : BEQ .noMoreBottles
|
|
||||||
; DEX
|
|
||||||
; LDA.l $7EF35B,X : BEQ --
|
|
||||||
; TXA : STA.l $7EF34F
|
|
||||||
; LDX.b #$10
|
|
||||||
; RTS
|
|
||||||
; .noMoreBottles
|
|
||||||
; LDX.b #$0F : BRA .nextItem
|
|
||||||
+ CPX.b #$01 : BNE + : LDX.b #$15 ; will wrap around to $14
|
+ CPX.b #$01 : BNE + : LDX.b #$15 ; will wrap around to $14
|
||||||
+ DEX
|
+ DEX
|
||||||
.nextItem
|
.nextItem
|
||||||
|
|||||||
10
retro.asm
10
retro.asm
@@ -26,11 +26,11 @@ StoreBombCount:
|
|||||||
.finite
|
.finite
|
||||||
PLA : STA $7EF343
|
PLA : STA $7EF343
|
||||||
RTL
|
RTL
|
||||||
HaveAnyItems:
|
SearchForEquippedItem:
|
||||||
LDX #$13
|
LDA !INFINITE_BOMBS : BEQ +
|
||||||
LDA !INFINITE_BOMBS
|
LDA.b #$01 : LDX.b #$00 : RTL
|
||||||
.next_item
|
+
|
||||||
ORA $7EF340, X : DEX : BPL .next_item
|
LDA $7EF340 ; thing we wrote over
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
!INFINITE_ARROWS = "$7F50C8"
|
!INFINITE_ARROWS = "$7F50C8"
|
||||||
|
|||||||
61
stats.asm
61
stats.asm
@@ -1,7 +1,7 @@
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
; Stat Tracking
|
; Stat Tracking
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; $7EF420 - $7EF466 - Stat Tracking
|
; $7EF420 - $7EF468 - Stat Tracking
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; $7EF420 - bonk counter
|
; $7EF420 - bonk counter
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -137,18 +137,17 @@
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; $7EF466w[2] - mirror timestamp (high)
|
; $7EF466w[2] - mirror timestamp (high)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
; $7EF468 - chest turn counter
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
!LOCK_STATS = "$7EF443"
|
!LOCK_STATS = "$7EF443"
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
!BONK_COUNTER = "$7EF420"
|
!BONK_COUNTER = "$7EF420"
|
||||||
!BONK_REPEAT = "$7F503F"
|
|
||||||
!LOOP_FRAMES_LOW = "$7EF42E"
|
|
||||||
StatBonkCounter:
|
StatBonkCounter:
|
||||||
PHA
|
PHA
|
||||||
|
JSL Ancilla_CheckIfAlreadyExistsLong : BCS +
|
||||||
LDA !LOCK_STATS : BNE +
|
LDA !LOCK_STATS : BNE +
|
||||||
LDA !LOOP_FRAMES_LOW : !SUB !BONK_REPEAT : CMP #30 : !BLT +
|
|
||||||
LDA !LOOP_FRAMES_LOW : STA !BONK_REPEAT
|
|
||||||
LDA !BONK_COUNTER : INC
|
LDA !BONK_COUNTER : INC
|
||||||
CMP.b #100 : BEQ + ; decimal 100
|
CMP.b #100 : BEQ + ; decimal 100
|
||||||
STA !BONK_COUNTER
|
STA !BONK_COUNTER
|
||||||
@@ -267,7 +266,7 @@ CountChestKey: ; called by neighbor functions
|
|||||||
CPY #$24 : BEQ + ; small key for this dungeon - use $040C
|
CPY #$24 : BEQ + ; small key for this dungeon - use $040C
|
||||||
CPY #$A0 : !BLT .end ; Ignore most items
|
CPY #$A0 : !BLT .end ; Ignore most items
|
||||||
CPY #$AE : !BGE .end ; Ignore reserved key and generic key
|
CPY #$AE : !BGE .end ; Ignore reserved key and generic key
|
||||||
TYA : AND.B #$0F : BNE ++ ; If this is a sewers key, instead count it as an HC key
|
TYA : AND.B #$0F : BNE ++ ; If this is an HC key, instead count it as a sewers key
|
||||||
INC
|
INC
|
||||||
++ TAX : BRA .count ; use Key id instead of $040C (Keysanity)
|
++ TAX : BRA .count ; use Key id instead of $040C (Keysanity)
|
||||||
+ LDA $040C : LSR
|
+ LDA $040C : LSR
|
||||||
@@ -324,6 +323,15 @@ IncrementFairyRevivalCounter:
|
|||||||
PLA
|
PLA
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
!CHESTTURN_COUNTER = "$7EF468"
|
||||||
|
IncrementChestTurnCounter:
|
||||||
|
PHA
|
||||||
|
LDA !LOCK_STATS : BNE +
|
||||||
|
LDA !CHESTTURN_COUNTER : INC : STA !CHESTTURN_COUNTER
|
||||||
|
+
|
||||||
|
PLA
|
||||||
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
!CHEST_COUNTER = "$7EF442"
|
!CHEST_COUNTER = "$7EF442"
|
||||||
IncrementChestCounter:
|
IncrementChestCounter:
|
||||||
LDA.b #$01 : STA $02E9 ; thing we wrote over
|
LDA.b #$01 : STA $02E9 ; thing we wrote over
|
||||||
@@ -360,6 +368,47 @@ IncrementBigChestCounter:
|
|||||||
+
|
+
|
||||||
PLA
|
PLA
|
||||||
RTL
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
!DAMAGE_COUNTER = "$FFFFFF"
|
||||||
|
!MAGIC_COUNTER = "$FFFFFF"
|
||||||
|
IncrementDamageTakenCounter_Eight:
|
||||||
|
STA.l $7EF36D
|
||||||
|
PHA : PHP
|
||||||
|
LDA !LOCK_STATS : BNE +
|
||||||
|
REP #$21
|
||||||
|
LDA.l !DAMAGE_COUNTER
|
||||||
|
ADC.w #$0008
|
||||||
|
STA.l !DAMAGE_COUNTER
|
||||||
|
+ PLP
|
||||||
|
PLA
|
||||||
|
RTL
|
||||||
|
|
||||||
|
IncrementDamageTakenCounter_Arb:
|
||||||
|
PHP
|
||||||
|
LDA !LOCK_STATS : BNE +
|
||||||
|
REP #$21
|
||||||
|
LDA.b $00
|
||||||
|
AND.w #$00FF
|
||||||
|
ADC.l !DAMAGE_COUNTER
|
||||||
|
STA.l !DAMAGE_COUNTER
|
||||||
|
+ PLP
|
||||||
|
|
||||||
|
LDA.l $7EF36D
|
||||||
|
RTL
|
||||||
|
|
||||||
|
IncrementMagicUseCounter:
|
||||||
|
STA.l $7EF36E
|
||||||
|
PHA : PHP
|
||||||
|
LDA !LOCK_STATS : BNE +
|
||||||
|
REP #$21
|
||||||
|
LDA.b $00
|
||||||
|
AND.w #$00FF
|
||||||
|
ADC.l !MAGIC_COUNTER
|
||||||
|
STA.l !MAGIC_COUNTER
|
||||||
|
+ PLP : PLA
|
||||||
|
|
||||||
|
RTL
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
!OW_MIRROR_COUNTER = "$7EF43A"
|
!OW_MIRROR_COUNTER = "$7EF43A"
|
||||||
IncrementOWMirror:
|
IncrementOWMirror:
|
||||||
|
|||||||
@@ -643,6 +643,10 @@ endif
|
|||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
|
|
||||||
|
%bigcreditsleft("CHEST TURNS")
|
||||||
|
|
||||||
|
%blankline()
|
||||||
|
|
||||||
%bigcreditsleft("BONKS")
|
%bigcreditsleft("BONKS")
|
||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
@@ -683,9 +687,6 @@ endif
|
|||||||
|
|
||||||
%blankline()
|
%blankline()
|
||||||
|
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%emptyline()
|
%emptyline()
|
||||||
%bigcreditsleft("COLLECTION RATE /216")
|
%bigcreditsleft("COLLECTION RATE /216")
|
||||||
@@ -725,18 +726,20 @@ endif
|
|||||||
!GOLD_SWORD_Y = 339
|
!GOLD_SWORD_Y = 339
|
||||||
!GT_BIG_KEY_X = 23
|
!GT_BIG_KEY_X = 23
|
||||||
!GT_BIG_KEY_Y = 346
|
!GT_BIG_KEY_Y = 346
|
||||||
|
!CHEST_TURNS_X = 26
|
||||||
|
!CHEST_TURNS_Y = 349
|
||||||
!BONKS_X = 26
|
!BONKS_X = 26
|
||||||
!BONKS_Y = 349
|
!BONKS_Y = 352
|
||||||
!SAVE_AND_QUITS_X = 26
|
!SAVE_AND_QUITS_X = 26
|
||||||
!SAVE_AND_QUITS_Y = 352
|
!SAVE_AND_QUITS_Y = 355
|
||||||
!DEATHS_X = 26
|
!DEATHS_X = 26
|
||||||
!DEATHS_Y = 355
|
!DEATHS_Y = 358
|
||||||
!FAERIE_REVIVALS_X = 26
|
!FAERIE_REVIVALS_X = 26
|
||||||
!FAERIE_REVIVALS_Y = 358
|
!FAERIE_REVIVALS_Y = 361
|
||||||
!TOTAL_MENU_TIME_X = 19
|
!TOTAL_MENU_TIME_X = 19
|
||||||
!TOTAL_MENU_TIME_Y = 361
|
!TOTAL_MENU_TIME_Y = 364
|
||||||
!TOTAL_LAG_TIME_X = 19
|
!TOTAL_LAG_TIME_X = 19
|
||||||
!TOTAL_LAG_TIME_Y = 364
|
!TOTAL_LAG_TIME_Y = 367
|
||||||
!COLLECTION_RATE_X = 22
|
!COLLECTION_RATE_X = 22
|
||||||
!COLLECTION_RATE_Y = 380
|
!COLLECTION_RATE_Y = 380
|
||||||
!TOTAL_TIME_X = 19
|
!TOTAL_TIME_X = 19
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
%AddStat($7EF426, 0, 4, 04, 2, !TEMPERED_SWORD_X, !TEMPERED_SWORD_Y)
|
%AddStat($7EF426, 0, 4, 04, 2, !TEMPERED_SWORD_X, !TEMPERED_SWORD_Y)
|
||||||
%AddStat($7EF426, 0, 0, 04, 2, !GOLD_SWORD_X, !GOLD_SWORD_Y)
|
%AddStat($7EF426, 0, 0, 04, 2, !GOLD_SWORD_X, !GOLD_SWORD_Y)
|
||||||
%AddStat($7EF42A, 0, 0, 05, 2, !GT_BIG_KEY_X, !GT_BIG_KEY_Y)
|
%AddStat($7EF42A, 0, 0, 05, 2, !GT_BIG_KEY_X, !GT_BIG_KEY_Y)
|
||||||
|
%AddStat($7EF468, 0, 0, 08, 3, !CHEST_TURNS_X, !CHEST_TURNS_Y)
|
||||||
%AddStat($7EF420, 0, 0, 08, 3, !BONKS_X, !BONKS_Y)
|
%AddStat($7EF420, 0, 0, 08, 3, !BONKS_X, !BONKS_Y)
|
||||||
%AddStat($7EF42D, 0, 0, 08, 2, !SAVE_AND_QUITS_X, !SAVE_AND_QUITS_Y)
|
%AddStat($7EF42D, 0, 0, 08, 2, !SAVE_AND_QUITS_X, !SAVE_AND_QUITS_Y)
|
||||||
%AddStat($7EF449, 0, 0, 08, 2, !DEATHS_X, !DEATHS_Y)
|
%AddStat($7EF449, 0, 0, 08, 2, !DEATHS_X, !DEATHS_Y)
|
||||||
|
|||||||
17
tables.asm
17
tables.asm
@@ -423,7 +423,16 @@ db #$02 ; #$02 - 2 Bows (default)
|
|||||||
ProgressiveBowReplacement:
|
ProgressiveBowReplacement:
|
||||||
db #$47 ; #$47 - 20 Rupees (default)
|
db #$47 ; #$47 - 20 Rupees (default)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 0x18009A - 0x18009F (unused)
|
; 0x18009A - 0x18009C one mind
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
org $30809A ; PC 0x18009A
|
||||||
|
OneMindPlayerCount:
|
||||||
|
db 0
|
||||||
|
org $30809B ; PC 0x18009B - 0x18009C
|
||||||
|
OneMindTimer:
|
||||||
|
dw 0
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; 0x18009D - 0x18009F (unused)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $3080A0 ; PC 0x1800A0 - 0x1800A4
|
org $3080A0 ; PC 0x1800A0 - 0x1800A4
|
||||||
Bugfix_MirrorlessSQToLW:
|
Bugfix_MirrorlessSQToLW:
|
||||||
@@ -1489,7 +1498,7 @@ dw #9999 ; Rupee Limit
|
|||||||
; $7F503C - Stats Rupee Total
|
; $7F503C - Stats Rupee Total
|
||||||
; $7F503D - Stats Rupee Total
|
; $7F503D - Stats Rupee Total
|
||||||
; $7F503E - Stats Item Total
|
; $7F503E - Stats Item Total
|
||||||
; $7F503F - Bonk Repeat
|
; $7F503F - Unused
|
||||||
; $7F5040 - Free Item Dialog Temporary
|
; $7F5040 - Free Item Dialog Temporary
|
||||||
; $7F5041 - Epilepsy Safety Timer
|
; $7F5041 - Epilepsy Safety Timer
|
||||||
; $7F5042 - Tile Upload Offset Override (Low)
|
; $7F5042 - Tile Upload Offset Override (Low)
|
||||||
@@ -1499,7 +1508,9 @@ dw #9999 ; Rupee Limit
|
|||||||
; $7F5050 - $7F506F - Shop Block
|
; $7F5050 - $7F506F - Shop Block
|
||||||
; $7F5070 - Reserved for OneMind
|
; $7F5070 - Reserved for OneMind
|
||||||
; $7F5071 - Reserved for OneMind
|
; $7F5071 - Reserved for OneMind
|
||||||
; $7F5072 - $7F507D - Unused
|
; $7F5072 - OneMind player ID
|
||||||
|
; $7F5073 - $7F5074 - OneMind timer
|
||||||
|
; $7F5075 - $7F507D - Unused
|
||||||
; $7F507E - Clock Status
|
; $7F507E - Clock Status
|
||||||
; $7F507F - Always Zero
|
; $7F507F - Always Zero
|
||||||
; $7F5080 - $7F5083 - Clock Hours
|
; $7F5080 - $7F5083 - Clock Hours
|
||||||
|
|||||||
@@ -89,8 +89,12 @@ RTL
|
|||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
LDA.b #$2E : RTL
|
LDA.b #$2E : RTL
|
||||||
++ : CMP.b #$F8 : BNE ++ ; Progressive Bow
|
++ : CMP.b #$F8 : BNE ++ ; Progressive Bow
|
||||||
LDA $7EF340
|
LDA $7EF340 : INC : LSR
|
||||||
CMP.b #$00 : BNE + ; No Bow
|
CMP.l ProgressiveBowLimit : !BLT +
|
||||||
|
LDA.l ProgressiveBowReplacement
|
||||||
|
JSL.l GetSpriteID
|
||||||
|
RTL
|
||||||
|
+ : CMP.b #$00 : BNE + ; No Bow
|
||||||
LDA.b #$29 : RTL
|
LDA.b #$29 : RTL
|
||||||
+ ; Any Bow
|
+ ; Any Bow
|
||||||
LDA.b #$2A : RTL
|
LDA.b #$2A : RTL
|
||||||
@@ -229,7 +233,12 @@ RTL
|
|||||||
+ ; Everything Else
|
+ ; Everything Else
|
||||||
LDA.b #$08 : RTL
|
LDA.b #$08 : RTL
|
||||||
++ : CMP.b #$F8 : BNE ++ ; Progressive Bow
|
++ : CMP.b #$F8 : BNE ++ ; Progressive Bow
|
||||||
LDA $7EF354 : BNE + ; No Bow
|
LDA $7EF340 : INC : LSR
|
||||||
|
CMP.l ProgressiveBowLimit : !BLT +
|
||||||
|
LDA.l ProgressiveBowReplacement
|
||||||
|
JSL.l GetSpritePalette
|
||||||
|
RTL
|
||||||
|
+ : CMP.b #$00 : BNE + ; No Bow
|
||||||
LDA.b #$08 : RTL
|
LDA.b #$08 : RTL
|
||||||
+ ; Any Bow
|
+ ; Any Bow
|
||||||
LDA.b #$02 : RTL
|
LDA.b #$02 : RTL
|
||||||
|
|||||||
Reference in New Issue
Block a user