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