let's dev 1/27/18
added msu music support additional development on shops
This commit is contained in:
@@ -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, #$01, #$24 ; year/month/day
|
db #$20, #$18, #$01, #$27 ; year/month/day
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|
||||||
@@ -113,6 +113,7 @@ incsrc swordswap.asm
|
|||||||
incsrc stats.asm
|
incsrc stats.asm
|
||||||
incsrc scratchpad.asm
|
incsrc scratchpad.asm
|
||||||
incsrc map.asm
|
incsrc map.asm
|
||||||
|
incsrc msu.asm
|
||||||
incsrc dialog.asm
|
incsrc dialog.asm
|
||||||
incsrc events.asm
|
incsrc events.asm
|
||||||
incsrc entrances.asm
|
incsrc entrances.asm
|
||||||
@@ -370,6 +371,9 @@ Sprite_ShowMessageMinimal:
|
|||||||
org $05EC96
|
org $05EC96
|
||||||
Sprite_ZeldaLong:
|
Sprite_ZeldaLong:
|
||||||
|
|
||||||
|
org $0683E6
|
||||||
|
Utility_CheckIfHitBoxesOverlapLong:
|
||||||
|
|
||||||
org $06A7DB
|
org $06A7DB
|
||||||
Chicken_SpawnAvengerChicken: ; returns short
|
Chicken_SpawnAvengerChicken: ; returns short
|
||||||
|
|
||||||
@@ -497,6 +501,9 @@ Palette_Hud:
|
|||||||
org $1CFAAA
|
org $1CFAAA
|
||||||
ShopKeeper_RapidTerminateReceiveItem:
|
ShopKeeper_RapidTerminateReceiveItem:
|
||||||
|
|
||||||
|
org $1CF500
|
||||||
|
Sprite_NullifyHookshotDrag:
|
||||||
|
|
||||||
org $1DF65D
|
org $1DF65D
|
||||||
Sprite_SpawnDynamically:
|
Sprite_SpawnDynamically:
|
||||||
|
|
||||||
|
|||||||
10
hooks.asm
10
hooks.asm
@@ -1058,6 +1058,16 @@ org $05FBD3 ; <- 2FBD3 - sprite_mad_batter.asm:209 - (STA $7EF37B)
|
|||||||
JSL.l GetMagicBatItem
|
JSL.l GetMagicBatItem
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
;================================================================================
|
||||||
|
; MSU Music
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
org $0080D7 ; <- D7 - Bank00.asm:172 (SEP #$30)
|
||||||
|
spc_nmi:
|
||||||
|
JML msu_main
|
||||||
|
NOP
|
||||||
|
spc_continue:
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;================================================================================
|
;================================================================================
|
||||||
; Replacement Shopkeeper
|
; Replacement Shopkeeper
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
183
msu.asm
Normal file
183
msu.asm
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
;=======================================
|
||||||
|
;
|
||||||
|
; MSU-1 Enhanced Audio Patch
|
||||||
|
; Zelda no Densetsu - Kamigami no Triforce
|
||||||
|
; Modified for VT Randomizer
|
||||||
|
;
|
||||||
|
; Author: qwertymodo
|
||||||
|
;
|
||||||
|
; Free space used: 0x77DDD-0x77F8A
|
||||||
|
;
|
||||||
|
;=======================================
|
||||||
|
|
||||||
|
!REG_MSU_STATUS = $2000
|
||||||
|
|
||||||
|
!REG_MSU_ID_0 = $2002
|
||||||
|
!REG_MSU_ID_1 = $2003
|
||||||
|
!REG_MSU_ID_2 = $2004
|
||||||
|
!REG_MSU_ID_3 = $2005
|
||||||
|
!REG_MSU_ID_4 = $2006
|
||||||
|
!REG_MSU_ID_5 = $2007
|
||||||
|
|
||||||
|
!REG_MSU_ID_01 = $2002
|
||||||
|
!REG_MSU_ID_23 = $2004
|
||||||
|
!REG_MSU_ID_45 = $2006
|
||||||
|
|
||||||
|
|
||||||
|
!VAL_MSU_ID_0 = #$53 ; 'S'
|
||||||
|
!VAL_MSU_ID_1 = #$2D ; '-'
|
||||||
|
!VAL_MSU_ID_2 = #$4D ; 'M'
|
||||||
|
!VAL_MSU_ID_3 = #$53 ; 'S'
|
||||||
|
!VAL_MSU_ID_4 = #$55 ; 'U'
|
||||||
|
!VAL_MSU_ID_5 = #$31 ; '1'
|
||||||
|
|
||||||
|
!VAL_MSU_ID_01 = #$2D53 ; 'S-'
|
||||||
|
!VAL_MSU_ID_23 = #$534D ; 'MS'
|
||||||
|
!VAL_MSU_ID_45 = #$3155 ; 'U1'
|
||||||
|
|
||||||
|
|
||||||
|
!REG_MSU_TRACK = $2004
|
||||||
|
!REG_MSU_TRACK_LO = $2004
|
||||||
|
!REG_MSU_TRACK_HI = $2005
|
||||||
|
!REG_MSU_VOLUME = $2006
|
||||||
|
!REG_MSU_CONTROL = $2007
|
||||||
|
|
||||||
|
|
||||||
|
!FLAG_MSU_PLAY = #$01
|
||||||
|
!FLAG_MSU_REPEAT = #$02
|
||||||
|
!FLAG_MSU_STATUS_TRACK_MISSING = #$08
|
||||||
|
!FLAG_MSU_STATUS_AUDIO_PLAYING = #$10
|
||||||
|
!FLAG_MSU_STATUS_AUDIO_REPEATING = #$20
|
||||||
|
!FLAG_MSU_STATUS_AUDIO_BUSY = #$40
|
||||||
|
!FLAG_MSU_STATUS_DATA_BUSY = #$80
|
||||||
|
|
||||||
|
|
||||||
|
!REG_CURRENT_VOLUME = $0127
|
||||||
|
!REG_TARGET_VOLUME = $0129
|
||||||
|
!REG_CURRENT_MSU_TRACK = $012B
|
||||||
|
!REG_MUSIC_CONTROL = $012C
|
||||||
|
!REG_CURRENT_TRACK = $0130
|
||||||
|
!REG_CURRENT_COMMAND = $0133
|
||||||
|
|
||||||
|
!REG_SPC_CONTROL = $2140
|
||||||
|
!REG_NMI_FLAGS = $4210
|
||||||
|
|
||||||
|
|
||||||
|
!VAL_COMMAND_FADE_OUT = #$F1
|
||||||
|
!VAL_COMMAND_FADE_HALF = #$F2
|
||||||
|
!VAL_COMMAND_FULL_VOLUME = #$F3
|
||||||
|
!VAL_COMMAND_LOAD_NEW_BANK = #$FF
|
||||||
|
|
||||||
|
!VAL_VOLUME_INCREMENT = #$10
|
||||||
|
!VAL_VOLUME_DECREMENT = #$02
|
||||||
|
!VAL_VOLUME_HALF = #$80
|
||||||
|
!VAL_VOLUME_FULL = #$FF
|
||||||
|
|
||||||
|
msu_main:
|
||||||
|
SEP #$20 ; set 8-bit accumulator
|
||||||
|
LDA $4210 ; thing we wrote over
|
||||||
|
REP #$20 ; set 16-bit accumulator
|
||||||
|
LDA !REG_MSU_ID_01
|
||||||
|
CMP !VAL_MSU_ID_01
|
||||||
|
BEQ .continue
|
||||||
|
.nomsu
|
||||||
|
SEP #$30
|
||||||
|
JML spc_continue
|
||||||
|
.continue
|
||||||
|
LDA !REG_MSU_ID_23
|
||||||
|
CMP !VAL_MSU_ID_23
|
||||||
|
BNE .nomsu
|
||||||
|
LDA !REG_MSU_ID_45
|
||||||
|
CMP !VAL_MSU_ID_45
|
||||||
|
BNE .nomsu
|
||||||
|
SEP #$30
|
||||||
|
LDX !REG_MUSIC_CONTROL
|
||||||
|
BNE command_ff
|
||||||
|
|
||||||
|
do_fade:
|
||||||
|
LDA !REG_CURRENT_VOLUME
|
||||||
|
CMP !REG_TARGET_VOLUME
|
||||||
|
BNE .continue
|
||||||
|
JML spc_continue
|
||||||
|
.continue
|
||||||
|
BCC .increment
|
||||||
|
.decrement
|
||||||
|
SBC !VAL_VOLUME_DECREMENT
|
||||||
|
BCS .set
|
||||||
|
.mute
|
||||||
|
STZ !REG_CURRENT_VOLUME
|
||||||
|
STZ !REG_MSU_CONTROL
|
||||||
|
STZ !REG_CURRENT_MSU_TRACK
|
||||||
|
BRA .set
|
||||||
|
.increment
|
||||||
|
ADC !VAL_VOLUME_INCREMENT
|
||||||
|
BCC .set
|
||||||
|
LDA !VAL_VOLUME_FULL
|
||||||
|
.set
|
||||||
|
STA !REG_CURRENT_VOLUME
|
||||||
|
STA !REG_MSU_VOLUME
|
||||||
|
JML spc_continue
|
||||||
|
|
||||||
|
command_ff:
|
||||||
|
CPX !VAL_COMMAND_LOAD_NEW_BANK
|
||||||
|
BNE command_f3
|
||||||
|
JML spc_continue
|
||||||
|
|
||||||
|
command_f3:
|
||||||
|
CPX !VAL_COMMAND_FULL_VOLUME
|
||||||
|
BNE command_f2
|
||||||
|
STX !REG_SPC_CONTROL
|
||||||
|
LDA !VAL_VOLUME_FULL
|
||||||
|
STA !REG_TARGET_VOLUME
|
||||||
|
JML spc_continue
|
||||||
|
|
||||||
|
command_f2:
|
||||||
|
CPX !VAL_COMMAND_FADE_HALF
|
||||||
|
BNE command_f1
|
||||||
|
STX !REG_SPC_CONTROL
|
||||||
|
LDA !VAL_VOLUME_HALF
|
||||||
|
STA !REG_TARGET_VOLUME
|
||||||
|
JML spc_continue
|
||||||
|
|
||||||
|
command_f1:
|
||||||
|
CPX !VAL_COMMAND_FADE_OUT
|
||||||
|
BNE load_track
|
||||||
|
STX !REG_SPC_CONTROL
|
||||||
|
STZ !REG_TARGET_VOLUME
|
||||||
|
JML spc_continue
|
||||||
|
|
||||||
|
load_track:
|
||||||
|
CPX !REG_CURRENT_MSU_TRACK
|
||||||
|
BNE .continue
|
||||||
|
CPX #$1B
|
||||||
|
BEQ .continue
|
||||||
|
JML spc_continue
|
||||||
|
.continue
|
||||||
|
STX !REG_MSU_TRACK_LO
|
||||||
|
STZ !REG_MSU_TRACK_HI
|
||||||
|
STZ !REG_MSU_CONTROL
|
||||||
|
LDA !VAL_VOLUME_FULL
|
||||||
|
STA !REG_TARGET_VOLUME
|
||||||
|
STA !REG_CURRENT_VOLUME
|
||||||
|
STA !REG_MSU_VOLUME
|
||||||
|
|
||||||
|
msu_check_busy:
|
||||||
|
LDA !REG_MSU_STATUS
|
||||||
|
BIT !FLAG_MSU_STATUS_AUDIO_BUSY
|
||||||
|
BNE msu_check_busy
|
||||||
|
BIT !FLAG_MSU_STATUS_TRACK_MISSING
|
||||||
|
BEQ msu_play
|
||||||
|
|
||||||
|
spc_fallback:
|
||||||
|
STZ !REG_MSU_CONTROL
|
||||||
|
STZ !REG_CURRENT_MSU_TRACK
|
||||||
|
STZ !REG_TARGET_VOLUME
|
||||||
|
STZ !REG_CURRENT_VOLUME
|
||||||
|
STZ !REG_MSU_VOLUME
|
||||||
|
JML spc_continue
|
||||||
|
|
||||||
|
msu_play:
|
||||||
|
LDA.l track_list,x
|
||||||
|
STA !REG_MSU_CONTROL
|
||||||
|
STX !REG_CURRENT_MSU_TRACK
|
||||||
|
JML spc_continue
|
||||||
136
shopkeeper.asm
136
shopkeeper.asm
@@ -109,7 +109,6 @@ DrawPrice:
|
|||||||
|
|
||||||
SEP #$20 ; set 8-bit accumulator
|
SEP #$20 ; set 8-bit accumulator
|
||||||
TXA : LSR #3 : STA $06 ; request 1-4 OAM slots
|
TXA : LSR #3 : STA $06 ; request 1-4 OAM slots
|
||||||
STA $FFFFFF
|
|
||||||
ASL #2
|
ASL #2
|
||||||
PHA
|
PHA
|
||||||
LDA $22 : CMP !COLUMN_LOW : !BLT .off
|
LDA $22 : CMP !COLUMN_LOW : !BLT .off
|
||||||
@@ -148,8 +147,7 @@ SpritePrep_ShopKeeper:
|
|||||||
SEP #$20 ; set 8-bit accumulator
|
SEP #$20 ; set 8-bit accumulator
|
||||||
LDA ShopTable, X : STA !SHOP_ID
|
LDA ShopTable, X : STA !SHOP_ID
|
||||||
LDA ShopTable+5, X : STA !SHOP_TYPE
|
LDA ShopTable+5, X : STA !SHOP_TYPE
|
||||||
AND.b #$03 : STA !SCRATCH_CAPACITY
|
AND.b #$03 : ASL #2 : STA !SCRATCH_CAPACITY
|
||||||
ASL : !ADD !SCRATCH_CAPACITY : STA !SCRATCH_CAPACITY
|
|
||||||
BRA .success
|
BRA .success
|
||||||
+
|
+
|
||||||
TXA : !ADD.w #$0008 : TAX
|
TXA : !ADD.w #$0008 : TAX
|
||||||
@@ -172,7 +170,7 @@ SpritePrep_ShopKeeper:
|
|||||||
LDA.l ShopContentsTable, X : CMP !SHOP_ID : BNE +
|
LDA.l ShopContentsTable, X : CMP !SHOP_ID : BNE +
|
||||||
LDA.l ShopContentsTable+1, X : PHX : TYX : STA.l !SHOP_INVENTORY, X : PLX
|
LDA.l ShopContentsTable+1, X : PHX : TYX : STA.l !SHOP_INVENTORY, X : PLX
|
||||||
LDA.l ShopContentsTable+2, X : PHX : TYX : STA.l !SHOP_INVENTORY+1, X : PLX
|
LDA.l ShopContentsTable+2, X : PHX : TYX : STA.l !SHOP_INVENTORY+1, X : PLX
|
||||||
LDA.l ShopContentsTable+3, X : PHX : TYX : STA.l !SHOP_INVENTORY+2, X : PLX
|
LDA.l ShopContentsTable+3, X : PHX : TYX : STA.l !SHOP_INVENTORY+2, X : LDA.b #$00 : STA.l !SHOP_INVENTORY+3, X : PLX
|
||||||
PHX : PHY
|
PHX : PHY
|
||||||
LDA.l ShopContentsTable+1, X : TAY
|
LDA.l ShopContentsTable+1, X : TAY
|
||||||
REP #$20 ; set 16-bit accumulator
|
REP #$20 ; set 16-bit accumulator
|
||||||
@@ -180,7 +178,7 @@ SpritePrep_ShopKeeper:
|
|||||||
JSR LoadTile
|
JSR LoadTile
|
||||||
PLY : PLX
|
PLY : PLX
|
||||||
INX #4
|
INX #4
|
||||||
INY #3
|
INY #4
|
||||||
+
|
+
|
||||||
BRA -
|
BRA -
|
||||||
.stop
|
.stop
|
||||||
@@ -193,9 +191,9 @@ SpritePrep_ShopKeeper:
|
|||||||
PLP : PLY : PLX
|
PLP : PLY : PLX
|
||||||
RTL
|
RTL
|
||||||
.tile_offsets
|
.tile_offsets
|
||||||
dw $0000 : db $00
|
dw $0000, $0000
|
||||||
dw $0080 : db $00
|
dw $0080, $0000
|
||||||
dw $0100 : db $00
|
dw $0100, $0000
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; X - Tile Buffer Offset
|
; X - Tile Buffer Offset
|
||||||
; Y - Item ID
|
; Y - Item ID
|
||||||
@@ -306,6 +304,9 @@ Sprite_ShopKeeper:
|
|||||||
; Draw Items
|
; Draw Items
|
||||||
JSR.w Shopkeeper_DrawItems
|
JSR.w Shopkeeper_DrawItems
|
||||||
|
|
||||||
|
; Set Up Hitboxes
|
||||||
|
JSR.w Shopkeeper_SetupHitboxes
|
||||||
|
|
||||||
; $22
|
; $22
|
||||||
; 0x48 - Left
|
; 0x48 - Left
|
||||||
; 0x60 - Midpoint 1
|
; 0x60 - Midpoint 1
|
||||||
@@ -323,6 +324,120 @@ dw 0, 0 : db $10, $0C, $00, $02
|
|||||||
dw 0, -8 : db $00, $0C, $00, $02
|
dw 0, -8 : db $00, $0C, $00, $02
|
||||||
dw 0, 0 : db $10, $4C, $00, $02
|
dw 0, 0 : db $10, $4C, $00, $02
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
Shopkeeper_SetupHitboxes:
|
||||||
|
PHX : PHY : PHP
|
||||||
|
LDY.b #$00
|
||||||
|
-
|
||||||
|
LDA $00EE : CMP $0F20, X : BNE .no_interaction
|
||||||
|
|
||||||
|
JSR.w Setup_LinksHitbox
|
||||||
|
JSR.w Setup_ShopItemCollisionHitbox
|
||||||
|
JSL.l Utility_CheckIfHitBoxesOverlapLong
|
||||||
|
BCC .no_contact
|
||||||
|
JSR.w Sprite_HaltSpecialPlayerMovementCopied
|
||||||
|
.no_contact
|
||||||
|
|
||||||
|
JSR.w Setup_ShopItemInteractionHitbox
|
||||||
|
JSL.l Utility_CheckIfHitBoxesOverlapLong
|
||||||
|
BCC .no_interaction
|
||||||
|
LDA $F6 : AND.b #$80 : BEQ .no_interaction ; check for A-press
|
||||||
|
JSR.w Shopkeeper_BuyItem
|
||||||
|
.no_interaction
|
||||||
|
INY #4
|
||||||
|
CPY.b #$0C : !BLT -
|
||||||
|
|
||||||
|
PLP : PLY : PLX
|
||||||
|
RTS
|
||||||
|
;--------------------
|
||||||
|
Shopkeeper_BuyItem:
|
||||||
|
PHX : PHY
|
||||||
|
TYX
|
||||||
|
REP #$20 : LDA $7EF360 : CMP.l !SHOP_INVENTORY+1, X : SEP #$20 : !BGE .buy
|
||||||
|
.cant_afford
|
||||||
|
LDA.b #$3C : STA $012E ; error sound
|
||||||
|
BRA .done
|
||||||
|
.buy
|
||||||
|
REP #$20 : LDA $7EF360 : !SUB !SHOP_INVENTORY+1, X : STA $7EF360 : SEP #$20 ; Take price away
|
||||||
|
LDA !SHOP_INVENTORY, X : TAY : JSL.l Link_ReceiveItem
|
||||||
|
LDA !SHOP_INVENTORY+3, X : INC : STA !SHOP_INVENTORY+3, X
|
||||||
|
.done
|
||||||
|
PLY : PLX
|
||||||
|
RTS
|
||||||
|
;--------------------
|
||||||
|
Setup_ShopItemCollisionHitbox:
|
||||||
|
;The complications with XBA are to handle the fact that nintendo likes to store
|
||||||
|
;high and low bytes of 16 bit postion values seperately :-(
|
||||||
|
; load shopkeeper X (16 bit)
|
||||||
|
LDA $0D30, X : XBA : LDA $0D10, X
|
||||||
|
|
||||||
|
REP #$20 ; set 16-bit accumulator
|
||||||
|
!ADD.w Shopkeeper_DrawNextItem_item_offsets, Y
|
||||||
|
!ADD.w #$0002 ; a small negative margin
|
||||||
|
; TODO: add 4 for a narrow item
|
||||||
|
SEP #$20 ; set 8-bit accumulator
|
||||||
|
|
||||||
|
; store hitbox X
|
||||||
|
STA $04 : XBA : STA $0A
|
||||||
|
|
||||||
|
;load shopkeeper Y (16 bit)
|
||||||
|
LDA $0D20, X : XBA : LDA $0D00, X
|
||||||
|
|
||||||
|
REP #$20 ; set 16-bit accumulator
|
||||||
|
!ADD.w Shopkeeper_DrawNextItem_item_offsets+2, Y
|
||||||
|
SEP #$20 ; set 8-bit accumulator
|
||||||
|
|
||||||
|
; store hitbox Y Low: $05, High $0B
|
||||||
|
STA $05 : XBA : STA $0B
|
||||||
|
|
||||||
|
LDA.b #12 : STA $06 ; Hitbox width, always 12 for existing (wide) shop items
|
||||||
|
; TODO: for narrow sprite store make width 4 (i.e. 8 pixels smaller)
|
||||||
|
|
||||||
|
LDA.b #14 : STA $07 ; Hitbox height, always 14
|
||||||
|
RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; Adjusts the already set up collision hitbox to be a suitable interaction hitbox
|
||||||
|
Setup_ShopItemInteractionHitbox:
|
||||||
|
PHP
|
||||||
|
SEP #$20 ; set 8-bit accumulator
|
||||||
|
|
||||||
|
; collision hitbox has left margin of -2, we want margin of 8 so we subtract 10
|
||||||
|
LDA $04 : !SUB.b #$0A : STA $04
|
||||||
|
LDA $0A : SBC.b #$00 : STA $0A ; Apply borrow
|
||||||
|
|
||||||
|
; collision hitbox has 0 top margin, we want a margin of 8 so we subtract 8
|
||||||
|
LDA $05 : !SUB.b #$08 : STA $05
|
||||||
|
LDA $0B : SBC.b #$00 : STA $0B ; Apply borrow
|
||||||
|
|
||||||
|
; We want a width of 32 for wide or 24 for narrow, so we add 20
|
||||||
|
LDA $06 : !ADD.b #20 : STA $06 ; Hitbox width
|
||||||
|
|
||||||
|
LDA.b #40 : STA $07 ; Hitbox height, always 40
|
||||||
|
PLP
|
||||||
|
RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; Following is a copy of procedure $3770A (Bank06.asm Line 6273)
|
||||||
|
; because there is no long version available
|
||||||
|
Setup_LinksHitbox:
|
||||||
|
LDA.b #$08 : STA $02
|
||||||
|
STA $03
|
||||||
|
|
||||||
|
LDA $22 : !ADD.b #$04 : STA $00
|
||||||
|
LDA $23 : ADC.b #$00 : STA $08
|
||||||
|
|
||||||
|
LDA $20 : ADC.b #$08 : STA $01
|
||||||
|
LDA $21 : ADC.b #$00 : STA $09
|
||||||
|
RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
|
; The following is a copy of procedure Sprite_HaltSpecialPlayerMovement (Bank1E.asm line 255)
|
||||||
|
; because there is no long version available
|
||||||
|
Sprite_HaltSpecialPlayerMovementCopied:
|
||||||
|
PHX
|
||||||
|
JSL Sprite_NullifyHookshotDrag
|
||||||
|
STZ $5E ; Set Link's speed to zero...
|
||||||
|
JSL Player_HaltDashAttackLong
|
||||||
|
PLX
|
||||||
|
RTS
|
||||||
|
;--------------------------------------------------------------------------------
|
||||||
;!SHOP_TYPE = "$7F5051"
|
;!SHOP_TYPE = "$7F5051"
|
||||||
;!SHOP_INVENTORY = "$7F5052"
|
;!SHOP_INVENTORY = "$7F5052"
|
||||||
!SPRITE_OAM = "$7EC025"
|
!SPRITE_OAM = "$7EC025"
|
||||||
@@ -347,6 +462,8 @@ RTS
|
|||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
Shopkeeper_DrawNextItem:
|
Shopkeeper_DrawNextItem:
|
||||||
|
LDA !SHOP_INVENTORY+3, X : BNE .next
|
||||||
|
|
||||||
PHY
|
PHY
|
||||||
TYA : ASL #2 : TAY
|
TYA : ASL #2 : TAY
|
||||||
REP #$20 ; set 16-bit accumulator
|
REP #$20 ; set 16-bit accumulator
|
||||||
@@ -380,8 +497,9 @@ Shopkeeper_DrawNextItem:
|
|||||||
|
|
||||||
JSR.w Shopkeeper_DrawNextPrice
|
JSR.w Shopkeeper_DrawNextPrice
|
||||||
|
|
||||||
|
.next
|
||||||
INY
|
INY
|
||||||
INX #3
|
INX #4
|
||||||
RTS
|
RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
.item_offsets
|
.item_offsets
|
||||||
|
|||||||
@@ -1407,3 +1407,10 @@ db $FF, $27, $0A, $00
|
|||||||
db $FF, $12, $F4, $01
|
db $FF, $12, $F4, $01
|
||||||
db $FF, $FF, $FF, $FF
|
db $FF, $FF, $FF, $FF
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
track_list:
|
||||||
|
db $00,$01,$03,$03,$03,$03,$03,$03
|
||||||
|
db $01,$03,$01,$03,$03,$03,$03,$03
|
||||||
|
db $03,$03,$03,$01,$03,$03,$03,$03
|
||||||
|
db $03,$03,$03,$03,$03,$01,$03,$03
|
||||||
|
db $03,$01,$01
|
||||||
|
;================================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user