let's dev 4/20/18

fixed keysanity textbox crashes (probably)
fixed bow graphic not getting updated after firing last arrow in non-retro
added fighter sword and progressive sword to shop exemption list
fixed (probably didn't) RNG item single
fixed standing keys from not being counted in hera basement
This commit is contained in:
Karkat
2018-04-20 22:49:04 -04:00
parent c679e33011
commit 762b9bc3e7
9 changed files with 60 additions and 45 deletions

View File

@@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF
db #$00 ; expand file to 2mb db #$00 ; expand file to 2mb
org $1FFFF8 ; <- FFFF8 timestamp rom org $1FFFF8 ; <- FFFF8 timestamp rom
db #$20, #$18, #$04, #$02 ; year/month/day db #$20, #$18, #$04, #$20 ; year/month/day
;================================================================================ ;================================================================================

View File

@@ -117,6 +117,7 @@ macro CopyDialogIndirect()
endmacro endmacro
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
LoadDialogAddressIndirect: LoadDialogAddressIndirect:
STZ $1CF0 : STZ $1CF1 ; reset decompression buffer
LDA.b #$01 : STA $7F5035 ; set flag LDA.b #$01 : STA $7F5035 ; set flag
%CopyDialogIndirect() %CopyDialogIndirect()
;%LoadDialogAddress(UncleText) ;%LoadDialogAddress(UncleText)
@@ -225,6 +226,7 @@ FreeDungeonItemNotice:
+ +
.done .done
STZ $1CF0 : STZ $1CF1 ; reset decompression buffer
LDA.b #$01 : STA $7F5035 ; set alternate dialog flag LDA.b #$01 : STA $7F5035 ; set alternate dialog flag
LDA.b #$01 : STA $7F50A0 LDA.b #$01 : STA $7F50A0

View File

@@ -155,6 +155,7 @@ PostItemAnimation:
LDA.b #$00 : STA !ITEM_BUSY ; mark item as finished LDA.b #$00 : STA !ITEM_BUSY ; mark item as finished
LDA $7F50A0 : BEQ + LDA $7F50A0 : BEQ +
STZ $1CF0 : STZ $1CF1 ; reset decompression buffer
JSL.l Main_ShowTextMessage JSL.l Main_ShowTextMessage
LDA.b #$00 : STA $7F50A0 LDA.b #$00 : STA $7F50A0
+ +

View File

@@ -2126,7 +2126,7 @@ org $07A055 ; <- Bank07.asm:5205 (LDA $0B99 : BEQ BRANCH_DELTA)
JSL.l ArrowGame : NOP #14 JSL.l ArrowGame : NOP #14
org $07A06C ; <- Bank07.asm:5215 (LDA $7EF377 : BEQ BRANCH_EPSILON) org $07A06C ; <- Bank07.asm:5215 (LDA $7EF377 : BEQ BRANCH_EPSILON)
JSL.l DecrementArrows : SKIP #2 : NOP #5 JSL.l DecrementArrows : SKIP #2 : NOP : LDA $7EF377
;================================================================================ ;================================================================================
;================================================================================ ;================================================================================

View File

@@ -255,9 +255,11 @@ AddInventory:
CPY.b #$38 : BNE + : BRL .itemCounts : + ; Pendant CPY.b #$38 : BNE + : BRL .itemCounts : + ; Pendant
CPY.b #$39 : BNE + : BRL .itemCounts : + ; Pendant CPY.b #$39 : BNE + : BRL .itemCounts : + ; Pendant
CPY.b #$00 : BNE + : BRL .itemCounts : + ; Uncle Sword & Shield CPY.b #$00 : BNE + : BRL .itemCounts : + ; Uncle Sword & Shield
CPY.b #$04 : !BLT .isSword ; Swords - Skip Shop/Fairy Check for Swords CPY.b #$04 : !BLT .isSword ; Swords - Skip Shop/Fairy Check for Swords
CPY.b #$49 : BEQ .isSword
CPY.b #$50 : BEQ .isSword CPY.b #$50 : BEQ .isSword
CPY.b #$5E : BEQ .isSword
BRA + BRA +
.isSword .isSword
BRL .dungeonCounts BRL .dungeonCounts

View File

@@ -908,29 +908,33 @@ RTL
!SINGLE_INDEX_BITMASK_TEMP = "$7F5022" !SINGLE_INDEX_BITMASK_TEMP = "$7F5022"
!LOCK_IN = "$7F5090" !LOCK_IN = "$7F5090"
GetRNGItemSingle: GetRNGItemSingle:
LDA !LOCK_IN : CMP #$FF : BEQ + : TAX : XBA : LDA.l RNGSingleItemTable, X : RTL : + PHY
LDX.b #$00 LDA !LOCK_IN : CMP.b #$FF : BEQ + : TAX : XBA : LDA.l RNGSingleItemTable, X : RTL : +
.single_reroll LDX.b #$00
JSL.l GetRandomInt : AND.b #$7F ; select random value .single_reroll
INX : CPX #$7F : !BLT + : LDA.b #$00 : BRA +++ : + ; default to 0 if too many attempts JSL.l GetRandomInt : AND.b #$7F ; select random value
CMP.l RNGSingleTableSize : !BGE .single_reroll INX : CPX #$7F : !BLT + : LDA.b #$00 : BRA +++ : + ; default to 0 if too many attempts
+++ CMP.l RNGSingleTableSize : !BGE .single_reroll
+++
STA !SINGLE_INDEX_TEMP ; put our index value here STA !SINGLE_INDEX_TEMP ; put our index value here
LDX #$00 LDX #$00
.recheck TAY
JSR.w CheckSingleItem : BEQ .single_unused ; already used .recheck
LDA !SINGLE_INDEX_TEMP : INC ; increment index TYA
CMP.l RNGSingleTableSize : !BLT +++ : LDA.b #$00 : +++ ; rollover index if needed JSR.w CheckSingleItem : BEQ .single_unused ; already used
STA !SINGLE_INDEX_TEMP ; store index LDA !SINGLE_INDEX_TEMP : INC ; increment index
INX : CPX.l RNGSingleTableSize : !BLT .recheck CMP.l RNGSingleTableSize : !BLT +++ : LDA.b #$00 : +++ ; rollover index if needed
LDA.b #$5A ; everything is gone, default to null item - MAKE THIS AN OPTION FOR THIS AND THE OTHER ONE STA !SINGLE_INDEX_TEMP ; store index
BRA .single_done INX : TAY : TXA : CMP.l RNGSingleTableSize : !BLT .recheck
.single_unused LDA.b #$5A ; everything is gone, default to null item - MAKE THIS AN OPTION FOR THIS AND THE OTHER ONE
LDA !SINGLE_INDEX_TEMP BRA .single_done
.single_done .single_unused
TAX : LDA.l RNGSingleItemTable, X LDA !SINGLE_INDEX_TEMP
XBA : LDA.l !SINGLE_INDEX_TEMP : STA !LOCK_IN : XBA .single_done
TAX : LDA.l RNGSingleItemTable, X
XBA : LDA.l !SINGLE_INDEX_TEMP : STA !LOCK_IN : XBA
PLY
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
CheckSingleItem: CheckSingleItem:

View File

@@ -229,7 +229,6 @@ SpritePrep_ShopKeeper:
;JSR.w QueueItemDMA ;JSR.w QueueItemDMA
.done .done
STA $FFFFFF
LDA.l !SHOP_TYPE : BIT.b #$20 : BEQ .notTakeAll ; Take-all LDA.l !SHOP_TYPE : BIT.b #$20 : BEQ .notTakeAll ; Take-all
.takeAll .takeAll

View File

@@ -241,6 +241,13 @@ IncrementSmallKeysNoPrimary:
JSL AddInventory_incrementKeyLong JSL AddInventory_incrementKeyLong
+ +
JSL.l UpdateKeys JSL.l UpdateKeys
LDA $1B : BEQ + ; skip room check if outdoors
PHP : REP #$20 ; set 16-bit accumulator
LDA $048E : CMP.w #$0087 : BNE ++ ; hera basement
PLP : PHY : LDY.b #24 : JSL.l FullInventoryExternal : PLY : BRA +
++
PLP
+
JSL.l HUD_RebuildLong JSL.l HUD_RebuildLong
PLX PLX
RTL RTL

View File

@@ -1572,28 +1572,28 @@ db $FF, $FF, $FF, $FF
org $30C800 ; PC 0x184800 - 0x1848FF - max 32 shops ; do not exceed 36 tracked items sram_index > ($24) org $30C800 ; PC 0x184800 - 0x1848FF - max 32 shops ; do not exceed 36 tracked items sram_index > ($24)
ShopTable: ShopTable:
;db [id][roomID-low][roomID-high][doorID][zero][shop_config][shopkeeper_config][sram_index] ;db [id][roomID-low][roomID-high][doorID][zero][shop_config][shopkeeper_config][sram_index]
;db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
db $01, $FF, $00, $00, $00, $43, $A0, $00 ;db $01, $FF, $00, $00, $00, $43, $A0, $00
db $02, $0F, $01, $60, $00, $03, $C1, $03 ;db $02, $0F, $01, $60, $00, $03, $C1, $03
db $FF, $12, $01, $58, $00, $A3, $E3, $06 ;db $FF, $12, $01, $58, $00, $81, $E3, $06
db $02, $0F, $01, $57, $00, $03, $A0, $09 ;db $02, $0F, $01, $57, $00, $03, $A0, $09
db $03, $0F, $01, $60, $00, $03, $A0, $0c ;db $03, $0F, $01, $60, $00, $03, $A0, $0c
db $04, $0F, $01, $6F, $00, $03, $A0, $0f ;db $04, $0F, $01, $6F, $00, $03, $A0, $0f
db $05, $FF, $00, $00, $00, $03, $A0, $12 ;db $05, $FF, $00, $00, $00, $03, $A0, $12
db $06, $1F, $01, $46, $00, $03, $A0, $15 ;db $06, $1F, $01, $46, $00, $03, $A0, $15
db $FF, $12, $01, $58, $00, $03, $A0, $18 ;db $FF, $12, $01, $58, $00, $03, $A0, $18
org $30C900 ; PC 0x184900 - 0x184FFF - max 224 entries org $30C900 ; PC 0x184900 - 0x184FFF - max 224 entries
ShopContentsTable: ShopContentsTable:
;db [id][item][price-low][price-high][max][repl_id][repl_price-low][repl_price-high] ;db [id][item][price-low][price-high][max][repl_id][repl_price-low][repl_price-high]
db $01, $2E, $96, $00, $00, $FF, $00, $00 ;db $01, $2E, $96, $00, $00, $FF, $00, $00
db $01, $AF, $50, $00, $00, $FF, $00, $00 ;db $01, $AF, $50, $00, $00, $FF, $00, $00
db $01, $31, $32, $00, $00, $FF, $00, $00 ;db $01, $31, $32, $00, $00, $FF, $00, $00
db $02, $2E, $96, $00, $00, $FF, $00, $00 ;db $02, $2E, $96, $00, $00, $FF, $00, $00
db $02, $AF, $50, $00, $00, $FF, $00, $00 ;db $02, $AF, $50, $00, $00, $FF, $00, $00
db $02, $31, $32, $00, $00, $FF, $00, $00 ;db $02, $31, $32, $00, $00, $FF, $00, $00
db $FF, $2E, $96, $00, $00, $FF, $00, $00 ;db $FF, $5E, $96, $00, $00, $FF, $00, $00
db $FF, $30, $2C, $01, $00, $FF, $00, $00 ;db $FF, $30, $2C, $01, $00, $FF, $00, $00
db $FF, $31, $32, $00, $00, $FF, $00, $00 ;db $FF, $31, $32, $00, $00, $FF, $00, $00
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
;================================================================================ ;================================================================================
org $30D000 ; PC 0x185000 - 0x18503F org $30D000 ; PC 0x185000 - 0x18503F