Merge branch 'ChestKeyCounter' into DRMain
# Conflicts: # LTTP_RND_GeneralBugfixes.asm # build.sh # darkworldspawn.asm # events.asm # itemdowngrade.asm # shopkeeper.asm # stats.asm
This commit is contained in:
@@ -147,7 +147,6 @@ incsrc scratchpad.asm
|
|||||||
incsrc map.asm
|
incsrc map.asm
|
||||||
incsrc msu.asm
|
incsrc msu.asm
|
||||||
incsrc dialog.asm
|
incsrc dialog.asm
|
||||||
incsrc events.asm
|
|
||||||
incsrc entrances.asm
|
incsrc entrances.asm
|
||||||
incsrc accessability.asm
|
incsrc accessability.asm
|
||||||
incsrc heartbeep.asm
|
incsrc heartbeep.asm
|
||||||
@@ -194,6 +193,7 @@ incsrc compression.asm
|
|||||||
incsrc retro.asm
|
incsrc retro.asm
|
||||||
incsrc dpadinvert.asm
|
incsrc dpadinvert.asm
|
||||||
incsrc boots.asm
|
incsrc boots.asm
|
||||||
|
incsrc events.asm
|
||||||
incsrc clock.asm
|
incsrc clock.asm
|
||||||
incsrc fileselect.asm
|
incsrc fileselect.asm
|
||||||
incsrc playername.asm
|
incsrc playername.asm
|
||||||
|
|||||||
5
build.sh
Executable file
5
build.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
rm ../working.sfc
|
||||||
|
cp ../alttp.sfc ../working.sfc
|
||||||
|
./asar LTTP_RND_GeneralBugfixes.asm ../working.sfc
|
||||||
10
dialog.asm
10
dialog.asm
@@ -165,17 +165,21 @@ FreeDungeonItemNotice:
|
|||||||
%CopyDialog(Notice_Self)
|
%CopyDialog(Notice_Self)
|
||||||
BRL .done
|
BRL .done
|
||||||
+
|
+
|
||||||
|
LDA.l FreeItemText : AND.b #$04 : CMP.b #$04 : BNE + ; show message for dungeon map
|
||||||
LDA !ITEM_TEMPORARY : AND.b #$F0 ; looking at high bits only
|
LDA !ITEM_TEMPORARY : 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)
|
||||||
BRL .dungeon
|
BRL .dungeon
|
||||||
+ : CMP.b #$80 : BNE + ; compass of...
|
+ : LDA.l FreeItemText : AND.b #$02 : CMP.b #$02 : BNE + ; show message for dungeon compass
|
||||||
|
LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$80 : BNE + ; compass of...
|
||||||
%CopyDialog(Notice_CompassOf)
|
%CopyDialog(Notice_CompassOf)
|
||||||
BRL .dungeon
|
BRL .dungeon
|
||||||
+ : CMP.b #$90 : BNE + ; big key of...
|
+ : LDA.l FreeItemText : AND.b #$08 : CMP.b #$08 : BNE + ; show message for dungeon big key
|
||||||
|
LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$90 : BNE + ; big key of...
|
||||||
%CopyDialog(Notice_BigKeyOf)
|
%CopyDialog(Notice_BigKeyOf)
|
||||||
BRA .dungeon
|
BRA .dungeon
|
||||||
+ : CMP.b #$A0 : BNE + ; small key of...
|
+ : LDA.l FreeItemText : AND.b #$01 : CMP.b #$01 : BNE + ; show message for dungeon small key
|
||||||
|
LDA !ITEM_TEMPORARY : AND.b #$F0 : CMP.b #$A0 : BNE + ; small key of...
|
||||||
LDA !ITEM_TEMPORARY : CMP.b #$AF : BNE ++ : BRL .skip : ++
|
LDA !ITEM_TEMPORARY : CMP.b #$AF : BNE ++ : BRL .skip : ++
|
||||||
%CopyDialog(Notice_SmallKeyOf)
|
%CopyDialog(Notice_SmallKeyOf)
|
||||||
PLA : AND.b #$0F : STA $7F5020 : LDA.b #$0F : !SUB $7F5020 : PHA
|
PLA : AND.b #$0F : STA $7F5020 : LDA.b #$0F : !SUB $7F5020 : PHA
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ OnUncleItemGet:
|
|||||||
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 : +
|
||||||
|
|
||||||
LDA UncleItem_Player : STA !MULTIWORLD_ITEM_PLAYER_ID
|
LDA UncleItem_Player : STA !MULTIWORLD_ITEM_PLAYER_ID
|
||||||
PLA
|
PLA
|
||||||
JSL Link_ReceiveItem
|
JSL Link_ReceiveItem
|
||||||
@@ -135,6 +135,11 @@ OnNewFile:
|
|||||||
DEX : DEX
|
DEX : DEX
|
||||||
BPL -
|
BPL -
|
||||||
|
|
||||||
|
LDX #$000E : -
|
||||||
|
LDA $7EF37C, X : STA $7EF4E0, X
|
||||||
|
DEX : DEX
|
||||||
|
BPL -
|
||||||
|
|
||||||
SEP #$20 ; set 8-bit accumulator
|
SEP #$20 ; set 8-bit accumulator
|
||||||
;LDA #$FF : STA !RNG_ITEM_LOCK_IN ; reset rng item lock-in
|
;LDA #$FF : STA !RNG_ITEM_LOCK_IN ; reset rng item lock-in
|
||||||
LDA.l PreopenCurtains : BEQ +
|
LDA.l PreopenCurtains : BEQ +
|
||||||
@@ -151,6 +156,8 @@ 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
|
||||||
PLP : PLX
|
PLP : PLX
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -75,28 +75,28 @@ NMIHookAction:
|
|||||||
|
|
||||||
JML.l NMIHookReturn
|
JML.l NMIHookReturn
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;!NMI_AUX = "$7F5044"
|
!NMI_AUX = "$7F5044"
|
||||||
;PostNMIHookAction:
|
PostNMIHookAction:
|
||||||
; LDA !NMI_AUX+2 : BEQ +
|
LDA !NMI_AUX : BEQ +
|
||||||
; LDA $00 : PHA ; preserve DP ram
|
LDA $00 : PHA ; preserve DP ram
|
||||||
; LDA $01 : PHA
|
LDA $01 : PHA
|
||||||
; LDA $02 : PHA
|
LDA $02 : PHA
|
||||||
;
|
|
||||||
; LDA !NMI_AUX+2 : STA $02 ; set up jump pointer
|
LDA !NMI_AUX+2 : STA $02 ; set up jump pointer
|
||||||
; LDA !NMI_AUX+1 : STA $01
|
LDA !NMI_AUX+1 : STA $01
|
||||||
; LDA !NMI_AUX+0 : STA $00
|
LDA !NMI_AUX+0 : STA $00
|
||||||
;
|
|
||||||
; PHK : PER .return-1 ; push stack for RTL return
|
PHK : PER .return-1 ; push stack for RTL return
|
||||||
; JMP [$0000]
|
JMP [$0000]
|
||||||
;
|
|
||||||
; .return
|
.return
|
||||||
; LDA.b #$00 : STA !NMI_AUX+2 ; zero bank byte of NMI hook pointer
|
LDA.b #$00 : STA !NMI_AUX ; zero bank byte of NMI hook pointer
|
||||||
;
|
|
||||||
; PLA : STA $02
|
PLA : STA $02
|
||||||
; PLA : STA $01
|
PLA : STA $01
|
||||||
; PLA : STA $00
|
PLA : STA $00
|
||||||
; +
|
+
|
||||||
;
|
|
||||||
; LDA $13 : STA $2100 ; thing we wrote over, turn screen back on
|
LDA $13 : STA $2100 ; thing we wrote over, turn screen back on
|
||||||
;JML.l PostNMIHookReturn
|
JML.l PostNMIHookReturn
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
32
hooks.asm
32
hooks.asm
@@ -30,9 +30,9 @@ JML.l NMIHookAction
|
|||||||
org $0080D0 ; <- D0 - Bank00.asm : 164 (PHA : PHX : PHY : PHD : PHB)
|
org $0080D0 ; <- D0 - Bank00.asm : 164 (PHA : PHX : PHY : PHD : PHB)
|
||||||
NMIHookReturn:
|
NMIHookReturn:
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;org $00821B ; <- 21B - Bank00.asm : 329 (LDA $13 : STA $2100)
|
org $00821B ; <- 21B - Bank00.asm : 329 (LDA $13 : STA $2100)
|
||||||
;JML.l PostNMIHookAction : NOP
|
JML.l PostNMIHookAction : NOP
|
||||||
;PostNMIHookReturn:
|
PostNMIHookReturn:
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
@@ -374,6 +374,32 @@ NOP #19 ;23 bytes removed with the JSL
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $04E7AE ; <- bank0E.asm : 4230 (LDA $7EF287 : AND.w #$0020)
|
org $04E7AE ; <- bank0E.asm : 4230 (LDA $7EF287 : AND.w #$0020)
|
||||||
JSL.l TurtleRockPegSolved
|
JSL.l TurtleRockPegSolved
|
||||||
|
|
||||||
|
org $04E7B9 ; <- bank0E.asm : 4237 (LDX $04C8)
|
||||||
|
JMP.w TurtleRockTrollPegs
|
||||||
|
TurtleRockPegCheck:
|
||||||
|
|
||||||
|
org $04E7C9
|
||||||
|
TurtleRockPegSuccess:
|
||||||
|
|
||||||
|
org $04E7F5
|
||||||
|
TurtleRockPegFail:
|
||||||
|
|
||||||
|
org $04E96F
|
||||||
|
PegProbability:
|
||||||
|
db $00 ; Probability out of 255. 0 = Vanilla behavior
|
||||||
|
TurtleRockTrollPegs:
|
||||||
|
SEP #$20
|
||||||
|
LDX.w $04C8 : CPX.w #$FFFF : BEQ .vanilla
|
||||||
|
JSL.l GetRandomInt
|
||||||
|
LDA.l PegProbability : BEQ .vanilla : CMP.l $7E0FA1
|
||||||
|
REP #$20 : !BGE .succeed
|
||||||
|
.fail
|
||||||
|
JMP.w TurtleRockPegFail
|
||||||
|
.succeed
|
||||||
|
JMP.w TurtleRockPegSuccess
|
||||||
|
.vanilla
|
||||||
|
REP #$20 : JMP.w TurtleRockPegCheck
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $1BBD05 ; <- bank1B.asm : 261 (TYA : STA $00) ; hook starts at the STA
|
org $1BBD05 ; <- bank1B.asm : 261 (TYA : STA $00) ; hook starts at the STA
|
||||||
JML.l PreventEnterOnBonk
|
JML.l PreventEnterOnBonk
|
||||||
|
|||||||
@@ -2,11 +2,10 @@
|
|||||||
; Item Downgrade Fix
|
; Item Downgrade Fix
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
ItemDowngradeFix:
|
ItemDowngradeFix:
|
||||||
JSR ItemDowngradeFixMain
|
JSR ItemDowngradeFixMain
|
||||||
JSL CountChestKeyLong
|
JSL CountChestKeyLong
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
|
||||||
ItemDowngradeFixMain:
|
ItemDowngradeFixMain:
|
||||||
JSL.l AddInventory
|
JSL.l AddInventory
|
||||||
BMI .dontWrite ; thing we wrote over part 1
|
BMI .dontWrite ; thing we wrote over part 1
|
||||||
|
|||||||
2
msu.asm
2
msu.asm
@@ -326,7 +326,7 @@ CheckMusicLoadRequest:
|
|||||||
.sfx_indoors
|
.sfx_indoors
|
||||||
LDA !REG_MUSIC_CONTROL_REQUEST : STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST
|
LDA !REG_MUSIC_CONTROL_REQUEST : STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST
|
||||||
PLY : PLX : PLA : PLP
|
PLY : PLX : PLA : PLP
|
||||||
LDA.b #$05 : STA $012D
|
PHP : SEP #$20 : LDA.b #$05 : STA $012D : PLP
|
||||||
JML Module_PreDungeon_setAmbientSfx
|
JML Module_PreDungeon_setAmbientSfx
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -194,7 +194,20 @@ SpritePrep_ShopKeeper:
|
|||||||
BRL -
|
BRL -
|
||||||
.stop
|
.stop
|
||||||
|
|
||||||
LDA #$01 : STA !NMI_AUX+2 : STA !NMI_AUX
|
;LDA $A0 : CMP.b #$FF : BNE .normal
|
||||||
|
;.dumb
|
||||||
|
; LDA $2137
|
||||||
|
; LDA $213F
|
||||||
|
; LDA $213D
|
||||||
|
; CMP.b #60
|
||||||
|
; !BLT .dumb
|
||||||
|
;.normal
|
||||||
|
;LDA #$80 : STA $2100
|
||||||
|
;JSR Shopkeeper_UploadVRAMTiles
|
||||||
|
;LDA #$0F : STA $2100
|
||||||
|
LDA.b #Shopkeeper_UploadVRAMTilesLong>>16 : STA !NMI_AUX+2
|
||||||
|
LDA.b #Shopkeeper_UploadVRAMTilesLong>>8 : STA !NMI_AUX+1
|
||||||
|
LDA.b #Shopkeeper_UploadVRAMTilesLong>>0 : STA !NMI_AUX
|
||||||
|
|
||||||
.done
|
.done
|
||||||
LDA.l !SHOP_TYPE : BIT.b #$20 : BEQ .notTakeAll ; Take-all
|
LDA.l !SHOP_TYPE : BIT.b #$20 : BEQ .notTakeAll ; Take-all
|
||||||
@@ -233,11 +246,11 @@ dw $0000, $0000
|
|||||||
dw $0080, $0000
|
dw $0080, $0000
|
||||||
dw $0100, $0000
|
dw $0100, $0000
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
QueueItemDMA:
|
;QueueItemDMA:
|
||||||
LDA.b #Shopkeeper_UploadVRAMTilesLong>>0 : STA !NMI_AUX
|
; LDA.b #Shopkeeper_UploadVRAMTilesLong>>0 : STA !NMI_AUX
|
||||||
LDA.b #Shopkeeper_UploadVRAMTilesLong>>8 : STA !NMI_AUX+1
|
; LDA.b #Shopkeeper_UploadVRAMTilesLong>>8 : STA !NMI_AUX+1
|
||||||
LDA.b #Shopkeeper_UploadVRAMTilesLong>>16 : STA !NMI_AUX+2
|
; LDA.b #Shopkeeper_UploadVRAMTilesLong>>16 : STA !NMI_AUX+2
|
||||||
RTS
|
;RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; X - Tile Buffer Offset
|
; X - Tile Buffer Offset
|
||||||
; Y - Item ID
|
; Y - Item ID
|
||||||
|
|||||||
54
stats.asm
54
stats.asm
@@ -238,38 +238,42 @@ DecrementSmallKeys:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CountChestKeyLong: ; called from ItemDowngradeFix in itemdowngrade.asm
|
CountChestKeyLong: ; called from ItemDowngradeFix in itemdowngrade.asm
|
||||||
JSR CountChestKey
|
JSR CountChestKey
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CountChestKey: ; called by neighbor functions
|
CountChestKey: ; called by neighbor functions
|
||||||
PHA : PHX
|
PHA : PHX
|
||||||
lda !MULTIWORLD_ITEM_PLAYER_ID : bne .end
|
LDA !MULTIWORLD_ITEM_PLAYER_ID : bne .end
|
||||||
CPY #$24 : BEQ + ; small key for this dungeon - use $040C
|
CPY #24 : BEQ + ; hera basement key
|
||||||
CPY #$A0 : !BLT .end ; Ignore most items
|
CPY #$24 : BEQ + ; small key for this dungeon - use $040C
|
||||||
CPY #$AE : !BGE .end ; Ignore reserved key and generic key
|
CPY #$A0 : !BLT .end ; Ignore most items
|
||||||
TYA : AND.B #$0F : BNE ++ ; If this is a sewers key, instead count it as an HC key
|
CPY #$AE : !BGE .end ; Ignore reserved key and generic key
|
||||||
INC
|
TYA : AND.B #$0F : BNE ++ ; If this is a sewers key, instead count it as an HC key
|
||||||
++ TAX : BRA .count ; use Key id instead of $040C (Keysanity)
|
INC
|
||||||
+ LDA $040C : LSR : TAX
|
++ TAX : BRA .count ; use Key id instead of $040C (Keysanity)
|
||||||
.count
|
+ LDA $040C : LSR
|
||||||
LDA $7EF4E0, X : INC : STA $7EF4E0, X
|
BNE +
|
||||||
|
INC ; combines HC and Sewer counts
|
||||||
|
+ TAX
|
||||||
|
.count
|
||||||
|
LDA $7EF4E0, X : INC : STA $7EF4E0, X
|
||||||
.end
|
.end
|
||||||
PLX : PLA
|
PLX : PLA
|
||||||
RTS
|
RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CountBonkItem: ; called from GetBonkItem in bookofmudora.asm
|
CountBonkItem: ; called from GetBonkItem in bookofmudora.asm
|
||||||
LDA $A0 ; check room ID - only bonk keys in 2 rooms so we're just checking the lower byte
|
LDA $A0 ; check room ID - only bonk keys in 2 rooms so we're just checking the lower byte
|
||||||
CMP #115 : BNE + ; Desert Bonk Key
|
CMP #115 : BNE + ; Desert Bonk Key
|
||||||
LDA.L BonkKey_Desert : BRA ++
|
LDA.L BonkKey_Desert : BRA ++
|
||||||
+ : CMP #140 : BNE + ; GTower Bonk Key
|
+ : CMP #140 : BNE + ; GTower Bonk Key
|
||||||
LDA.L BonkKey_GTower : BRA ++
|
LDA.L BonkKey_GTower : BRA ++
|
||||||
+ LDA.B #$24 ; default to small key
|
+ LDA.B #$24 ; default to small key
|
||||||
++
|
++
|
||||||
CMP #$24 : BNE +
|
CMP #$24 : BNE +
|
||||||
PHY
|
PHY
|
||||||
TAY : JSR CountChestKey
|
TAY : JSR CountChestKey
|
||||||
PLY
|
PLY
|
||||||
+
|
+
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
IncrementAgahnim2Sword:
|
IncrementAgahnim2Sword:
|
||||||
|
|||||||
Reference in New Issue
Block a user