;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Sprite Status Bar v1.1.0
; coded by edit1754
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
header
lorom
!FREESPACE = $3E8000 ; <-- CHANGE THIS UNLESS YOU WANT TO CORRUPT SOMETHING!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; values you don't necessarily need to change, and most of the time shouldn't
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
!RAMBuffer = $7F1344 ; change this if you're already using it for another ASM hack
; it uses 0x480 bytes right after the dynamic sprite buffer
!RAMBuffer2 = $7F17C4 ; uses 0x600 bytes. Default is right after the other buffer
; used for goalpoint fix
!LevelEnabled = LevelTable
!LevelGFXLoc = LevelTable+1
!LevelSBProp = LevelTable+2
!TransparentTile = $2F*$20
!CopyToRAM = $30*$20
!CopyToRAM2 = $54*$20
!SBGFXSize = $0480
!GPGFXSize = $0600
!MarioName = $00*$20
!LuigiName = $10*$20
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; levelnum.ips (disassembly) - credit goes to BMF for this
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG $05D8B9
JSR LevelNumCode
ORG $05DC46
LevelNumCode: LDA.b $0E ; Load level number, 1st part of hijacked code
STA.w $010B ; Store it in free RAM
ASL A ; 2nd part of hijacked code
RTS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; hijacks
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org $05BEA0
JSL LoadLevel
org $9F68
JSL GameMode13
NOP
NOP
org $A2A1
JSL GameMode14
org $8292
JML IRQHack
NOP
org $8DB1
JML SBUploadHack ; $8DAC would be more ideal, but Stripe Image Uploader already uses it
NOP
org $0299DF
JML CoinBlockFix
org $2AD34
JML ScoreSprFix
org $07F1DB
JML BonusStarFix ; part of goalpoint fix code
org $AF2D
BRA +
NOP #2
+ JSL GoalTextFix
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Main Code
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
macro OAMTile(dest,x,y,tile,prop,size)
LDA.b #
STA.w $0200++++
LDA.b #
STA.w $0201++++
LDA.b #
CLC : ADC.w !LevelGFXLoc,x
STA.w $0202++++
LDA.b #
ORA.w !LevelSBProp,x
STA.w $0203++++
LDA.b #
STA.w $0420+
endmacro
macro OAMTileYoshiCoin(num,xpos,dest)
LDA.w $0EFF+
CMP.b #$FC
BEQ ?NoShowCoin
LDA.b #
STA.w $0200++++
LDA.b #$0F
STA.w $0201++++
LDA.b #$14
CLC : ADC.w !LevelGFXLoc,x
STA.w $0202++++
LDA.b #%00110000
ORA.w !LevelSBProp,x
STA.w $0203++++
LDA.b #$00
STA.w $0420+
?NoShowCoin:
endmacro
macro OAMTileGP(dest,x,y,tile,prop,size)
LDA.b #
STA.w $0300++++,y
LDA.b #
STA.w $0301++++,y
LDA.b #+$24
;CLC : ADC.b #$24
CLC : ADC.w !LevelGFXLoc,x
STA.w $0302++++,y
LDA.b #
ORA.w !LevelSBProp,x
STA.w $0303++++,y
PHY
TYA
LSR #2
TAY
LDA.b #
STA.w $0460+,y
PLY
endmacro
macro OAMTileGPc(dest,x,y,tile,prop,size)
LDA.b #
STA.w $0300++++,y
LDA.b #
STA.w $0301++++,y
LDA.b #
CLC : ADC.w !LevelGFXLoc,x
STA.w $0302++++,y
LDA.b #
ORA.w !LevelSBProp,x
STA.w $0303++++,y
PHY
TYA
LSR #2
TAY
LDA.b #
STA.w $0460+,y
PLY
endmacro
macro number(ptr,dest,offset)
LDA.w #!RAMBuffer+
STA.w $2181
LDY.b #!RAMBuffer>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
SEP #%00100000
LDA.w
CMP.b #$FC
REP #%00100000
BNE ?NoTrans
LDA.w #!TransparentTile
BRA ?Proceed
?NoTrans: AND.w #$00FF
CLC : ADC.w #
ASL #5
?Proceed: CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro
macro bonusstar(ptr,dest)
LDA.w #!RAMBuffer+
STA.w $2181
LDY.b #!RAMBuffer>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
SEP #%00100000
LDA.w
CMP.b #$FC
REP #%00100000
BNE ?NoTrans
LDA.w #!TransparentTile
BRA ?Proceed
?NoTrans: AND.w #$00FF
SEC : SBC.w #$0097
ASL #5
?Proceed: CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro
macro numberGP(ptr,dest,offset)
LDA.w #!RAMBuffer2+
STA.w $2181
LDY.b #!RAMBuffer2>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
LDA.w
AND.w #$00FF
CLC : ADC.w #
ASL #5
CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro
macro numberGPb(ptr,dest,offset)
LDA.w #!RAMBuffer2+
STA.w $2181
LDY.b #!RAMBuffer2>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
LDA.b
AND.w #$00FF
CLC : ADC.w #
ASL #5
CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro
macro bonusstarGP(ptrx,dest)
LDA.w #!RAMBuffer2+
STA.w $2181
LDY.b #!RAMBuffer2>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
SEP #%00100000
LDA.l ,x
CMP.b #$FC
REP #%00100000
BNE ?NoTrans
LDA.w #!TransparentTile
BRA ?Proceed
?NoTrans: AND.w #$00FF
SEC : SBC.w #$0097
ASL #5
?Proceed: CLC : ADC.w #Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro
macro transGP(dest)
LDA.w #!RAMBuffer2+
STA.w $2181
LDY.b #!RAMBuffer2>>16
STY.w $2183
STZ.w $4300
LDY.b #$80
STY.w $4301
LDA.w #!TransparentTile+Graphics
STA.w $4302
LDY.b #Graphics>>16
STY.w $4304
LDA.w #$0020
STA.w $4305
LDY.b #%00000001
STY.w $420B
endmacro
org !FREESPACE
reset bytes
db "STAR"
dw CodeEnd-CodeStart
dw CodeEnd-CodeStart^#$FFFF
CodeStart:
GameMode13: ORA.w $0DB0 ; \ hijacked
STA.w $2106 ; / code
LDA.w $0100 ; \ if game mode
CMP.b #$13 ; | != 13, then
BNE ReturnRTL ; / return
PHB : PHK : PLB ; back up B, K -> B
REP #%00100000 ; 16-bit A
JMP InLevel ; JMP to in-level code (second part of on-load code)
GameMode14: JSL $0586F1 ; hijacked code
LDA.w $0100 ; \ if game mode
CMP.b #$14 ; | != 14, then
BNE ReturnRTL ; / return
PHB : PHK : PLB ; back up B, K -> B
REP #%00100000 ; 16-bit A
JMP InLevel ; JMP to in-level code (second part of on-load code)
ReturnSEPXY: SEP #%00010000 ; 8-bit XY
PLB ; restore B
ReturnRTL: RTL
LoadLevel: STA.b $24 ; hijacked code, minus SEP #%00100000, because we need 16-bit A anyway
REP #%00010000 ; 8-bit XY, A is already 16-bit
PHB : PHK : PLB ; back up B, K -> B
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelEnabled,x ; get SSB-enabled status
BEQ ReturnSEPXY ; if disabled, return
SEP #%00010000 ; 8-bit XY
REP #%00100000 ; 16-bit A
LDA.w #!RAMBuffer ; \
STA.w $2181 ; |
LDY.b #!RAMBuffer>>16 ; |
STY.w $2183 ; |
STZ.w $4300 ; |
LDY.b #$80 ; | copy main GFX
STY.w $4301 ; | to RAM buffer
LDA.w #!CopyToRAM+Graphics
STA.w $4302 ; |
LDY.b #Graphics>>16 ; |
STY.w $4304 ; |
LDA.w #!SBGFXSize ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
InLevel: REP #%00010000
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelEnabled,x ; get SSB-enabled status
BEQ ReturnSEPXY ; if disabled, return
%OAMTile(0,$10,$0F,$00,%00110000,%10)
%OAMTile(1,$20,$0F,$02,%00110000,%10)
%OAMTile(2,$30,$0F,$04,%00110000,%00)
%OAMTile(52,$70,$07,$07,%00110000,%10)
%OAMTile(53,$80,$07,$07,%01110000,%10)
%OAMTile(54,$70,$17,$07,%10110000,%10)
%OAMTile(55,$80,$17,$07,%11110000,%10)
%OAMTile(12,$60,$0F,$05,%00110000,%10)
%OAMTile(13,$48,$17,$20,%00110000,%00)
%OAMTile(14,$50,$17,$11,%00110000,%00)
%OAMTile(42,$98,$0F,$09,%00110000,%10)
%OAMTile(43,$A0,$0F,$0A,%00110000,%10)
%OAMTile(15,$C8,$0F,$14,%00110000,%00)
%OAMTile(33,$B8,$17,$21,%00110000,%00)
%OAMTile(34,$C0,$17,$22,%00110000,%00)
%OAMTile(35,$C8,$17,$23,%00110000,%00)
%OAMTile(36,$D0,$0F,$0C,%00110000,%10)
%OAMTile(37,$E0,$0F,$0E,%00110000,%10)
%OAMTileYoshiCoin(0,$40,44)
%OAMTileYoshiCoin(1,$48,45)
%OAMTileYoshiCoin(2,$50,46)
%OAMTileYoshiCoin(3,$58,47)
LDA.b #$12 ; \
STA.w $170B ; | fix a few
STA.w $170C ; | extended sprite
STA.w $1711 ; | glitches
STA.w $1712 ; /
SEP #%00010000 ; 8-bit XY
REP #%00100000 ; 16-bit A
LDA.w #!RAMBuffer ; \
STA.w $2181 ; |
LDY.b #!RAMBuffer>>16 ; |
STY.w $2183 ; |
STZ.w $4300 ; |
LDY.b #$80 ; |
STY.w $4301 ; |
LDA.w #!MarioName ; | upload
LDY.w $0DB3 ; | character
BEQ NotLuigi ; | name
LDA.w #!LuigiName ; |
NotLuigi: CLC : ADC.w #Graphics ; |
STA.w $4302 ; |
LDY.b #Graphics>>16 ; |
STY.w $4304 ; |
LDA.w #$00A0 ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
%number($0F13,$01C0,$05)
%number($0F14,$01E0,$05)
%number($0F16,$0240,$05)
%number($0F17,$0260,$05)
%number($0F25,$0320,$15)
%number($0F26,$0340,$15)
%number($0F27,$0360,$15)
%number($0F29,$0420,$05)
%number($0F2A,$0440,$05)
%number($0F2B,$0460,$05)
%number($0F2C,$0380,$05)
%number($0F2D,$03A0,$05)
%number($0F2E,$03C0,$05)
%bonusstar($0F03,$00A0)
%bonusstar($0F04,$00C0)
%bonusstar($0F1E,$02A0)
%bonusstar($0F1F,$02C0)
SEP #%00100000
PLB
RTL
IRQHack: LDA.w $0100 ; \
CMP.b #$0B ; | if game mode != 0B (fading out),
BEQ IRQChkLevel ; | 0F (fading from pipe),
CMP.b #$0F ; | 12 (initializing level),
BEQ IRQChkLevel ; | 13 (fading into level),
CMP.b #$12 ; | 14 (in level),
BCC DefaultIRQ ; | or 15 (fade to gameover/timeup)
CMP.b #$16 ; | then no IRQ hack
BCS DefaultIRQ ; /
IRQChkLevel: PHB : PHK : PLB ; back up B, K -> B
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelEnabled,x ; get SSB-enabled status
SEP #%00010000 ; 8-bit XY
PLB ; restore B
CMP.b #$00 ; \ if SSB disabled,
BEQ DefaultIRQ ; / then no IRQ hack
LDY.b #$E0 ; \ all 224
LDA.w $4211 ; / scanlines
STY.w $4209 ; \ Vertical IRQ
STZ.w $420A ; / trigger counters
LDA.w $0DAE ; \ brightness
STA.w $2100 ; /
LDA.w $0D9F ; \ HDMA
STA.w $420C ; /
JML $008394 ; JML to layer 3 scrolling, etc.
DefaultIRQ: LDY.b #$24 ; status bar ends at line 24 (default)
LDA.w $4211 ; dummy read
JML $008297 ; JML to rest of default IRQ
SBUploadHack: PHB : PHK : PLB ; back up B, K -> B
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelEnabled,x ; \ if SSB disabled, then
BNE + ; | upload regular SB tilemap
JMP DrawSB ; /
+ LDA.w $0100 ; \ during level load,
CMP.b #$12 ; | only the status bar
BEQ SBDMA ; / is important
LDA.b $14 ; \
AND.b #%00000001 ; | alternate
BNE GoalPtChk ; /
SBDMA: LDA.w !LevelSBProp,x ; \
AND.b #%00000001 ; | which GFX page
XBA ; /
LDA.w !LevelGFXLoc,x ; get starting tile of GFX
SEP #%00010000 ; 8-bit XY
REP #%00100000 ; 16-bit A
LDY.b #%10000000 ; \ increment when high
STY.w $2115 ; / byte is accessed
ASL #4 ; x16 (#$10)
CLC : ADC.w #$6000 ; +#$6000
STA.w $2116 ; set as VRAM destination
LDY.b #$01 ; \
STY.w $4300 ; | rest of
LDY.b #$18 ; | GFX buffer
STY.w $4301 ; | transfer
LDA.w #!RAMBuffer ; | to VRAM
STA.w $4302 ; |
LDY.b #!RAMBuffer>>16 ; |
STY.w $4304 ; |
LDA.w #!SBGFXSize ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
SEP #%00100000 ; 8-bit A
PLB ; restore B
JML $008DE6 ; JML to end of DrawStatusBar routine
GoalPtChk: SEP #%00010000 ; 8-bit XY
LDY.w $1493 ; \ no goal text upload
BEQ NoGoalPt ; / unless level is ending
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
LDA.w !LevelSBProp,x ; \
AND.b #%00000001 ; | which GFX page
XBA ; /
LDA.w !LevelGFXLoc,x ; get starting tile of GFX
CLC : ADC.b #$24 ; 24 tiles after. NOTE TO SELF: change this when making this changeable
SEP #%00010000 ; 8-bit XY
REP #%00100000 ; 16-bit A
LDY.b #%10000000 ; \ increment when high
STY.w $2115 ; / byte is accessed
ASL #4 ; x16 (#$10)
CLC : ADC.w #$6000 ; +#$6000
STA.w $2116 ; set as VRAM destination
LDY.b #$01 ; \
STY.w $4300 ; | rest of
LDY.b #$18 ; | GFX buffer
STY.w $4301 ; | transfer
LDA.w #!RAMBuffer2 ; | to VRAM
STA.w $4302 ; |
LDY.b #!RAMBuffer2>>16 ; |
STY.w $4304 ; |
LDA.w #!GPGFXSize ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
NoGoalPt: SEP #%00100000 ; 8-bit A
PLB ; restore B
JML $008DE6 ; JML to end of DrawStatusBar routine
DrawSB: SEP #%00010000 ; 8-bit XY
PLB ; restore B
LDA.b #$42 ; what A would be (doing this is easier than preserving A)
STA.w $2116 ; \ hijacked
LDA.b #$50 ; / code
JML $008DB6 ; JML to next part of DrawStatusBar routine
CoinBlockFix: PHX ; backup X
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
PHB : PHK : PLB ; Back up B, K -> B
LDA.w !LevelEnabled,x ; get SSB-enabled status
STA.b $00 ; store to scratch RAM
PLB ; restore B
SEP #%00010000 ; 8-bit XY
PLX ; restore X
LDA.b $00 ; load scratch RAM (SSB-enabled status)
BEQ EndCBF ; no fix if not enabled
DEX ; \ last 3 slots can't
CPX.b #$02 ; | be used because
BMI ReturnCBF ; / SSB uses them
JML $0299D4 ; back
EndCBF: DEX ; \ normal, non-SSB
BMI ReturnCBF ; / level
JML $0299D4 ; back
ReturnCBF: JML $0299E8 ; a RTS in bank 02
ScoreSprFix: PHX ; backup X
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
PHB : PHK : PLB ; Back up B, K -> B
LDA.w !LevelEnabled,x ; get SSB-enabled status
STA.b $00 ; store to scratch RAM
PLB ; restore B
SEP #%00010000 ; 8-bit XY
PLX ; restore X
LDY.b #$05 ; normally we'd have 5 slots available
LDA.b $00 ; \ but if SSB is enabled
BEQ CODE_02AD36 ; | then we only have
LDY.b #$03 ; / three available
CODE_02AD36: LDA.w $16E1,y ; \
BEQ Return02AD4B ; | SMW's code
DEY ; |
BPL CODE_02AD36 ; |
DEC.w $18F7 ; |
BPL CODE_02AD48 ; |
LDA.b #$03 ; |
STA.w $18F7 ; |
CODE_02AD48: LDY.w $18F7 ; /
Return02AD4B: RTL
BonusStarFix: PHA ; \ hijacked
LSR #3 ; / code
PHA ; backup A
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
PHB : PHK : PLB ; Back up B, K -> B
LDA.w !LevelEnabled,x ; get SSB-enabled status
PLB ; restore B
SEP #%00010000 ; 8-bit XY
CMP.b #$00 ; \ if not disabled,
BNE AltBonusStarCode ; / use alternate bonus star code
PLA ; restore A
JML $07F1DF
AltBonusStarCode:
LDA.b #$10
STA.w $1692
JSR GetOAMSlot
PLA
LSR
TAX
BEQ CODE_07F1ED
LDA.l $07F1A0,x
TAX
JSR CODE_07F200
CODE_07F1ED: PLA
AND.b #$0F
TAX
LDA.l $07F1A0,x
TAX
LDA.b #$20
STA.b $02
JSR.w CODE_07F200
RTL
CODE_07F200: LDA.l $07F0C8,x ; same as original SMW code,
BMI CODE_07F24A ; but uses second half of OAM
CLC
ADC.b #$64
CLC
ADC.b $02
STA.w $0300,y
LDA.l $07F134,x
CLC
ADC.b #$40
STA.w $0301,y
LDA.b #$EF
PHX
LDX $04
CPX.b #$10
BCS CODE_07F22A
TXA
LSR #2
TAX
LDA.l $07F24E,x
CODE_07F22A: STA.w $0302,y
PLX
LDA.b $13
LSR
AND.b #$0E
ORA.b #$30
STA.w $0303,y
PHY
TYA
LSR #2
TAY
LDA.b #$00
STA.w $0460,y
PLY
INY #4
INX
BRA CODE_07F200
CODE_07F24A: LDX.w $15E9
RTS
GoalTextFix: REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
SEP #%00100000 ; 8-bit A
PHB : PHK : PLB ; Back up B, K -> B
LDA.w !LevelEnabled,x ; get SSB-enabled status
PLB ; restore B
SEP #%00010000 ; 8-bit XY
CMP.b #$00 ; \ if not disabled,
BNE AltGoalTextCode ; / use alternate goal text code
JML $05CBFF ; routine for normal L3 text
AltGoalTextCode:
JSR DisplayGPText
LDA.w $13D9
JSL $0086DF
dw CODE_05CC66
dw CODE_05CD76
dw CODE_05CECA
dw Return05CFE9
CODE_05CC66: LDA.b #$10
STA.w $1692
LDY.b #$00
LDX.w $0DB3
LDA.w $0F48,x
CODE_05CC6E: CMP.b #$0A
BCC CODE_05CC77
SBC.b #$0A
INY
BRA CODE_05CC6E
CODE_05CC77: CPY.w $0F32
BNE CODE_05CC84
CPY.w $0F33
BNE CODE_05CC84
INC.w $18E4
CODE_05CC84: LDA.b #$01
STA.w $13D5
REP #%00100000 ; 16-bit A
LDA.w #!RAMBuffer2 ; \
STA.w $2181 ; |
LDY.b #!RAMBuffer2>>16 ; |
STY.w $2183 ; |
STZ.w $4300 ; |
LDY.b #$80 ; | copy main GFX
STY.w $4301 ; | to RAM buffer
LDA.w #!CopyToRAM2+Graphics
STA.w $4302 ; |
LDY.b #Graphics>>16 ; |
STY.w $4304 ; |
LDA.w #!GPGFXSize ; |
STA.w $4305 ; |
LDY.b #%00000001 ; |
STY.w $420B ; /
SEP #%00100000 ; 8-bit A
JSR CODE_05CE4C
REP #%00100000 ; 16-bit A
LDA $02
STA.w $0F40
JSR ScoreToDecimal
JSR UpdateScoreCounter
SEP #%00100000 ; 8-bit A
LDA.w $0F31
BNE TimeXXX
JMP Time0XX
TimeXXX: REP.b #%00100000
%numberGP($0F31,$0400,$05)
Time10s: %numberGP($0F32,$0420,$05)
Time1s: %numberGP($0F33,$0440,$05)
SEP.b #%00100000
INC.w $13D9
LDA.b #$28
STA.w $1424
RTL
Time00X: REP.b #%00100000
%transGP($0400)
%transGP($0420)
JMP Time1s
Time0XX: LDA.w $0F32
BEQ Time00X
REP.b #%00100000
%transGP($0400)
JMP Time10s
CODE_05CD76: LDA.w $1900
BNE +
JMP +++
+ DEC.w $1424
BPL Return05CDE8
JSR UpdateBonusCounter
+++ DEC.w $13D6
BPL Return05CDE8
LDA.w $1900
STA.w $1424
INC.w $13D9
LDA.b #$11
STA.w $1DFC
Return05CDE8: RTL
CODE_05CE4C: REP #$20 ; Accum (16 bit)
LDA.w $0F31
ASL
TAX
LDA.l $05CE3A,x
STA $00
LDA.w $0F32
TAX
LDA.l $05CE42,x
AND.w #$00FF
CLC
ADC $00
STA $00
LDA.w $0F33
AND.w #$00FF
CLC
ADC $00
STA $00
SEP #$20 ; Accum (8 bit)
LDA $00
STA.w $4202 ; Multiplicand A
LDA.b #$32
STA.w $4203 ; Multplier B
NOP #4
LDA.w $4216 ; Product/Remainder Result (Low Byte)
STA $02
LDA.w $4217 ; Product/Remainder Result (High Byte)
STA $03
LDA $01
STA.w $4202 ; Multiplicand A
LDA.b #$32
STA.w $4203 ; Multplier B
NOP #4
LDA.w $4216 ; Product/Remainder Result (Low Byte)
CLC
ADC $03
STA $03
RTS
ScoreToDecimal: LDX.b #$FF ; \ couldn't find original SMW code for this...
LDA.w $0F40 ; | so I wrote my own version
- STA.b $04 ; | this converts the coin score ($0F40)...
INX ; | into decimal, with one byte per power of 10
SEC ; v
SBC.w #10000
BCS -
STX.b $00
LDX.b #$FF
LDA.b $04
- STA.b $04
INX
SEC
SBC.w #1000
BCS -
STX.b $01
LDX.b #$FF
LDA.b $04
- STA.b $04
INX
SEC
SBC.w #100
BCS -
STX.b $02
LDX.b #$FF
LDA.b $04
- STA.b $04
INX
SEC
SBC.w #10 ; ^
BCS - ; |
STX.b $03 ; /
RTS
UpdateScoreCounter:
LDY $00
BNE Sc0
JMP Score0XXXX
Sc0: %numberGPb($00,$04E0,$05)
Sc1: %numberGPb($01,$0500,$05)
Sc2: %numberGPb($02,$0520,$05)
Sc3: %numberGPb($03,$0540,$05)
Sc4: %numberGPb($04,$0560,$05)
RTS
Score0XXXX: LDY $01
BEQ Score00XXX
%transGP($04E0)
JMP Sc1
Score00XXX: LDY $02
BEQ Score000XX
%transGP($04E0)
%transGP($0500)
JMP Sc2
Score000XX: LDY $03
BEQ Score0000X
%transGP($04E0)
%transGP($0500)
%transGP($0520)
JMP Sc3
Score0000X: %transGP($04E0)
%transGP($0500)
%transGP($0520)
%transGP($0540)
JMP Sc4
CODE_05CECA: PHB : PHK : PLB
REP #%00100000
LDY.b #$00
LDA.w $0DB3
AND.w #$00FF
BEQ CODE_05CEDB
LDY.b #$03
CODE_05CEDB: LDX.b #$02
LDA.w $0F40
BEQ CODE_05CF05
CMP.w #$0063
BCS CODE_05CEE9
LDX.b #$00
CODE_05CEE9: SEC : SBC.l $05CEC2,x
STA.w $0F40
STA $02
LDA.l $05CEC6,x
CLC : ADC.w $0F34,y
STA.w $0F34,y
LDA.w $0F36,y
ADC.w #$0000
STA.w $0F36,y
CODE_05CF05: LDY.w $1900
BEQ CODE_05CF36
SEP #%00100000
LDA.b $13
AND.b #$03
BNE CODE_05CF34
LDY.w $0DB3
LDA.w $0F48,y
CLC : ADC.b #$01
STA.w $0F48,y
LDA.w $1900
DEC A
STA.w $1900
AND.b #$0F
CMP.b #$0F
BNE CODE_05CF34
LDA.w $1900
SEC
SBC.b #$06
STA.w $1900
CODE_05CF34: REP #%00100000
CODE_05CF36: LDA.w $0F40
BNE CODE_05CF4D
LDX.w $1900
BNE CODE_05CF4D
LDY.b #$30
STY.w $13D6
INC.w $13D9
LDY.b #$12
STY.w $1DFC
CODE_05CF4D: JSR ScoreToDecimal
JSR UpdateScoreCounter
LDA.w $1424
BEQ CODE_05CFDC
SEP #%00100000
JSR UpdateBonusCounter
CODE_05CFDC: PLB
SEP #%00110000
Return05CFE9: RTL
ReturnGPText: RTS
DisplayGPText: LDA.w $13D9 ; \ prevent the split-second glitch
BEQ ReturnGPText ; / that shows up 50% of the time
PHB : PHK : PLB ; Back up B, K -> B
JSR GetOAMSlot ; get slot for sprites
REP #%00110000 ; 16-bit A/XY
LDA.w $010B ; \
ASL A ; | index to level table
CLC : ADC.w $010B ; | = level number * 3
TAX ; /
LDA.w #$0000 ; high byte MUST be zero or tile sizes will glitch
SEP #%00100000
%OAMTileGPc(0,$68,$3F,$00,%00110000,%00)
%OAMTileGPc(1,$70,$3F,$01,%00110000,%00)
%OAMTileGPc(2,$78,$3F,$02,%00110000,%00)
%OAMTileGPc(3,$80,$3F,$03,%00110000,%00)
%OAMTileGPc(4,$88,$3F,$04,%00110000,%00)
%OAMTileGP(5,$48,$4F,$00,%00110000,%10)
%OAMTileGP(6,$58,$4F,$02,%00110000,%10)
%OAMTileGP(7,$68,$4F,$04,%00110000,%10)
%OAMTileGP(8,$80,$4F,$06,%00110000,%10)
%OAMTileGP(9,$90,$4F,$08,%00110000,%10)
%OAMTileGP(10,$A0,$4F,$0A,%00110000,%10)
%OAMTileGP(11,$48,$67,$0F,%00110000,%00)
%OAMTileGP(12,$50,$5F,$10,%00110000,%10)
%OAMTileGP(13,$60,$5F,$12,%00110000,%10)
%OAMTileGP(14,$70,$5F,$14,%00110000,%10)
%OAMTileGP(15,$80,$5F,$16,%00110000,%10)
%OAMTileGP(16,$90,$5F,$18,%00110000,%10)
%OAMTileGP(17,$A0,$5F,$1A,%00110000,%10)
LDA.w $13D9
CMP #$01
BEQ +
CMP #$02
BCS ++
- JMP +++
+ LDA.w $1424
BPL -
++ LDA.w $1424
BEQ -
%OAMTileGP(18,$50,$7F,$0C,%00110000,%00)
%OAMTileGP(19,$58,$7F,$01,%00110000,%00)
%OAMTileGP(20,$60,$7F,$0D,%00110000,%00)
%OAMTileGP(21,$68,$7F,$02,%00110000,%00)
%OAMTileGP(22,$70,$7F,$04,%00110000,%00)
%OAMTileGP(23,$78,$7F,$0B,%00110000,%00)
%OAMTileGP(24,$88,$77,$1C,%00110000,%10)
%OAMTileGP(25,$98,$77,$1E,%00110000,%10)
+++ SEP #%00010000
PLB ; restore B
RTS
UpdateBonusCounter:
LDA.w $1900
AND.b #$0F
ASL
TAX
REP #%00100000
%bonusstarGP($05CD62,$03E0)
%bonusstarGP($05CD63,$05E0)
SEP #%00100000
LDA.w $1900
AND.b #$F0
LSR #3
BNE ++
REP #%00100000
%transGP($03C0)
%transGP($05C0)
SEP #%00100000
RTS
++ TAX
REP #%00100000
%bonusstarGP($05CD62,$03C0)
%bonusstarGP($05CD63,$05C0)
SEP #%00100000
RTS
GetOAMSlot: PHX ; a dirty way of doing it, but it works. I may clean it up a bit in the future
LDX #$00
LDA $15EA
PHA
LDA $14C8
PHA
LDA $9E
PHA
LDA $02
PHA
LDA #$01
STA $14C8
STZ $9E
LDA #$5C
STA $00
LDA $0180E2
STA $01
LDA $0180E3
STA $02
LDA $0180E4
STA $03
JSL $7E0000
LDY $15EA
PLA
STA $02
PLA
STA $14C8
PLA
STA $9E
PLA
STA $15EA
PLX
RTS
LevelTable:
L000: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L001: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L002: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L003: db $01,$00,%00001111 ; Enable; GFX Offset; Properties
L004: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L005: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L006: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L007: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L008: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L009: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L00F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L010: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L011: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L012: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L013: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L014: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L015: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L016: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L017: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L018: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L019: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L01F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L020: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L021: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L022: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L023: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L024: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L025: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L026: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L027: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L028: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L029: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L02F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L030: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L031: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L032: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L033: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L034: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L035: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L036: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L037: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L038: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L039: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L03F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L040: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L041: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L042: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L043: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L044: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L045: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L046: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L047: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L048: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L049: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L04F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L050: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L051: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L052: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L053: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L054: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L055: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L056: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L057: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L058: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L059: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L05F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L060: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L061: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L062: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L063: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L064: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L065: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L066: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L067: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L068: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L069: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L06F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L070: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L071: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L072: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L073: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L074: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L075: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L076: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L077: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L078: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L079: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L07F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L080: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L081: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L082: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L083: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L084: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L085: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L086: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L087: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L088: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L089: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L08F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L090: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L091: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L092: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L093: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L094: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L095: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L096: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L097: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L098: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L099: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L09F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0A9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0AF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0B9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0BF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0C9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0CF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0D9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0DF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0E9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0ED: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0EF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0F9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L0FF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L100: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L101: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L102: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L103: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L104: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L105: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L106: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L107: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L108: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L109: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L10F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L110: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L111: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L112: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L113: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L114: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L115: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L116: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L117: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L118: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L119: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L11F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L120: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L121: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L122: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L123: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L124: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L125: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L126: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L127: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L128: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L129: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L12F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L130: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L131: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L132: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L133: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L134: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L135: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L136: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L137: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L138: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L139: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L13F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L140: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L141: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L142: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L143: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L144: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L145: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L146: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L147: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L148: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L149: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L14F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L150: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L151: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L152: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L153: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L154: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L155: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L156: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L157: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L158: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L159: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L15F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L160: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L161: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L162: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L163: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L164: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L165: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L166: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L167: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L168: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L169: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L16F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L170: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L171: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L172: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L173: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L174: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L175: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L176: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L177: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L178: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L179: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L17F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L180: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L181: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L182: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L183: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L184: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L185: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L186: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L187: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L188: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L189: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L18F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L190: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L191: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L192: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L193: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L194: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L195: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L196: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L197: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L198: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L199: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19A: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19B: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19C: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19D: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19E: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L19F: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1A9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1AF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1B9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1BF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1C9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1CF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1D9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1DF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1E9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1ED: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1EF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F0: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F1: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F2: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F3: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F4: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F5: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F6: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F7: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F8: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1F9: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FA: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FB: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FC: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FD: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FE: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
L1FF: db $00,$80,%00001111 ; Enable; GFX Offset; Properties
Graphics:
INCBIN ssb.bin
CodeEnd:
print bytes
; from garble.asm that comes with dsx.asm
org $00A08A
JML GarbleMain
org $04F270 ; Nine bytes of freespace in bank 04
GarbleMain: JSR $DD40 ; re-decompress the OW tiles
LDA $1B9C
BEQ DoTheBranch
JML $00A08F
DoTheBranch: JML $00A093