refactor everything to use the websites format and more files

This commit is contained in:
Shoofle 2025-01-08 14:03:54 -05:00
parent 52b25965f5
commit af680dd5fc
16 changed files with 1772 additions and 689 deletions

View File

@ -7,9 +7,9 @@
TheFool: TheFool:
db 9, "THE FOOL " db 9, "THE FOOL "
db 9, " " db 9, " "
db 9, "-begin " db 9, "beginning"
db 9, "-leap " db 9, "leap "
db 9, "-naivete " db 9, "naivete "
dw FoolMapEnd - FoolMap dw FoolMapEnd - FoolMap
dw FoolMap dw FoolMap
dw FoolTilesEnd - FoolTiles dw FoolTilesEnd - FoolTiles

View File

@ -1,9 +1,9 @@
TheMagician: TheMagician:
db 9, "THE " db 9, "THE "
db 9, "MAGICIAN " db 9, "MAGICIAN "
db 9, "-capacity" db 9, "capacity "
db 9, "-knowing " db 9, "knowing "
db 9, "-manifest" db 9, "manifest "
dw MagicianMapEnd - MagicianMap dw MagicianMapEnd - MagicianMap
dw MagicianMap dw MagicianMap
dw MagicianTilesEnd - MagicianTiles dw MagicianTilesEnd - MagicianTiles

View File

@ -1,9 +1,9 @@
TheHighPriestess: TheHighPriestess:
db 9, "THE HIGH " db 9, "THE HIGH "
db 9, "PRIESTESS" db 9, "PRIESTESS"
db 9, "-secrets " db 9, "secrets "
db 9, "-mystery " db 9, "mystery "
db 9, "-unknown " db 9, "unknown "
dw HighPriestessMapEnd - HighPriestessMap dw HighPriestessMapEnd - HighPriestessMap
dw HighPriestessMap dw HighPriestessMap
dw HighPriestessTilesEnd - HighPriestessTiles dw HighPriestessTilesEnd - HighPriestessTiles

122
03TheEmpress.inc Normal file
View File

@ -0,0 +1,122 @@
TheEmpress:
db 9, "THE "
db 9, "EMPRESS "
db 9, "diplomacy"
db 9, "fecundity"
db 9, "nature "
dw EmpressMapEnd - EmpressMap
dw EmpressMap
dw EmpressTilesEnd - EmpressTiles
dw EmpressTiles
EmpressMap:
db $00, $01, $02, $03, $00, $00, $00, $00
db $00, $04, $05, $06, $07, $08, $00, $00
db $00, $09, $00, $0a, $00, $00, $0b, $00
db $00, $0c, $0d, $0e, $00, $0f, $10, $00
db $00, $11, $12, $00, $00, $00, $00, $00
db $00, $14, $15, $00, $16, $17, $18, $00
db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20
db $21, $22, $23, $24, $25, $00, $26, $00
db $27, $28, $29, $2a, $2b, $2c, $2d, $00
db $2e, $2f, $30, $31, $32, $33, $34, $35
db $36, $37, $38, $00, $39, $3a, $3b, $3c
db $3d, $3e, $13, $3f, $40, $41, $42, $43
db $44, $45, $46, $47, $48, $49, $4a, $4b
db $4c, $4d, $00, $4e, $00, $4f, $50, $51
db $00, $00, $00, $52, $53, $54, $55, $00
db $00, $00, $00, $56, $57, $58, $00, $00
EmpressMapEnd:
EmpressTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$02
db $00,$00,$00,$00,$00,$01,$00,$41,$00,$81,$00,$80,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$40
db $00,$04,$00,$08,$00,$08,$00,$07,$00,$00,$00,$01,$00,$02,$00,$04
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$20,$00,$10,$00,$08,$00,$08,$00,$04,$00,$78,$00,$80,$00,$40
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0f,$00,$30,$00,$c0
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f8,$00,$06,$00,$01
db $00,$08,$00,$10,$00,$3e,$00,$01,$00,$02,$00,$04,$00,$04,$00,$08
db $00,$21,$00,$12,$00,$0c,$00,$0c,$00,$04,$00,$7e,$00,$84,$00,$44
db $00,$80,$00,$40,$00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$10
db $00,$08,$00,$10,$00,$10,$00,$23,$00,$2c,$00,$10,$00,$00,$00,$00
db $00,$00,$00,$7e,$00,$a1,$00,$20,$00,$20,$00,$20,$00,$20,$00,$20
db $00,$24,$00,$14,$00,$cc,$00,$34,$00,$0c,$00,$02,$00,$02,$00,$01
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$06
db $00,$10,$00,$10,$00,$10,$00,$10,$00,$10,$00,$60,$00,$80,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$13,$00,$14,$00,$18,$00,$10,$00,$30
db $00,$00,$00,$00,$00,$00,$00,$e0,$00,$10,$00,$08,$00,$04,$00,$02
db $00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$31,$00,$32,$00,$30,$00,$30,$00,$30,$00,$12,$00,$11,$00,$18
db $00,$b2,$00,$0a,$00,$04,$00,$04,$00,$04,$00,$64,$00,$88,$00,$10
db $00,$06,$00,$09,$00,$11,$00,$12,$00,$24,$00,$28,$00,$30,$00,$20
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$08,$00,$10,$00,$11
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$20,$00,$40,$00,$80
db $00,$00,$00,$00,$00,$01,$00,$06,$00,$0a,$00,$14,$00,$14,$00,$14
db $00,$0c,$00,$03,$00,$fc,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$20,$00,$c0,$00,$3c,$00,$02,$00,$01,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$40,$00,$20
db $00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$01
db $00,$22,$00,$4c,$00,$50,$00,$80,$00,$80,$00,$80,$00,$80,$00,$00
db $00,$00,$00,$01,$00,$02,$00,$04,$00,$04,$00,$09,$00,$12,$00,$1c
db $00,$80,$00,$40,$00,$20,$00,$40,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14,$00,$14
db $00,$40,$00,$40,$00,$40,$00,$40,$00,$40,$00,$80,$00,$80,$00,$80
db $00,$00,$00,$00,$00,$00,$00,$06,$00,$01,$00,$01,$00,$00,$00,$00
db $00,$20,$00,$10,$00,$10,$00,$08,$00,$08,$00,$84,$00,$c6,$00,$a1
db $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00
db $00,$10,$00,$20,$00,$20,$00,$20,$00,$40,$00,$40,$00,$40,$00,$40
db $00,$13,$00,$10,$00,$30,$00,$30,$00,$2e,$00,$21,$00,$20,$00,$20
db $00,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$00,$00,$40
db $00,$e1,$00,$18,$00,$00,$00,$00,$00,$00,$00,$f8,$00,$00,$00,$04
db $00,$50,$00,$ac,$00,$52,$00,$49,$00,$44,$00,$23,$00,$20,$00,$20
db $00,$80,$00,$40,$00,$20,$00,$10,$00,$88,$00,$44,$00,$a2,$00,$71
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$00,$80
db $00,$40,$00,$40,$00,$40,$00,$00,$00,$00,$00,$00,$00,$80,$00,$70
db $00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$10,$00,$10,$00,$10
db $00,$20,$00,$20,$00,$20,$00,$10,$00,$10,$00,$10,$00,$10,$00,$08
db $00,$04,$00,$04,$00,$04,$00,$02,$00,$01,$00,$00,$00,$00,$00,$00
db $00,$20,$00,$20,$00,$20,$00,$20,$00,$40,$00,$81,$00,$00,$00,$00
db $00,$18,$00,$ec,$00,$1a,$00,$0f,$00,$07,$00,$00,$00,$80,$00,$40
db $00,$40,$00,$20,$00,$20,$00,$20,$00,$c0,$00,$f8,$00,$27,$00,$10
db $00,$08,$00,$04,$00,$02,$00,$01,$00,$00,$00,$00,$00,$00,$00,$80
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$7c,$00,$00,$00,$00
db $00,$10,$00,$08,$00,$08,$00,$04,$00,$04,$00,$02,$00,$02,$00,$01
db $00,$08,$00,$08,$00,$08,$00,$0c,$00,$0b,$00,$08,$00,$08,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$60,$00,$18,$00,$06
db $00,$20,$00,$10,$00,$08,$00,$04,$00,$02,$00,$01,$00,$00,$00,$00
db $00,$08,$00,$04,$00,$02,$00,$02,$00,$01,$00,$80,$00,$40,$00,$20
db $00,$40,$00,$20,$00,$20,$00,$20,$00,$16,$00,$91,$00,$90,$00,$90
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$60,$00,$1e
db $00,$01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$80,$00,$40,$00,$a0,$00,$98,$00,$84
db $00,$80,$00,$70,$00,$0c,$00,$03,$00,$00,$00,$00,$00,$01,$00,$06
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$e0,$00,$90,$00,$08,$00,$04
db $00,$10,$00,$08,$00,$04,$00,$02,$00,$01,$00,$00,$00,$00,$00,$00
db $00,$50,$00,$50,$00,$48,$00,$28,$00,$28,$00,$a8,$00,$58,$00,$38
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18
db $00,$00,$00,$00,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$02
db $00,$87,$00,$8b,$00,$08,$00,$08,$00,$10,$00,$10,$00,$10,$00,$20
db $00,$00,$00,$ff,$00,$7f,$00,$01,$00,$01,$00,$01,$00,$00,$00,$00
db $00,$78,$00,$90,$00,$10,$00,$10,$00,$10,$00,$08,$00,$88,$00,$88
db $00,$06,$00,$05,$00,$02,$00,$02,$00,$02,$00,$01,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$80,$00,$c0,$00,$b0,$00,$1c,$00,$0b,$00,$0f
db $00,$18,$00,$18,$00,$04,$00,$02,$00,$01,$00,$00,$00,$00,$00,$c0
db $00,$24,$00,$44,$00,$44,$00,$84,$00,$84,$00,$84,$00,$84,$00,$84
db $00,$02,$00,$02,$00,$02,$00,$06,$00,$03,$00,$02,$00,$00,$00,$00
db $00,$20,$00,$40,$00,$40,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$44,$00,$44,$00,$22,$00,$12,$00,$11,$00,$09,$00,$06,$00,$00
db $00,$04,$00,$02,$00,$00,$00,$01,$00,$01,$00,$01,$00,$00,$00,$00
db $00,$30,$00,$1c,$00,$76,$00,$0b,$00,$04,$00,$02,$00,$82,$00,$62
db $00,$08,$00,$88,$00,$88,$00,$90,$00,$50,$00,$20,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$3f,$00,$02,$00,$02,$00,$02
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$44,$00,$44,$00,$44
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f0,$00,$00,$00,$00
db $00,$1c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$7f,$00,$00
db $00,$44,$00,$44,$00,$44,$00,$44,$00,$44,$00,$44,$00,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$e0,$00,$00
EmpressTilesEnd:

120
04TheEmperor.inc Normal file
View File

@ -0,0 +1,120 @@
TheEmperor:
db 9, "THE "
db 9, "EMPEROR "
db 9, "authority"
db 9, "control "
db 9, "stability"
dw EmperorMapEnd - EmperorMap
dw EmperorMap
dw EmperorTilesEnd - EmperorTiles
dw EmperorTiles
EmperorMap:
db $00, $4c, $4d, $08, $09, $4d, $51, $00
db $00, $4e, $0a, $0b, $0c, $00, $52, $00
db $00, $4f, $0d, $0e, $0f, $00, $53, $00
db $00, $50, $10, $11, $12, $13, $53, $00
db $00, $14, $15, $00, $00, $16, $17, $00
db $00, $18, $19, $00, $00, $1a, $1b, $00
db $1c, $1d, $1e, $00, $00, $1f, $20, $00
db $21, $22, $23, $00, $00, $24, $25, $26
db $28, $29, $2a, $00, $2b, $2c, $2d, $2e
db $31, $32, $33, $34, $35, $00, $36, $37
db $38, $39, $00, $00, $00, $00, $3a, $3b
db $00, $3c, $00, $00, $00, $4a, $3d, $00
db $00, $3e, $3f, $4b, $40, $41, $42, $00
db $43, $49, $44, $45, $46, $47, $48, $00
db $00, $00, $01, $02, $03, $04, $00, $00
db $00, $00, $05, $06, $07, $00, $00, $00
EmperorMapEnd:
EmperorTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$23,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$ff,$00,$21,$00,$21,$00,$21,$00,$21,$00,$21,$00,$20
db $00,$00,$00,$ff,$00,$04,$00,$08,$00,$08,$00,$08,$00,$10,$00,$90
db $00,$00,$00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$00
db $00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$10,$00,$ff,$00,$00
db $00,$a0,$00,$a0,$00,$60,$00,$60,$00,$20,$00,$00,$00,$fe,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0f,$00,$90
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$4f
db $00,$01,$00,$01,$00,$01,$00,$02,$00,$02,$00,$02,$00,$01,$00,$01
db $00,$20,$00,$20,$00,$40,$00,$40,$00,$40,$00,$80,$00,$80,$00,$80
db $00,$20,$00,$20,$00,$10,$00,$10,$00,$08,$00,$0a,$00,$0c,$00,$0c
db $00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$4f,$00,$23,$00,$1c
db $00,$08,$00,$08,$00,$10,$00,$10,$00,$20,$00,$c0,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$01,$00,$0e,$00,$10,$00,$20,$00,$40
db $00,$00,$00,$00,$00,$1f,$00,$e0,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$1e,$00,$fc,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$80,$00,$70,$00,$06,$00,$02,$00,$02
db $00,$04,$00,$05,$00,$05,$00,$06,$00,$06,$00,$06,$00,$06,$00,$06
db $00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$01,$00,$01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$01,$00,$01,$00,$01,$00,$01,$00,$81,$00,$81,$00,$81,$00,$81
db $00,$06,$00,$06,$00,$06,$00,$06,$00,$06,$00,$06,$00,$04,$00,$18
db $00,$00,$00,$00,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02
db $00,$40,$00,$40,$00,$40,$00,$c0,$00,$c0,$00,$c0,$00,$40,$00,$40
db $00,$41,$00,$41,$00,$41,$00,$41,$00,$41,$00,$41,$00,$21,$00,$21
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$00,$16
db $00,$10,$00,$20,$00,$20,$00,$20,$00,$40,$00,$80,$00,$00,$00,$00
db $00,$02,$00,$02,$00,$04,$00,$04,$00,$04,$00,$08,$00,$10,$00,$60
db $00,$40,$00,$20,$00,$20,$00,$20,$00,$00,$00,$10,$00,$00,$00,$08
db $00,$11,$00,$11,$00,$08,$00,$08,$00,$08,$00,$04,$00,$02,$00,$02
db $00,$16,$00,$18,$00,$18,$00,$11,$00,$1e,$00,$70,$00,$60,$00,$80
db $00,$00,$00,$01,$00,$02,$00,$c4,$00,$38,$00,$f0,$00,$18,$00,$08
db $00,$80,$00,$00,$00,$00,$00,$00,$00,$04,$00,$04,$00,$08,$00,$10
db $00,$04,$00,$02,$00,$81,$00,$40,$00,$20,$00,$18,$00,$04,$00,$02
db $00,$01,$00,$00,$00,$00,$00,$80,$00,$80,$00,$70,$00,$30,$00,$18
db $00,$00,$00,$80,$00,$80,$00,$40,$00,$28,$00,$38,$00,$7c,$00,$a4
db $00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$02,$00,$02,$00,$02
db $00,$a0,$00,$e0,$00,$c0,$00,$c0,$00,$20,$00,$19,$00,$06,$00,$00
db $00,$14,$00,$16,$00,$22,$00,$42,$00,$81,$00,$01,$00,$07,$00,$39
db $00,$10,$00,$20,$00,$40,$00,$40,$00,$80,$00,$00,$00,$00,$00,$1c
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$06
db $00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$78,$00,$80,$00,$00
db $00,$15,$00,$92,$00,$4b,$00,$27,$00,$23,$00,$16,$00,$0f,$00,$0f
db $00,$42,$00,$01,$00,$01,$00,$01,$00,$00,$00,$82,$00,$91,$00,$8f
db $00,$20,$00,$20,$00,$20,$00,$a0,$00,$a0,$00,$e0,$00,$c0,$00,$c0
db $00,$02,$00,$02,$00,$02,$00,$02,$00,$03,$00,$03,$00,$03,$00,$02
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$87
db $00,$20,$00,$60,$00,$70,$00,$70,$00,$70,$00,$d0,$00,$d0,$00,$f0
db $00,$02,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$80,$00,$80,$00,$40,$00,$20,$00,$1f,$00,$00,$00,$00,$00,$00
db $00,$08,$00,$10,$00,$20,$00,$40,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$05,$00,$07,$00,$07,$00,$06,$00,$06,$00,$06,$00,$06,$00,$05
db $00,$ff,$00,$81,$00,$41,$00,$c1,$00,$a3,$00,$e3,$00,$7d,$00,$2a
db $00,$ff,$00,$5e,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$d0,$00,$50,$00,$40,$00,$60,$00,$40,$00,$40,$00,$40,$00,$40
db $00,$04,$00,$08,$00,$08,$00,$08,$00,$10,$00,$10,$00,$10,$00,$20
db $00,$df,$00,$3e,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$40,$00,$40,$00,$40,$00,$40,$00,$40,$00,$40,$00,$40,$00,$40
db $00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$00,$00,$00,$00,$80
db $00,$00,$00,$40,$00,$7f,$00,$80,$00,$20,$00,$20,$00,$40,$00,$40
db $00,$00,$00,$00,$00,$fc,$00,$0b,$00,$08,$00,$08,$00,$08,$00,$08
db $00,$00,$00,$00,$00,$01,$00,$06,$00,$08,$00,$38,$00,$c8,$00,$08
db $00,$1c,$00,$67,$00,$82,$00,$02,$00,$02,$00,$01,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80
db $00,$00,$00,$00,$00,$01,$00,$01,$00,$02,$00,$02,$00,$02,$00,$02
db $00,$08,$00,$18,$00,$30,$00,$c0,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$04,$00,$03,$00,$02,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$40,$00,$3f
db $00,$40,$00,$40,$00,$30,$00,$20,$00,$10,$00,$10,$00,$08,$00,$f0
db $00,$80,$00,$80,$00,$00,$00,$00,$00,$03,$00,$04,$00,$08,$00,$30
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$7c,$00,$03,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff
db $00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02
db $00,$02,$00,$02,$00,$02,$00,$02,$00,$04,$00,$04,$00,$04,$00,$04
db $00,$04,$00,$04,$00,$04,$00,$04,$00,$04,$00,$04,$00,$04,$00,$04
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$fc
db $00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$01
db $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01
db $00,$40,$00,$40,$00,$40,$00,$40,$00,$40,$00,$40,$00,$80,$00,$80
db $00,$02,$00,$02,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$40
EmperorTilesEnd:

View File

@ -1,153 +1,8 @@
; FF80 CALL ; screen variables
; FF81 LOW DEF vSelectedCardIndex EQU rMYBTNP + 1
; FF82 HIGH DEF vPreviousCardIndex EQU vSelectedCardIndex + 1
; FF83 RET DEF vSelectedCardInSpread EQU vPreviousCardIndex + 1
; pattern repeats for the first 16 bytes so we can have some call vectors for the scene system DEF vSelectedSpreadAddress EQU vSelectedCardInSpread + 1
DEF SCENE_SETUP EQU $FF81
DEF SCENE_UPDATE EQU SCENE_SETUP + 4 ; call then ret is 3+1 bytes
DEF SCENE_DRAW EQU SCENE_UPDATE + 4
DEF SCENE_TEARDOWN EQU SCENE_DRAW + 4
DEF rMYBTN EQU $FFA0
DEF rMYBTNP EQU rMYBTN + 1
DEF INTERRUPT_LCD EQU $FF91
; tile index variables
DEF vSelectedTileIndex EQU $FFA0+2
DEF vPreviousCardIndex EQU $FFA0+3
; variables for safe transfer async function
DEF vSafeCopySource EQU $FFA0+4
DEF vSafeCopyDest EQU vSafeCopySource + 2
DEF vSafeCopyCount EQU vSafeCopyDest + 2 ; check this for safe transfer being complete
DEF vSafeCopyOriginalCount EQU vSafeCopyCount + 2
; stash previous interrupt state before using the interrupts
DEF vSafeCopyLYC EQU vSafeCopyOriginalCount + 2 ; stashes $FF45, the LYC register
DEF vSafeCopySTAT EQU vSafeCopyLYC + 1 ; stashes $FF41, the STAT register
DEF vSafeCopyInterruptFirst EQU vSafeCopySTAT + 1 ; stashes $0048 the STAT interrupt
DEF vSafeCopyInterruptSecond EQU vSafeCopyInterruptFirst + 1
DEF vSafeCopyInterruptEnable EQU vSafeCopyInterruptSecond + 1 ; stashes $FFFF, which interrupts are enabled
INCLUDE "hardware.inc"
SECTION "Interrupts", ROM0[$0]
ds $48 - @, 0
call INTERRUPT_LCD - 1
ret
SECTION "Header", ROM0[$100]
jp EntryPoint
ds $150 - @, 0 ; Make room for the header
EntryPoint:
; Shut down audio circuitry
ld a, 0
ld [rNR52], a
ld a, [Instructions] ; get the value of a call instruction so we can shove it into our handles
ld hl, SCENE_SETUP - 1
ld [hl], a
ld hl, SCENE_UPDATE - 1
ld [hl], a
ld hl, SCENE_DRAW - 1
ld [hl], a
ld hl, SCENE_TEARDOWN - 1
ld [hl], a
ld hl, INTERRUPT_LCD - 1
ld [hl], a
ld a, [Instructions + 3] ; get the value of a ret instruction
ld hl, SCENE_SETUP + 2
ld [hl], a
ld hl, SCENE_UPDATE + 2
ld [hl], a
ld hl, SCENE_DRAW + 2
ld [hl], a
ld hl, SCENE_TEARDOWN + 2
ld [hl], a
ld hl, INTERRUPT_LCD + 2
ld [hl], a
; set up our scene vectors
ld hl, SCENE_SETUP
ld de, CardReadSetup
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_UPDATE
ld de, CardReadUpdate
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_DRAW
ld de, CardReadDraw
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_TEARDOWN
ld de, CardReadTeardown
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
; set up the interrupt vector to just be ret.
ld hl, INTERRUPT_LCD
ld de, INTERRUPT_LCD + 2
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
; Do not turn the LCD off outside of VBlank
WaitVBlank:
ld a, [rLY]
cp 144
jp c, WaitVBlank
call SCENE_SETUP - 1
Loop:
di
ld hl, rP1
ld [hl], P1F_GET_DPAD
ld a, [hl]
ld a, [hl]
ld a, [hl]
ld a, [hl]
cpl
and a, %00001111
ld b, a
ld [hl], P1F_GET_BTN
ld a, [hl]
ld a, [hl]
ld a, [hl]
ld a, [hl]
cpl
and a, %00001111
swap a
or a, b
ld b, a
ld a, [rMYBTN]
cpl
and a, b
ld [rMYBTNP], a
ld a, b
ld [rMYBTN], a
call SCENE_UPDATE - 1
ld b, 144
call AwaitLine
call SCENE_DRAW - 1
jp Loop
;; CARD READ PAGE STARTS HERE ;; CARD READ PAGE STARTS HERE
CardReadSetup: CardReadSetup:
@ -168,13 +23,8 @@ CardReadSetup:
ld hl, UITilemap ; origin ld hl, UITilemap ; origin
ld de, $9800 ; destination ld de, $9800 ; destination
ld b, 18 ; height ld b, 18 ; height
ld c, 20 ; width ld c, 10 ; width
call CopyTilesToMapUnsafe call CopyTilesToMapUnsafe
;ld hl, FoolTiles
;ld de, $8000
;ld bc, FoolTilesEnd - FoolTiles
;call CopyRangeUnsafe
; Turn the LCD on ; Turn the LCD on
ld a, LCDCF_BLK01 | LCDCF_ON | LCDCF_BGON ld a, LCDCF_BLK01 | LCDCF_ON | LCDCF_BGON
@ -184,10 +34,17 @@ CardReadSetup:
ld a, %11100100 ld a, %11100100
ld [rBGP], a ld [rBGP], a
ld a, 0
ldh [vSelectedCardInSpread], a
ld hl, Spreads
ld a, l
ldh [vSelectedSpreadAddress], a
ld a, h
ldh [vSelectedSpreadAddress+1], a
ld a, $FF ld a, $FF
ldh [vPreviousCardIndex], a ldh [vPreviousCardIndex], a
ld a, 0 ld a, 0
ldh [vSelectedTileIndex], a ldh [vSelectedCardIndex], a
call LoadCardData call LoadCardData
ei ei
ret ; return from cardreadsetup ret ; return from cardreadsetup
@ -196,36 +53,152 @@ CardReadUpdate:
ldh a, [rMYBTNP] ldh a, [rMYBTNP]
and a, %0000_1000 ; select the down key and a, %0000_1000 ; select the down key
jp z, :+ ; skip the following code if down is not pressed jp z, :+ ; skip the following code if down is not pressed
ldh a, [vSelectedTileIndex] ldh a, [vSelectedCardIndex]
inc a ; increment when they press down because the deck has card 0 at the top inc a ; increment when they press down because the deck has card 0 at the top
ldh [vSelectedTileIndex], a ldh [vSelectedCardIndex], a
: :
ldh a, [rMYBTNP] ldh a, [rMYBTNP]
and a, %0000_0100 ; select the up key and a, %0000_0100 ; select the up key
jp z, :+ ; skip the following code if up is not pressed jp z, :+ ; skip the following code if up is not pressed
ldh a, [vSelectedTileIndex] ldh a, [vSelectedCardIndex]
dec a ; decrement when they press up because the deck has card 0 at the top dec a ; decrement when they press up because the deck has card 0 at the top
ldh [vSelectedTileIndex], a ldh [vSelectedCardIndex], a
: :
ldh a, [vSelectedTileIndex] ; load current selected tile index ldh a, [vSelectedCardIndex] ; load current selected tile index
ld hl, Cards ; deck length ld hl, Cards ; deck length
cp a, [hl] ; ddoes the index equal the deck length? cp a, [hl] ; ddoes the index equal the deck length?
jp nz, :+ jp nz, :+
ld a, 0 ; if the index equals the deck length replace it with zero ld a, 0 ; if the index equals the deck length replace it with zero
ldh [vSelectedTileIndex], a ldh [vSelectedCardIndex], a
: :
cp a, $FF ; if the tile index is $FF (underflowed from dec) cp a, $FF ; if the tile index is $FF (underflowed from dec)
jp nz, :+ jp nz, :+
ld a, [hl] ld a, [hl]
dec a ;replace with deck length - 1 dec a ;replace with deck length - 1
ldh [vSelectedTileIndex], a ldh [vSelectedCardIndex], a
:
ldh a, [rMYBTNP]
and a, %0000_0010 ; select the left key
jp z, :+ ; skip the following code if left is not pressed
ldh a, [vSelectedCardInSpread]
dec a
ldh [vSelectedCardInSpread], a
:
ldh a, [rMYBTNP]
and a, %0000_0001 ; select the right key
jp z, :+ ; skip the following code if right is not pressed
ldh a, [vSelectedCardInSpread]
inc a
ldh [vSelectedCardInSpread], a
:
ldh a, [vSelectedSpreadAddress]
ld l, a
ldh a, [vSelectedSpreadAddress+1]
ld h, a ; fetch the spread length address into h
ldh a, [vSelectedCardInSpread]
cp a, [hl] ; ddoes the index equal the deck length?
jp nz, :+
ld a, 0 ; if the index equals the deck length replace it with zero
ldh [vSelectedCardInSpread], a
:
cp a, $FF ; if the tile index is $FF (underflowed from dec)
jp nz, :+
ld a, [hl]
dec a ;replace with deck length - 1
ldh [vSelectedCardInSpread], a
: :
ret ret
CardReadDraw: CardReadDraw:
; this function mostly just refreshes the deck view on the right side ; first, we draw the spread minimap
; should probably be factored out into its own thing? ldh a, [vSelectedSpreadAddress]
; it's also not vblank-safe; this could be up to 22 iterations of a loop... ld c, a
ldh a, [vSelectedSpreadAddress+1]
ld b, a
ld a, [bc]
ld e, a
ld d, 0
CardReadDraw_FoundSpread:
push de ; length of the spread in e!
CardReadDraw_DrawCard:
ld a, e
cp a, 0
jp z, CardReadDraw_DoneWithSpread
inc bc ; first card of spread is after the length of the spread
ld hl, $9800 + (32*12)+11
ld a, [bc]
swap a
and a, %0000_1111
ld d, 0
ld e, a ; add a to hl
add hl, de
CardReadDraw_DoneWithWalkRight:
ld a, [bc]
and a, %0000_1111
ld d, 0
ld e, 32
jp z, CardReadDraw_DoneWithWalkDown
CardReadDraw_WalkDown:
dec a
add hl, de
cp a, 0
jp nz, CardReadDraw_WalkDown
CardReadDraw_DoneWithWalkDown:
CardReadDraw_DrawMiniCard:
ld [hl], $83
add hl, de
ld [hl], $84
CardReadDraw_DoneDrawingCard:
pop de
dec de
ld a, e
cp a, 0
jp nz, CardReadDraw_FoundSpread
CardReadDraw_DoneWithSpread:
; highlight the selected card
ldh a, [vSelectedSpreadAddress]
ld l, a
ldh a, [vSelectedSpreadAddress+1]
ld h, a
ldh a, [vSelectedCardInSpread]
ld d, 0
ld e, a ; index of selected card in spread
inc e ; skip length
add hl, de
ld b, h
ld c, l ; move location of selected card to bc
ld hl, $9800 + (32*12)+11
ld a, [bc] ; a has card location
swap a
and a, %0000_1111
ld e, a
add hl, de ; step right
ld e, 32
ld a, [bc]
and a, %0000_1111
jp z, CardReadDraw_DrawSelectedCard
:
dec a
add hl, de ; step down
cp a, 0
jp nz, :-
CardReadDraw_DrawSelectedCard:
ld [hl], $85
add hl, de
ld [hl], $86
; okay now we draw the deck minimap
ld a, [Cards] ld a, [Cards]
srl a ; divide by two because we're drawing icons for pairs of cards srl a ; divide by two because we're drawing icons for pairs of cards
ld b, a ; length of the cards data ld b, a ; length of the cards data
@ -233,7 +206,7 @@ CardReadDraw:
ld de, 32 ; stride ld de, 32 ; stride
CardReadDrawCopyTile: CardReadDrawCopyTile:
ld [hl], $81 ; load the tile for "unselected pair of tiles" ld [hl], $81 ; load the tile for "unselected pair of tiles"
add hl, de ; step forward by stride (de is the address we're drawing to on screen) add hl, de ; step forward by stride (hl is the address we're drawing to on screen)
dec b ; sets zero flag because it's an 8-bit register dec b ; sets zero flag because it's an 8-bit register
jp nz, CardReadDrawCopyTile ; repeat if there's more cards in the deck to draw jp nz, CardReadDrawCopyTile ; repeat if there's more cards in the deck to draw
ld [hl], $87 ; draw the cap at the end ld [hl], $87 ; draw the cap at the end
@ -241,7 +214,7 @@ CardReadDrawCopyTile:
; the rest of this stuff deals with drawing the set-out card for the current ; the rest of this stuff deals with drawing the set-out card for the current
; selected card ; selected card
CardReadDrawSelectedTile: CardReadDrawSelectedTile:
ldh a, [vSelectedTileIndex] ldh a, [vSelectedCardIndex]
srl a srl a
ld b, a ld b, a
ld hl, $9800+32*4+19 ; start point ld hl, $9800+32*4+19 ; start point
@ -254,7 +227,7 @@ CardReadDrawCountDownTile:
dec b dec b
jp nz, CardReadDrawCountDownTile jp nz, CardReadDrawCountDownTile
CardReadDrawDrawSelectedTile: CardReadDrawDrawSelectedTile:
ldh a, [vSelectedTileIndex] ldh a, [vSelectedCardIndex]
and a, 1 and a, 1
; if we're on an odd tile, draw the tile with the top card selected. ; if we're on an odd tile, draw the tile with the top card selected.
; no other tile needs to change. ; no other tile needs to change.
@ -272,7 +245,7 @@ CardReadDrawDrawSelectedTile:
CardReadDrawReturn: CardReadDrawReturn:
; check if the current selected tile is different from the previous; ; check if the current selected tile is different from the previous;
; if it is different, then load new card data ; if it is different, then load new card data
ldh a, [vSelectedTileIndex] ldh a, [vSelectedCardIndex]
ld hl, vPreviousCardIndex ld hl, vPreviousCardIndex
cp a, [hl] cp a, [hl]
call nz, LoadCardData ; only load new card data if the selected card has changed call nz, LoadCardData ; only load new card data if the selected card has changed
@ -282,12 +255,12 @@ CardReadTeardown:
ret ret
LoadCardData: LoadCardData:
ld a, [vSelectedTileIndex] ld a, [vSelectedCardIndex]
ld [vPreviousCardIndex], a ld [vPreviousCardIndex], a
ld b, 144 ld b, 144
call AwaitLine ; wait for vblank before starting to work call AwaitLine ; wait for vblank before starting to work
ld a, [vSelectedTileIndex] ld a, [vSelectedCardIndex]
ld b, 0 ld b, 0
ld c, a ; load bc from a. coming into this we have the number of the card in the card array in a ld c, a ; load bc from a. coming into this we have the number of the card in the card array in a
ld hl, Cards + 1 ; skip the length prefix ld hl, Cards + 1 ; skip the length prefix
@ -381,84 +354,8 @@ WaitForSafeCopy2:
ret ret
Instructions:
call Instructions + 2
ret
; subroutines
PrintString: ; write ascii string which has been prefixed by its length.
ld b, [hl]
inc hl
PrintBChars: ;write ascii characters. will not respect newlines or anything like that
; hl should be the source of ascii text
; de should be the location in the tile map to start writing at
; b should be the length
ld a, [hli]
or a, %10000000
ld [de], a
inc de
dec b
jp nz, PrintBChars
ret
AwaitLine: ; put the line you want to reach in b
ld a, [rLY]
cp b
jp nz, AwaitLine
ret
CopyRangeUnsafe:
; hl is source
; de is destination
; bc is length to copy
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, b
or a, c ; check if bc is zero
jp nz, CopyRangeUnsafe
ret
INCLUDE "CopyRangeSafe.inc" INCLUDE "CopyRangeSafe.inc"
CopyTilesToMapUnsafe:
; copy tiles from where they are linearly packed at an origin (de)
; to a rectangle in the tilemap in vram (hl)
; assuming it has height in b and width in c.
push bc
CopyTile:
ld a, [hl] ; load from the tile map into a
ld [de], a ; load from a into the destination
inc hl ; this is slower than using hli but i'm trying to work with this here
inc de
dec c
; check if we've completed a line?
ld a, 0
or a, c ; check if c is zero, if it's not zero go back and copy more bytes
jp nz, CopyTile
DoneWithLine:
pop bc
ld a, e
add a, 32
ld e, a
ld a, d
adc a, 0
ld d, a
ld a, e
sub a, c
ld e, a
ld a, d
sbc a, 0
ld d, a
dec b
ld a, b
cp a, 0
jp nz, CopyTilesToMapUnsafe
ret
INCLUDE "CopyTilesSafe.inc" INCLUDE "CopyTilesSafe.inc"
@ -466,19 +363,26 @@ INCLUDE "CopyTilesSafe.inc"
SECTION "Card Data", ROM0 SECTION "Card Data", ROM0
Cards: Cards:
db 3 db 5
dw TheFool dw TheFool
dw TheMagician dw TheMagician
dw TheHighPriestess dw TheHighPriestess
dw TheEmpress
dw TheEmperor
INCLUDE "00TheFool.inc" INCLUDE "00TheFool.inc"
INCLUDE "01TheMagician.inc" INCLUDE "01TheMagician.inc"
INCLUDE "02TheHighPriestess.inc" INCLUDE "02TheHighPriestess.inc"
INCLUDE "03TheEmpress.inc"
INCLUDE "04TheEmperor.inc"
SECTION "Tile data", ROM0 SECTION "Tile data", ROM0
Spreads: Spreads:
db 10, $00, $10, $20, $30, $40, $02, $12, $22, $32, $42
db 5, $11, $20, $22, $31, $41
db 3, $11, $21, $31
UITiles: UITiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $0f,$0f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10 db $0f,$0f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10
@ -657,22 +561,22 @@ BigLetterTilesEnd:
SECTION "Tilemap", ROM0 SECTION "Tilemap", ROM0
UITilemap: UITilemap:
db $8b, $8d, $8d, $8d, $8d, $8d, $8d, $8d, $8d, $8a, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8b, $8d, $8d, $8d, $8d, $8d, $8d, $8d, $8d, $8a
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $85, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $83, $86, $83, $83, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $84, $83, $84, $84, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $84, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89
db $8c, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $88, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8c, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $88
UITilemapEnd: UITilemapEnd:

View File

@ -1,3 +1,15 @@
; variables for safe transfer async function
DEF vSafeCopySource EQU INTERRUPT_LCD + 3
DEF vSafeCopyDest EQU vSafeCopySource + 2
DEF vSafeCopyCount EQU vSafeCopyDest + 2 ; check this for safe transfer being complete
DEF vSafeCopyOriginalCount EQU vSafeCopyCount + 2
; stash previous interrupt state before using the interrupts
DEF vSafeCopyLYC EQU vSafeCopyOriginalCount + 2 ; stashes $FF45, the LYC register
DEF vSafeCopySTAT EQU vSafeCopyLYC + 1 ; stashes $FF41, the STAT register
DEF vSafeCopyInterrupt EQU vSafeCopySTAT + 1 ; stashes the previous LCD interrupt
DEF vSafeCopyInterruptEnable EQU vSafeCopyInterrupt + 2 ; stashes $FFFF, which interrupts are enabled
CopyRangeSafe: CopyRangeSafe:
; hl is source ; hl is source
; de is destination ; de is destination
@ -32,9 +44,9 @@ CopyRangeSafe:
ldh a, [$ff45] ldh a, [$ff45]
ldh [vSafeCopyLYC], a ; stashes $FF45, the LYC register ldh [vSafeCopyLYC], a ; stashes $FF45, the LYC register
ld a, [INTERRUPT_LCD] ld a, [INTERRUPT_LCD]
ld [vSafeCopyInterruptFirst], a ld [vSafeCopyInterrupt], a
ld a, [INTERRUPT_LCD + 1] ld a, [INTERRUPT_LCD+1]
ld [vSafeCopyInterruptSecond], a ; stashes the current STAT interrupt handler ld [vSafeCopyInterrupt+1], a ; stashes the current STAT interrupt handler
ld a, [$ffff] ld a, [$ffff]
and a, %0000_0010 and a, %0000_0010
ld [vSafeCopyInterruptEnable], a ; stashes whether LCD interrupt are enabled ld [vSafeCopyInterruptEnable], a ; stashes whether LCD interrupt are enabled
@ -174,9 +186,9 @@ CopyRangeSafe_Done: ; called when the complete transfer is finished,
ldh [$ff41], a ldh [$ff41], a
ldh a, [vSafeCopyLYC] ldh a, [vSafeCopyLYC]
ldh [$ff45], a ldh [$ff45], a
ldh a, [vSafeCopyInterruptFirst] ldh a, [vSafeCopyInterrupt]
ld [INTERRUPT_LCD], a ld [INTERRUPT_LCD], a
ldh a, [vSafeCopyInterruptSecond] ldh a, [vSafeCopyInterrupt+1]
ldh [INTERRUPT_LCD+1], a ldh [INTERRUPT_LCD+1], a
ld hl, $ffff ld hl, $ffff
@ -193,3 +205,16 @@ CopyRangeSafe_Done: ; called when the complete transfer is finished,
CopyRangeSafe_Return: CopyRangeSafe_Return:
reti reti
CopyRangeUnsafe:
; hl is source
; de is destination
; bc is length to copy
ld a, [hli]
ld [de], a
inc de
dec bc
ld a, b
or a, c ; check if bc is zero
jp nz, CopyRangeUnsafe
ret

View File

@ -28,9 +28,9 @@ CopyTilesSafe:
ldh a, [$ff45] ldh a, [$ff45]
ldh [vSafeCopyLYC], a ; stashes $FF45, the LYC register ldh [vSafeCopyLYC], a ; stashes $FF45, the LYC register
ld a, [INTERRUPT_LCD] ld a, [INTERRUPT_LCD]
ld [vSafeCopyInterruptFirst], a ld [vSafeCopyInterrupt], a
ld a, [INTERRUPT_LCD + 1] ld a, [INTERRUPT_LCD+1]
ld [vSafeCopyInterruptSecond], a ; stashes the current STAT interrupt handler ld [vSafeCopyInterrupt+1], a ; stashes the current STAT interrupt handler
ld a, [$ffff] ld a, [$ffff]
and a, %0000_0010 and a, %0000_0010
ld [vSafeCopyInterruptEnable], a ; stashes whether LCD interrupt are enabled ld [vSafeCopyInterruptEnable], a ; stashes whether LCD interrupt are enabled
@ -191,9 +191,9 @@ CopyTilesSafe_Done: ; called when the complete transfer is finished,
ldh [$ff41], a ldh [$ff41], a
ldh a, [vSafeCopyLYC] ldh a, [vSafeCopyLYC]
ldh [$ff45], a ldh [$ff45], a
ldh a, [vSafeCopyInterruptFirst] ldh a, [vSafeCopyInterrupt]
ld [INTERRUPT_LCD], a ld [INTERRUPT_LCD], a
ldh a, [vSafeCopyInterruptSecond] ldh a, [vSafeCopyInterrupt+1]
ldh [INTERRUPT_LCD+1], a ldh [INTERRUPT_LCD+1], a
ld hl, $ffff ld hl, $ffff
@ -210,3 +210,41 @@ CopyTilesSafe_Done: ; called when the complete transfer is finished,
CopyTilesSafe_Return: CopyTilesSafe_Return:
reti reti
CopyTilesToMapUnsafe:
; copy tiles from where they are linearly packed at an origin (de)
; to a rectangle in the tilemap in vram (hl)
; assuming it has height in b and width in c.
push bc
CopyTile:
ld a, [hl] ; load from the tile map into a
ld [de], a ; load from a into the destination
inc hl ; this is slower than using hli but i'm trying to work with this here
inc de
dec c
; check if we've completed a line?
ld a, 0
or a, c ; check if c is zero, if it's not zero go back and copy more bytes
jp nz, CopyTile
DoneWithLine:
pop bc
ld a, e
add a, 32
ld e, a
ld a, d
adc a, 0
ld d, a
ld a, e
sub a, c
ld e, a
ld a, d
sbc a, 0
ld d, a
dec b
ld a, b
cp a, 0
jp nz, CopyTilesToMapUnsafe
ret

View File

@ -1,120 +0,0 @@
; original export script by gabriel reis, modified by shoofle
KeyArtTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$04
db $00,$3f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$f8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$40,$00,$ff,$00,$42,$00,$42,$00,$42,$00,$42,$00,$42
db $00,$42,$00,$42,$00,$42,$00,$42,$00,$42,$00,$42,$00,$42,$00,$42
db $10,$00,$00,$10,$00,$10,$80,$10,$40,$10,$40,$10,$20,$18,$10,$28
db $00,$28,$00,$28,$00,$24,$00,$24,$00,$e4,$00,$22,$00,$a2,$00,$41
db $00,$00,$00,$00,$00,$01,$00,$06,$00,$99,$00,$20,$00,$00,$00,$fc
db $00,$40,$00,$c0,$00,$20,$00,$60,$00,$60,$00,$60,$00,$50,$00,$50
db $00,$07,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$c2,$00,$62,$00,$52,$00,$8a,$00,$06,$00,$02,$00,$02
db $00,$48,$00,$44,$00,$43,$00,$40,$00,$40,$00,$5f,$00,$20,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$c0,$00,$30,$00,$88,$00,$08,$00,$04
db $00,$03,$00,$03,$00,$01,$00,$01,$00,$01,$00,$03,$00,$03,$00,$06
db $00,$04,$00,$04,$00,$02,$00,$02,$00,$02,$00,$02,$00,$04,$00,$18
db $00,$08,$00,$10,$00,$20,$00,$20,$00,$40,$00,$80,$00,$80,$00,$80
db $00,$00,$00,$03,$00,$04,$00,$04,$00,$04,$00,$04,$00,$03,$00,$00
db $00,$20,$00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f8
db $00,$00,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$80,$00,$00,$00,$00,$00,$80,$00,$78,$00,$06,$00,$01,$00,$00
db $00,$31,$00,$31,$00,$11,$00,$11,$00,$11,$00,$11,$00,$11,$00,$91
db $00,$07,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$e0,$00,$1f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$9f,$00,$60,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$81,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $41,$00,$20,$00,$10,$00,$08,$00,$04,$00,$02,$00,$01,$00,$00,$01
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7e,$00,$81,$00,$01
db $00,$42,$00,$44,$00,$44,$00,$22,$00,$21,$00,$18,$00,$06,$00,$01
db $00,$82,$00,$82,$00,$05,$00,$08,$00,$f0,$00,$80,$00,$00,$00,$00
db $00,$10,$80,$10,$80,$10,$80,$10,$00,$30,$00,$1f,$00,$78,$00,$94
db $02,$08,$01,$08,$00,$08,$00,$08,$00,$08,$00,$e8,$00,$1f,$00,$08
db $01,$00,$00,$00,$80,$00,$40,$00,$20,$00,$10,$00,$08,$80,$04,$40
db $80,$06,$80,$08,$80,$10,$40,$10,$40,$10,$20,$10,$20,$10,$10,$00
db $02,$30,$01,$08,$00,$04,$00,$02,$00,$02,$00,$01,$00,$00,$00,$80
db $08,$04,$04,$00,$80,$04,$40,$04,$00,$04,$00,$08,$00,$88,$00,$88
db $00,$00,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$41
db $00,$80,$00,$40,$00,$40,$00,$40,$00,$40,$00,$40,$00,$41,$00,$41
db $00,$88,$00,$88,$00,$88,$00,$88,$00,$88,$00,$88,$20,$08,$10,$08
db $00,$80,$00,$40,$00,$20,$00,$18,$00,$07,$00,$00,$00,$00,$00,$00
db $00,$08,$00,$e8,$00,$30,$00,$c0,$00,$00,$00,$02,$00,$01,$00,$00
db $08,$00,$00,$08,$00,$88,$00,$48,$00,$28,$00,$78,$00,$98,$00,$88
db $00,$f8,$00,$a8,$00,$a8,$00,$a8,$00,$a8,$00,$a8,$00,$a9,$00,$a9
db $00,$29,$00,$31,$00,$31,$00,$31,$00,$31,$00,$31,$00,$31,$00,$31
db $00,$28,$00,$24,$00,$24,$00,$24,$00,$24,$00,$27,$00,$27,$00,$2e
db $00,$2d,$00,$26,$00,$25,$00,$25,$00,$25,$00,$25,$00,$25,$00,$25
db $00,$25,$00,$25,$00,$25,$00,$25,$00,$15,$00,$15,$00,$15,$00,$15
db $00,$15,$00,$15,$00,$15,$00,$15,$00,$11,$00,$02,$00,$02,$00,$02
db $00,$02,$00,$02,$00,$02,$00,$04,$00,$04,$00,$08,$00,$08,$00,$00
db $00,$a9,$00,$a9,$00,$a9,$00,$a9,$00,$a9,$00,$a9,$00,$a9,$00,$a9
db $02,$00,$02,$00,$80,$03,$40,$04,$20,$08,$00,$10,$00,$10,$00,$10
db $01,$00,$00,$00,$00,$e0,$00,$10,$00,$10,$00,$08,$00,$08,$0c,$00
db $00,$0b,$00,$08,$00,$04,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$01,$00,$03,$00,$0c,$01,$f4,$00,$04
db $00,$04,$00,$04,$00,$24,$00,$24,$02,$24,$02,$24,$01,$24,$01,$24
db $00,$78,$00,$80,$00,$00,$00,$60,$00,$18,$00,$07,$00,$00,$00,$00
db $00,$60,$00,$1c,$00,$03,$00,$00,$00,$01,$00,$fe,$00,$00,$00,$00
db $02,$40,$01,$20,$00,$f8,$00,$78,$00,$88,$00,$08,$00,$08,$00,$10
db $08,$20,$06,$40,$01,$80,$10,$00,$08,$00,$04,$00,$02,$00,$81,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1f,$00,$e7
db $00,$00,$00,$00,$00,$00,$00,$07,$00,$00,$00,$00,$00,$fe,$00,$81
db $00,$20,$00,$40,$00,$80,$00,$00,$00,$00,$00,$00,$04,$00,$04,$80
db $00,$00,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02,$00,$06
db $00,$22,$00,$22,$00,$22,$00,$22,$00,$22,$00,$02,$00,$02,$00,$02
db $00,$02,$00,$02,$00,$02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $02,$28,$02,$28,$01,$28,$00,$28,$00,$28,$00,$28,$00,$28,$00,$28
db $00,$0a,$00,$0a,$00,$0a,$00,$0a,$00,$0a,$00,$0a,$00,$0a,$00,$0a
db $00,$12,$00,$12,$00,$12,$00,$22,$00,$22,$00,$22,$00,$22,$00,$22
db $00,$22,$00,$22,$00,$22,$00,$22,$00,$22,$00,$22,$00,$22,$00,$22
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7f,$00,$00
db $00,$0c,$00,$18,$80,$0c,$40,$0b,$20,$04,$10,$04,$08,$02,$00,$02
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$fc,$00,$00,$00,$00,$00,$00
db $00,$01,$a0,$00,$70,$00,$10,$00,$08,$00,$04,$00,$02,$00,$01,$00
db $00,$00,$00,$80,$00,$80,$00,$40,$00,$3f,$00,$04,$00,$04,$00,$04
db $00,$80,$00,$40,$00,$20,$00,$18,$00,$06,$00,$01,$00,$00,$00,$03
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$3f,$00,$c0
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f8,$00,$00,$00,$00
db $00,$04,$80,$04,$80,$04,$40,$04,$20,$04,$20,$04,$10,$04,$10,$04
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$00,$00,$84,$00,$44
db $00,$48,$00,$88,$00,$88,$00,$88,$00,$88,$00,$88,$00,$08,$00,$08
db $00,$44,$00,$44,$00,$44,$00,$44,$00,$44,$00,$44,$00,$44,$00,$44
db $00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$08
db $00,$08,$00,$08,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$02,$00,$0c,$00,$10
db $00,$00,$00,$00,$00,$00,$00,$78,$00,$86,$00,$01,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$fc,$00,$02,$00,$01
db $00,$28,$00,$28,$00,$28,$00,$28,$00,$28,$00,$28,$08,$20,$04,$28
db $00,$00,$01,$00,$00,$00,$00,$00,$40,$00,$20,$00,$10,$00,$08,$00
db $04,$00,$03,$00,$c0,$00,$20,$00,$10,$00,$10,$00,$08,$00,$04,$00
db $02,$00,$01,$00,$80,$00,$40,$00,$20,$00,$20,$00,$18,$00,$06,$00
db $00,$00,$80,$00,$40,$00,$20,$00,$10,$00,$08,$00,$04,$00,$04,$00
BackgroundCopy:
db $00, $00, $57, $58, $59, $00, $00, $00
db $3e, $3f, $40, $5b, $5e, $4e, $4f, $50
db $3a, $3b, $3c, $5c, $5d, $49, $4a, $4b
db $48, $38, $3d, $35, $36, $4c, $4d, $52
db $41, $39, $1d, $21, $22, $23, $51, $54
db $45, $5a, $24, $37, $2b, $25, $26, $54
db $46, $44, $09, $27, $1e, $28, $29, $54
db $47, $2f, $0a, $1f, $0b, $20, $2c, $54
db $47, $30, $0c, $2a, $0d, $0e, $2d, $53
db $47, $31, $0f, $10, $00, $11, $34, $55
db $47, $32, $00, $12, $00, $13, $2e, $55
db $42, $33, $14, $15, $16, $17, $18, $55
db $43, $00, $00, $19, $1a, $1b, $1c, $56
db $00, $00, $01, $02, $07, $02, $00, $00
db $00, $00, $00, $00, $08, $03, $00, $00
db $00, $00, $00, $04, $05, $06, $00, $00

1114
hardware.inc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,123 +0,0 @@
; original export script by gabriel reis, modified by shoofle
littleletters:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $03,$03,$07,$07,$0f,$0f,$0e,$0e,$1c,$1c,$30,$30,$c0,$c0,$c0,$c0
db $24,$24,$6c,$6c,$6c,$6c,$48,$48,$00,$00,$00,$00,$00,$00,$00,$00
db $1a,$1a,$1a,$1a,$7f,$7f,$34,$34,$34,$34,$fe,$fe,$68,$68,$68,$68
db $08,$08,$3c,$3c,$6a,$6a,$68,$68,$3c,$3c,$0a,$0a,$6a,$6a,$3c,$3c
db $63,$63,$a6,$a6,$ac,$ac,$d8,$d8,$1b,$1b,$35,$35,$65,$65,$c6,$c6
db $18,$18,$24,$24,$28,$28,$18,$18,$2c,$2c,$66,$66,$67,$67,$39,$39
db $18,$18,$18,$18,$18,$18,$30,$30,$00,$00,$00,$00,$00,$00,$00,$00
db $04,$04,$0c,$0c,$18,$18,$10,$10,$10,$10,$18,$18,$0c,$0c,$04,$04
db $20,$20,$30,$30,$18,$18,$08,$08,$08,$08,$18,$18,$30,$30,$20,$20
db $00,$00,$08,$08,$28,$28,$1e,$1e,$78,$78,$14,$14,$10,$10,$00,$00
db $00,$00,$00,$00,$18,$18,$18,$18,$7e,$7e,$18,$18,$18,$18,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$0c,$0c,$0c,$0c,$0c,$0c,$18,$18
db $00,$00,$00,$00,$00,$00,$1c,$1c,$38,$38,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$18,$18,$18,$18,$00,$00
db $04,$04,$0c,$0c,$0c,$0c,$18,$18,$18,$18,$30,$30,$30,$30,$20,$20
db $00,$00,$38,$38,$64,$64,$64,$64,$64,$64,$64,$64,$64,$64,$38,$38
db $08,$08,$18,$18,$38,$38,$18,$18,$18,$18,$18,$18,$18,$18,$3c,$3c
db $00,$00,$38,$38,$4c,$4c,$0c,$0c,$0c,$0c,$18,$18,$30,$30,$7c,$7c
db $00,$00,$3c,$3c,$06,$06,$06,$06,$1c,$1c,$06,$06,$06,$06,$3c,$3c
db $00,$00,$04,$04,$26,$26,$26,$26,$3e,$3e,$06,$06,$06,$06,$04,$04
db $00,$00,$7c,$7c,$64,$64,$60,$60,$78,$78,$44,$44,$04,$04,$38,$38
db $00,$00,$20,$20,$30,$30,$30,$30,$3c,$3c,$32,$32,$32,$32,$1c,$1c
db $00,$00,$7c,$7c,$4c,$4c,$0c,$0c,$3e,$3e,$18,$18,$30,$30,$20,$20
db $00,$00,$78,$78,$64,$64,$64,$64,$38,$38,$64,$64,$64,$64,$3c,$3c
db $00,$00,$38,$38,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$0c,$0c,$18,$18
db $00,$00,$00,$00,$18,$18,$18,$18,$00,$00,$18,$18,$18,$18,$00,$00
db $00,$00,$00,$00,$0c,$0c,$0c,$0c,$00,$00,$0c,$0c,$0c,$0c,$18,$18
db $00,$00,$0c,$0c,$18,$18,$30,$30,$60,$60,$30,$30,$18,$18,$0c,$0c
db $00,$00,$00,$00,$3c,$3c,$3c,$3c,$00,$00,$3c,$3c,$3c,$3c,$00,$00
db $00,$00,$30,$30,$18,$18,$0c,$0c,$06,$06,$0c,$0c,$18,$18,$30,$30
db $38,$38,$6c,$6c,$24,$24,$0c,$0c,$18,$18,$18,$18,$00,$00,$18,$18
db $3c,$3c,$62,$62,$59,$59,$45,$45,$5d,$5d,$5d,$5d,$63,$63,$38,$38
db $00,$00,$38,$38,$34,$34,$32,$32,$3e,$3e,$32,$32,$32,$32,$32,$32
db $00,$00,$7c,$7c,$32,$32,$32,$32,$3c,$3c,$32,$32,$32,$32,$1c,$1c
db $00,$00,$3c,$3c,$72,$72,$62,$62,$60,$60,$60,$60,$62,$62,$3c,$3c
db $00,$00,$f8,$f8,$64,$64,$62,$62,$62,$62,$62,$62,$62,$62,$3c,$3c
db $00,$00,$fc,$fc,$60,$60,$60,$60,$78,$78,$60,$60,$60,$60,$3c,$3c
db $00,$00,$fc,$fc,$60,$60,$60,$60,$78,$78,$60,$60,$60,$60,$20,$20
db $00,$00,$78,$78,$64,$64,$60,$60,$60,$60,$6e,$6e,$64,$64,$3c,$3c
db $00,$00,$40,$40,$62,$62,$62,$62,$7e,$7e,$62,$62,$62,$62,$22,$22
db $00,$00,$10,$10,$18,$18,$18,$18,$18,$18,$18,$18,$18,$18,$08,$08
db $00,$00,$08,$08,$0c,$0c,$0c,$0c,$0c,$0c,$4c,$4c,$6c,$6c,$3c,$3c
db $00,$00,$40,$40,$64,$64,$68,$68,$70,$70,$68,$68,$64,$64,$22,$22
db $00,$00,$20,$20,$30,$30,$30,$30,$30,$30,$30,$30,$32,$32,$1e,$1e
db $00,$00,$3e,$3e,$6a,$6a,$6a,$6a,$6a,$6a,$62,$62,$62,$62,$22,$22
db $00,$00,$72,$72,$6a,$6a,$6a,$6a,$6a,$6a,$66,$66,$62,$62,$22,$22
db $00,$00,$3c,$3c,$66,$66,$62,$62,$62,$62,$62,$62,$32,$32,$1e,$1e
db $00,$00,$f8,$f8,$64,$64,$64,$64,$7c,$7c,$60,$60,$60,$60,$20,$20
db $00,$00,$38,$38,$64,$64,$62,$62,$62,$62,$6a,$6a,$64,$64,$3b,$3b
db $00,$00,$f8,$f8,$64,$64,$64,$64,$7c,$7c,$68,$68,$64,$64,$23,$23
db $00,$00,$38,$38,$64,$64,$60,$60,$38,$38,$04,$04,$64,$64,$38,$38
db $00,$00,$7e,$7e,$5a,$5a,$18,$18,$18,$18,$18,$18,$18,$18,$08,$08
db $00,$00,$40,$40,$62,$62,$62,$62,$62,$62,$62,$62,$62,$62,$3c,$3c
db $00,$00,$40,$40,$62,$62,$62,$62,$62,$62,$24,$24,$34,$34,$18,$18
db $00,$00,$c3,$c3,$62,$62,$62,$62,$6a,$6a,$6a,$6a,$6a,$6a,$34,$34
db $00,$00,$42,$42,$62,$62,$34,$34,$18,$18,$3c,$3c,$66,$66,$42,$42
db $00,$00,$4c,$4c,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$4c,$4c,$78,$78
db $00,$00,$7e,$7e,$46,$46,$0c,$0c,$18,$18,$30,$30,$62,$62,$7e,$7e
db $7c,$7c,$60,$60,$60,$60,$60,$60,$60,$60,$60,$60,$60,$60,$7c,$7c
db $20,$20,$30,$30,$30,$30,$18,$18,$18,$18,$0c,$0c,$0c,$0c,$04,$04
db $3e,$3e,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$3e,$3e
db $18,$18,$3c,$3c,$66,$66,$42,$42,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7c,$7c,$3e,$3e
db $30,$30,$18,$18,$0c,$0c,$04,$04,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$38,$38,$0c,$0c,$3c,$3c,$4c,$4c,$3a,$3a,$00,$00
db $00,$00,$30,$30,$30,$30,$3c,$3c,$32,$32,$32,$32,$3c,$3c,$00,$00
db $00,$00,$00,$00,$1c,$1c,$30,$30,$30,$30,$30,$30,$1c,$1c,$00,$00
db $00,$00,$0c,$0c,$0c,$0c,$3c,$3c,$4c,$4c,$4c,$4c,$3c,$3c,$00,$00
db $00,$00,$00,$00,$38,$38,$64,$64,$78,$78,$60,$60,$3c,$3c,$00,$00
db $00,$00,$0e,$0e,$18,$18,$3c,$3c,$18,$18,$18,$18,$18,$18,$00,$00
db $00,$00,$00,$00,$3c,$3c,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$38,$38
db $00,$00,$60,$60,$60,$60,$78,$78,$64,$64,$64,$64,$64,$64,$00,$00
db $00,$00,$10,$10,$00,$00,$38,$38,$18,$18,$18,$18,$3c,$3c,$00,$00
db $00,$00,$08,$08,$00,$00,$0c,$0c,$0c,$0c,$0c,$0c,$2c,$2c,$18,$18
db $00,$00,$60,$60,$68,$68,$68,$68,$70,$70,$68,$68,$64,$64,$00,$00
db $00,$00,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$18,$18,$00,$00
db $00,$00,$00,$00,$74,$74,$6a,$6a,$6a,$6a,$6a,$6a,$6a,$6a,$00,$00
db $00,$00,$00,$00,$78,$78,$64,$64,$64,$64,$64,$64,$64,$64,$00,$00
db $00,$00,$00,$00,$38,$38,$64,$64,$64,$64,$64,$64,$38,$38,$00,$00
db $00,$00,$00,$00,$78,$78,$64,$64,$64,$64,$78,$78,$60,$60,$60,$60
db $00,$00,$00,$00,$3c,$3c,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$0e,$0e
db $00,$00,$00,$00,$1c,$1c,$30,$30,$30,$30,$30,$30,$30,$30,$00,$00
db $00,$00,$00,$00,$38,$38,$60,$60,$38,$38,$0c,$0c,$78,$78,$00,$00
db $00,$00,$30,$30,$78,$78,$30,$30,$30,$30,$30,$30,$1c,$1c,$00,$00
db $00,$00,$00,$00,$64,$64,$64,$64,$64,$64,$64,$64,$3c,$3c,$00,$00
db $00,$00,$00,$00,$64,$64,$64,$64,$64,$64,$28,$28,$10,$10,$00,$00
db $00,$00,$00,$00,$62,$62,$6a,$6a,$6a,$6a,$6a,$6a,$34,$34,$00,$00
db $00,$00,$00,$00,$64,$64,$38,$38,$18,$18,$2c,$2c,$46,$46,$00,$00
db $00,$00,$00,$00,$4c,$4c,$4c,$4c,$4c,$4c,$3c,$3c,$0c,$0c,$38,$38
db $00,$00,$00,$00,$7e,$7e,$0c,$0c,$18,$18,$30,$30,$7e,$7e,$00,$00
db $3c,$3c,$60,$60,$30,$30,$60,$60,$60,$60,$30,$30,$60,$60,$3c,$3c
db $20,$20,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$30,$10,$10
db $3c,$3c,$06,$06,$0c,$0c,$06,$06,$06,$06,$0c,$0c,$06,$06,$3c,$3c
db $00,$00,$00,$00,$31,$31,$7b,$7b,$de,$de,$8c,$8c,$00,$00,$00,$00
db $c0,$c0,$a0,$a0,$b8,$b8,$b0,$b0,$da,$da,$12,$12,$1a,$1a,$03,$03
littlealphabet:
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $01, $02, $03, $04, $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $00, $00, $00, $00
db $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $1a, $1b, $1c, $1d, $1e, $1f, $00, $00, $00, $00
db $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c, $2d, $2e, $2f, $00, $00, $00, $00
db $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $3a, $3b, $3c, $3d, $3e, $3f, $00, $00, $00, $00
db $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $4a, $4b, $4c, $4d, $4e, $4f, $00, $00, $00, $00
db $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5a, $5b, $5c, $5d, $5e, $5f, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00

161
main.asm Normal file
View File

@ -0,0 +1,161 @@
; FF80 CALL
; FF81 LOW
; FF82 HIGH
; FF83 RET
; pattern repeats for the first 16 bytes so we can have some call vectors for the scene system
DEF SCENE_SETUP EQU $FF81
DEF SCENE_UPDATE EQU SCENE_SETUP + 4 ; call then ret is 3+1 bytes
DEF SCENE_DRAW EQU SCENE_UPDATE + 4
DEF SCENE_TEARDOWN EQU SCENE_DRAW + 4
DEF INTERRUPT_LCD EQU $FF91
DEF rMYBTN EQU $FFA8
DEF rMYBTNP EQU rMYBTN + 1
INCLUDE "hardware.inc"
SECTION "Interrupts", ROM0[$0]
ds $48 - @, 0
call INTERRUPT_LCD - 1
ret
SECTION "Header", ROM0[$100]
jp EntryPoint
ds $150 - @, 0 ; Make room for the header
EntryPoint:
; Shut down audio circuitry
ld a, 0
ld [rNR52], a
ld a, [Instructions] ; get the value of a call instruction so we can shove it into our handles
ld hl, SCENE_SETUP - 1
ld [hl], a
ld hl, SCENE_UPDATE - 1
ld [hl], a
ld hl, SCENE_DRAW - 1
ld [hl], a
ld hl, SCENE_TEARDOWN - 1
ld [hl], a
ld hl, INTERRUPT_LCD - 1
ld [hl], a
ld a, [Instructions + 3] ; get the value of a ret instruction
ld hl, SCENE_SETUP + 2
ld [hl], a
ld hl, SCENE_UPDATE + 2
ld [hl], a
ld hl, SCENE_DRAW + 2
ld [hl], a
ld hl, SCENE_TEARDOWN + 2
ld [hl], a
ld hl, INTERRUPT_LCD + 2
ld [hl], a
; set up our scene vectors
ld hl, SCENE_SETUP
ld de, CardReadSetup
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_UPDATE
ld de, CardReadUpdate
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_DRAW
ld de, CardReadDraw
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
ld hl, SCENE_TEARDOWN
ld de, CardReadTeardown
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
; set up the interrupt vector to just be ret.
ld hl, INTERRUPT_LCD
ld de, INTERRUPT_LCD + 2
ld a, e
ld [hl+], a
ld a, d
ld [hl+], a
; Do not turn the LCD off outside of VBlank
WaitVBlank:
ld a, [rLY]
cp 144
jp c, WaitVBlank
call SCENE_SETUP - 1
Loop:
di
ld hl, rP1
ld [hl], P1F_GET_DPAD
ld a, [hl]
ld a, [hl]
ld a, [hl]
ld a, [hl]
cpl
and a, %00001111
ld b, a
ld [hl], P1F_GET_BTN
ld a, [hl]
ld a, [hl]
ld a, [hl]
ld a, [hl]
cpl
and a, %00001111
swap a
or a, b
ld b, a
ld a, [rMYBTN]
cpl
and a, b
ld [rMYBTNP], a
ld a, b
ld [rMYBTN], a
call SCENE_UPDATE - 1
ld b, 144
call AwaitLine
call SCENE_DRAW - 1
jp Loop
AwaitLine: ; put the line you want to reach in b
ld a, [rLY]
cp b
jp nz, AwaitLine
ret
PrintString: ; write ascii string which has been prefixed by its length.
ld b, [hl]
inc hl
PrintBChars: ;write ascii characters. will not respect newlines or anything like that
; hl should be the source of ascii text
; de should be the location in the tile map to start writing at
; b should be the length
ld a, [hli]
or a, %10000000
ld [de], a
inc de
dec b
jp nz, PrintBChars
ret
INCLUDE "CardReadScreen.inc"
Instructions:
call Instructions + 2
ret

BIN
theemperor.aseprite Normal file

Binary file not shown.

BIN
theempress.aseprite Normal file

Binary file not shown.

View File

@ -1,46 +0,0 @@
; original export script by gabriel reis, modified by shoofle
tileset:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $0f,$0f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10
db $7f,$7f,$80,$80,$80,$80,$80,$80,$7f,$7f,$10,$10,$10,$10,$10,$10
db $00,$3c,$3c,$7e,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3
db $42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$3c,$7e,$00,$3c
db $00,$3c,$3c,$7e,$42,$c3,$5a,$db,$5a,$db,$5a,$db,$5a,$db,$5a,$db
db $5a,$db,$5a,$db,$5a,$db,$5a,$db,$5a,$db,$42,$c3,$3c,$7e,$00,$3c
db $0f,$0f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ce,$f0,$c6,$f8,$0e,$f0,$16,$e8,$5e,$a0,$fe,$00,$fc,$00,$00,$00
db $ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8
db $00,$00,$fc,$00,$fe,$00,$ae,$50,$1e,$e0,$06,$f8,$ce,$f0,$c6,$f8
db $00,$00,$3f,$00,$7f,$00,$7a,$05,$68,$17,$70,$0f,$63,$1f,$73,$0f
db $63,$1f,$73,$0f,$60,$1f,$78,$07,$75,$0a,$7f,$00,$3f,$00,$00,$00
db $00,$00,$ff,$00,$ff,$00,$aa,$55,$00,$ff,$00,$ff,$ff,$ff,$ff,$ff
db $63,$1f,$73,$0f,$63,$1f,$73,$0f,$63,$1f,$73,$0f,$63,$1f,$73,$0f
db $ff,$ff,$ff,$ff,$00,$ff,$00,$ff,$55,$aa,$ff,$00,$ff,$00,$00,$00
db $0f,$0f,$10,$10,$10,$10,$10,$10,$7f,$7f,$80,$80,$80,$80,$80,$80
db $7f,$7f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10
db $7f,$7f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
UIGadgets: ; tiles start at 0
db $0b, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0a, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $05, $00, $00, $00, $00, $00, $10
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $03, $06, $03, $03, $00, $00, $00, $11
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $04, $03, $04, $04, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $04, $00, $00, $00, $00, $00, $01
db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01
db $0c, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $08, $00, $00, $00, $00, $00, $00, $00, $00, $00, $12

View File

@ -1,112 +0,0 @@
; original export script by gabriel reis, modified by shoofle
KeyArtTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$1f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$21,$00,$23,$00,$22,$01,$3e,$00,$02,$01,$02,$00,$02,$01,$02
db $00,$80,$00,$80,$00,$80,$00,$80,$00,$c0,$40,$a0,$00,$98,$70,$8e
db $00,$00,$00,$00,$00,$00,$00,$70,$00,$50,$00,$50,$00,$50,$00,$50
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$01,$00,$01
db $00,$50,$00,$50,$00,$50,$00,$d0,$00,$58,$00,$54,$00,$26,$00,$96
db $00,$01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$56,$00,$ad,$00,$4b,$00,$b3,$00,$60,$00,$20,$00,$20,$00,$20
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$80,$00,$40
db $00,$40,$00,$40,$00,$40,$00,$20,$00,$10,$00,$08,$00,$07,$03,$04
db $00,$04,$03,$04,$00,$04,$03,$04,$00,$0c,$07,$88,$00,$58,$0f,$30
db $00,$00,$00,$00,$00,$3f,$00,$20,$00,$60,$00,$40,$00,$df,$00,$90
db $00,$00,$00,$00,$00,$fc,$00,$06,$00,$02,$00,$01,$00,$f1,$00,$19
db $00,$90,$00,$90,$00,$90,$00,$90,$00,$90,$00,$90,$00,$90,$00,$90
db $00,$09,$00,$09,$00,$09,$00,$09,$00,$09,$00,$09,$00,$09,$00,$09
db $00,$8b,$70,$89,$00,$89,$f0,$08,$00,$08,$e0,$18,$00,$10,$e0,$10
db $00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$20,$00,$20
db $00,$90,$00,$88,$00,$86,$00,$87,$00,$84,$00,$84,$00,$87,$00,$84
db $00,$08,$00,$10,$00,$70,$00,$f0,$00,$10,$00,$10,$00,$f0,$00,$20
db $00,$10,$e0,$10,$00,$10,$e0,$10,$00,$10,$e0,$10,$00,$10,$e0,$10
db $00,$14,$e0,$14,$00,$14,$e0,$12,$00,$0a,$f0,$0a,$00,$0a,$f0,$09
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1f,$00,$00,$00,$00
db $00,$80,$00,$80,$00,$80,$00,$80,$00,$80,$00,$f8,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$f8,$00,$80,$00,$80,$00,$80,$00,$80,$00,$80
db $00,$20,$00,$30,$00,$08,$00,$04,$00,$03,$00,$00,$00,$00,$00,$00
db $00,$10,$0f,$10,$00,$30,$1f,$20,$00,$20,$1f,$20,$00,$20,$1f,$20
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$00,$00,$00
db $00,$20,$1f,$20,$00,$20,$1f,$20,$00,$20,$00,$ff,$00,$00,$00,$7f
db $00,$20,$c0,$20,$00,$20,$e0,$10,$00,$10,$00,$ff,$00,$00,$00,$fe
db $00,$02,$01,$02,$00,$02,$01,$02,$00,$02,$01,$e2,$00,$22,$01,$12
db $00,$92,$01,$52,$00,$4a,$01,$4a,$00,$8a,$01,$ca,$00,$36,$01,$e6
db $00,$46,$01,$82,$00,$03,$00,$03,$00,$81,$00,$40,$00,$20,$00,$40
db $00,$09,$f0,$08,$00,$08,$78,$84,$00,$84,$78,$84,$00,$84,$78,$84
db $00,$84,$78,$84,$00,$04,$08,$f4,$00,$1c,$00,$06,$00,$03,$00,$01
db $00,$84,$00,$84,$00,$82,$00,$82,$00,$82,$00,$82,$00,$82,$00,$82
db $00,$82,$00,$c2,$00,$62,$c0,$3e,$00,$20,$c0,$20,$00,$20,$c0,$20
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80
db $00,$20,$00,$20,$00,$21,$00,$21,$00,$21,$00,$21,$00,$21,$00,$21
db $00,$04,$00,$04,$00,$04,$00,$02,$00,$02,$00,$02,$00,$02,$00,$02
db $00,$02,$00,$02,$00,$3e,$00,$62,$00,$42,$00,$c2,$00,$81,$00,$80
db $00,$84,$00,$a3,$00,$a9,$00,$7d,$00,$0d,$00,$05,$00,$05,$00,$07
db $00,$40,$00,$c0,$00,$03,$00,$0e,$00,$08,$00,$10,$00,$10,$00,$30
db $00,$02,$00,$00,$00,$01,$00,$07,$00,$18,$00,$30,$00,$60,$00,$c0
db $00,$10,$e0,$10,$00,$10,$e0,$10,$00,$18,$e0,$18,$00,$18,$e0,$18
db $00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$40,$00,$40,$00,$40
db $00,$20,$00,$20,$00,$20,$00,$10,$00,$10,$00,$10,$00,$08,$00,$08
db $00,$00,$00,$00,$00,$70,$00,$8c,$00,$02,$00,$03,$00,$8c,$00,$70
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$0e,$00,$31,$00,$c0,$00,$40,$00,$31,$00,$0e
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$00,$00,$00
db $00,$1f,$00,$20,$00,$1f,$00,$00,$00,$00,$00,$02,$00,$02,$00,$7f
db $00,$ff,$00,$00,$00,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff
db $00,$80,$00,$00,$00,$80,$00,$7f,$00,$00,$00,$00,$00,$00,$00,$ff
db $00,$01,$00,$00,$00,$00,$00,$fe,$00,$01,$00,$07,$00,$18,$00,$ff
db $00,$42,$00,$7f,$00,$02,$00,$02,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$ff,$00,$00,$00,$1f,$00,$64,$00,$bb,$00,$8e,$00,$7b,$00,$1f
db $00,$84,$00,$02,$00,$01,$00,$c1,$00,$a3,$00,$25,$00,$c8,$00,$04
db $00,$03,$00,$ff,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$80,$00,$ff,$00,$81,$00,$ff,$00,$47,$00,$6c,$00,$38,$00,$50
db $00,$00,$00,$ff,$00,$18,$00,$ff,$00,$c0,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$ff,$00,$00,$00,$ff,$00,$c0,$00,$40,$00,$61,$00,$27
db $00,$2c,$00,$38,$00,$00,$00,$00,$00,$00,$00,$e0,$00,$a0,$00,$20
db $00,$00,$00,$ff,$00,$06,$00,$fc,$00,$04,$00,$04,$00,$f8,$00,$0c
db $00,$06,$00,$02,$00,$03,$00,$01,$00,$01,$00,$01,$00,$00,$00,$00
db $00,$d0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$01,$00,$03,$00,$02,$00,$00,$00,$00,$00,$00
db $00,$c0,$00,$80,$00,$80,$00,$00,$00,$00,$00,$1f,$00,$3e,$00,$26
db $00,$20,$00,$20,$00,$f8,$00,$0c,$00,$02,$00,$03,$00,$00,$00,$00
db $00,$64,$00,$7d,$00,$7d,$00,$66,$00,$4c,$00,$6b,$00,$3e,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$c0,$00,$60
db $00,$a0,$00,$60,$00,$40,$00,$c0,$00,$c0,$00,$00,$00,$00,$00,$00
db $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$06,$00,$0f,$00,$08
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$f8
db $00,$08,$00,$0e,$00,$1c,$00,$10,$00,$11,$00,$1b,$00,$0f,$00,$01
db $00,$88,$00,$08,$00,$08,$00,$78,$00,$10,$00,$10,$00,$30,$00,$e0
db $00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$20,$00,$e0,$00,$60,$00,$20,$00,$60,$00,$c0,$00,$00,$00,$01
db $00,$00,$00,$00,$00,$00,$00,$3e,$00,$6f,$00,$cf,$00,$dc,$00,$d4
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$e0,$00,$60,$00,$70
db $00,$56,$00,$63,$00,$61,$00,$38,$00,$97,$00,$90,$00,$d1,$00,$7f
db $00,$70,$00,$f0,$00,$f0,$00,$20,$00,$e0,$00,$c0,$00,$80,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$0e,$00,$1a,$00,$11,$00,$19
db $00,$0c,$00,$30,$00,$62,$00,$46,$00,$6c,$00,$3f,$00,$00,$00,$00
db $00,$20,$1f,$20,$00,$20,$1f,$20,$00,$20,$1f,$20,$00,$20,$1f,$20
BackgroundCopy: ; tiles start at 0
db $00, $04, $00, $00, $00, $00, $00, $00
db $05, $06, $30, $2f, $31, $32, $00, $00
db $07, $08, $09, $0c, $0d, $00, $00, $00
db $00, $11, $0a, $0e, $0f, $25, $00, $00
db $00, $19, $0b, $12, $13, $03, $00, $00
db $00, $00, $1a, $23, $26, $10, $2d, $00
db $00, $00, $56, $24, $02, $14, $2e, $00
db $1b, $1b, $1c, $1d, $1e, $2c, $27, $00
db $33, $34, $35, $36, $1f, $15, $28, $25
db $37, $38, $39, $3a, $20, $21, $29, $2a
db $3d, $3e, $40, $3b, $3c, $22, $2b, $45
db $54, $3f, $41, $00, $42, $43, $44, $47
db $55, $4f, $50, $51, $4a, $4b, $46, $48
db $00, $49, $52, $53, $4c, $4d, $00, $00
db $00, $00, $00, $01, $18, $4e, $00, $00
db $00, $00, $00, $16, $17, $00, $00, $00