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 msu.asm
|
||||
incsrc dialog.asm
|
||||
incsrc events.asm
|
||||
incsrc entrances.asm
|
||||
incsrc accessability.asm
|
||||
incsrc heartbeep.asm
|
||||
@@ -194,6 +193,7 @@ incsrc compression.asm
|
||||
incsrc retro.asm
|
||||
incsrc dpadinvert.asm
|
||||
incsrc boots.asm
|
||||
incsrc events.asm
|
||||
incsrc clock.asm
|
||||
incsrc fileselect.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)
|
||||
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
|
||||
CMP.b #$70 : BNE + ; map of...
|
||||
%CopyDialog(Notice_MapOf)
|
||||
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)
|
||||
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)
|
||||
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 : ++
|
||||
%CopyDialog(Notice_SmallKeyOf)
|
||||
PLA : AND.b #$0F : STA $7F5020 : LDA.b #$0F : !SUB $7F5020 : PHA
|
||||
|
||||
@@ -130,6 +130,11 @@ OnNewFile:
|
||||
DEX : DEX
|
||||
BPL -
|
||||
|
||||
LDX #$000E : -
|
||||
LDA $7EF37C, X : STA $7EF4E0, X
|
||||
DEX : DEX
|
||||
BPL -
|
||||
|
||||
LDX #$000E : -
|
||||
LDA $7EF37C, X : STA $7EF4E0, X
|
||||
DEX : DEX
|
||||
@@ -151,6 +156,8 @@ OnNewFile:
|
||||
+
|
||||
|
||||
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
|
||||
RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -75,28 +75,28 @@ NMIHookAction:
|
||||
|
||||
JML.l NMIHookReturn
|
||||
;--------------------------------------------------------------------------------
|
||||
;!NMI_AUX = "$7F5044"
|
||||
;PostNMIHookAction:
|
||||
; LDA !NMI_AUX+2 : BEQ +
|
||||
; LDA $00 : PHA ; preserve DP ram
|
||||
; LDA $01 : PHA
|
||||
; LDA $02 : PHA
|
||||
;
|
||||
; LDA !NMI_AUX+2 : STA $02 ; set up jump pointer
|
||||
; LDA !NMI_AUX+1 : STA $01
|
||||
; LDA !NMI_AUX+0 : STA $00
|
||||
;
|
||||
; PHK : PER .return-1 ; push stack for RTL return
|
||||
; JMP [$0000]
|
||||
;
|
||||
; .return
|
||||
; LDA.b #$00 : STA !NMI_AUX+2 ; zero bank byte of NMI hook pointer
|
||||
;
|
||||
; PLA : STA $02
|
||||
; PLA : STA $01
|
||||
; PLA : STA $00
|
||||
; +
|
||||
;
|
||||
; LDA $13 : STA $2100 ; thing we wrote over, turn screen back on
|
||||
;JML.l PostNMIHookReturn
|
||||
!NMI_AUX = "$7F5044"
|
||||
PostNMIHookAction:
|
||||
LDA !NMI_AUX : BEQ +
|
||||
LDA $00 : PHA ; preserve DP ram
|
||||
LDA $01 : PHA
|
||||
LDA $02 : PHA
|
||||
|
||||
LDA !NMI_AUX+2 : STA $02 ; set up jump pointer
|
||||
LDA !NMI_AUX+1 : STA $01
|
||||
LDA !NMI_AUX+0 : STA $00
|
||||
|
||||
PHK : PER .return-1 ; push stack for RTL return
|
||||
JMP [$0000]
|
||||
|
||||
.return
|
||||
LDA.b #$00 : STA !NMI_AUX ; zero bank byte of NMI hook pointer
|
||||
|
||||
PLA : STA $02
|
||||
PLA : STA $01
|
||||
PLA : STA $00
|
||||
+
|
||||
|
||||
LDA $13 : STA $2100 ; thing we wrote over, turn screen back on
|
||||
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)
|
||||
NMIHookReturn:
|
||||
;--------------------------------------------------------------------------------
|
||||
;org $00821B ; <- 21B - Bank00.asm : 329 (LDA $13 : STA $2100)
|
||||
;JML.l PostNMIHookAction : NOP
|
||||
;PostNMIHookReturn:
|
||||
org $00821B ; <- 21B - Bank00.asm : 329 (LDA $13 : STA $2100)
|
||||
JML.l PostNMIHookAction : NOP
|
||||
PostNMIHookReturn:
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;================================================================================
|
||||
@@ -374,6 +374,32 @@ NOP #19 ;23 bytes removed with the JSL
|
||||
;--------------------------------------------------------------------------------
|
||||
org $04E7AE ; <- bank0E.asm : 4230 (LDA $7EF287 : AND.w #$0020)
|
||||
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
|
||||
JML.l PreventEnterOnBonk
|
||||
|
||||
@@ -6,7 +6,6 @@ ItemDowngradeFix:
|
||||
JSL CountChestKeyLong
|
||||
RTL
|
||||
|
||||
|
||||
ItemDowngradeFixMain:
|
||||
JSL.l AddInventory
|
||||
BMI .dontWrite ; thing we wrote over part 1
|
||||
|
||||
2
msu.asm
2
msu.asm
@@ -326,7 +326,7 @@ CheckMusicLoadRequest:
|
||||
.sfx_indoors
|
||||
LDA !REG_MUSIC_CONTROL_REQUEST : STA !REG_MUSIC_CONTROL : STZ !REG_MUSIC_CONTROL_REQUEST
|
||||
PLY : PLX : PLA : PLP
|
||||
LDA.b #$05 : STA $012D
|
||||
PHP : SEP #$20 : LDA.b #$05 : STA $012D : PLP
|
||||
JML Module_PreDungeon_setAmbientSfx
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -194,7 +194,20 @@ SpritePrep_ShopKeeper:
|
||||
BRL -
|
||||
.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
|
||||
LDA.l !SHOP_TYPE : BIT.b #$20 : BEQ .notTakeAll ; Take-all
|
||||
@@ -233,11 +246,11 @@ dw $0000, $0000
|
||||
dw $0080, $0000
|
||||
dw $0100, $0000
|
||||
;--------------------------------------------------------------------------------
|
||||
QueueItemDMA:
|
||||
LDA.b #Shopkeeper_UploadVRAMTilesLong>>0 : STA !NMI_AUX
|
||||
LDA.b #Shopkeeper_UploadVRAMTilesLong>>8 : STA !NMI_AUX+1
|
||||
LDA.b #Shopkeeper_UploadVRAMTilesLong>>16 : STA !NMI_AUX+2
|
||||
RTS
|
||||
;QueueItemDMA:
|
||||
; LDA.b #Shopkeeper_UploadVRAMTilesLong>>0 : STA !NMI_AUX
|
||||
; LDA.b #Shopkeeper_UploadVRAMTilesLong>>8 : STA !NMI_AUX+1
|
||||
; LDA.b #Shopkeeper_UploadVRAMTilesLong>>16 : STA !NMI_AUX+2
|
||||
;RTS
|
||||
;--------------------------------------------------------------------------------
|
||||
; X - Tile Buffer Offset
|
||||
; Y - Item ID
|
||||
|
||||
@@ -243,14 +243,18 @@ RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
CountChestKey: ; called by neighbor functions
|
||||
PHA : PHX
|
||||
lda !MULTIWORLD_ITEM_PLAYER_ID : bne .end
|
||||
LDA !MULTIWORLD_ITEM_PLAYER_ID : bne .end
|
||||
CPY #24 : BEQ + ; hera basement key
|
||||
CPY #$24 : BEQ + ; small key for this dungeon - use $040C
|
||||
CPY #$A0 : !BLT .end ; Ignore most items
|
||||
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
|
||||
INC
|
||||
++ 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
|
||||
LDA $7EF4E0, X : INC : STA $7EF4E0, X
|
||||
.end
|
||||
|
||||
Reference in New Issue
Block a user