let's dev feb 28 2017
fixed boss swords incrementing the wrong sword when bossed drop swords quick swap support officially enabled and permitting in non-race modes in all generators
This commit is contained in:
@@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF
|
||||
db #$00 ; expand file to 2mb
|
||||
|
||||
org $1FFFF8 ; <- FFFF8 timestamp rom
|
||||
db #$20, #$18, #$02, #$27 ; year/month/day
|
||||
db #$20, #$18, #$02, #$28 ; year/month/day
|
||||
|
||||
;================================================================================
|
||||
|
||||
|
||||
@@ -51,4 +51,29 @@ 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
|
||||
;--------------------------------------------------------------------------------
|
||||
@@ -33,6 +33,7 @@ RTL
|
||||
;--------------------------------------------------------------------------------
|
||||
HeartContainerGet:
|
||||
PHX : PHY
|
||||
JSL.l AddInventory_incrementBossSwordLong
|
||||
JSL.l LoadHeartContainerRoomValue : TAY ; load item value into Y register
|
||||
|
||||
BRA HeartPieceGet_skipLoad
|
||||
|
||||
@@ -21,6 +21,10 @@ 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:
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;================================================================================
|
||||
; Anti-ZSNES Hook
|
||||
|
||||
@@ -621,7 +621,7 @@ RTS
|
||||
LDA $7EF429 : INC : AND #$03 : TAX
|
||||
LDA $7EF429 : AND #$FC : STA $7EF429
|
||||
TXA : ORA $7EF429 : STA $7EF429
|
||||
JSR .incrementBossSword
|
||||
; JSR .incrementBossSword
|
||||
RTS
|
||||
|
||||
.incrementCapacity
|
||||
@@ -642,7 +642,7 @@ RTS
|
||||
LDA $7EF422 : INC : AND #$07 : TAX
|
||||
LDA $7EF422 : AND #$F8 : STA $7EF422
|
||||
TXA : ORA $7EF422 : STA $7EF422
|
||||
JSR .incrementBossSword
|
||||
; JSR .incrementBossSword
|
||||
RTS
|
||||
|
||||
.incrementMail
|
||||
|
||||
@@ -12,6 +12,10 @@ QuickSwap:
|
||||
LDA.w $0202 : BEQ .done ; Skip everything if we don't have any items
|
||||
|
||||
;TODO add romtype and race rom checks here
|
||||
LDA.l TournamentSeed : BEQ +
|
||||
LDA.l GameType : AND.b #$02 : BNE +
|
||||
BRA .done
|
||||
+
|
||||
|
||||
PHX
|
||||
XBA ; restore the stashed value
|
||||
|
||||
@@ -132,6 +132,9 @@ RTS
|
||||
!SCRATCH_TEMP_X = "$7F5061"
|
||||
!SHOP_SRAM_INDEX = "$7F5062"
|
||||
!SHOP_MERCHANT = "$7F5063"
|
||||
!SHOP_DMA_TIMER = "$7F5064"
|
||||
;--------------------------------------------------------------------------------
|
||||
!NMI_AUX = "$7F5044"
|
||||
;--------------------------------------------------------------------------------
|
||||
.digit_properties
|
||||
dw $0230, $0231, $0202, $0203, $0212, $0213, $0222, $0223, $0232, $0233
|
||||
@@ -141,6 +144,7 @@ dw 4, 0, -4, -8
|
||||
;--------------------------------------------------------------------------------
|
||||
SpritePrep_ShopKeeper:
|
||||
PHX : PHY : PHP
|
||||
|
||||
REP #$30 ; set 16-bit accumulator & index registers
|
||||
;LDA $A0
|
||||
LDX.w #$0000
|
||||
@@ -211,8 +215,9 @@ SpritePrep_ShopKeeper:
|
||||
.stop
|
||||
|
||||
LDA #$80 : STA $2100
|
||||
JSR UploadVRAMTiles
|
||||
JSR Shopkeeper_UploadVRAMTiles
|
||||
LDA #$0F : STA $2100
|
||||
;JSR.w QueueItemDMA
|
||||
|
||||
.done
|
||||
LDA.b #$00 : STA !SHOP_STATE
|
||||
@@ -230,6 +235,12 @@ 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
|
||||
;--------------------------------------------------------------------------------
|
||||
; X - Tile Buffer Offset
|
||||
; Y - Item ID
|
||||
LoadTile:
|
||||
@@ -246,7 +257,10 @@ RTS
|
||||
;--------------------------------------------------------------------------------
|
||||
;!SHOP_PURCHASE_COUNTS = "$7EF3A0"
|
||||
;--------------------------------------------------------------------------------
|
||||
UploadVRAMTiles:
|
||||
Shopkeeper_UploadVRAMTilesLong:
|
||||
JSR.w Shopkeeper_UploadVRAMTiles
|
||||
RTL
|
||||
Shopkeeper_UploadVRAMTiles:
|
||||
LDA $4300 : PHA ; preserve DMA parameters
|
||||
LDA $4301 : PHA ; preserve DMA parameters
|
||||
LDA $4302 : PHA ; preserve DMA parameters
|
||||
@@ -314,6 +328,7 @@ Shopkepeer_CallOriginal:
|
||||
;!SHOP_CAPACITY = "$7F5020"
|
||||
;!SCRATCH_TEMP_X = "$7F5021"
|
||||
Sprite_ShopKeeper:
|
||||
|
||||
LDA.l !SHOP_TYPE : CMP.b #$FF : BNE + : JMP.w Shopkepeer_CallOriginal : +
|
||||
|
||||
PHB : PHK : PLB
|
||||
|
||||
13
tables.asm
13
tables.asm
@@ -802,7 +802,12 @@ db #$00 ; #$00 = Casual (default) - #$01 = Glitched - #$02 = Speedrunner - #$FF
|
||||
;--------------------------------------------------------------------------------
|
||||
org $308211 ; PC 0x180211
|
||||
GameType:
|
||||
db #$00 ; #$00 = Randomizer (default) - #$01 = Plandomizer - #$FF = Other Editors
|
||||
;---- ridn
|
||||
;r - room randomization
|
||||
;i - item randomization
|
||||
;d - door/entrance randomization
|
||||
;n - enemy randomization
|
||||
db #$00 ; #$00 = Not Randomized (default)
|
||||
;--------------------------------------------------------------------------------
|
||||
;dgGe mutT
|
||||
;d - Nonstandard Dungeon Configuration (Not Map/Compass/BigKey/SmallKeys in same quantity as vanilla)
|
||||
@@ -1329,7 +1334,8 @@ dw #9999 ; Rupee Limit
|
||||
; $7F5041 - Unused
|
||||
; $7F5042 - Tile Upload Offset Override (Low)
|
||||
; $7F5043 - Tile Upload Offset Override (High)
|
||||
; $7F5044 - $7F504F - Unused
|
||||
; $7F5044 - $7F5046 - NMI Auxiliary Function
|
||||
; $7F5047 - $7F504F - Unused
|
||||
; $7F5050 - $7F506F - Shop Block
|
||||
; $7F5070 - $7F507D - Unused
|
||||
; $7F507E - Clock Status
|
||||
@@ -1462,7 +1468,8 @@ org $30C800 ; PC 0x184800 - 0x18487F - max 16 shops
|
||||
ShopTable:
|
||||
;db [id][roomID-low][roomID-high][doorID][zero][shop_config][shopkeeper_config][sram_index]
|
||||
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
|
||||
db $01, $0F, $01, $57, $00, $03, $C1, $00
|
||||
db $01, $FF, $00, $00, $00, $43, $A0, $00
|
||||
;db $01, $0F, $01, $57, $00, $03, $C1, $00
|
||||
db $02, $0F, $01, $60, $00, $03, $C1, $03
|
||||
db $FF, $12, $01, $58, $00, $02, $E3, $06
|
||||
db $02, $0F, $01, $57, $00, $03, $A0, $09
|
||||
|
||||
Reference in New Issue
Block a user