Merge branch 'master' into master
This commit is contained in:
@@ -6,7 +6,8 @@
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
IncrementBombs:
|
IncrementBombs:
|
||||||
LDA !BOMB_UPGRADES ; get bomb upgrades
|
LDA !BOMB_UPGRADES ; get bomb upgrades
|
||||||
!ADD.l StartingMaxBombs : DEC
|
!ADD.l StartingMaxBombs : BEQ + ; Skip if we can't have bombs
|
||||||
|
DEC
|
||||||
|
|
||||||
CMP !BOMB_CURRENT
|
CMP !BOMB_CURRENT
|
||||||
|
|
||||||
|
|||||||
18
events.asm
18
events.asm
@@ -78,6 +78,12 @@ OnAga2Defeated:
|
|||||||
JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first
|
JSL.l Dungeon_SaveRoomData_justKeys ; thing we wrote over, make sure this is first
|
||||||
JML.l IncrementAgahnim2Sword
|
JML.l IncrementAgahnim2Sword
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
OnFileCreation:
|
||||||
|
TAX ; what we wrote over
|
||||||
|
LDA StartingEquipment+$4C : STA $700340+$4C ; copy starting equipment swaps to file select screen
|
||||||
|
LDA StartingEquipment+$4E : STA $700340+$4E
|
||||||
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
!RNG_ITEM_LOCK_IN = "$7F5090"
|
!RNG_ITEM_LOCK_IN = "$7F5090"
|
||||||
OnFileLoad:
|
OnFileLoad:
|
||||||
REP #$10 ; set 16 bit index registers
|
REP #$10 ; set 16 bit index registers
|
||||||
@@ -145,8 +151,16 @@ OnNewFile:
|
|||||||
+
|
+
|
||||||
|
|
||||||
LDA StartingSword : STA $7EF359 ; set starting sword type
|
LDA StartingSword : STA $7EF359 ; set starting sword type
|
||||||
LDA !INVENTORY_SWAP : STA $70038C ; copy starting equipment swaps to file select screen
|
|
||||||
LDA !INVENTORY_SWAP_2 : STA $70038E
|
; reset some values on new file that are otherwise only reset on hard reset
|
||||||
|
STZ $03C4 ; ancilla slot index
|
||||||
|
STZ $047A ; EG
|
||||||
|
STZ $0B08 : STZ $0B09 ; arc variable
|
||||||
|
STZ $0CFB ; enemies killed (pull trees)
|
||||||
|
STZ $0CFC ; times taken damage (pull trees)
|
||||||
|
STZ $0FC7 : STZ $0FC8 : STZ $0FC9 : STZ $0FCA : STZ $0FCB : STZ $0FCC : STZ $0FCD ; prize packs
|
||||||
|
LDA #$00 : STA $7EC011 ; mosaic
|
||||||
|
JSL InitRNGPointerTable ; boss RNG
|
||||||
PLP : PLX
|
PLP : PLX
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -261,7 +261,9 @@ org $0CCE85 ; <- Bank0C.asm : 1953 (LDA $C8 : ASL A : INC #2 : STA $701FFE)
|
|||||||
NOP #4
|
NOP #4
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $0CDB4C ; <- Bank0C.asm : 3655 (LDA $C8 : ASL A : INC #2 : STA $701FFE : TAX)
|
org $0CDB4C ; <- Bank0C.asm : 3655 (LDA $C8 : ASL A : INC #2 : STA $701FFE : TAX)
|
||||||
NOP #4
|
JSL OnFileCreation
|
||||||
|
NOP
|
||||||
|
;Additionally, display inventory swap starting equipment on file select
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $09F5EA ; <- module_death.asm : 510 (LDA $701FFE : TAX : DEX #2)
|
org $09F5EA ; <- module_death.asm : 510 (LDA $701FFE : TAX : DEX #2)
|
||||||
LDA.w #$0002 : NOP
|
LDA.w #$0002 : NOP
|
||||||
|
|||||||
1
init.asm
1
init.asm
@@ -56,5 +56,6 @@ RTL
|
|||||||
Init_PostRAMClear:
|
Init_PostRAMClear:
|
||||||
|
|
||||||
JSL MSUInit
|
JSL MSUInit
|
||||||
|
JSL InitRNGPointerTable
|
||||||
|
|
||||||
JML $00D463 ; The original target of the jump table that we hijacked
|
JML $00D463 ; The original target of the jump table that we hijacked
|
||||||
@@ -124,7 +124,9 @@ RTL
|
|||||||
;ProcessBottleMenu:
|
;ProcessBottleMenu:
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
ProcessBottleMenu:
|
ProcessBottleMenu:
|
||||||
LDA $F4 : AND #$40 : BEQ .y_not_pressed ; skip if Y is not down
|
; LDA $F6 : AND #$30 : CMP.b #$30 : BEQ .double_shoulder_pressed
|
||||||
|
; LDA $F4 : AND #$40 : BEQ .y_not_pressed ; skip if Y is not down
|
||||||
|
; .double_shoulder_pressed
|
||||||
LDA $7EF34F ; check bottle state
|
LDA $7EF34F ; check bottle state
|
||||||
BEQ .no_bottles ; skip if we have no bottles
|
BEQ .no_bottles ; skip if we have no bottles
|
||||||
PHX
|
PHX
|
||||||
@@ -137,9 +139,9 @@ ProcessBottleMenu:
|
|||||||
.no_bottles
|
.no_bottles
|
||||||
LDA #$00 ; pretend like the controller state was 0 from the overridden load
|
LDA #$00 ; pretend like the controller state was 0 from the overridden load
|
||||||
RTL
|
RTL
|
||||||
.y_not_pressed
|
; .y_not_pressed
|
||||||
LDA $F4 : AND.b #$0C ; thing we wrote over - load controller state
|
; LDA $F4 : AND.b #$0C ; thing we wrote over - load controller state
|
||||||
RTL
|
;RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -738,6 +740,7 @@ RTS
|
|||||||
Link_ReceiveItem_HUDRefresh:
|
Link_ReceiveItem_HUDRefresh:
|
||||||
LDA $7EF343 : BNE + ; skip if we have bombs
|
LDA $7EF343 : BNE + ; skip if we have bombs
|
||||||
LDA $7EF375 : BEQ + ; skip if we are filling no bombs
|
LDA $7EF375 : BEQ + ; skip if we are filling no bombs
|
||||||
|
LDA $7EF370 : !ADD.l StartingMaxBombs : BEQ + ; skip if we can't have bombs
|
||||||
DEC : STA $7EF375 ; decrease bomb fill count
|
DEC : STA $7EF375 ; decrease bomb fill count
|
||||||
LDA.b #$01 : STA $7EF343 ; increase actual bomb count
|
LDA.b #$01 : STA $7EF343 ; increase actual bomb count
|
||||||
+
|
+
|
||||||
@@ -753,6 +756,7 @@ RTL
|
|||||||
HandleBombAbsorbtion:
|
HandleBombAbsorbtion:
|
||||||
STA $7EF375 ; thing we wrote over
|
STA $7EF375 ; thing we wrote over
|
||||||
LDA $0303 : BNE + ; skip if we already have some item selected
|
LDA $0303 : BNE + ; skip if we already have some item selected
|
||||||
|
LDA $7EF370 : !ADD.l StartingMaxBombs : BEQ + ; skip if we can't have bombs
|
||||||
LDA.b #$04 : STA $0202 ; set selected item to bombs
|
LDA.b #$04 : STA $0202 ; set selected item to bombs
|
||||||
LDA.b #$01 : STA $0303 ; set selected item to bombs
|
LDA.b #$01 : STA $0303 ; set selected item to bombs
|
||||||
JSL.l HUD_RebuildLong
|
JSL.l HUD_RebuildLong
|
||||||
|
|||||||
11
openmode.asm
11
openmode.asm
@@ -12,11 +12,18 @@ RTL
|
|||||||
InitOpenMode:
|
InitOpenMode:
|
||||||
LDA.l OpenMode : BEQ + ; Skip if not open mode
|
LDA.l OpenMode : BEQ + ; Skip if not open mode
|
||||||
LDA $7EF3C5 : CMP #$02 : !BGE + ; Skip if already past escape
|
LDA $7EF3C5 : CMP #$02 : !BGE + ; Skip if already past escape
|
||||||
LDA.b #02 : STA $7EF3C5 ; Go to post-escape phase (pre aga1)
|
LDA.b #$02 : STA $7EF3C5 ; Go to post-escape phase (pre aga1)
|
||||||
LDA $7EF3C6 : ORA #$14 : STA $7EF3C6 ; remove uncle
|
LDA $7EF3C6 : ORA #$14 : STA $7EF3C6 ; remove uncle
|
||||||
LDA $7EF3C8 : CMP #$05 : BEQ ++ : LDA.b #$01 : ++ : STA $7EF3C8 ; set spawn points to house+sanc unless already house+sanc+mountain
|
LDA $7EF3C8 : CMP #$05 : BEQ ++ : LDA.b #$01 : ++ : STA $7EF3C8 ; set spawn points to house+sanc unless already house+sanc+mountain
|
||||||
LDA $7EF29B : ORA.b #$20 : STA $7EF29B ; open castle gate
|
LDA $7EF29B : ORA.b #$20 : STA $7EF29B ; open castle gate
|
||||||
RTL
|
JSL MaybeSetPostAgaWorldState
|
||||||
|
+
|
||||||
|
RTL
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
MaybeSetPostAgaWorldState:
|
||||||
|
LDA.l InstantPostAgaWorldState : BEQ + ; Skip if not enabled
|
||||||
|
LDA.b #$03 : STA $7EF3C5 ; Go to post-aga phase
|
||||||
|
LDA $7EF282 : ORA.b #$20 : STA $7EF282 ; make lumberjack tree accessible
|
||||||
+
|
+
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -38,6 +38,7 @@ QuickSwap:
|
|||||||
CPX.b #$01 : BEQ + ; bow
|
CPX.b #$01 : BEQ + ; bow
|
||||||
CPX.b #$05 : BEQ + ; powder
|
CPX.b #$05 : BEQ + ; powder
|
||||||
CPX.b #$0D : BEQ + ; flute
|
CPX.b #$0D : BEQ + ; flute
|
||||||
|
CPX.b #$10 : BEQ + ; bottle
|
||||||
BRA .store
|
BRA .store
|
||||||
+ STX $0202 : JSL ProcessMenuButtons_y_pressed
|
+ STX $0202 : JSL ProcessMenuButtons_y_pressed
|
||||||
|
|
||||||
@@ -54,20 +55,20 @@ RTL
|
|||||||
RCode:
|
RCode:
|
||||||
LDA.w $0202 : TAX
|
LDA.w $0202 : TAX
|
||||||
-
|
-
|
||||||
CPX.b #$0F : BNE + ; incrementing into bottle
|
; CPX.b #$0F : BNE + ; incrementing into bottle
|
||||||
LDX.b #$00 : BRA ++
|
; LDX.b #$00 : BRA ++
|
||||||
+ CPX.b #$10 : BNE + ; incrementing bottle
|
; + CPX.b #$10 : BNE + ; incrementing bottle
|
||||||
LDA.l $7EF34F : TAX
|
; LDA.l $7EF34F : TAX
|
||||||
-- : ++
|
; -- : ++
|
||||||
CPX.b #$04 : BEQ .noMoreBottles
|
; CPX.b #$04 : BEQ .noMoreBottles
|
||||||
INX
|
; INX
|
||||||
LDA.l $7EF35B,X : BEQ --
|
; LDA.l $7EF35B,X : BEQ --
|
||||||
TXA : STA.l $7EF34F
|
; TXA : STA.l $7EF34F
|
||||||
LDX #$10
|
; LDX #$10
|
||||||
RTS
|
; RTS
|
||||||
.noMoreBottles
|
; .noMoreBottles
|
||||||
LDX #$11
|
; LDX #$11
|
||||||
BRA .nextItem
|
; 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
|
||||||
@@ -77,19 +78,19 @@ RTS
|
|||||||
LCode:
|
LCode:
|
||||||
LDA.w $0202 : TAX
|
LDA.w $0202 : TAX
|
||||||
-
|
-
|
||||||
CPX.b #$11 : BNE + ; decrementing into bottle
|
; CPX.b #$11 : BNE + ; decrementing into bottle
|
||||||
LDX.b #$05 : BRA ++
|
; LDX.b #$05 : BRA ++
|
||||||
+ CPX.b #$10 : BNE + ; decrementing bottle
|
; + CPX.b #$10 : BNE + ; decrementing bottle
|
||||||
LDA.l $7EF34F : TAX
|
; LDA.l $7EF34F : TAX
|
||||||
-- : ++
|
; -- : ++
|
||||||
CPX.b #$01 : BEQ .noMoreBottles
|
; CPX.b #$01 : BEQ .noMoreBottles
|
||||||
DEX
|
; DEX
|
||||||
LDA.l $7EF35B,X : BEQ --
|
; LDA.l $7EF35B,X : BEQ --
|
||||||
TXA : STA.l $7EF34F
|
; TXA : STA.l $7EF34F
|
||||||
LDX.b #$10
|
; LDX.b #$10
|
||||||
RTS
|
; RTS
|
||||||
.noMoreBottles
|
; .noMoreBottles
|
||||||
LDX.b #$0F : BRA .nextItem
|
; 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
|
||||||
|
|||||||
@@ -107,9 +107,9 @@ RTL
|
|||||||
!RNG_POINTERS = "$7F5200"
|
!RNG_POINTERS = "$7F5200"
|
||||||
GetStaticRNG:
|
GetStaticRNG:
|
||||||
PHX : PHP
|
PHX : PHP
|
||||||
REP #$20 ; set 16-bit accumulator and index registers
|
REP #$30 ; set 16-bit accumulator and index registers
|
||||||
AND.w #$007F
|
AND.w #$000F
|
||||||
ASL : TAX : LDA !RNG_POINTERS, X : INC : AND.w #$03FF : STA !RNG_POINTERS, X : TAX : ASL ; increment pointer and move value to X
|
ASL : TAX : LDA !RNG_POINTERS, X : INC : AND.w #$03FF : STA !RNG_POINTERS, X : TAX ; increment pointer and move value to X
|
||||||
LDA Static_RNG, X ; load RNG value
|
LDA Static_RNG, X ; load RNG value
|
||||||
PLP : PLX
|
PLP : PLX
|
||||||
RTL
|
RTL
|
||||||
@@ -123,7 +123,7 @@ InitRNGPointerTable:
|
|||||||
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
|
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
|
||||||
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
|
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
|
||||||
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
|
LDA.l .rngDefaults, X : STA !RNG_POINTERS, X : INX #2
|
||||||
CPX.w #$007F : !BLT -
|
CPX.w #$001F : !BLT -
|
||||||
PLP : PLX
|
PLP : PLX
|
||||||
RTL
|
RTL
|
||||||
.rngDefaults
|
.rngDefaults
|
||||||
|
|||||||
8
save.asm
8
save.asm
@@ -1,5 +1,13 @@
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
Validate_SRAM:
|
Validate_SRAM:
|
||||||
|
REP #$30 ; vanilla behavior from $0CCD45, includes prize pack reset after save and quit
|
||||||
|
LDX #$00FE : -
|
||||||
|
STZ $0D00, X
|
||||||
|
STZ $0E00, X
|
||||||
|
STZ $0F00, X
|
||||||
|
DEX #2
|
||||||
|
BPL -
|
||||||
|
SEP #$30
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
ClearExtendedSaveFile:
|
ClearExtendedSaveFile:
|
||||||
|
|||||||
18
stats.asm
18
stats.asm
@@ -244,7 +244,8 @@ IncrementSmallKeysNoPrimary:
|
|||||||
LDA $1B : BEQ + ; skip room check if outdoors
|
LDA $1B : BEQ + ; skip room check if outdoors
|
||||||
PHP : REP #$20 ; set 16-bit accumulator
|
PHP : REP #$20 ; set 16-bit accumulator
|
||||||
LDA $048E : CMP.w #$0087 : BNE ++ ; hera basement
|
LDA $048E : CMP.w #$0087 : BNE ++ ; hera basement
|
||||||
PLP : PHY : LDY.b #24 : JSL.l FullInventoryExternal : PLY : BRA +
|
PLP : PHY : LDY.b #$24 : JSL.l FullInventoryExternal
|
||||||
|
JSR CountChestKey : PLY : BRA +
|
||||||
++
|
++
|
||||||
PLP
|
PLP
|
||||||
+
|
+
|
||||||
@@ -264,12 +265,15 @@ RTL
|
|||||||
CountChestKey: ; called by neighbor functions
|
CountChestKey: ; called by neighbor functions
|
||||||
PHA : PHX
|
PHA : PHX
|
||||||
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 a sewers key, instead count it as an HC 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 : TAX
|
+ LDA $040C : LSR
|
||||||
|
BNE +
|
||||||
|
INC ; combines HC and Sewer counts
|
||||||
|
+ TAX
|
||||||
.count
|
.count
|
||||||
LDA $7EF4E0, X : INC : STA $7EF4E0, X
|
LDA $7EF4E0, X : INC : STA $7EF4E0, X
|
||||||
.end
|
.end
|
||||||
|
|||||||
@@ -381,7 +381,11 @@ org $30808C ; PC 0x18008C
|
|||||||
PreopenGanonsTower:
|
PreopenGanonsTower:
|
||||||
db $00 ; #$00 = Off (default) - #$01 = On
|
db $00 ; #$00 = Off (default) - #$01 = On
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 0x18008D - 0x18008F (unused)
|
org $30808D ; PC 0x18008D
|
||||||
|
InstantPostAgaWorldState:
|
||||||
|
db $00 ; #$00 = Off (default) - #$01 = On
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; 0x18008E - 0x18008F (unused)
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $308090 ; PC 0x180090 - 0x180097
|
org $308090 ; PC 0x180090 - 0x180097
|
||||||
ProgressiveSwordLimit:
|
ProgressiveSwordLimit:
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ EndRainState:
|
|||||||
LDA $7EF3C5 : CMP.b #$02 : !BGE + ; skip if past escape already
|
LDA $7EF3C5 : CMP.b #$02 : !BGE + ; skip if past escape already
|
||||||
LDA.b #$00 : STA !INFINITE_ARROWS : STA !INFINITE_BOMBS : STA !INFINITE_MAGIC
|
LDA.b #$00 : STA !INFINITE_ARROWS : STA !INFINITE_BOMBS : STA !INFINITE_MAGIC
|
||||||
LDA.b #$02 : STA $7EF3C5 ; end rain state
|
LDA.b #$02 : STA $7EF3C5 ; end rain state
|
||||||
|
JSL MaybeSetPostAgaWorldState
|
||||||
+
|
+
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user