prep for other stuff
This commit is contained in:
83
spriteswap.asm
Normal file
83
spriteswap.asm
Normal file
@@ -0,0 +1,83 @@
|
||||
org $008A01 ; 0xA01 - Bank00.asm (LDA.b #$10 : STA $4304 : STA $4314 : STA $4324)
|
||||
LDA $BC
|
||||
|
||||
org $1BEDF9
|
||||
JSL Palette_ArmorAndGloves ;4bytes
|
||||
RTL ;1byte
|
||||
NOP #$01
|
||||
|
||||
org $1BEE1B
|
||||
JSL Palette_ArmorAndGloves_part_two
|
||||
RTL
|
||||
|
||||
!SPRITE_SWAP = "$7F50CD"
|
||||
;!STABLE_SCRATCH = "$7EC178"
|
||||
|
||||
org $BF8000
|
||||
Palette_ArmorAndGloves:
|
||||
{
|
||||
;DEDF9
|
||||
LDA !SPRITE_SWAP : BNE .continue
|
||||
LDA.b #$10 : STA $BC ; Load Original Sprite Location
|
||||
REP #$21
|
||||
LDA $7EF35B
|
||||
JSL $1BEDFF ; Read Original Palette Code
|
||||
RTL
|
||||
.part_two
|
||||
SEP #$30
|
||||
LDA !SPRITE_SWAP : BNE .continue
|
||||
REP #$30
|
||||
LDA $7EF354
|
||||
JSL $1BEE21 ; Read Original Palette Code
|
||||
RTL
|
||||
|
||||
.continue
|
||||
|
||||
PHX : PHY : PHA
|
||||
; Load armor palette
|
||||
PHB : PHK : PLB
|
||||
REP #$20
|
||||
|
||||
; Check what Link's armor value is.
|
||||
LDA $7EF35B : AND.w #$00FF : TAX
|
||||
|
||||
; (DEC06, X)
|
||||
|
||||
LDA $1BEC06, X : AND.w #$00FF : ASL A : ADC.w #$F000 : STA $00
|
||||
;replace D308 by 7000 and search
|
||||
REP #$10
|
||||
|
||||
LDA.w #$01E2 ; Target SP-7 (sprite palette 6)
|
||||
LDX.w #$000E ; Palette has 15 colors
|
||||
|
||||
TXY : TAX
|
||||
|
||||
;LDA !STABLE_SCRATCH : AND #$00FF : STA $02
|
||||
LDA.b $BC : AND #$00FF : STA $02
|
||||
|
||||
.loop
|
||||
|
||||
LDA [$00] : STA $7EC300, X : STA $7EC500, X
|
||||
|
||||
INC $00 : INC $00
|
||||
|
||||
INX #2
|
||||
|
||||
DEY : BPL .loop
|
||||
|
||||
SEP #$30
|
||||
|
||||
|
||||
PLB
|
||||
INC $15
|
||||
PLA : PLY : PLX
|
||||
RTL
|
||||
}
|
||||
|
||||
SpriteSwap_SetSprite:
|
||||
{
|
||||
;LDA $BC : CLC : ADC #$32 : STA !STABLE_SCRATCH
|
||||
JSL Palette_ArmorAndGloves
|
||||
STZ $0710 ; Set Normal Sprite NMI
|
||||
RTL
|
||||
}
|
||||
Reference in New Issue
Block a user