New happiness pond show
This commit is contained in:
@@ -54,3 +54,35 @@ FairyPond_Init:
|
|||||||
+ : PLY
|
+ : PLY
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
HappinessPond_Check:
|
||||||
|
LDA $A0 : CMP.b #$15 ;what we wrote over
|
||||||
|
PHP
|
||||||
|
BNE .done
|
||||||
|
|
||||||
|
LDA.b #$72
|
||||||
|
JSL Sprite_SpawnDynamically
|
||||||
|
|
||||||
|
LDA $0FD8 : STA $0D10, Y
|
||||||
|
LDA $0FD9 : STA $0D30, Y
|
||||||
|
|
||||||
|
LDA $0FDA : !SUB.b #$40 : STA $0D00, Y
|
||||||
|
LDA $0FDB : SBC.b #$00 : STA $0D20, Y
|
||||||
|
|
||||||
|
LDA.b #$01 : STA $0DA0, Y
|
||||||
|
|
||||||
|
LDA.b #$BB
|
||||||
|
JSL Sprite_SpawnDynamically
|
||||||
|
|
||||||
|
LDA.b #$08 : STA $0DD0, Y ; ensure we run prep for the shopkeeper
|
||||||
|
|
||||||
|
LDA $0FD8 : STA $0D10, Y
|
||||||
|
LDA $0FD9 : STA $0D30, Y
|
||||||
|
|
||||||
|
LDA $0FDA : !SUB.b #$20 : STA $0D00, Y
|
||||||
|
LDA $0FDB : SBC.b #$00 : STA $0D20, Y
|
||||||
|
|
||||||
|
STZ $0DD0, X ; self terminate
|
||||||
|
|
||||||
|
.done
|
||||||
|
PLP
|
||||||
|
RTL
|
||||||
|
|||||||
@@ -1547,9 +1547,9 @@ JSL.l DialogGanon1
|
|||||||
org $1D9078 ; <- E9078 - sprite_ganon.asm:552 (LDA.b #$70 : STA $1CF0)
|
org $1D9078 ; <- E9078 - sprite_ganon.asm:552 (LDA.b #$70 : STA $1CF0)
|
||||||
JSL.l DialogGanon2 : RTS
|
JSL.l DialogGanon2 : RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;-- Disable Capitalism fairy
|
;-- Convert Capitalism fairy to shop
|
||||||
org $06C454 ; <- 34454 - sprite_ponds.asm:133 (LDA $0D80, X)
|
org $06C4BD ; <- 34C4BD - sprite_ponds.asm:107 (LDA $A0 : CMP.b #$15 : BEQ Sprite_HappinessPond)
|
||||||
LDA.b #$00 : NOP
|
JSL.l HappinessPond_Check
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;-- Sahasrahla (no green pendant)
|
;-- Sahasrahla (no green pendant)
|
||||||
org $05F16C ; <- 2F16C sprite_elder.asm:137 (JSL Sprite_ShowSolicitedMessageIfPlayerFacing)
|
org $05F16C ; <- 2F16C sprite_elder.asm:137 (JSL Sprite_ShowSolicitedMessageIfPlayerFacing)
|
||||||
|
|||||||
@@ -219,7 +219,18 @@ SpritePrep_ShopKeeper:
|
|||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
++
|
++
|
||||||
STA !SHOP_STATE
|
STA !SHOP_STATE
|
||||||
|
|
||||||
|
; If the item is $FF, make it not show (as if already taken)
|
||||||
|
LDA !SHOP_INVENTORY : CMP.b #$FF : BNE +
|
||||||
|
LDA !SHOP_STATE : ORA Shopkeeper_ItemMasks : STA !SHOP_STATE
|
||||||
|
+
|
||||||
|
LDA !SHOP_INVENTORY+4 : CMP.b #$FF : BNE +
|
||||||
|
LDA !SHOP_STATE : ORA Shopkeeper_ItemMasks+1 : STA !SHOP_STATE
|
||||||
|
+
|
||||||
|
LDA !SHOP_INVENTORY+8 : CMP.b #$FF : BNE +
|
||||||
|
LDA !SHOP_STATE : ORA Shopkeeper_ItemMasks+2 : STA !SHOP_STATE
|
||||||
|
+
|
||||||
|
|
||||||
PLP : PLY : PLX
|
PLP : PLY : PLX
|
||||||
|
|
||||||
LDA.l !SHOP_TYPE : CMP.b #$FF : BNE +
|
LDA.l !SHOP_TYPE : CMP.b #$FF : BNE +
|
||||||
@@ -275,7 +286,44 @@ Shopkeeper_UploadVRAMTiles:
|
|||||||
LDA #$80 : STA $4302 ; set bus A source address to tile buffer
|
LDA #$80 : STA $4302 ; set bus A source address to tile buffer
|
||||||
LDA #$A1 : STA $4303
|
LDA #$A1 : STA $4303
|
||||||
LDA #$7E : STA $4304
|
LDA #$7E : STA $4304
|
||||||
|
|
||||||
|
LDA !SHOP_TYPE : AND.b #$10 : BNE .special
|
||||||
|
BRL .normal
|
||||||
|
|
||||||
|
.special
|
||||||
|
|
||||||
|
LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40
|
||||||
|
LDA #$40 : STA $2116 ; set VRAM register destination address
|
||||||
|
LDA #$5A : STA $2117
|
||||||
|
LDA #$01 : STA $420B ; begin DMA transfer
|
||||||
|
|
||||||
|
LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40
|
||||||
|
LDA #$40 : STA $2116 ; set VRAM register destination address
|
||||||
|
LDA #$5B : STA $2117
|
||||||
|
LDA #$01 : STA $420B ; begin DMA transfer
|
||||||
|
|
||||||
|
LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40
|
||||||
|
LDA #$60 : STA $2116 ; set VRAM register destination address
|
||||||
|
LDA #$5A : STA $2117
|
||||||
|
LDA #$01 : STA $420B ; begin DMA transfer
|
||||||
|
|
||||||
|
LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40
|
||||||
|
LDA #$60 : STA $2116 ; set VRAM register destination address
|
||||||
|
LDA #$5B : STA $2117
|
||||||
|
LDA #$01 : STA $420B ; begin DMA transfer
|
||||||
|
|
||||||
|
LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40
|
||||||
|
LDA #$80 : STA $2116 ; set VRAM register destination address
|
||||||
|
LDA #$5A : STA $2117
|
||||||
|
LDA #$01 : STA $420B ; begin DMA transfer
|
||||||
|
|
||||||
|
LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40
|
||||||
|
LDA #$80 : STA $2116 ; set VRAM register destination address
|
||||||
|
LDA #$5B : STA $2117
|
||||||
|
LDA #$01 : STA $420B ; begin DMA transfer
|
||||||
|
BRL .end
|
||||||
|
|
||||||
|
.normal
|
||||||
LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40
|
LDA #$40 : STA $4305 : STZ $4306 ; set transfer size to 0x40
|
||||||
LDA #$60 : STA $2116 ; set VRAM register destination address
|
LDA #$60 : STA $2116 ; set VRAM register destination address
|
||||||
LDA #$5C : STA $2117
|
LDA #$5C : STA $2117
|
||||||
@@ -306,6 +354,7 @@ Shopkeeper_UploadVRAMTiles:
|
|||||||
LDA #$5D : STA $2117
|
LDA #$5D : STA $2117
|
||||||
LDA #$01 : STA $420B ; begin DMA transfer
|
LDA #$01 : STA $420B ; begin DMA transfer
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
.end
|
||||||
PLA : STA $4306 ; restore DMA parameters
|
PLA : STA $4306 ; restore DMA parameters
|
||||||
PLA : STA $4305 ; restore DMA parameters
|
PLA : STA $4305 ; restore DMA parameters
|
||||||
PLA : STA $4304 ; restore DMA parameters
|
PLA : STA $4304 ; restore DMA parameters
|
||||||
@@ -404,7 +453,7 @@ dw 0, 0 : db <body>, $40, $00, $02
|
|||||||
endmacro
|
endmacro
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
Shopkeeper_DrawMerchant:
|
Shopkeeper_DrawMerchant:
|
||||||
LDA.l !SHOP_MERCHANT : AND.b #$03
|
LDA.l !SHOP_MERCHANT : AND.b #$07
|
||||||
BEQ Shopkeeper_DrawMerchant_Type0
|
BEQ Shopkeeper_DrawMerchant_Type0
|
||||||
CMP.b #$01 : BNE + : BRL Shopkeeper_DrawMerchant_Type1 : +
|
CMP.b #$01 : BNE + : BRL Shopkeeper_DrawMerchant_Type1 : +
|
||||||
CMP.b #$02 : BNE + : BRL Shopkeeper_DrawMerchant_Type2 : +
|
CMP.b #$02 : BNE + : BRL Shopkeeper_DrawMerchant_Type2 : +
|
||||||
@@ -684,6 +733,13 @@ Shopkeeper_DrawNextItem:
|
|||||||
.potion
|
.potion
|
||||||
LDA.b #$C0 ; potion is #$C0 because it's already there in VRAM
|
LDA.b #$C0 ; potion is #$C0 because it's already there in VRAM
|
||||||
+
|
+
|
||||||
|
XBA
|
||||||
|
|
||||||
|
LDA !SHOP_TYPE : AND.b #$10 : BEQ +
|
||||||
|
XBA : !SUB #$22 : XBA ; alt vram
|
||||||
|
+
|
||||||
|
XBA
|
||||||
|
|
||||||
STA.l !SPRITE_OAM+4
|
STA.l !SPRITE_OAM+4
|
||||||
|
|
||||||
LDA.l !SHOP_INVENTORY, X ; get item palette
|
LDA.l !SHOP_INVENTORY, X ; get item palette
|
||||||
|
|||||||
12
tables.asm
12
tables.asm
@@ -1473,27 +1473,33 @@ org $30C000 ; PC 0x184000 - 0x184007
|
|||||||
ItemSubstitutionRules:
|
ItemSubstitutionRules:
|
||||||
;db [item][quantity][substitution][pad] - CURRENT LIMIT 16 ENTRIES
|
;db [item][quantity][substitution][pad] - CURRENT LIMIT 16 ENTRIES
|
||||||
db $12, $01, $35, $FF
|
db $12, $01, $35, $FF
|
||||||
|
db $51, $06, $52, $FF
|
||||||
|
db $53, $06, $54, $FF
|
||||||
db $FF, $FF, $FF, $FF
|
db $FF, $FF, $FF, $FF
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 0x184008 - 0x1847FF (unused)
|
; 0x184008 - 0x1847FF (unused)
|
||||||
;================================================================================
|
;================================================================================
|
||||||
;shop_config - tda- --qq
|
;shop_config - tdav --qq
|
||||||
; t - 0=Shop - 1=TakeAny
|
; t - 0=Shop - 1=TakeAny
|
||||||
; d - 0=Check Door - 1=Skip Door Check
|
; d - 0=Check Door - 1=Skip Door Check
|
||||||
; a - 0=Shop/TakeAny - 1=TakeAll
|
; a - 0=Shop/TakeAny - 1=TakeAll
|
||||||
|
; v - 0=normal vram, 1= alt vram
|
||||||
; qq - # of items for sale
|
; qq - # of items for sale
|
||||||
|
|
||||||
;shopkeeper_config - ppp- --ss
|
;shopkeeper_config - ppp- -sss
|
||||||
; ppp - palette
|
; ppp - palette
|
||||||
; ss - sprite type
|
; sss - sprite type
|
||||||
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 $01, $15, $01, $5D, $00, $12, $04, $00
|
||||||
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
|
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF
|
||||||
|
|
||||||
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, $51, $64, $00, $07, $FF, $00, $00
|
||||||
|
db $01, $53, $64, $00, $07, $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
|
||||||
|
|||||||
Reference in New Issue
Block a user