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:
Karkat
2018-03-01 00:27:39 -05:00
parent e0b55d6e8f
commit c4452389bb
8 changed files with 64 additions and 8 deletions

View File

@@ -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
;================================================================================

View File

@@ -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
;--------------------------------------------------------------------------------

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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