every animation except the four cards i want to fully rework. the world was so hard

This commit is contained in:
Shoofle 2025-03-27 09:45:01 -04:00
parent 5c0e852c95
commit 7b354ea651
21 changed files with 2003 additions and 405 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
.DS_Store
__pycache__

View File

@ -27,7 +27,7 @@ TheHighPriestess:
call IncrementTimer
ld a, [CVS+1] ; checking the high byte of the timer
cp a, $07 ; $10 = 1 second, $02 = 1/8 of a second
cp a, $03 ; $10 = 1 second, $02 = 1/8 of a second
jp c, .doneWithTimer1 ; if the timer is less than $0600, skip
; if the timer is greater or equal to $0600, reset it

View File

@ -124,7 +124,7 @@ TheChariot:
ld c, (1+7)*8 -2
ld de, MY_OAM + 4*(40-2)
ld a, $21
call BuildMetaSpriteHFlip
call BuildMetaSpritePackedHflip
ret

View File

@ -14,10 +14,139 @@ Strength:
dw .fUpdate
dw .fDraw
.fInit: ret
.fUpdate: ret
.fInit:
ld hl, CVS
ld a, 0
ld [hl+], a ; CVS timer
ld [hl+], a ;
ld [hl+], a ; CVS + 2 frame index for clouds goin back and forth
ld [hl+], a ; CVS + 3 frame index for clouds goin back and forth
ld [hl+], a ; CVS + 4 frame index for clouds goin back and forth
ld [hl+], a ; CVS + 5 frame index for clouds goin back and forth
ld a, %00_00_00_00
ld [rOBP0], a
ret
.fUpdate:
ld hl, CVS
call IncrementTimer
ld a, [CVS+1] ; checking the high byte of the timer
cp a, $28 ; $10 = 1 second, $02 = 1/8 of a second
ret c
; if the timer is greater or equal to $0600, reset it
ld a, 0
ld [CVS], a
ld [CVS+1], a
ld hl, .cloud1Anim
ld a, [CVS+2]
inc a
call ArrayClampLooping
ld [CVS+2], a
ld b, 0
ld c, a
inc hl
add hl, bc
add hl, bc
ld b, [hl]
inc hl
ld c, [hl]
ld hl, .cloud1
ld de, MY_OAM
ld a, $13
call BuildMetaSprite
ld hl, .cloud2Anim
ld a, [CVS+3]
inc a
call ArrayClampLooping
ld [CVS+3], a
ld b, 0
ld c, a
inc hl
add hl, bc
add hl, bc
ld b, [hl]
inc hl
ld a, [hl]
add a, 5
ld c, a
ld hl, .cloud2
ld de, MY_OAM+3*4
ld a, $13
call BuildMetaSprite
ld hl, .cloud3Anim
ld a, [CVS+4]
inc a
call ArrayClampLooping
ld [CVS+4], a
ld b, 0
ld c, a
inc hl
add hl, bc
add hl, bc
ld b, [hl]
inc hl
ld c, [hl]
ld hl, .cloud3
ld de, MY_OAM+6*4
ld a, $13
call BuildMetaSprite
ld hl, .cloud4Anim
ld a, [CVS+5]
inc a
call ArrayClampLooping
ld [CVS+5], a
ld b, 0
ld c, a
inc hl
add hl, bc
add hl, bc
ld b, [hl]
inc hl
ld c, [hl]
ld hl, .cloud4
ld de, MY_OAM+9*4
ld a, $13
call BuildMetaSprite
ret
.fDraw: ret
.cloud1
db $09, $05, $06
.cloud1Anim
db 8, 24, 16, 24, 17, 24, 18, 24, 19, 24, 19, 24, 18, 24, 17, 24, 16,
.cloud2
db $01, $03, $02
.cloud2Anim
db 6, 28, 48, 28, 49, 28, 50, 28, 50, 28, 49, 28, 48,
.cloud3
db $04, $07, $00
.cloud3Anim
db 8, 48, 64, 48, 64, 48, 65, 48, 65, 48, 66, 48, 66, 48, 65, 48, 65,
.cloud4
db $08, $00, $00
.cloud4Anim
db 6, 69, 59, 69, 59, 69, 59, 69, 60, 69, 60, 69, 60,
.SpriteTiles:
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,$7f,$7f
db $00,$00,$00,$00,$00,$00,$00,$00,$f0,$f0,$f8,$f8,$fe,$fe,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$03,$3f,$3f,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$03,$03,$3f,$3f,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$e0,$e0,$f8,$f8,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$70,$70,$f8,$f8
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3c,$3c
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$30,$ff,$ff
.SpriteTilesEnd:
; original export script by gabriel reis, modified by shoofle
@ -84,11 +213,8 @@ Strength:
db $7f,$c0,$7f,$c0,$ff,$c0,$bf,$c0,$bf,$c0,$bf,$c0,$bf,$c0,$9f,$e0
db $ff,$e0,$3f,$30,$1f,$18,$0f,$0c,$0f,$0e,$07,$07,$01,$03,$00,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$c0
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$f8,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$3f,$00,$1f,$00,$07,$00,$01,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$fc,$93,$ff,$41,$ff
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$3f,$c0,$ff,$e0
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$f8,$00
db $00,$00,$00,$0c,$00,$0b,$0d,$0f,$07,$07,$00,$00,$00,$00,$00,$00
db $23,$63,$67,$e5,$5f,$f9,$bf,$fb,$ff,$fb,$0f,$11,$07,$08,$07,$08
db $03,$0c,$07,$18,$07,$38,$07,$38,$07,$78,$3b,$c4,$f9,$06,$fc,$03
@ -117,20 +243,20 @@ Strength:
.KeyArtTilesEnd:
.BackgroundCopy: ; tiles start at 26
db $5b, $57, $58, $47, $47, $47, $47, $47
db $47, $47, $48, $59, $5a, $5b, $57, $58
db $47, $47, $47, $47, $47, $47, $47, $47
db $47, $47, $48, $57, $58, $47, $47, $47
db $47, $47, $49, $43, $4a, $47, $47, $47
db $47, $4b, $4c, $40, $4d, $47, $47, $47
db $4e, $4f, $41, $44, $50, $47, $47, $47
db $51, $1b, $42, $38, $45, $52, $47, $47
db $53, $1c, $1d, $37, $39, $54, $47, $47
db $5c, $5d, $3c, $3b, $3a, $55, $56, $47
db $64, $3d, $3e, $36, $62, $63, $61, $6a
db $65, $2d, $2e, $2f, $2c, $3f, $46, $60
db $67, $30, $31, $5e, $32, $1e, $1a, $5f
db $68, $33, $34, $6c, $35, $1f, $20, $1a
db $69, $1a, $1a, $6b, $21, $22, $23, $24
db $66, $25, $26, $27, $28, $29, $2a, $2b
db $6a, $6a, $6d, $6e, $71, $73, $6a, $6a
db $6a, $6a, $6f, $70, $72, $74, $6a, $6a
db $59, $5a, $3c, $3b, $3a, $55, $56, $47
db $61, $3d, $3e, $36, $5f, $60, $5e, $67
db $62, $2d, $2e, $2f, $2c, $3f, $46, $5d
db $64, $30, $31, $5b, $32, $1e, $1a, $5c
db $65, $33, $34, $69, $35, $1f, $20, $1a
db $66, $1a, $1a, $68, $21, $22, $23, $24
db $63, $25, $26, $27, $28, $29, $2a, $2b
db $67, $67, $6a, $6b, $6e, $70, $67, $67
db $67, $67, $6c, $6d, $6f, $71, $67, $67
.BackgroundCopyEnd:

Binary file not shown.

View File

@ -49,33 +49,89 @@ TheStar:
call BuildMetaSprite
ld hl, MY_OAM + 20*4
ld [hl], (2+1)*8 + 3
ld [hl], (2+1)*8 + 34
inc hl
ld [hl], (1+1)*8 + 7
ld [hl], (1+1)*8 + 20
inc hl
ld [hl], 1
ld hl, MY_OAM + 20*4 + 1*4
ld [hl], (2+1)*8 + 7
ld [hl], (2+1)*8 + 48
inc hl
ld [hl], (1+1+6)*8 + 6
ld [hl], (1+1)*8 + 14
inc hl
ld [hl], 1
ld hl, MY_OAM + 20*4 + 2*4
ld [hl], (2+1+5)*8 + 2
ld [hl], (2+1)*8 + 60
inc hl
ld [hl], (1+1+2)*8 + 5
ld [hl], (1+1)*8 + 22
inc hl
ld [hl], 2
ld [hl], 1
ld hl, MY_OAM + 20*4 + 3*4
ld [hl], (2+1+6)*8 + 2
ld [hl], (2+1)*8 + 78
inc hl
ld [hl], (1+1+5)*8 + 4
ld [hl], (1+1)*8 + 45
inc hl
ld [hl], 1
ld hl, MY_OAM + 20*4 + 4*4
ld [hl], (2+1)*8 + 86
inc hl
ld [hl], (1+1)*8 + 34
inc hl
ld [hl], 1
ld hl, MY_OAM + 20*4 + 5*4
ld [hl], (2+1)*8 + 77
inc hl
ld [hl], (1+1)*8 + 18
inc hl
ld [hl], 1
ld hl, MY_OAM + 20*4 + 6*4
ld [hl], (2+1)*8 + 45
inc hl
ld [hl], (1+1)*8 + 37
inc hl
ld [hl], 2
ld hl, MY_OAM + 20*4 + 7*4
ld [hl], (2+1)*8 + 20
inc hl
ld [hl], (1+1)*8 + 51
inc hl
ld [hl], 2
ld hl, MY_OAM + 20*4 + 8*4
ld [hl], (2+1)*8 + 3
inc hl
ld [hl], (1+1)*8 + 4
inc hl
ld [hl], 2
ld hl, MY_OAM + 20*4 + 9*4
ld [hl], (2+1)*8 + 34
inc hl
ld [hl], (1+1)*8 + 7
inc hl
ld [hl], 2
ld hl, MY_OAM + 20*4 + 10*4
ld [hl], (2+1)*8 + 66
inc hl
ld [hl], (1+1)*8 + 50
inc hl
ld [hl], 2
ld hl, MY_OAM + 20*4 + 11*4
ld [hl], (2+1)*8 + 70
inc hl
ld [hl], (1+1)*8 + 5
inc hl
ld [hl], 2
ret
.fUpdate:
ld hl, CVS

View File

@ -14,10 +14,167 @@ TheMoon:
dw .fUpdate
dw .fDraw
.fInit: ret
.fUpdate: ret
.fInit:
ld hl, CVS
ld a, 0
ld [hl+], a ; CVS timer for animating all the clouds
ld [hl+], a
ld a, 50
ld [hl+], a ; CVS+2 x of cloud 1
ld a, 70
ld [hl+], a ; CVS+3 x of cloud 2
ld a, 56
ld [hl+], a ; CVS+4 x of cloud 3
ld a, 36
ld [hl+], a ; CVS+5 x of cloud 4
ld a, 108
ld [hl+], a ; CVS+6 x of cloud 5
call SetUpEdgeMasks
ret
.fUpdate:
ld hl, CVS
call IncrementTimer
ld a, [CVS+1] ; checking the high byte of the timer
cp a, $02 ; $10 = 1 second, $02 = 1/8 of a second
ret c
ld a, 0
ld [CVS], a
ld [CVS+1], a
ld a, [CVS+2]
sub a, 1
cp a, 100
jp c, :+
ld a, 100
: ld [CVS+2], a
ld a, [CVS+3]
sub a, 1
cp a, 80
jp c, :+
ld a, 80
: ld [CVS+3], a
ld a, [CVS+4]
sub a, 2
cp a, 105
jp c, :+
ld a, 105
: ld [CVS+4], a
ld a, [CVS+5]
sub a, 1
cp a, 120
jp c, :+
ld a, 120
: ld [CVS+5], a
ld a, [CVS+6]
sub a, 2
cp a, 110
jp c, :+
ld a, 110
: ld [CVS+6], a
call .drawClouds
ret
.drawClouds:
ld hl, .cloud1
ld de, MY_OAM + 10*4
ld b, 76
ld a, [CVS+2]
sub a, 0
ld c, a
ld a, $11
call BuildMetaSprite
ld hl, .cloud2
ld de, MY_OAM + 11*4
ld b, 68
ld a, [CVS+3]
sub a, 0
ld c, a
ld a, $11
call BuildMetaSprite
ld hl, .cloud3
ld de, MY_OAM + 12*4
ld b, 60
ld a, [CVS+4]
sub a, 16
ld c, a
ld a, $15
call BuildMetaSprite
ld hl, .cloud4
ld de, MY_OAM + 18*4
ld b, 40
ld a, [CVS+5]
sub a, 40
ld c, a
ld a, $27
call BuildMetaSprite
ld hl, .cloud5
ld de, MY_OAM + 31*4
ld b, 32
ld a, [CVS+6]
sub a, 32
ld c, a
ld a, $15
call BuildMetaSprite
call CleanUpOutsideSprites
ret
.fDraw: ret
.cloud1
db $17
.cloud2
db $16
.cloud3 ; $15
db $11, $12, $13, $14, $15
.cloud4 ; $27
db $02, $03, $04, $05, $00, $00, $00
db $06, $07, $07, $08, $09, $0a, $0b
.cloud5 ; $15
db $0c, $0d, $0e, $0f, $10
.SpriteTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1f,$00,$7f
db $00,$00,$00,$00,$00,$00,$00,$0e,$00,$3f,$00,$7f,$00,$ff,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$83,$00,$e7,$00,$ef,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$e0,$00,$f0,$00,$f8,$00,$fc
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$00,$7f,$00,$3f,$00,$0f
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$fc,$00,$fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$00,$00,$00,$00,$8c,$00,$fe,$00,$fe,$00,$fc,$00,$ff,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$d8,$00,$ff,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$fc
db $00,$3c,$00,$7e,$00,$ff,$00,$ff,$00,$7f,$00,$7f,$00,$7f,$00,$3f
db $00,$0f,$00,$1f,$00,$bf,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$80,$00,$c0,$00,$e0,$00,$f0,$00,$fc,$00,$ff,$00,$ff,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$ff,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$f8
db $00,$01,$00,$03,$00,$7f,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$00,$1f
db $00,$e0,$00,$f1,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$00,$00,$c0,$00,$e0,$00,$f0,$00,$f8,$00,$fe,$00,$ff,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1c,$00,$3f,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$00,$f0,$00,$7f
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$00,$e0,$00,$f8,$00,$7f
.SpriteTilesEnd:
; original export script by gabriel reis, modified by shoofle

Binary file not shown.

View File

@ -14,133 +14,321 @@ TheSun:
dw .fUpdate
dw .fDraw
.fInit: ret
.fUpdate: ret
.fInit:
ld hl, CVS
ld a, 0
ld [hl+], a ; CVS timer for shimmer
ld [hl+], a
ld [hl+], a ; CVS+2 frame of shimmer
ld a, %00_10_01_00
ld [rOBP0], a
ret
.fUpdate:
ld hl, CVS
call IncrementTimer
ld a, [CVS+1] ; checking the high byte of the timer
cp a, $05 ; $10 = 1 second, $02 = 1/8 of a second
ret c
ld a, 0
ld [CVS], a
ld [CVS+1], a
ld b, 5
ld a, [CVS+2]
inc a
call ArrayClampLoopingB
ld [CVS+2], a
cp a, 0
jp nz, :+
ld hl, .frame1
: cp a, 1
jp nz, :+
ld hl, .frame2
: cp a, 2
jp nz, :+
ld hl, .frame3
: cp a, 3
jp nz, :+
ld hl, .frame4
: cp a, 4
jp nz, :+
ld hl, .frame5
:
ld de, MY_OAM
ld b, (2+1+6)*8
ld c, (1+1+0)*8
ld a, $48
call BuildMetaSprite
ret
.fDraw: ret
.frame1 ; $48
db $66, $66, $02, $21, $53, $12, $22, $66
db $03, $00, $3b, $3c, $3d, $3e, $18, $14
db $00, $1a, $1b, $1e, $1f, $20, $1c, $1d
db $17, $09, $00, $00, $00, $00, $10, $11
.frame2
db $34, $2e, $2f, $30, $31, $32, $33, $34
db $69, $00, $2a, $2b, $2c, $2d, $18, $6a
db $00, $23, $24, $25, $26, $27, $28, $29
db $17, $09, $00, $00, $00, $00, $10, $11
.frame3
db $6c, $3f, $40, $41, $42, $43, $44, $6c
db $03, $00, $3b, $3c, $3d, $3e, $18, $14
db $00, $35, $36, $37, $38, $39, $3a, $0f
db $6d, $6e, $00, $00, $00, $00, $6f, $70
.frame4
db $45, $46, $47, $48, $49, $4a, $4b, $4c
db $03, $00, $2a, $2b, $2c, $2d, $18, $14
db $00, $55, $56, $57, $58, $59, $5a, $67
db $17, $09, $00, $00, $00, $00, $10, $11
.frame5
db $52, $64, $4e, $4f, $65, $50, $51, $4d
db $00, $00, $60, $61, $62, $63, $00, $00
db $00, $68, $5b, $5c, $5d, $5e, $5f, $6b
db $00, $00, $00, $00, $00, $00, $00, $54
.SpriteTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe,$e0,$e0
db $f8,$f8,$f8,$f8,$fc,$fc,$fc,$fc,$f0,$f0,$c0,$c0,$00,$00,$00,$00
db $fe,$fe,$f0,$f0,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$01,$01,$03,$03,$0f,$0f,$1f,$1f,$3f,$3f
db $00,$00,$00,$00,$00,$00,$80,$80,$e0,$e0,$f8,$f8,$f0,$f0,$f1,$f1
db $00,$00,$00,$00,$03,$03,$07,$07,$0f,$0f,$1f,$1f,$3f,$3f,$ff,$ff
db $7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$e0,$e0
db $e1,$e1,$e1,$e1,$e3,$e3,$c3,$c3,$c3,$c3,$83,$83,$07,$87,$00,$00
db $fc,$fc,$84,$84,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $e0,$e0,$e0,$e0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f8,$f8,$00,$00
db $00,$00,$00,$00,$00,$00,$07,$07,$03,$03,$01,$01,$01,$01,$e0,$e0
db $00,$00,$00,$00,$00,$00,$f0,$f0,$fc,$fc,$fe,$fe,$ff,$ff,$ff,$ff
db $3f,$3f,$1f,$1f,$1f,$1f,$0f,$0f,$07,$07,$03,$03,$01,$01,$00,$00
db $e0,$e0,$f0,$f0,$fc,$fc,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$c0,$e0,$e0,$f0,$f0
db $7f,$7f,$3e,$3e,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $98,$98,$1e,$1e,$0f,$0f,$0f,$0f,$0f,$0f,$07,$07,$01,$01,$00,$00
db $3f,$3f,$3f,$3f,$7f,$7f,$7f,$7f,$0f,$0f,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$03,$03,$00,$00
db $1f,$1f,$03,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$7f,$7f,$7f,$7f,$3f,$3f,$1f,$1f,$0f,$0f,$03,$03
db $ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$f8,$f8,$f0,$f0,$c0,$c0
db $01,$01,$03,$03,$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,$c0,$c0
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$03,$03,$07,$07,$0f,$0f,$1f,$1f,$00,$00,$00,$00
db $00,$00,$00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00
db $00,$00,$00,$00,$fc,$fc,$fe,$fe,$ff,$ff,$ff,$ff,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$c0,$00,$00,$00,$00
db $00,$00,$00,$00,$e3,$e3,$c3,$c3,$c3,$c3,$83,$83,$00,$00,$00,$00
db $00,$00,$00,$00,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$00,$00,$00,$00
db $00,$00,$00,$00,$1f,$1f,$0f,$0f,$07,$07,$03,$03,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$7f,$7f,$7f,$7f,$3f,$3f,$1f,$1f,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$00,$00,$00,$00
db $00,$00,$00,$00,$03,$03,$07,$07,$00,$00,$00,$00,$00,$00,$ff,$ff
db $7f,$7f,$81,$81,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$00,$00,$e0,$e0
db $e1,$e1,$e1,$e1,$e3,$e3,$c3,$c3,$00,$00,$00,$00,$00,$00,$00,$00
db $e0,$e0,$e0,$e0,$f0,$f0,$f0,$f0,$00,$00,$00,$00,$00,$00,$00,$00
db $30,$30,$1f,$1f,$1f,$1f,$0f,$0f,$00,$00,$00,$00,$00,$00,$00,$00
db $60,$60,$f0,$f0,$fc,$fc,$fe,$fe,$00,$00,$00,$00,$00,$00,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f0,$f0
db $00,$00,$00,$00,$00,$00,$01,$01,$03,$03,$0f,$0f,$00,$00,$3f,$3f
db $00,$00,$00,$00,$00,$00,$80,$80,$e0,$e0,$f8,$f8,$00,$00,$f1,$f1
db $00,$00,$00,$00,$00,$00,$07,$07,$03,$03,$01,$01,$00,$00,$e0,$e0
db $00,$00,$00,$00,$00,$00,$f0,$f0,$fc,$fc,$fe,$fe,$00,$00,$ff,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$fe,$fe,$e0,$e0
db $f8,$f8,$f8,$f8,$fc,$fc,$fc,$fc,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$7f,$7f,$7f,$7f,$00,$00,$00,$00,$0f,$0f,$03,$03
db $ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$00,$00,$00,$00,$f0,$f0,$c0,$c0
db $3f,$3f,$3f,$3f,$7f,$7f,$7f,$7f,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$03,$03,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$03,$03,$00,$00,$00,$00,$1f,$1f,$3f,$3f,$ff,$ff
db $7f,$7f,$00,$00,$ff,$ff,$00,$00,$00,$00,$ff,$ff,$03,$03,$e0,$e0
db $e1,$e1,$00,$00,$e3,$e3,$00,$00,$00,$00,$83,$83,$00,$80,$00,$00
db $e0,$e0,$00,$00,$f0,$f0,$00,$00,$00,$00,$f0,$f0,$38,$38,$00,$00
db $3f,$3f,$00,$00,$1f,$1f,$00,$00,$00,$00,$03,$03,$01,$01,$00,$00
db $e0,$e0,$00,$00,$fc,$fc,$00,$00,$00,$00,$ff,$ff,$f0,$f0,$ff,$ff
db $00,$00,$00,$00,$00,$00,$01,$01,$00,$00,$0f,$0f,$1f,$1f,$3f,$3f
db $00,$00,$00,$00,$00,$00,$80,$80,$00,$00,$f8,$f8,$f0,$f0,$f1,$f1
db $00,$00,$00,$00,$00,$00,$07,$07,$00,$00,$01,$01,$01,$01,$e0,$e0
db $00,$00,$00,$00,$00,$00,$f0,$f0,$00,$00,$fe,$fe,$ff,$ff,$ff,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$ff,$ff,$ff,$ff,$fe,$fe,$00,$00
db $f8,$f8,$f8,$f8,$fc,$fc,$00,$00,$f0,$f0,$c0,$c0,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$7f,$7f,$00,$00,$3f,$3f,$1f,$1f,$0f,$0f,$00,$00
db $ff,$ff,$ff,$ff,$fe,$fe,$00,$00,$fc,$fc,$f8,$f8,$f0,$f0,$00,$00
db $3f,$3f,$3f,$3f,$7f,$7f,$00,$00,$0f,$0f,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$ff,$ff,$7f,$7f,$03,$03,$00,$00
db $ff,$ff,$ff,$ff,$c0,$c0,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$ff,$ff
db $ff,$ff,$ff,$ff,$7c,$7c,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$e0,$e0
db $f8,$f8,$f8,$f8,$1c,$1c,$fc,$fc,$f0,$f0,$c0,$c0,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$70,$70,$7f,$7f,$3f,$3f,$1f,$1f,$00,$00,$03,$03
db $ff,$ff,$ff,$ff,$6e,$6e,$fe,$fe,$fc,$fc,$f8,$f8,$00,$00,$c0,$c0
db $3f,$3f,$3f,$3f,$70,$70,$7f,$7f,$0f,$0f,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$07,$07,$ff,$ff,$ff,$ff,$7f,$7f,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$c3,$c3,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$ff,$ff
db $ff,$ff,$f7,$f7,$ff,$ff,$ff,$ff,$ff,$ff,$7c,$7c,$ff,$ff,$ff,$ff
db $f8,$f8,$78,$78,$fc,$fc,$fc,$fc,$f0,$f0,$00,$00,$00,$00,$00,$00
db $ff,$ff,$fb,$fb,$7f,$7f,$7f,$7f,$3f,$3f,$00,$00,$0f,$0f,$03,$03
db $3f,$3f,$3e,$3e,$7f,$7f,$7f,$7f,$0f,$0f,$00,$00,$00,$00,$00,$00
db $ff,$ff,$3f,$3f,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$03,$03,$00,$00
db $ff,$ff,$f1,$f1,$ff,$ff,$ff,$ff,$ff,$ff,$01,$01,$ff,$ff,$7f,$7f
db $ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$f8,$f8,$00,$00,$00,$00
db $00,$00,$00,$00,$0f,$0f,$0f,$0f,$0f,$0f,$07,$07,$01,$01,$00,$00
db $00,$00,$00,$00,$00,$00,$03,$03,$0f,$0f,$1f,$1f,$3f,$3f,$00,$00
db $7f,$7f,$00,$00,$00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00
db $e1,$e1,$00,$00,$00,$00,$c3,$c3,$c3,$c3,$83,$83,$07,$87,$00,$00
db $e0,$e0,$00,$00,$00,$00,$f0,$f0,$f0,$f0,$f0,$f0,$f8,$f8,$00,$00
db $3f,$3f,$00,$00,$00,$00,$0f,$0f,$07,$07,$03,$03,$01,$01,$00,$00
db $e0,$e0,$00,$00,$00,$00,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00
db $00,$00,$ff,$ff,$ff,$ff,$00,$00,$ff,$ff,$00,$00,$ff,$ff,$e0,$e0
db $00,$00,$e1,$e1,$e3,$e3,$00,$00,$c3,$c3,$00,$00,$07,$87,$00,$00
db $00,$00,$e0,$e0,$f0,$f0,$00,$00,$f0,$f0,$00,$00,$f8,$f8,$00,$00
db $00,$00,$1f,$1f,$1f,$1f,$00,$00,$07,$07,$00,$00,$01,$01,$00,$00
db $00,$00,$f0,$f0,$fc,$fc,$00,$00,$ff,$ff,$00,$00,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$00,$00,$01,$01,$03,$03,$0f,$0f,$1f,$1f,$00,$00
db $00,$00,$00,$00,$00,$00,$80,$80,$e0,$e0,$f8,$f8,$f0,$f0,$00,$00
db $00,$00,$00,$00,$00,$00,$07,$07,$03,$03,$01,$01,$01,$01,$00,$00
db $00,$00,$00,$00,$00,$00,$f0,$f0,$fc,$fc,$fe,$fe,$ff,$ff,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$e0,$e0
db $ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$00,$00,$f0,$f0,$c0,$c0
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$c0,$e0,$e0,$00,$00
db $00,$00,$00,$00,$03,$03,$00,$00,$0f,$0f,$00,$00,$3f,$3f,$ff,$ff
db $fe,$fe,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $10,$10,$03,$03,$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,$e0,$e0,$f0,$f0
db $ff,$ff,$ff,$ff,$ff,$ff,$00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00
db $01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $fc,$fc,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $7f,$7f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $98,$98,$00,$00,$0f,$0f,$0f,$0f,$0f,$0f,$07,$07,$01,$01,$00,$00
.SpriteTilesEnd:
; 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 $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $00,$ff,$00,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$3f,$ff,$7e,$ff,$78,$ff
db $03,$f3,$7f,$ff,$ff,$ff,$fe,$ff,$e0,$ff,$00,$ff,$00,$ff,$00,$ff
db $f0,$ff,$c1,$fe,$c6,$f9,$0c,$f3,$18,$e7,$30,$cf,$00,$ff,$00,$ff
db $ff,$ff,$ff,$fe,$f7,$f8,$03,$fc,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $f8,$ff,$ff,$ff,$ff,$3f,$7f,$81,$3f,$c0,$cf,$30,$7f,$80,$03,$fc
db $00,$80,$81,$ff,$ff,$ff,$ff,$ff,$ff,$1f,$fc,$03,$c0,$3f,$80,$7f
db $60,$7f,$e0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f8,$ff,$3e,$ff,$0f,$ff
db $03,$ff,$01,$ff,$00,$ff,$00,$ff,$02,$ff,$0f,$ff,$03,$ff,$01,$ff
db $00,$ff,$aa,$55,$00,$00,$aa,$55,$00,$ff,$22,$dd,$00,$00,$1f,$1f
db $00,$ff,$aa,$55,$00,$e0,$aa,$55,$00,$ff,$22,$dd,$00,$fe,$c8,$f7
db $ff,$ff,$ff,$00,$ff,$00,$f8,$07,$0e,$f1,$03,$fc,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $54,$a8,$f0,$00,$40,$80,$c0,$00,$00,$80,$80,$00,$00,$00,$00,$00
db $14,$2a,$0f,$00,$01,$02,$03,$00,$01,$00,$01,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$80,$80,$00,$40,$80,$a0,$40,$50,$a0,$a8,$54
db $00,$00,$00,$00,$01,$00,$00,$01,$01,$02,$02,$05,$05,$0a,$2a,$15
db $40,$80,$80,$40,$00,$80,$82,$01,$50,$a0,$aa,$55,$55,$aa,$aa,$55
db $00,$00,$00,$00,$00,$00,$e0,$00,$00,$00,$aa,$55,$54,$a8,$aa,$55
db $00,$e0,$a8,$54,$44,$bb,$aa,$55,$11,$ee,$aa,$55,$44,$bb,$aa,$55
db $00,$00,$00,$00,$05,$8a,$ff,$00,$55,$aa,$bb,$44,$55,$aa,$c0,$00
db $05,$0a,$ff,$00,$55,$aa,$ff,$00,$55,$aa,$bb,$44,$40,$80,$00,$00
db $55,$aa,$ff,$00,$55,$aa,$ff,$00,$55,$aa,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$00,$fe,$00,$fc,$00,$f8,$00,$f8,$00,$f0,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$fc,$00,$f8,$00,$f0,$00
db $e0,$00,$c0,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$fc,$00,$f8,$00
db $f0,$00,$e0,$00,$c0,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $0f,$00,$0f,$00,$0f,$00,$0f,$00,$07,$08,$1f,$00,$dc,$22,$fc,$00
db $f0,$00,$f0,$00,$e0,$00,$c0,$00,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$00,$1d,$02,$ff,$00
db $55,$aa,$ff,$00,$55,$aa,$ff,$00,$55,$aa,$bb,$44,$00,$00,$00,$00
db $54,$aa,$ff,$00,$55,$aa,$ff,$00,$55,$aa,$bb,$44,$15,$2a,$00,$00
db $01,$00,$83,$00,$45,$a2,$ff,$00,$55,$aa,$bb,$44,$55,$aa,$0e,$01
db $00,$00,$00,$00,$00,$00,$0e,$01,$00,$00,$aa,$55,$01,$00,$0a,$15
db $05,$02,$03,$04,$01,$02,$c2,$01,$05,$0a,$aa,$55,$55,$aa,$aa,$55
db $01,$00,$2a,$55,$55,$aa,$aa,$55,$11,$ee,$aa,$55,$44,$bb,$aa,$55
db $7f,$00,$3f,$00,$1f,$00,$1f,$00,$0f,$00,$0f,$00,$07,$00,$07,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $c0,$00,$c0,$00,$c0,$00,$c0,$00,$c0,$00,$e0,$00,$e0,$00,$e0,$00
db $07,$00,$07,$00,$1f,$00,$1f,$00,$3f,$00,$3f,$00,$3f,$00,$3f,$00
db $03,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$00,$3f,$00,$3f,$00
db $e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00
db $7f,$00,$7f,$00,$7f,$00,$7f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$00,$ff,$00,$ff,$00,$fe,$00,$fc,$00,$f8,$00,$f8,$00,$f0,$00
db $1f,$00,$0f,$00,$0f,$00,$07,$00,$07,$00,$03,$00,$03,$00,$01,$00
db $01,$00,$01,$00,$01,$00,$01,$00,$03,$00,$03,$00,$03,$00,$07,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$fc,$00,$f8,$00,$f0,$00
db $e0,$00,$c0,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$00,$7f,$00,$7f,$00,$3f,$00,$1f,$00,$1f,$00,$0f,$00,$07,$00
db $e0,$00,$e0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00
db $07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$0f,$00,$0f,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$fc,$00,$f8,$00
db $f0,$00,$e0,$00,$c0,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$c0,$00,$f0,$00,$74,$88,$ff,$00,$dd,$22,$ff,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$00,$f8,$00
db $07,$00,$03,$00,$03,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $f0,$00,$f0,$00,$f0,$00,$f0,$00,$70,$80,$f0,$00,$5d,$22,$ff,$00
db $c0,$00,$c0,$00,$c0,$00,$c0,$00,$c0,$00,$e0,$00,$e0,$00,$e0,$00
db $07,$00,$07,$00,$1f,$00,$1f,$00,$3f,$00,$3f,$00,$3f,$00,$3f,$00
db $e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00,$e0,$00
db $7f,$00,$7f,$00,$7f,$00,$7f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $01,$00,$01,$00,$01,$00,$01,$00,$03,$00,$03,$00,$03,$00,$07,$00
db $e0,$00,$e0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00,$f0,$00
db $07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$07,$00,$0f,$00,$0f,$00
db $00,$ff,$aa,$55,$00,$0f,$aa,$55,$00,$ff,$22,$dd,$00,$03,$ff,$ff
db $0f,$00,$0f,$00,$0f,$00,$0f,$00,$07,$08,$1f,$00,$dc,$22,$fc,$00
db $f0,$00,$f0,$00,$e0,$00,$c0,$00,$00,$80,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$00,$1d,$02,$ff,$00
db $55,$aa,$ff,$00,$55,$aa,$ff,$00,$55,$aa,$bb,$44,$00,$00,$00,$00
db $54,$aa,$ff,$00,$55,$aa,$ff,$00,$55,$aa,$bb,$44,$15,$2a,$00,$00
db $01,$00,$83,$00,$45,$a2,$ff,$00,$55,$aa,$bb,$44,$55,$aa,$0e,$01
db $54,$a8,$f0,$00,$40,$80,$c0,$00,$00,$80,$80,$00,$00,$00,$00,$00
db $14,$2a,$0f,$00,$01,$02,$03,$00,$01,$00,$01,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$05,$8a,$ff,$00,$55,$aa,$bb,$44,$55,$aa,$c0,$00
db $05,$0a,$ff,$00,$55,$aa,$ff,$00,$55,$aa,$bb,$44,$40,$80,$00,$00
db $55,$aa,$ff,$00,$55,$aa,$ff,$00,$55,$aa,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$00,$ef,$10,$ff,$00,$aa,$55,$ff,$00,$ff,$00
db $ff,$00,$ff,$00,$ff,$00,$fe,$01,$ff,$00,$aa,$55,$ff,$00,$ea,$15
db $55,$aa,$bb,$44,$55,$aa,$aa,$55,$55,$aa,$aa,$55,$55,$aa,$aa,$55
db $00,$00,$00,$00,$00,$80,$80,$00,$40,$80,$a0,$40,$50,$a0,$a8,$54
db $00,$00,$00,$00,$01,$00,$00,$01,$01,$02,$02,$05,$05,$0a,$2a,$15
db $40,$80,$80,$40,$00,$80,$82,$01,$50,$a0,$aa,$55,$55,$aa,$aa,$55
db $00,$00,$00,$00,$00,$00,$e0,$00,$00,$00,$aa,$55,$54,$a8,$aa,$55
db $00,$00,$00,$00,$00,$00,$ec,$10,$00,$00,$aa,$55,$00,$00,$00,$00
db $11,$ee,$aa,$55,$55,$aa,$aa,$55,$11,$ee,$aa,$55,$44,$bb,$aa,$55
db $11,$ee,$aa,$55,$44,$bb,$aa,$55,$11,$ee,$aa,$55,$44,$bb,$aa,$55
db $11,$ee,$aa,$55,$44,$bb,$aa,$54,$10,$ec,$aa,$55,$40,$a0,$80,$40
db $11,$ee,$aa,$55,$44,$bb,$2a,$55,$11,$0e,$aa,$55,$04,$0b,$0a,$05
db $00,$ff,$aa,$55,$00,$fc,$aa,$55,$00,$ff,$22,$dd,$00,$c0,$80,$40
db $00,$ff,$aa,$55,$00,$3c,$aa,$55,$00,$ff,$22,$dd,$00,$70,$ff,$ff
db $11,$ee,$aa,$55,$44,$bb,$a8,$54,$10,$ec,$aa,$55,$44,$ba,$2a,$15
db $11,$ee,$aa,$55,$44,$bb,$0a,$05,$00,$07,$aa,$55,$00,$01,$00,$00
db $00,$ff,$aa,$55,$00,$07,$aa,$55,$00,$ff,$22,$dd,$00,$00,$00,$00
db $00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$1f,$08,$17
db $00,$00,$00,$00,$00,$00,$6e,$10,$00,$00,$aa,$55,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$ec,$10,$00,$00,$aa,$55,$00,$00,$00,$00
db $11,$ee,$aa,$55,$44,$bb,$aa,$55,$11,$ee,$aa,$55,$44,$bb,$aa,$55
db $00,$e0,$a8,$54,$44,$bb,$aa,$55,$11,$ee,$aa,$55,$44,$bb,$aa,$55
db $00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$88,$77
db $00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$80,$7f
db $00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$1f,$ff
db $00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$ff,$ff
db $00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$c8,$f7
db $00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$00,$ff
db $00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$08,$f7
db $00,$ff,$00,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$3f,$ff,$7e,$ff,$78,$ff
db $03,$ff,$7f,$ff,$ff,$ff,$fe,$ff,$e0,$ff,$00,$ff,$00,$ff,$00,$ff
db $ff,$ff,$ff,$fe,$f7,$f8,$03,$fc,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $ff,$ff,$ff,$00,$ff,$00,$f9,$06,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $ff,$ff,$ff,$00,$ff,$00,$f8,$07,$0e,$f1,$03,$fc,$00,$ff,$00,$ff
db $f8,$ff,$ff,$ff,$ff,$3f,$7f,$81,$3f,$c0,$cf,$30,$7f,$80,$03,$fc
db $00,$ff,$81,$ff,$ff,$ff,$ff,$ff,$ff,$1f,$fc,$03,$c0,$3f,$80,$7f
db $60,$ff,$e0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f8,$ff,$3e,$ff,$0f,$ff
db $f0,$ff,$c1,$fe,$c6,$f9,$0c,$f3,$18,$e7,$30,$cf,$00,$ff,$00,$ff
db $00,$ff,$01,$ff,$01,$ff,$03,$ff,$06,$ff,$0e,$ff,$1f,$ff,$1f,$ff
db $00,$ff,$c0,$ff,$e0,$ff,$70,$ff,$7c,$ff,$de,$ff,$ce,$ff,$fe,$ff
db $3f,$ff,$3f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $c1,$ff,$c1,$ff,$c3,$ff,$c3,$ff,$c7,$ff,$87,$ff,$87,$ff,$0f,$ff
db $0f,$ff,$0f,$ff,$0f,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$1f,$ff,$1f,$ff
db $fe,$ff,$fe,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff
db $f8,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$f0,$ff,$f0,$ff,$f0,$ff
db $1f,$ff,$1f,$ff,$1f,$ff,$1f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff
db $3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff
db $f0,$ff,$f0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff
db $e0,$ff,$e0,$fc,$e0,$fe,$e0,$fe,$e0,$ff,$e0,$ff,$e0,$ff,$c0,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$ff,$00,$00,$00,$fa,$00,$72,$00,$76,$00,$26,$00,$ae,$00,$8e
db $00,$de,$00,$8e,$00,$ae,$00,$26,$00,$76,$00,$72,$00,$00,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$03,$ff,$03,$ff,$07,$ff,$07,$ff
db $02,$fd,$03,$fc,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff
db $07,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$01,$ff,$01,$ff
db $80,$ff,$c0,$ff,$c0,$ff,$e0,$ff,$e0,$ff,$f0,$ff,$f0,$ff,$f0,$ff
db $01,$ff,$01,$3f,$01,$7f,$00,$7f,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $f8,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff
db $fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff
db $ff,$ff,$ff,$00,$ff,$00,$f9,$06,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$60,$9f,$fc,$03,$87,$78,$80,$7f,$80,$7f,$c0,$3f
db $80,$7f,$c0,$3f,$20,$df,$10,$ef,$f0,$0f,$00,$ff,$00,$ff,$00,$ff
db $03,$ff,$01,$ff,$00,$ff,$00,$ff,$02,$ff,$0f,$ff,$03,$ff,$01,$ff
db $00,$ff,$60,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$c1,$ff
db $3f,$ff,$3f,$ff,$7f,$ff,$7f,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $fe,$ff,$fe,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff
db $60,$9f,$38,$c7,$0e,$f1,$01,$fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$80,$7f,$e0,$1f,$18,$e7,$0c,$f3,$06,$f9
db $c1,$ff,$c1,$ff,$c3,$ff,$c3,$ff,$c7,$ff,$87,$ff,$87,$ff,$0f,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $f8,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$f0,$ff,$f0,$ff,$f0,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$03,$ff,$03,$ff,$07,$ff,$07,$ff
db $02,$fd,$03,$fc,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff
db $00,$ff,$00,$ff,$80,$7f,$c0,$3f,$40,$bf,$60,$9f,$30,$cf,$10,$ef
db $0f,$ff,$0f,$ff,$0f,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$1f,$ff,$1f,$ff
db $f0,$ff,$f0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff
db $07,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$01,$ff,$01,$ff
db $80,$ff,$c0,$ff,$c0,$ff,$e0,$ff,$e0,$ff,$f0,$ff,$f0,$ff,$f0,$ff
db $10,$ef,$10,$ef,$18,$e7,$08,$f7,$0f,$f1,$07,$ff,$03,$ff,$01,$ff
db $00,$ff,$60,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$c1,$ff
db $c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0,$fe,$c0,$fc,$c0,$ff
db $00,$7b,$00,$71,$00,$75,$00,$64,$00,$6e,$00,$4e,$00,$00,$00,$ff
db $1f,$ff,$1f,$ff,$1f,$ff,$1f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff
db $e0,$ff,$e0,$fc,$e0,$fe,$e0,$fe,$e0,$ff,$e0,$ff,$e0,$ff,$c0,$ff
db $00,$ff,$00,$00,$00,$fa,$00,$72,$00,$76,$00,$26,$00,$ae,$00,$8e
db $00,$ff,$00,$00,$00,$5f,$00,$4e,$00,$6e,$00,$64,$00,$75,$00,$71
db $01,$ff,$01,$3f,$01,$7f,$00,$7f,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $f8,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff
db $3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$3f,$ff
db $c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0,$fe,$c0,$fc,$c0,$ff
db $00,$de,$00,$8e,$00,$ae,$00,$26,$00,$76,$00,$72,$00,$00,$00,$ff
db $00,$7b,$00,$71,$00,$75,$00,$64,$00,$6e,$00,$4e,$00,$00,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$00,$3f,$00,$ff
db $fc,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff
.KeyArtTilesEnd:
.BackgroundCopy: ; tiles start at 26
db $41, $1b, $1b, $4a, $1a, $4b, $1b, $1b
db $42, $43, $1b, $4c, $39, $4d, $1b, $32
db $1a, $44, $1b, $4c, $4e, $1b, $33, $34
db $1a, $1a, $45, $4f, $50, $35, $36, $1a
db $46, $47, $48, $49, $37, $38, $39, $3a
db $3b, $3c, $3d, $28, $29, $2f, $30, $31
db $5a, $3e, $3f, $2a, $2b, $2c, $2d, $5b
db $40, $5c, $52, $53, $56, $57, $5c, $2e
db $5d, $54, $24, $55, $51, $25, $58, $59
db $1c, $1d, $1f, $73, $26, $20, $21, $22
db $1e, $5e, $5f, $27, $27, $74, $75, $23
db $7a, $60, $63, $27, $27, $76, $77, $27
db $61, $69, $64, $27, $27, $6c, $6d, $78
db $62, $69, $67, $27, $27, $6e, $6f, $79
db $65, $69, $68, $6a, $7d, $70, $71, $27
db $66, $69, $7b, $6b, $7c, $7e, $72, $27
db $1b, $1c, $1c, $1d, $1a, $1e, $1c, $1c
db $1f, $20, $1c, $21, $22, $23, $1c, $24
db $1a, $25, $1c, $21, $26, $1c, $27, $28
db $1a, $1a, $29, $2a, $2b, $2c, $2d, $1a
db $2e, $2f, $30, $31, $32, $33, $22, $34
db $35, $36, $37, $38, $39, $3a, $3b, $3c
db $3f, $3f, $3f, $3f, $3f, $3f, $3f, $3f
db $45, $46, $46, $46, $46, $46, $46, $46
db $4c, $4d, $4e, $4f, $4f, $50, $51, $52
db $53, $54, $55, $56, $57, $58, $59, $5a
db $5b, $5c, $5d, $5e, $5e, $5f, $60, $61
db $62, $63, $64, $5e, $5e, $65, $66, $5e
db $67, $68, $69, $5e, $5e, $6a, $6b, $6c
db $6d, $68, $6e, $5e, $5e, $6f, $70, $71
db $72, $68, $73, $74, $75, $76, $77, $5e
db $78, $68, $79, $7a, $7b, $7c, $7d, $5e
.BackgroundCopyEnd:

Binary file not shown.

View File

@ -14,10 +14,350 @@ Judgement:
dw .fUpdate
dw .fDraw
.fInit: ret
.fUpdate: ret
.fInit:
ld hl, CVS
ld a, 0
ld [hl+], a ; CVS timer
ld [hl+], a ;
ld [hl+], a ; CVS + 2 frame index for various sparks
ld a, %00_00_00_00
ld [rOBP0], a
ret
.fUpdate:
ld hl, CVS
call IncrementTimer
ld a, [CVS+1] ; checking the high byte of the timer
cp a, $01 ; $10 = 1 second, $02 = 1/8 of a second
ret c
ld a, 0 ; reset timer
ld [CVS], a
ld [CVS+1], a
ld hl, .spark1Anim
ld a, [CVS+2]
inc a
call ArrayClampLooping
ld [CVS+2], a
ld a, [CVS+2]
ld hl, .spark1Anim
ld d, 1
ld e, 0
call .drawSpark
ld a, [CVS+2]
ld hl, .spark2Anim
ld d, 5
ld e, 1
call .drawSpark
ld a, [CVS+2]
ld hl, .spark3Anim
ld d, 5
ld e, 2
call .drawSpark
ld hl, .spark4Anim
ld a, [CVS+2]
ld d, 5
ld e, 3
call .drawSpark
ld hl, .spark5Anim
ld a, [CVS+2]
ld d, 5
ld e, 4
call .drawSpark
ld hl, .spark6Anim
ld a, [CVS+2]
ld d, 1
ld e, 5
call .drawSpark
ld hl, .spark7Anim
ld a, [CVS+2]
ld d, 1
ld e, 6
call .drawSpark
ld hl, .spark8Anim
ld a, [CVS+2]
ld d, 1
ld e, 7
call .drawSpark
ld hl, .spark9Anim
ld a, [CVS+2]
ld d, 5
ld e, 8
call .drawSpark
ld hl, .spark10Anim
ld a, [CVS+2]
ld d, 1
ld e, 9
call .drawSpark
ld hl, .spark11Anim
ld a, [CVS+2]
ld d, 1
ld e, 10
call .drawSpark
ld hl, .spark12Anim
ld a, [CVS+2]
ld d, 5
ld e, 11
call .drawSpark
ld hl, .spark13Anim
ld a, [CVS+2]
ld d, 5
ld e, 12
call .drawSpark
ld hl, .spark14Anim
ld a, [CVS+2]
ld d, 5
ld e, 13
call .drawSpark
ld a, [CVS+2]
and a, $03
sla a
sla a
sla a
ld b, 0
ld c, a
ld hl, .smash
add hl, bc
ld de, MY_OAM + 14*4
ld b, (2+1+7)*8
ld c, (1+1+2)*8
ld a, $24
call BuildMetaSprite
ld hl, ZEROES
ld de, MY_OAM + 20*4
ld bc, 20*4
call CopyRange
ld a, [CVS+2]
and a, %0000_0110
sra a
cp a, 0
jp nz, :+
ld hl, .tail1
: cp a, 1
jp nz, :+
ld hl, .tail2
: cp a, 2
jp nz, :+
ld hl, .tail3
: cp a, 3
jp nz, :+
ld hl, .tail4
:
ld de, MY_OAM + 20*4
ld b, (2+1+0)*8
ld c, (1+1+4)*8
ld a, $74
call BuildMetaSpritePacked
ret
.fDraw: ret
.drawSpark:
; hl should point to a curve animation
; d should be the offset into the tile IDs for the sprite animation?
; e should be the sprite ID number
; a is the index into the curve
ld b, 0
ld c, a
inc hl
add hl, bc
add hl, bc
ld b, [hl]
inc hl
ld c, [hl]
and a, $03
add a, d ; get a tile ID from the animation index
ld hl, MY_OAM
ld d, 0
add hl, de
add hl, de
add hl, de
add hl, de ; step forward by 4*e steps to get the e'th OAM slot
ld [hl], b
inc hl
ld [hl], c
inc hl
ld [hl], a
ret
.spark1Anim
db 16, 0, 0, 87, 50, 83, 53, 79, 56, 72, 57, 66, 57, 61, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
.spark2Anim
db 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 37, 78, 32, 74, 27, 70, 23, 66, 19, 62, 15, 0, 0, 0, 0,
.spark3Anim
db 16, 93, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 50, 91, 55, 91, 61, 92, 67, 93, 71,
.spark4Anim
db 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 35, 83, 27, 80, 21, 78, 16, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0,
.spark5Anim
db 16, 110, 70, 114, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 51, 94, 55, 100, 60, 105, 65,
.spark6Anim
db 16, 0, 0, 0, 0, 0, 0, 0, 0, 81, 42, 75, 39, 67, 41, 58, 44, 52, 47, 44, 51, 35, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
.spark7Anim
db 16, 90, 45, 90, 43, 88, 40, 85, 37, 78, 32, 67, 27, 57, 23, 48, 20, 39, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
.spark8Anim
db 16, 78, 72, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 90, 47, 91, 51, 91, 54, 87, 61,
.spark9Anim
db 16, 0, 0, 0, 0, 90, 46, 94, 52, 97, 60, 100, 66, 103, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
.spark10Anim
db 16, 89, 44, 87, 40, 84, 34, 82, 26, 81, 17, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
.spark11Anim
db 16, 68, 19, 63, 16, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 88, 41, 86, 36, 81, 32, 76, 28, 71, 24,
.spark12Anim
db 16, 70, 36, 62, 33, 54, 29, 45, 25, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 86, 44, 79, 39,
.spark13Anim
db 16, 0, 1, 0, 1, 0, 1, 0, 1, 89, 43, 91, 49, 93, 55, 95, 62, 96, 72, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1,
.spark14Anim
db 16, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 89, 44, 95, 49, 99, 54, 104, 61, 0, 1, 0, 1, 0, 1,
.smash ; $24, 8 tiles
db $15, $16, $00, $00
db $17, $18, $19, $1a
db $09, $0a, $00, $00
db $0b, $0c, $0d, $0e
db $0f, $10, $00, $00
db $11, $12, $13, $14
db $1b, $1c, $00, $00
db $1d, $1e, $1f, $20
.tail1 ; $74
db $00, $00, $00, $00
db $00, $00, $00, $00
db $00, $00, $00, $00
db $00, $31, $33, $00
db $28, $32, $35, $00
db $30, $36, $00, $00
db $34, $37, $00, $00
.tail2
db $00, $00, $00, $00
db $00, $00, $00, $00
db $00, $00, $38, $00
db $00, $39, $3a, $00
db $3b, $3c, $3e, $00
db $3d, $3f, $40, $00
db $34, $41, $00, $00
.tail3
db $00, $00, $00, $00
db $00, $00, $26, $27
db $00, $28, $29, $2a
db $00, $25, $2b, $00
db $23, $24, $2c, $00
db $21, $2d, $2e, $00
db $22, $2f, $00, $00
.tail4
db $00, $00, $00, $00
db $00, $00, $00, $00
db $00, $00, $42, $00
db $00, $43, $3a, $00
db $44, $24, $46, $00
db $45, $2d, $47, $00
db $22, $48, $00, $00
.SpriteTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $08,$00,$18,$00,$38,$00,$3c,$00,$1c,$00,$0c,$00,$0c,$00,$04,$00
db $00,$00,$10,$00,$1c,$00,$0e,$00,$0c,$00,$1c,$00,$38,$00,$00,$00
db $00,$00,$06,$00,$0e,$00,$1c,$00,$38,$00,$30,$00,$30,$00,$10,$00
db $00,$00,$18,$00,$30,$00,$30,$00,$30,$00,$3c,$00,$1c,$00,$08,$00
db $00,$00,$00,$00,$00,$20,$00,$30,$00,$30,$00,$3f,$00,$3e,$00,$1c
db $00,$00,$00,$40,$00,$70,$00,$38,$00,$38,$00,$3c,$00,$06,$00,$00
db $00,$00,$00,$60,$00,$3e,$00,$1e,$00,$06,$00,$0c,$00,$08,$00,$00
db $00,$40,$00,$40,$00,$60,$00,$38,$00,$38,$00,$1c,$00,$06,$00,$02
db $00,$00,$00,$00,$00,$00,$00,$00,$0d,$0d,$07,$07,$27,$27,$1f,$1f
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$e0,$e0,$70,$70
db $0f,$0f,$03,$03,$07,$07,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $fc,$fc,$fc,$fc,$ff,$ff,$7f,$7f,$3f,$3f,$03,$03,$03,$03,$00,$00
db $00,$00,$00,$00,$f0,$f0,$ff,$ff,$ff,$ff,$fe,$fe,$ff,$ff,$0e,$0e
db $00,$00,$60,$60,$80,$80,$00,$00,$e0,$e0,$c0,$c0,$c0,$c0,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$05,$05,$07,$07,$07,$07
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$c0,$c0,$c0
db $03,$03,$07,$07,$33,$33,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $f0,$f0,$f8,$f8,$fc,$fc,$ff,$ff,$3f,$3f,$07,$07,$03,$03,$00,$00
db $00,$00,$00,$00,$00,$00,$e7,$e7,$fe,$fe,$ff,$ff,$ff,$ff,$01,$01
db $00,$00,$00,$00,$c0,$c0,$00,$00,$00,$00,$00,$00,$80,$80,$e0,$e0
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0c,$0c,$02,$02,$07,$07
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$e0,$e0
db $1a,$1a,$0b,$0b,$03,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $f8,$f8,$fc,$fc,$ff,$ff,$7f,$7f,$3f,$3f,$0f,$0f,$00,$00,$00,$00
db $00,$00,$00,$00,$80,$80,$e0,$e0,$fc,$fc,$ff,$ff,$fc,$fc,$7f,$7f
db $00,$00,$00,$00,$00,$00,$08,$08,$00,$00,$e0,$e0,$00,$00,$50,$50
db $00,$00,$00,$00,$01,$01,$02,$02,$23,$23,$39,$39,$1d,$1d,$0f,$0f
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$c0,$e0,$e0
db $7f,$7f,$1b,$1b,$07,$07,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00
db $fc,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$01,$01,$00,$00,$00,$00
db $00,$00,$00,$00,$1f,$1f,$ff,$ff,$ff,$ff,$ff,$ff,$7e,$7e,$07,$07
db $00,$00,$00,$00,$c0,$c0,$00,$00,$80,$80,$80,$80,$20,$20,$00,$00
db $0f,$0f,$0f,$0f,$1f,$1f,$3f,$3f,$7f,$7f,$7f,$7f,$7f,$7f,$ff,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$07,$03,$03
db $00,$00,$00,$00,$00,$00,$01,$01,$03,$03,$03,$03,$07,$07,$07,$07
db $7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $03,$03,$07,$07,$0f,$0f,$0f,$0f,$1f,$1f,$3f,$3f,$3f,$3f,$7f,$7f
db $00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$03,$03,$07,$07,$07,$07
db $00,$00,$40,$40,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$03,$03
db $0f,$0f,$1f,$1f,$3f,$3f,$7f,$7f,$7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff
db $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$fe,$fe,$fe,$fe,$fc,$fc,$fc,$fc
db $fc,$fc,$fc,$fc,$f8,$f8,$f8,$f8,$f0,$f0,$f0,$f0,$f0,$f0,$e0,$e0
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe
db $e0,$e0,$e0,$e0,$c0,$c0,$c0,$c0,$80,$80,$80,$80,$00,$00,$00,$00
db $fe,$fe,$fc,$fc,$fc,$fc,$f8,$f8,$f0,$f0,$f0,$f0,$e0,$e0,$c0,$c0
db $03,$03,$07,$07,$07,$07,$0f,$0f,$0f,$0f,$3f,$3f,$3f,$3f,$7f,$7f
db $00,$00,$00,$00,$00,$00,$01,$01,$03,$03,$07,$07,$07,$07,$0f,$0f
db $1f,$1f,$1f,$1f,$3f,$3f,$7f,$7f,$7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff
db $20,$20,$60,$60,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$c0,$c0,$c0,$c0
db $7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$07,$03,$03
db $c0,$c0,$c0,$c0,$c0,$c0,$80,$80,$80,$80,$80,$80,$80,$80,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$fc,$fc,$f8,$f8
db $f8,$f8,$f0,$f0,$f0,$f0,$e0,$e0,$e0,$e0,$c0,$c0,$c0,$c0,$00,$00
db $00,$00,$02,$02,$0e,$0e,$1e,$1e,$3e,$3e,$3e,$3e,$7e,$7e,$fc,$fc
db $00,$00,$01,$01,$03,$03,$07,$07,$0f,$0f,$0f,$0f,$1f,$1f,$3f,$3f
db $fc,$fc,$fc,$fc,$fc,$fc,$fc,$fc,$f8,$f8,$f8,$f8,$f8,$f8,$f8,$f8
db $00,$00,$00,$00,$00,$00,$01,$01,$03,$03,$03,$03,$03,$03,$07,$07
db $3f,$3f,$7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $07,$07,$0f,$0f,$1f,$1f,$3f,$3f,$3f,$3f,$7f,$7f,$7f,$7f,$7f,$7f
db $f0,$f0,$f0,$f0,$f0,$f0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$e0,$c0,$c0
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$f8,$f8
db $c0,$c0,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $f8,$f8,$f0,$f0,$f0,$f0,$f0,$f0,$e0,$e0,$e0,$e0,$e0,$e0,$c0,$c0
db $03,$03,$06,$06,$0e,$0e,$0e,$0e,$1e,$1e,$7e,$7e,$fc,$fc,$fc,$fc
db $01,$01,$03,$03,$07,$07,$07,$07,$0f,$0f,$1f,$1f,$3f,$3f,$7f,$7f
db $00,$00,$00,$00,$01,$01,$01,$01,$03,$03,$03,$03,$07,$07,$0f,$0f
db $0f,$0f,$1f,$1f,$3f,$3f,$3f,$3f,$3f,$3f,$7f,$7f,$7f,$7f,$ff,$ff
db $f8,$f8,$f8,$f8,$f8,$f8,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$f0,$e0,$e0
db $c0,$c0,$c0,$c0,$80,$80,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00
db $fc,$fc,$fc,$fc,$f8,$f8,$f0,$f0,$f0,$f0,$e0,$e0,$c0,$c0,$80,$80
.SpriteTilesEnd:
; original export script by gabriel reis, modified by shoofle
; sparks flying off
@ -34,8 +374,8 @@ Judgement:
db $00,$ff,$00,$ff,$00,$ff,$80,$7f,$7f,$80,$30,$cf,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$fe,$01,$63,$9c,$01,$fe,$00,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fc,$fc,$f8,$f8,$e0,$e0
db $fa,$fb,$fe,$fe,$ff,$ff,$c0,$c0,$00,$00,$00,$00,$07,$00,$3f,$00
db $00,$f3,$00,$1f,$80,$83,$80,$80,$00,$00,$30,$00,$ff,$00,$ff,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$c0,$c0,$00,$00,$00,$00,$07,$00,$3f,$00
db $80,$f3,$e0,$ff,$c0,$c3,$00,$00,$00,$00,$30,$00,$ff,$00,$ff,$00
db $00,$1c,$00,$f1,$00,$c3,$01,$fe,$00,$03,$00,$00,$b8,$00,$ff,$00
db $7f,$70,$7f,$80,$ff,$00,$ff,$07,$3c,$fc,$00,$00,$1c,$00,$f7,$00
db $ff,$00,$ff,$00,$ff,$00,$ff,$ff,$1f,$1f,$07,$07,$03,$03,$80,$40
@ -62,7 +402,7 @@ Judgement:
db $00,$3f,$00,$ff,$01,$ff,$03,$ff,$03,$ff,$07,$ff,$0f,$ff,$0f,$ff
db $80,$60,$80,$78,$80,$7c,$18,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$0f,$ff
db $93,$9f,$82,$9e,$c0,$dc,$c1,$58,$c1,$58,$81,$58,$80,$4c,$80,$66
db $1c,$1c,$0d,$0d,$e7,$07,$13,$03,$13,$43,$12,$03,$e1,$07,$00,$0e
db $1c,$1c,$0c,$0c,$e7,$07,$13,$03,$13,$43,$12,$03,$e1,$07,$00,$0e
db $80,$80,$80,$80,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$01,$01
db $01,$01,$03,$03,$03,$03,$03,$03,$07,$07,$07,$07,$07,$07,$07,$07
@ -73,21 +413,16 @@ Judgement:
db $70,$70,$e0,$e0,$c0,$c0,$80,$80,$80,$80,$03,$03,$07,$07,$1f,$1e
db $01,$01,$03,$03,$0f,$0f,$3f,$3f,$ff,$fc,$ff,$e0,$ff,$00,$ff,$00
db $ff,$f8,$ff,$f8,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$fe,$ff,$fe,$ff,$fe
db $ff,$e1,$ff,$f0,$ff,$f0,$ff,$f8,$ff,$fc,$ff,$fe,$e7,$e6,$f3,$f3
db $ff,$e1,$ff,$f0,$ff,$f0,$ff,$f8,$ff,$fc,$ff,$fe,$ff,$fe,$ff,$ff
db $ff,$f8,$ff,$f0,$ff,$c0,$ff,$80,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$01,$ff,$03,$ff,$07,$ff,$07,$fe,$0e,$fc,$1c,$f8,$18,$f8,$38
db $ff,$f0,$bf,$b0,$3f,$30,$3f,$30,$3f,$30,$3f,$30,$3f,$30,$3f,$20
db $f0,$70,$e0,$60,$c0,$c0,$80,$80,$80,$80,$00,$00,$00,$00,$00,$00
db $7f,$60,$7f,$60,$7f,$40,$7f,$40,$7f,$40,$ff,$c0,$ff,$c0,$ff,$c0
db $fc,$1c,$f8,$38,$f0,$30,$f0,$30,$e0,$60,$c0,$c0,$c0,$c0,$80,$80
db $00,$00,$00,$00,$01,$01,$01,$01,$01,$01,$01,$01,$03,$03,$03,$03
db $ff,$c3,$ff,$c3,$ff,$c7,$fe,$c6,$fc,$cc,$fc,$cc,$f8,$d8,$f8,$f8
db $80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $03,$02,$03,$02,$07,$06,$07,$06,$0f,$0e,$0f,$0e,$0f,$0c,$1f,$1c
db $f0,$f0,$f0,$f0,$e0,$e0,$c0,$c0,$80,$80,$80,$80,$80,$80,$00,$00
db $1f,$18,$1f,$18,$3f,$30,$3f,$20,$7f,$60,$7f,$61,$ff,$e7,$fe,$ce
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f8,$f8,$fc,$fc
db $01,$01,$03,$03,$03,$03,$07,$07,$0f,$0f,$0e,$0e,$1c,$1c,$38,$38
db $ff,$01,$ff,$03,$ff,$07,$ff,$07,$ff,$0f,$ff,$1f,$ff,$1f,$ff,$3f
db $ff,$f0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$e0
db $ff,$7f,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$1f,$ff,$3f,$ff,$3f,$ff,$3f,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$c3,$ff,$c3,$ff,$c7,$ff,$c7,$ff,$cf,$ff,$cf,$ff,$df,$ff,$ff
db $ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fc,$ff,$fc
db $ff,$f8,$ff,$f8,$ff,$f0,$ff,$e0,$ff,$e0,$ff,$e1,$ff,$e7,$fe,$ce
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe,$fc,$fc,$f8,$f8
db $f8,$f8,$f8,$f8,$f0,$f0,$f0,$f0,$f0,$f0,$e0,$e0,$e0,$e0,$e0,$e0
db $e0,$e0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$c0,$80,$80
db $ff,$e0,$ff,$e0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c0
@ -102,7 +437,7 @@ Judgement:
db $fe,$1e,$fe,$1e,$fe,$1e,$fe,$1e,$fe,$1e,$fe,$1e,$fe,$1e,$fe,$1e
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$10,$ff,$30,$ff,$70,$ff,$f0
db $ff,$f0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0
db $ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff,$03,$ff,$03,$fe,$06,$fc,$0c
db $ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff,$03,$ff,$03,$ff,$07,$ff,$0f
db $ff,$e0,$ff,$e0,$ff,$e0,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$c1,$ff,$c1
db $7f,$70,$ff,$f8,$ff,$f8,$ff,$f8,$ff,$f0,$ff,$f0,$ff,$f0,$ff,$f0
db $3f,$38,$3f,$38,$3f,$38,$3f,$38,$3f,$38,$7f,$70,$7f,$70,$7f,$70
@ -111,39 +446,39 @@ Judgement:
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$c0,$ff,$70,$ff,$bc,$ff
db $01,$ff,$01,$ff,$01,$ff,$01,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff
db $07,$ff,$1f,$ff,$3f,$ff,$3f,$ff,$ff,$ff,$fd,$ff,$fb,$ff,$de,$ff
db $00,$ff,$00,$00,$00,$7d,$00,$39,$00,$bb,$00,$93,$00,$d7,$00,$c7
db $00,$ff,$00,$00,$00,$be,$00,$9c,$00,$dd,$00,$c9,$00,$eb,$00,$e3
db $00,$ff,$00,$7f,$07,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$10,$ff,$00,$ff
db $00,$ff,$ff,$00,$82,$7d,$c6,$39,$44,$bb,$6c,$93,$28,$d7,$38,$c7
db $00,$ff,$ff,$00,$41,$be,$63,$9c,$22,$dd,$36,$c9,$14,$eb,$1c,$e3
db $00,$ff,$80,$7f,$07,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$10,$ff,$00,$ff
db $00,$ff,$00,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$80,$ff,$00,$ff,$00,$ff
db $00,$ef,$00,$c7,$00,$d7,$00,$93,$00,$bb,$00,$39,$00,$00,$00,$ff
db $00,$f7,$00,$e3,$00,$eb,$00,$c9,$00,$dd,$00,$9c,$00,$00,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$00,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01
db $10,$ef,$38,$c7,$28,$d7,$6c,$93,$44,$bb,$c6,$39,$ff,$00,$00,$ff
db $08,$f7,$1c,$e3,$14,$eb,$36,$c9,$22,$dd,$63,$9c,$ff,$00,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$80,$7f,$00,$ff
db $ff,$c0,$ff,$c0,$ff,$80,$ff,$80,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $fe,$1e,$fe,$1e,$fe,$1e,$fe,$1e,$fe,$1e,$fe,$1e,$fe,$0e,$fe,$0e
db $ff,$fe,$ff,$fc,$ff,$fc,$ff,$fc,$ff,$f8,$ff,$f8,$ff,$f0,$ff,$f0
db $ff,$1f,$ff,$1f,$ff,$1f,$ff,$1f,$ff,$1f,$ff,$1f,$ff,$1f,$ff,$3f
db $07,$ff,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$ff,$03,$ff,$03,$ff
db $00,$ff,$00,$fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$ff
db $00,$ff,$01,$fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$01,$fe,$00,$ff
.KeyArtTilesEnd:
.BackgroundCopy: ; tiles start at 26
db $3b, $7a, $7b, $59, $6a, $2c, $2c, $65
db $3b, $5b, $5c, $5a, $69, $2c, $4c, $4d
db $3b, $5d, $5e, $40, $66, $67, $4e, $4f
db $3b, $5f, $63, $1a, $68, $50, $51, $78
db $3b, $60, $64, $41, $52, $53, $54, $2c
db $3b, $49, $79, $42, $55, $77, $56, $44
db $3b, $3b, $61, $43, $57, $58, $45, $46
db $3b, $74, $75, $54, $65, $2c, $2c, $60
db $3b, $56, $57, $55, $64, $2c, $4c, $4d
db $3b, $58, $59, $40, $61, $62, $4e, $56
db $3b, $5a, $5e, $1a, $63, $4f, $3b, $72
db $3b, $5b, $5f, $41, $50, $3b, $51, $2c
db $3b, $49, $73, $42, $3b, $3b, $52, $44
db $3b, $3b, $5c, $43, $3b, $53, $45, $46
db $3b, $3b, $4a, $3e, $3f, $47, $48, $4b
db $3b, $22, $23, $24, $25, $26, $27, $62
db $3b, $22, $23, $24, $25, $26, $27, $5d
db $28, $29, $2c, $35, $36, $2d, $3d, $2a
db $2b, $30, $31, $32, $2f, $2f, $7c, $2e
db $2b, $30, $31, $32, $2f, $2f, $76, $2e
db $3c, $39, $3a, $33, $2f, $2f, $2f, $2f
db $1b, $1c, $1e, $1f, $34, $20, $21, $37
db $1d, $38, $2f, $2f, $2f, $2f, $2f, $2f
db $6b, $2f, $7e, $70, $71, $72, $73, $6e
db $6c, $6d, $7f, $74, $75, $76, $7d, $6f
db $66, $2f, $78, $6b, $6c, $6d, $6e, $69
db $67, $68, $79, $6f, $70, $71, $77, $6a
.BackgroundCopyEnd:

Binary file not shown.

View File

@ -1,3 +1,11 @@
; my magnum opus... my greatest work. gaze upon it and despair
; this is such a tangled (not really) mess of lookup tables and case switches
; which is impressive given thta i don't hvae those in assembly.
; there's a matrix of speesd that determines how fast sprites move across
; the globe to make it look like it's really rotating andd not just madde of
; sliding segments. i'm very proud of this not because it's good code but
; because it works.
TheWorld:
db 10, "THE WORLD "
db 10, " "
@ -14,85 +22,596 @@ TheWorld:
dw .fUpdate
dw .fDraw
.fInit: ret
.fUpdate: ret
.fInit:
ld hl, CVS
ld a, 0
ld [hl+], a ; CVS timer
ld [hl+], a ;
ld [hl+], a ; CVS + 2 frame index for rotating earth
ld [hl+], a ; CVS + 3 flag for whether we've run out of OAM
ld hl, MY_OAM
.priorityLoop
inc hl
inc hl
inc hl
set OAMB_PRI, [hl]
inc hl
ld a, l
cp a, $9F
jp c, .priorityLoop
ret
.fUpdate:
ld hl, CVS
call IncrementTimer
ld a, [CVS+1] ; checking the high byte of the timer
cp a, $01 ; $10 = 1 second, $02 = 1/8 of a second
ret c
ld a, 0
ld [CVS], a
ld [CVS+1], a
ld b, 80
ld a, [CVS+2]
dec a
call ArrayClampLoopingB
ld [CVS+2], a
call .rotate
call .cleanNonVisibleTiles
call .spawnNewTiles
ret
.spawnNewTiles:
; spawn whatever new stripe of tiles is indicated in the map structure
ld a, [CVS+2]
ld b, a
ld hl, .map
.loopFindCurrentStripes
ld a, [CVS+2]
ld b, a
ld a, [hl] ; hl points at a timing index
cp a, 255
jp z, .doneSpawningStripe ; if it's 255 then we've reached the end of the list
cp a, b
jp z, .foundOne ; if it's =[CVS+2] then we've found a stripe that should be spawned now
inc hl ; now hl points at LOW(stripe address)
inc hl ; now hl points at HIGH(stripe address)
inc hl ; now hl points at a timing index
jp .loopFindCurrentStripes ; look at the next one
.foundOne
inc hl ; now hl points at LOW(stripe address)
ld c, [hl]
inc hl ; now hl points at HIGH(strpie address)
ld b, [hl]
push hl ; save our location from the map list...
ld h, b
ld l, c
; hl holdds the addrerss of a map stripe in memory, linearly packed
call .BuildMapStripe
pop hl ; rerstore the map list memory location
inc hl ; now hl points at a timing index
jp .loopFindCurrentStripes ; look at the next one
.doneSpawningStripe
ret
.BuildMapStripe:
; go through MY_OAM aand fiind six unused sprites, and draw our candidate
; sprites in those slots.
; each time we need to check if our counter (b) is six
; and also if we're outsidde the dedicated OAM space (not as important maybe)
; hl points to a list of six tile ids
ld b, 0
ld d, h
ld e, l
ld hl, MY_OAM
.spriteLoop
ld a, [hl]
cp a, 0
jp nz, .skipToNextSlot ; if the y value of the slot we're in is not zero,
; we have to skip this OAM slot
ld a, 6 ; STRPES ARE SIX TILIES TALLL
cp a, b
ret z ; if we'rer trying to draw sprite 6 in our stripe, we're done
ld a, [de]
cp a, 0
jp z, .doneDrawingSprite ; if the tile we're trying to draw is id 0, we're done
; else, fill this slot with the correct sprite.
; six way branch based on what position in the stripe we're at
ld a, b
: cp a, 0
jp nz, :+
ld [hl], (2+1+5)*8 ; y
inc hl
ld [hl], (1+1+1)*8 + 2; x
inc hl
ld a, [de]
ld [hl], a
ld a, 255
: cp a, 1
jp nz, :+
ld [hl], (2+1+6)*8 ; y
inc hl
ld [hl], (1+1+0)*8+4; x
inc hl
ld a, [de]
ld [hl], a
ld a, 255
: cp a, 2
jp nz, :+
ld [hl], (2+1+7)*8 ; y
inc hl
ld [hl], (1+1+0)*8+1; x
inc hl
ld a, [de]
ld [hl], a
ld a, 255
: cp a, 3
jp nz, :+
ld [hl], (2+1+8)*8 ; y
inc hl
ld [hl], (1+1+0)*8+1; x
inc hl
ld a, [de]
ld [hl], a
ld a, 255
: cp a, 4
jp nz, :+
ld [hl], (2+1+9)*8 ; y
inc hl
ld [hl], (1+1+0)*8+4; x
inc hl
ld a, [de]
ld [hl], a
ld a, 255
: cp a, 5
jp nz, :+
ld [hl], (2+1+10)*8 ; y
inc hl
ld [hl], (1+1+1)*8 + 2; x
inc hl
ld a, [de]
ld [hl], a
ld a, 255
:
inc hl ; now it's pointing at the attributes
;set OAMB_PRI, [hl]
inc hl ; now it's pointing at the next OAM slot
.doneDrawingSprite
inc de ; move to the next sprite in the strip
inc b ; increment our sprite-in-strip counter
jp .checkIfOutOfOAM
.skipToNextSlot
inc hl
inc hl
inc hl
inc hl
jp .checkIfOutOfOAM
.checkIfOutOfOAM
ld a, l
cp a, $9F
jp c, .spriteLoop
ret ; if we're out of oam we're done!
.rotate:
; move all currently visible sprites according to the rotation behavior.
ld hl, MY_OAM
.loop
ld a, [hl] ; y value
cp a, 0
jp nz, :+
inc hl ; x
inc hl ; tile id
inc hl ; attrs
inc hl ; next oam value
ld a, l
cp a, $9F
ret nc
jp .loop
:
ld b, [hl] ; y value
inc hl
ld c, [hl] ; x value
push hl
ld hl, .speedMatrix
call .GetOffsetForMatrix
pop hl
ld b, a ; b now holds the speed matrrix value
ld a, [CVS+2]
and a, $01
ld d, a ; every-other-frame bit
ld a, [CVS+2]
and a, $03
inc a
sra a
sra a
ld e, a ; every-fourth-frame bit
ld a, [hl] ; x value to modify
bit 0, b
jp z, :+
add a, 1
: bit 1, b
jp z, :+
add a, d
: bit 2, b
jp z, :+
add a, e
:
ld [hl], a
.done
inc hl ; now ponting at tile id
inc hl ; now pointing at attrs
inc hl
ld a, l
cp a, $A0
jp nz, .loop
ret
.cleanNonVisibleTiles:
ld hl, MY_OAM
; go through MY_OAM and, for any which aren't still visible, set their
; y value to zero.
.cleanUpLoop
ld a, [hl] ; a is the y value and hl points to y
: cp a, (2+1+5)*8
jp nz, :+ ; if the y value doesn't match our target, try the next check
inc hl
ld a, [hl-] ; a is the x value and hl points to x
cp a, (1+1+5)*8+6
jp c, .nextTile ; if x value is not less than the threshold,
; skip this tile and look at the next tile
; else, the x value is <= the threshhold, so we put it in baby jail
ld [hl], 0 ; set y to zero
jp .nextTile
: cp a, (2+1+6)*8
jp nz, :+
inc hl
ld a, [hl-] ; a is the x value and hl points to x
cp a, (1+1+6)*8+4
jp c, .nextTile ; if x value is not less than the threshold,
; skip this tile and look at the next tile
; else, the x value is <= the threshhold, so we put it in baby jail
ld [hl], 0 ; set y to zero
jp .nextTile
: cp a, (2+1+7)*8
jp nz, :+
inc hl
ld a, [hl-] ; a is the x value and hl points to x
cp a, (1+1+7)*8+4
jp c, .nextTile ; if x value is not less than the threshold,
; skip this tile and look at the next tile
; else, the x value is <= the threshhold, so we put it in baby jail
ld [hl], 0 ; set y to zero
jp .nextTile
: cp a, (2+1+8)*8
jp nz, :+
inc hl
ld a, [hl-] ; a is the x value and hl points to x
cp a, (1+1+7)*8+4
jp c, .nextTile ; if x value is not less than the threshold,
; skip this tile and look at the next tile
; else, the x value is <= the threshhold, so we put it in baby jail
ld [hl], 0 ; set y to zero
jp .nextTile
: cp a, (2+1+9)*8
jp nz, :+
inc hl
ld a, [hl-] ; a is the x value and hl points to x
cp a, (1+1+6)*8+4
jp c, .nextTile ; if x value is not less than the threshold,
; skip this tile and look at the next tile
; else, the x value is <= the threshhold, so we put it in baby jail
ld [hl], 0 ; set y to zero
jp .nextTile
: cp a, (2+1+10)*8
jp nz, :+
inc hl
ld a, [hl-] ; a is the x value and hl points to y
cp a, (1+1+5)*8+6
jp c, .nextTile ; if x value is not less than the threshold,
; skip this tile and look at the next tile
; else, the x value is <= the threshhold, so we put it in baby jail
ld [hl], 0 ; set y to zero
jp .nextTile
:
.nextTile
inc hl
inc hl
inc hl
inc hl
ld a, $A0
cp a, l
jp nz, .cleanUpLoop
ret
.GetOffsetForMatrix:
; b has y, c has x, hl has a 6x6 matrix of bytes.
; when this is done hl will point to the individual byte we want
; subtract (2+1+5)*8 from b, then divide by 8
; subtract (1+1+1)*8 from c, then divide by 8.
ld a, b
sub a, (2+1+5)*8
sra a
sra a
sra a
cp a, 5
jp c, :+
ld a, 5
: ld b, a
ld a, c
sub a, (1+1+0)*8
sra a
sra a
sra a
cp a, 6
jp c, :+
ld a, 6
: ld c, a
ld d, 0
ld a, 0
add a, b
add a, b
add a, b
add a, b
add a, b
add a, b ; a = 6*b
add a, b
ld e, a
add hl, de
ld d, 0
ld e, c
add hl, de
ld a, [hl]
ret
.speedMatrix
; bits are
; 1s: normal speed,
; 2s: 50% boost
; 4s: 25% boost
db %0000_0111, %0000_0110, %0000_0110, %0000_0001, %0000_0110, %0000_0110, %0000_0111
db %0000_0001, %0000_0101, %0000_0101, %0000_0101, %0000_0101, %0000_0101, %0000_0001
db %0000_0101, %0000_0101, %0000_0011, %0000_0011, %0000_0011, %0000_0101, %0000_0101
db %0000_0101, %0000_0101, %0000_0011, %0000_0011, %0000_0011, %0000_0101, %0000_0101
db %0000_0001, %0000_0101, %0000_0101, %0000_0101, %0000_0101, %0000_0101, %0000_0001
db %0000_0111, %0000_0110, %0000_0110, %0000_0001, %0000_0110, %0000_0110, %0000_0111
.map
db 0
dw .stripes
db 5
dw .stripes + 6
db 10
dw .stripes + 12
db 15
dw .stripes + 18
db 20
dw .stripes + 24
db 25
dw .stripes + 30
db 30
dw .stripes + 36
db 35
dw .stripes + 42
db 40
dw .stripes + 48
db 45
dw .stripes + 54
db 50
dw .stripes + 60
db 55
dw .stripes + 66
db 60
dw .stripes + 72
db 65
dw .stripes + 78
db 70
dw .stripes + 84
db 75
dw .stripes + 90
db 255
.stripes
db $02, $05, $00, $00, $00, $00
db $03, $06, $07, $00, $00, $33
db $04, $0a, $08, $0c, $00, $2c
db $09, $0b, $0d, $0e, $10, $00
db $12, $00, $00, $0f, $11, $00
db $00, $13, $17, $00, $00, $2d
db $1c, $14, $18, $1a, $00, $2e
db $1d, $15, $19, $1b, $00, $2f
db $24, $16, $00, $00, $00, $00
db $25, $1e, $1f, $00, $00, $00
db $26, $20, $21, $00, $00, $32
db $22, $23, $2b, $27, $29, $30
db $34, $37, $00, $28, $2a, $31
db $35, $38, $00, $00, $39, $00
db $36, $00, $00, $00, $00, $00
.fDraw: ret
.SpriteTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$00,$03,$03,$0f,$0f,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$1f,$1f
db $00,$00,$f0,$f0,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$3e,$3e,$ff,$ff,$f7,$ff,$d5,$ff,$ea,$ff,$d1,$ff,$ff,$ff
db $03,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $cf,$ff,$e7,$ff,$73,$7f,$19,$1f,$0f,$0f,$0e,$0f,$06,$07,$06,$05
db $06,$05,$06,$05,$07,$04,$07,$04,$03,$03,$01,$01,$00,$00,$00,$00
db $f2,$7e,$fe,$fe,$ee,$ee,$c6,$c6,$e0,$e0,$f0,$f0,$ff,$ff,$01,$01
db $00,$00,$00,$00,$fc,$fc,$58,$f8,$b0,$f0,$60,$e0,$80,$80,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fa,$fa,$fd,$3d,$fd,$1f,$fb,$1f
db $80,$80,$e0,$e0,$e0,$e0,$e0,$e0,$c0,$c0,$80,$80,$00,$00,$00,$00
db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$f8,$f8
db $fe,$fe,$e3,$ff,$61,$ff,$60,$ff,$30,$ff,$b3,$ff,$bf,$ff,$bf,$ff
db $00,$00,$80,$80,$c0,$c0,$40,$c0,$e0,$e0,$e0,$e0,$c0,$c0,$c0,$c0
db $5f,$7f,$5f,$7f,$5f,$73,$bc,$e4,$f0,$c0,$e0,$c0,$c0,$80,$80,$80
db $80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $7f,$41,$7f,$41,$7f,$40,$3f,$00,$3f,$31,$1f,$13,$1e,$12,$00,$00
db $01,$01,$03,$03,$0f,$0f,$0e,$0e,$00,$00,$03,$03,$0f,$0e,$1f,$10
db $ff,$ff,$f2,$f2,$02,$02,$00,$00,$00,$00,$ff,$ff,$ff,$06,$ff,$00
db $ff,$ff,$bb,$ba,$3b,$3a,$1f,$1f,$3c,$34,$7f,$61,$df,$d0,$ef,$68
db $ff,$e0,$ff,$00,$ff,$00,$ff,$c0,$3f,$3e,$07,$07,$81,$81,$01,$01
db $1f,$10,$1f,$10,$1f,$18,$0f,$0f,$03,$03,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$30,$ff,$fc,$cf,$cd,$0f,$0f,$07,$07,$0f,$0f
db $f2,$32,$f0,$00,$fa,$0a,$fe,$3e,$fe,$3e,$fe,$fe,$fe,$fe,$fc,$fc
db $07,$07,$0f,$0f,$07,$07,$07,$07,$0f,$0f,$0f,$0d,$07,$04,$03,$02
db $fc,$fc,$fc,$fc,$fc,$fc,$fc,$fc,$fd,$fd,$f9,$99,$f1,$11,$e0,$00
db $00,$00,$01,$01,$01,$01,$03,$03,$46,$46,$c0,$c0,$87,$87,$1f,$1f
db $00,$00,$80,$80,$df,$df,$fb,$ff,$73,$7f,$e7,$ff,$cf,$ff,$df,$ff
db $ff,$02,$ff,$04,$f3,$0c,$f9,$0f,$fc,$3f,$fe,$ff,$ff,$ff,$f8,$f8
db $f0,$f0,$e0,$e0,$c0,$c0,$00,$00,$20,$20,$60,$60,$00,$00,$00,$00
db $ff,$63,$ff,$03,$ff,$07,$ff,$0f,$fb,$8f,$76,$fe,$fc,$fc,$f8,$f8
db $78,$78,$38,$38,$38,$38,$20,$20,$20,$20,$30,$30,$18,$18,$08,$08
db $0c,$0c,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$ff,$fc,$fc,$e0,$e0,$c0,$c0,$70,$70,$18,$18,$00,$00,$00,$00
db $00,$00,$0f,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $3f,$00,$ff,$00,$ff,$f0,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $fc,$00,$ff,$00,$ff,$01,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$f1
db $03,$03,$00,$00,$e0,$e0,$07,$07,$1f,$1f,$3f,$31,$7f,$60,$ff,$e0
db $fe,$fe,$00,$00,$00,$00,$08,$08,$08,$08,$9c,$9c,$fe,$fe,$ff,$07
db $ff,$e4,$7f,$7f,$38,$38,$10,$10,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$03,$ff,$c3,$fe,$fe,$3c,$3c,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$18,$18,$10,$10,$c0,$c0,$8f,$8f
db $00,$00,$00,$00,$03,$03,$0e,$0e,$fc,$fc,$f8,$f8,$fe,$fe,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$03,$03,$ff,$ff,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$e0,$e0,$ff,$ff,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f3,$f3,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$f0,$f0,$f8,$f8,$d8,$d8,$c0,$c0,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$07,$07,$07,$07,$00,$00
db $00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$e0,$e0
db $00,$00,$e0,$e0,$fc,$fc,$fc,$fc,$f8,$f8,$e0,$e0,$00,$00,$00,$00
db $f8,$f8,$00,$00,$00,$00,$00,$00,$20,$20,$20,$20,$60,$60,$c0,$c0
db $60,$60,$60,$60,$60,$60,$c0,$c0,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$06,$06,$02,$02,$06,$06,$0c,$0c,$18,$18,$00,$00
.SpriteTilesEnd:
; 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 $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $03,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$3f,$3f,$07,$07,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$3f,$3f,$1f,$1f,$07,$07
db $03,$03,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$7f,$7f,$3f,$3f,$1f,$1f,$0f,$0f
db $0f,$0f,$07,$07,$07,$07,$03,$03,$03,$03,$03,$03,$01,$01,$01,$01
db $01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe,$fc,$fc,$f8,$f8,$e0,$e0
db $ff,$ff,$fc,$fc,$e0,$e0,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00
db $c0,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$f8,$f8,$f0,$f0
db $c0,$c0,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $f0,$f0,$e0,$e0,$e0,$e0,$c0,$c0,$c0,$c0,$c0,$c0,$80,$80,$80,$80
db $80,$80,$80,$80,$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,$80,$80,$80,$80
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01,$01
db $80,$80,$80,$80,$c0,$c0,$c0,$c0,$c0,$c0,$e0,$e0,$e0,$e0,$f0,$f0
db $01,$01,$01,$01,$03,$03,$03,$03,$03,$03,$07,$07,$07,$07,$0f,$0f
db $f0,$f0,$f8,$f8,$fc,$fc,$fe,$fe,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$c0,$c0
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$03,$03
db $0f,$0f,$1f,$1f,$3f,$3f,$7f,$7f,$7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff
db $e0,$e0,$f8,$f8,$fc,$fc,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$e0,$e0,$fc,$fc,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$c0
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$03
db $00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$07,$07,$3f,$3f,$ff,$ff
db $07,$07,$1f,$1f,$3f,$3f,$7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$07,$ff,$07,$ff,$07,$ff,$07
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$00,$ff,$00,$ff,$80,$ff,$80,$ff,$c0,$ff,$f8,$ff,$ff,$ff,$ff
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$04
db $ff,$00,$ff,$00,$ff,$07,$ff,$07,$ff,$07,$ff,$07,$ff,$07,$ff,$0f
db $ff,$0f,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$06,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$07,$ff,$0f,$ff,$3f
db $ff,$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$00,$ff,$00,$ff,$80,$ff,$80,$ff,$c0,$ff,$f8,$ff,$ff,$ff,$ff
db $ff,$80,$ff,$80,$ff,$c0,$ff,$f0,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$c0,$ff,$f0,$ff,$f8
db $ff,$06,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$07,$ff,$0f,$ff,$3f
db $ff,$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe
db $ff,$ff,$fe,$fe,$fd,$fd,$ea,$ea,$d4,$d4,$88,$88,$50,$50,$a0,$a0
db $e0,$e0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $07,$07,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$7f,$7f,$1f,$1f,$07,$07,$03,$03,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$3f,$3f
db $fe,$fe,$fd,$fd,$fa,$fa,$f5,$f5,$ea,$ea,$d5,$d5,$ea,$ea,$d5,$d5
db $a0,$a0,$00,$00,$80,$80,$00,$00,$80,$80,$00,$00,$00,$00,$00,$00
db $1f,$1f,$1f,$1f,$0f,$0f,$07,$07,$07,$07,$03,$03,$03,$03,$01,$01
db $dc,$dc,$aa,$aa,$d4,$d4,$aa,$aa,$d4,$d4,$aa,$aa,$54,$54,$aa,$aa
db $01,$01,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $dc,$dc,$aa,$aa,$54,$54,$aa,$aa,$d4,$d4,$aa,$aa,$d4,$d4,$aa,$aa
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$01,$01
db $ee,$ee,$d5,$d5,$ea,$ea,$f5,$f5,$ea,$ea,$f5,$f5,$fa,$fa,$fd,$fd
db $00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$00,$00,$80,$80,$40,$40
db $01,$01,$03,$03,$03,$03,$07,$07,$07,$07,$0f,$0f,$1f,$1f,$1f,$1f
db $ff,$ff,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $40,$40,$80,$80,$50,$50,$e8,$e8,$f4,$f4,$f8,$f8,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$ff
db $00,$00,$00,$00,$00,$00,$03,$03,$07,$07,$1f,$1f,$7f,$7f,$ff,$ff
db $3f,$3f,$7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0f
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$ff,$f8,$ff,$f0,$ff,$f0
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$e7,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$ff,$1f,$1f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3e,$3f,$38,$3f,$38
db $ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$80,$ff,$00,$ff,$00,$ff,$00
db $3f,$38,$3f,$38,$3f,$30,$3f,$30,$3f,$30,$3f,$30,$1f,$10,$ff,$f0
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0f
db $ff,$07,$ff,$03,$ff,$03,$ff,$02,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$ff,$ff,$ff,$ff,$cf,$ff,$07,$ff,$03,$ff,$01,$ff,$00,$ff,$00
db $ff,$ff,$f8,$f8,$fd,$fd,$fc,$fc,$fe,$fe,$fe,$fe,$ff,$1f,$ff,$0f
db $ff,$0f,$ff,$0f,$ff,$0f,$fe,$0e,$fe,$0e,$fc,$0c,$f8,$08,$ff,$0f
db $df,$df,$8f,$8f,$af,$af,$27,$27,$77,$77,$73,$73,$00,$00,$ff,$ff
db $ff,$ff,$00,$00,$fb,$fb,$73,$73,$77,$77,$27,$27,$af,$af,$8f,$8f
db $ff,$ff,$00,$00,$f6,$f6,$e6,$e6,$ef,$ef,$4f,$4f,$5f,$5f,$1f,$1f
db $ff,$ff,$00,$00,$fb,$fb,$73,$73,$77,$77,$27,$27,$af,$af,$8f,$8f
db $ff,$ff,$1f,$1f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3e,$3f,$38,$3f,$38
db $ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$80,$ff,$00,$ff,$00,$ff,$00
db $ff,$0f,$ff,$0f,$ff,$0f,$fe,$0e,$fe,$0e,$fc,$0c,$f8,$08,$ff,$0f
db $bf,$bf,$1f,$1f,$5f,$5f,$4f,$4f,$ef,$ef,$e6,$e6,$00,$00,$ff,$ff
db $df,$df,$8f,$8f,$af,$af,$27,$27,$77,$77,$73,$73,$00,$00,$ff,$ff
db $3f,$38,$3f,$38,$3f,$30,$3f,$30,$3f,$30,$3f,$30,$1f,$10,$ff,$f0
db $1f,$1f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $fd,$fd,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $dd,$dd,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $55,$55,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $11,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
.KeyArtTilesEnd:
.BackgroundCopy: ; tiles start at 26
db $3e, $3e, $38, $1b, $1b, $3f, $3e, $3e
db $39, $3a, $3b, $1b, $1b, $1b, $40, $41
db $3c, $3d, $1b, $1b, $1b, $1b, $1b, $1b
db $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b
db $1b, $23, $24, $25, $1c, $1d, $1e, $1b
db $26, $27, $1a, $1a, $1a, $1a, $1f, $20
db $28, $1a, $1a, $1a, $1a, $1a, $1a, $21
db $29, $1a, $1a, $1a, $1a, $1a, $1a, $22
db $2a, $1a, $1a, $1a, $1a, $1a, $1a, $2b
db $2c, $1a, $1a, $1a, $1a, $1a, $1a, $2d
db $2e, $2f, $1a, $1a, $1a, $1a, $30, $31
db $1b, $32, $33, $34, $35, $36, $37, $1b
db $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b
db $47, $1b, $1b, $1b, $1b, $1b, $42, $43
db $48, $49, $4a, $4e, $4d, $44, $45, $3e
db $3e, $3e, $4b, $4f, $4c, $46, $3e, $3e
db $1b, $1b, $1c, $1d, $1d, $1e, $1b, $1b
db $1f, $20, $21, $1d, $1d, $1d, $22, $23
db $24, $25, $1d, $1d, $1d, $1d, $1d, $1d
db $1d, $1d, $1d, $1d, $1d, $1d, $1d, $1d
db $1d, $1d, $1d, $1d, $1d, $1d, $1d, $1d
db $1d, $26, $27, $28, $29, $2a, $2b, $1d
db $1d, $2c, $2d, $1a, $1a, $1a, $2e, $1d
db $1d, $2f, $1a, $1a, $1a, $1a, $30, $1d
db $1d, $31, $1a, $1a, $1a, $1a, $32, $1d
db $1d, $33, $34, $1a, $1a, $1a, $35, $1d
db $1d, $36, $37, $38, $38, $39, $3a, $1d
db $1d, $1d, $1d, $1d, $1d, $1d, $1d, $1d
db $1d, $1d, $1d, $1d, $1d, $1d, $1d, $1d
db $3b, $1d, $1d, $1d, $1d, $1d, $3c, $3d
db $3e, $3f, $40, $41, $42, $43, $44, $1b
db $1b, $1b, $45, $46, $47, $48, $1b, $1b
.BackgroundCopyEnd:

Binary file not shown.

View File

@ -210,4 +210,249 @@ IncrementTimer:
adc a, 0
ld [hl], a
dec hl
ret
ret
SetUpEdgeMasks:
ld hl, EdgeMasks
ld de, _VRAM + 8*16*16 ; 8 rows of 16 tiles each, 16 bytes per tile
ld bc, EdgeMasks.end - EdgeMasks
call CopyRange
ld a, %00_00_00_00
ld [rOBP1], a
ret
EdgeMasks:
dw `00000000, `00000000, `00000000, `00000000, `00000000, `00000000, `00000000, `00000000,
dw `00000003, `00000003, `00000003, `00000003, `00000003, `00000003, `00000003, `00000003,
dw `00000033, `00000033, `00000033, `00000033, `00000033, `00000033, `00000033, `00000033,
dw `00000333, `00000333, `00000333, `00000333, `00000333, `00000333, `00000333, `00000333,
dw `00003333, `00003333, `00003333, `00003333, `00003333, `00003333, `00003333, `00003333,
dw `00033333, `00033333, `00033333, `00033333, `00033333, `00033333, `00033333, `00033333,
dw `00333333, `00333333, `00333333, `00333333, `00333333, `00333333, `00333333, `00333333,
dw `03333333, `03333333, `03333333, `03333333, `03333333, `03333333, `03333333, `03333333,
dw `33333333, `33333333, `33333333, `33333333, `33333333, `33333333, `33333333, `33333333,
.end
CleanUpOutsideSprites:
ld hl, MY_OAM + 10*4
.processSprite
;hl points at an OAM entry's y value
ld a, 17 ; sprites are visible if y value >= 17
cp a, [hl]
jp c, :+ ; skip if 17-y < 0
ld [hl], 0
:
ld a, 152 ; sprites are visible if y value is < 152
cp a, [hl]
jp nc, :+ ; skip if 152 - y < 0
ld [hl], 0
:
inc hl ; look at x value
ld a, 8 ; sprites are visible if y value >= 8
cp a, [hl]
jp c, :+ ; skip if 8-y <= 0
ld [hl], 0
:
ld a, 80 ; sprites are visible if x value < 80
cp a, [hl]
jp nc, :+
ld [hl], 0
:
inc hl ; now pointing at tile ID
inc hl ; now pointing at attributes
inc hl ; now pointing at next OAM y value
ld a, l
cp a, $A0
jp nz, .processSprite
; now we hide the overlapping edges
ld hl, MY_OAM + 10*4
ld de, MY_OAM
.hideEdges
ld a, 0 ; check if y value is zero; if so, skip this sprite
cp a, [hl]
jp nz, :+
inc hl ; x
inc hl ; tile id
inc hl ; attr
inc hl ; next y
ld a, l
cp a, $A0
jp nz, .hideEdges
ret
:
inc hl ; check if x value is zero; if so, skip this
ld a, 0
cp a, [hl]
jp nz, :+
inc hl
inc hl
inc hl
ld a, l
cp a, $A0
jp nz, .hideEdges
ret
: dec hl
;hl points at an OAM entry's y value
ld a, 24 ; sprites are clear if y value > 24
cp a, [hl]
jp c, :+ ; skip if 24-y < 0
; writing an edge mask on the TOP
; else write an edge sprite
ld a, 16 ; y value should be 16 (covers top row)
ld [de], a ; y value in first slot
inc de ;write head moves forward to x
inc hl ; read head moves forward to x
ld a, [hl] ; x value matches the sprite we're mirroring
ld [de], a
inc de ; write head moves forward to tile ID
inc hl ; read head moves forward to tile id
ld a, 8*16 + 8
ld [de], a ; tile ID 1 for the hidden ones
inc de ; write head moves forward to attribute
inc hl ; read head moves forward to attributes
ld a, [de]
set OAMB_PRI, a
set OAMB_PAL1, a
ld [de], a
inc de ; point at next slot for both mask and source
inc hl
ld a, l
cp a, $A0
jp nz, .hideEdges
ret
:
ld a, 145 ; sprites don't overlap edge if y value is <= 145
cp a, [hl]
jp nc, :+ ; skip if 145 - y >= 0
; writing an edge mask on the BOTTOM
ld a, 144 ; y value should be 144 (covers bottom row)
ld [de], a ; y value in first slot
inc de ;write head moves forward to x
inc hl ; read head moves forward to x
ld a, [hl] ; x value matches the sprite we're mirroring
ld [de], a
inc de ; write head moves forward to tile ID
inc hl ; read head moves forward to tile id
ld a, 8*16 + 8
ld [de], a ; tile ID 1 for the hidden ones
inc de ; write head moves forward to attribute
inc hl ; read head moves forward to attributes
ld a, [de]
set OAMB_PRI, a
set OAMB_PAL1, a
ld [de], a
inc de
inc hl
ld a, l
cp a, $A0
jp nz, .hideEdges
ret
:
inc hl ; look at x value
ld a, 16 ; sprites dno't need coverage if x value > 16
cp a, [hl]
jp c, :+ ; skip if 16-y < 0
; else write an edge mask on the LEFT
dec hl ; step back so we're looking at y
ld a, [hl] ; copy y over from sprite
ld [de], a
inc hl ; point at x now
inc de ; point at x now
ld a, 8 ; x value should be 8 (covers left edge)
ld [de], a ; x value
inc de ; write head moves forward to tile ID
inc hl ; read head moves forward to tile id
ld a, 1
ld [de], a ; tile ID 1 for the hidden ones
inc de ; write head moves forward to attribute
inc hl ; read head moves forward to attributes
ld a, [de]
set OAMB_PRI, a
set OAMB_PAL1, a
ld [de], a
inc de
inc hl
ld a, l
cp a, $A0
jp nz, .hideEdges
ret
:
ld a, 72 ; sprites dont needd coverage if x value < 72
cp a, [hl]
jp nc, :+
; else write an edge mask on the RIGHT
dec hl ; step back so we're looking at y
ld a, [hl] ; copy y over from sprite
ld [de], a
inc hl ; point at x now
inc de ; point at x now
ld a, [hl] ; x value should match the sprite we're masking...
ld [de], a ; x value
inc de ; write head moves forward to tile ID
inc hl ; read head moves forward to tile id
; a currently holds the x coordinate
sub a, 72 ; subtract off 72 to get the amount that we're overlapping
add a, 8*16 ; add the offset for the mask sprites...
ld [de], a ; that makes the tile ID for the mask we want!
inc de ; write head moves forward to attribute
inc hl ; read head moves forward to attributes
ld a, [de]
set OAMB_PRI, a
set OAMB_PAL1, a
ld [de], a
inc de
inc hl
ld a, l
cp a, $A0
jp nz, .hideEdges
ret
:
inc hl ; now pointing at tile ID
inc hl ; now pointing at attributes
inc hl ; now pointing at next OAM y value
ld a, l
cp a, $A0
jp nz, .hideEdges
ret

View File

@ -39,6 +39,9 @@ CopyTilesToMapUnsafe:
jp nz, CopyTilesToMap
ret
; this function is used by practically all the card animations and all over the place.
; it uses every register. this was a bad idea and i should have just used the stack.
; if i were rewriting this, i would like to do it differently.
BuildMetaSprite:
; takkes similar args as copytilestomapunsafe but builds several sprites
; instead.
@ -110,97 +113,13 @@ BuildMetaSprite:
ret
BuildMetaSpriteHFlip:
; takkes similar args as copytilestomapunsafe but builds several sprites
; instead.
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
push hl
push de
pop hl ; want hl and de to be swapped just for the sake of consistent apis
pop de ; hl now holds the OAM location, de holds the sprite map
push af ; save to the stack so we can retrieve it for row-wise decrement
and a, $0F
;sla a ;times 2
;sla a ; times 4
;sla a ; times 8
;add a, c
;ld a, b
;adc a, 0
;ld b, a
pop af
push af
push bc ; hold onto the upper-left corner so we can update it each row
.writeRow
pop bc
pop af
push af
push bc ; refresh af and bc from their authoritative stack versions
and a, $0F ; take only the horizontal tile count
.buildSprite
;
ld [hl], b ; write y byte
inc hl
ld [hl], c ; write x byte
inc hl
push af ; save a before we use it for transferring de to hl
ld a, [de]
inc de ; move to the next sprite
ld [hl], a
inc hl
set OAMB_XFLIP, [hl] ; make sure xflip is turned on
inc hl ; skip the attributes byte
; we're going to wait to get our a value (number of tiles left to draw in this
; row) until after we've used a for changing c
;we've written a whole sprite. hl and de are in the right state, we need to
; update a and bc.
; update bc
ld a, c
sub a, 8
ld c, a
pop af ; get back the number of tiles to draw in this row
dec a
jp nz, .buildSprite ; if there are still tiles left to draw in this row, do it!
; otherwise we have no more tiles to write this row bc needs to be updated
pop bc
ld a, b
add a, 8
ld b, a ; add 8 to the y coordinate
pop af
sub a, $10
push af
push bc
and a, $F0
; stakc has bc and af, ready for repeating from the top
jp nz, .writeRow ; last numerical operation was and a, $F0 so checking if upper byte is zero
pop bc
pop af
ret
BuildMetaSpritePackedHflip:
; takkes similar args as copytilestomapunsafe but builds several sprites
; instead.
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
; same as BuildMetaSprite but it skips blank tiles aand also flips the
; whole thing horizontally
push hl
push de
pop hl ; want hl and de to be swapped just for the sake of consistent apis
@ -275,12 +194,7 @@ BuildMetaSpritePackedHflip:
BuildMetaSpritePacked:
; takkes similar args as copytilestomapunsafe but builds several sprites
; instead.
; location of source tile map: hl
; location in memory to write to: de
; y and x in b and c
; height and width in a & %11110000 and a & %00001111 ??? that's deranged
; same args as BuildMetaSprite but this one skips blank sprites.
push hl
push de
pop hl ; want hl and de to be swapped just for the sake of consistent apis

View File

@ -4,71 +4,75 @@
KeyArtTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$00,$55,$aa,$ff,$00,$55,$aa,$ff,$00,$5f,$a7,$df,$3f,$7f,$ff
db $ff,$c0,$fd,$f2,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$00,$55,$aa,$ff,$00,$55,$aa,$ff,$00,$5d,$a2,$ff,$00,$d5,$aa
db $9f,$7f,$1f,$ff,$3f,$df,$1f,$ff,$9f,$7f,$1f,$ff,$3f,$ff,$3f,$ff
db $ff,$7f,$7f,$ff,$ff,$7f,$7f,$ff,$ff,$7f,$7f,$ff,$ff,$7f,$ff,$ff
db $ab,$55,$45,$bb,$ab,$55,$11,$ef,$ab,$55,$45,$bb,$ab,$55,$11,$ef
db $ab,$55,$57,$ab,$ab,$57,$53,$af,$ab,$57,$57,$ab,$ab,$57,$57,$ab
db $eb,$17,$57,$ab,$af,$57,$57,$af,$af,$57,$57,$af,$af,$57,$57,$af
db $ef,$17,$57,$af,$bf,$4f,$5f,$af,$ef,$1f,$5f,$af,$bf,$4f,$5f,$af
db $ea,$15,$55,$aa,$aa,$55,$55,$aa,$ae,$51,$55,$aa,$aa,$d5,$d5,$aa
db $ee,$91,$d5,$aa,$bb,$c4,$d5,$aa,$ee,$91,$d5,$ea,$fb,$c4,$d5,$ea
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$07,$ff,$07,$ff,$07,$ff,$07
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $80,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$3f,$7f,$bf,$ff,$3f,$7f,$bf,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $fe,$c1,$d5,$ea,$fb,$c4,$d5,$ea,$ff,$e0,$f5,$ea,$ff,$e0,$f5,$ea
db $ff,$e0,$f5,$ea,$ff,$e0,$f5,$fa,$ff,$f0,$fd,$f2,$ff,$fc,$ff,$ff
db $ff,$0f,$5f,$af,$bf,$4f,$5f,$bf,$ff,$1f,$5f,$bf,$bf,$5f,$5f,$bf
db $e8,$d7,$c0,$ff,$e2,$dd,$c0,$ff,$ea,$d5,$e0,$ff,$e2,$fd,$e0,$ff
db $ea,$f5,$e0,$ff,$ea,$f5,$e0,$ff,$fa,$f5,$f0,$ff,$fa,$f5,$f0,$ff
db $fa,$f5,$f4,$fb,$fa,$f5,$f8,$ff,$fa,$fd,$fc,$fb,$fa,$fd,$f9,$fe
db $fa,$fd,$fc,$fb,$fe,$fd,$fd,$fe,$fe,$fd,$fd,$fe,$fe,$fd,$fd,$fe
db $fe,$ff,$ff,$fe,$fe,$ff,$ff,$fe,$fe,$ff,$ff,$fe,$fe,$ff,$ff,$ff
db $bf,$7f,$3f,$ff,$3f,$ff,$3f,$ff,$bf,$7f,$3f,$ff,$7f,$ff,$7f,$ff
db $88,$f7,$80,$ff,$a0,$df,$80,$ff,$88,$f7,$80,$ff,$e2,$dd,$c0,$ff
db $80,$7f,$00,$ff,$03,$ff,$0f,$ff,$0f,$ff,$1f,$ff,$1f,$ff,$1f,$ff
db $80,$7f,$00,$ff,$00,$ff,$00,$ff,$08,$f7,$00,$ff,$00,$ff,$80,$ff
db $80,$7f,$f0,$ff,$fc,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $80,$7f,$00,$ff,$00,$ff,$00,$ff,$08,$f7,$00,$ff,$00,$ff,$00,$ff
db $88,$77,$00,$ff,$20,$df,$00,$ff,$88,$77,$00,$ff,$22,$dd,$00,$ff
db $a8,$57,$00,$ff,$22,$dd,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff
db $aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55,$00,$ff
db $aa,$55,$44,$bb,$aa,$55,$10,$ef,$aa,$55,$44,$bb,$aa,$55,$01,$fe
db $aa,$55,$44,$bb,$aa,$55,$11,$ee,$aa,$55,$45,$ba,$aa,$55,$11,$ee
db $aa,$55,$55,$aa,$aa,$55,$51,$ae,$aa,$55,$55,$aa,$aa,$55,$55,$aa
db $ea,$15,$55,$aa,$aa,$55,$55,$aa,$ae,$51,$55,$aa,$aa,$55,$55,$aa
db $ee,$11,$55,$aa,$bb,$44,$55,$aa,$ee,$11,$55,$aa,$bb,$44,$55,$aa
db $fe,$01,$55,$aa,$bb,$44,$55,$aa,$ff,$00,$55,$aa,$bf,$40,$55,$aa
db $ff,$ff,$ff,$fe,$fe,$fe,$fe,$fc,$fc,$fc,$fd,$fc,$f8,$f8,$ff,$ff
db $7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$3f,$3f,$ff,$ff
db $ff,$ff,$f8,$f8,$fd,$fc,$fc,$fc,$fe,$fc,$fe,$fe,$ff,$fe,$ff,$ff
db $ff,$ff,$00,$00,$f5,$e4,$e4,$e4,$ee,$e4,$4e,$4c,$5e,$4e,$3f,$1e
db $ff,$ff,$00,$00,$fb,$f2,$f3,$f2,$f7,$f2,$f7,$f2,$67,$66,$6f,$66
db $ff,$ff,$3f,$3f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f,$7f
db $9f,$1e,$5f,$0f,$4f,$4f,$ef,$e7,$e7,$e7,$f7,$e7,$00,$00,$ff,$ff
db $6f,$66,$6f,$6e,$0f,$0e,$9f,$0e,$9f,$9e,$9f,$9e,$00,$00,$ff,$ff
db $ff,$ff,$ff,$ff,$f1,$ff,$ce,$ff,$de,$ff,$de,$ff,$be,$ff,$be,$ff
db $be,$ff,$be,$ff,$be,$ff,$be,$ff,$a0,$ff,$00,$ff,$01,$ff,$1f,$ff
db $ff,$00,$ff,$00,$ff,$80,$ff,$80,$ff,$c0,$ff,$f8,$ff,$ff,$ff,$ff
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$04
db $ff,$00,$ff,$00,$ff,$07,$ff,$07,$ff,$07,$ff,$07,$ff,$07,$ff,$0f
db $ff,$0f,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$80,$ff,$80,$ff,$c0,$ff,$f0,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$c0,$ff,$f0,$ff,$f8
db $ff,$06,$ff,$03,$ff,$03,$ff,$03,$ff,$03,$ff,$07,$ff,$0f,$ff,$3f
db $ff,$3f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$fe
db $ff,$ff,$fe,$fe,$fd,$fd,$ea,$ea,$d4,$d4,$88,$88,$50,$50,$a0,$a0
db $e0,$e0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $07,$07,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$7f,$7f,$1f,$1f,$07,$07,$03,$03,$00,$00,$00,$00,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$3f,$3f
db $fe,$fe,$fd,$fd,$fa,$fa,$f5,$f5,$ea,$ea,$d5,$d5,$ea,$ea,$d5,$d5
db $a0,$a0,$00,$00,$80,$80,$00,$00,$80,$80,$00,$00,$00,$00,$00,$00
db $1f,$1f,$1f,$1f,$0f,$0f,$07,$07,$07,$07,$03,$03,$03,$03,$01,$01
db $dc,$dc,$aa,$aa,$d4,$d4,$aa,$aa,$d4,$d4,$aa,$aa,$54,$54,$aa,$aa
db $01,$01,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $dc,$dc,$aa,$aa,$54,$54,$aa,$aa,$d4,$d4,$aa,$aa,$d4,$d4,$aa,$aa
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$01,$01
db $ee,$ee,$d5,$d5,$ea,$ea,$f5,$f5,$ea,$ea,$f5,$f5,$fa,$fa,$fd,$fd
db $00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$00,$00,$80,$80,$40,$40
db $01,$01,$03,$03,$03,$03,$07,$07,$07,$07,$0f,$0f,$1f,$1f,$1f,$1f
db $ff,$ff,$fe,$fe,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $40,$40,$80,$80,$50,$50,$e8,$e8,$f4,$f4,$f8,$f8,$ff,$ff,$ff,$ff
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$ff,$ff
db $00,$00,$00,$00,$00,$00,$03,$03,$07,$07,$1f,$1f,$7f,$7f,$ff,$ff
db $3f,$3f,$7f,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$0f
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fe,$ff,$f8,$ff,$f0,$ff,$f0
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$e7,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$07,$ff,$03,$ff,$03,$ff,$02,$ff,$00,$ff,$00,$ff,$00,$ff,$00
db $ff,$ff,$ff,$ff,$ff,$cf,$ff,$07,$ff,$03,$ff,$01,$ff,$00,$ff,$00
db $ff,$ff,$f8,$f8,$fd,$fd,$fc,$fc,$fe,$fe,$fe,$fe,$ff,$1f,$ff,$0f
db $ff,$ff,$00,$00,$f6,$f6,$e6,$e6,$ef,$ef,$4f,$4f,$5f,$5f,$1f,$1f
db $ff,$ff,$00,$00,$fb,$fb,$73,$73,$77,$77,$27,$27,$af,$af,$8f,$8f
db $ff,$ff,$1f,$1f,$3f,$3f,$3f,$3f,$3f,$3f,$3f,$3e,$3f,$38,$3f,$38
db $ff,$e0,$ff,$e0,$ff,$e0,$ff,$e0,$ff,$80,$ff,$00,$ff,$00,$ff,$00
db $ff,$0f,$ff,$0f,$ff,$0f,$fe,$0e,$fe,$0e,$fc,$0c,$f8,$08,$ff,$0f
db $bf,$bf,$1f,$1f,$5f,$5f,$4f,$4f,$ef,$ef,$e6,$e6,$00,$00,$ff,$ff
db $df,$df,$8f,$8f,$af,$af,$27,$27,$77,$77,$73,$73,$00,$00,$ff,$ff
db $3f,$38,$3f,$38,$3f,$30,$3f,$30,$3f,$30,$3f,$30,$1f,$10,$ff,$f0
db $1f,$1f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $fd,$fd,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $dd,$dd,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $55,$55,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $11,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
KeyArt:
db $36, $36, $36, $36, $36, $36, $36, $36
db $37, $37, $33, $27, $35, $34, $37, $37
db $38, $38, $1e, $26, $26, $32, $38, $38
db $39, $39, $31, $26, $26, $2c, $39, $39
db $3a, $3a, $1f, $26, $26, $2d, $3a, $3a
db $3b, $3b, $26, $26, $26, $2e, $3b, $3b
db $3c, $20, $49, $26, $26, $2f, $3c, $3c
db $3d, $21, $4a, $26, $26, $30, $3d, $3d
db $3e, $22, $26, $26, $26, $26, $24, $3e
db $3f, $23, $26, $26, $26, $26, $25, $3f
db $40, $2b, $26, $26, $26, $26, $29, $40
db $1b, $28, $26, $26, $26, $26, $2a, $1d
db $26, $26, $26, $26, $26, $26, $26, $1c
db $26, $26, $26, $26, $26, $26, $26, $26
db $26, $26, $43, $44, $45, $46, $26, $26
db $26, $26, $41, $47, $48, $42, $26, $26
db $1b, $1b, $1c, $1d, $1d, $1e, $1b, $1b
db $1f, $20, $21, $1d, $1d, $1d, $22, $23
db $24, $25, $1d, $1d, $1d, $1d, $1d, $1d
db $1d, $1d, $1d, $1d, $1d, $1d, $1d, $1d
db $1d, $1d, $1d, $1d, $1d, $1d, $1d, $1d
db $1d, $26, $27, $28, $29, $2a, $2b, $1d
db $1d, $2c, $2d, $1a, $1a, $1a, $2e, $1d
db $1d, $2f, $1a, $1a, $1a, $1a, $30, $1d
db $1d, $31, $1a, $1a, $1a, $1a, $32, $1d
db $1d, $33, $34, $1a, $1a, $1a, $35, $1d
db $1d, $36, $37, $38, $38, $39, $3a, $1d
db $1d, $1d, $1d, $1d, $1d, $1d, $1d, $1d
db $1d, $1d, $1d, $1d, $1d, $1d, $1d, $1d
db $3b, $1d, $1d, $1d, $1d, $1d, $3c, $3d
db $3e, $3f, $40, $41, $42, $43, $44, $1b
db $1b, $1b, $45, $46, $47, $48, $1b, $1b

View File

@ -66,12 +66,12 @@ CardBrowseUpdate:
ld a, [vSelectedCardIndex]
ld hl, rMYBTNP
bit 3, [hl]
jp z, :+ ; skip the following code if down is not pressed
bit 0, [hl]
jp z, :+ ; skip the following code if left is not pressed
inc a
:
bit 2, [hl]
jp z, :+ ; skip the following code if up is not pressed
bit 1, [hl]
jp z, :+ ; skip the following code if right is not pressed
dec a
:
ld [vSelectedCardIndex], a

View File

@ -4,31 +4,70 @@
SpriteTiles:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$20,$00,$50,$20,$88,$00,$50,$00,$20,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$20,$20,$50,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$f0,$00,$0c,$f0,$f0,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$01,$00,$01,$00,$03,$00,$03,$00,$07,$00,$00,$00
db $80,$7e,$80,$7f,$80,$7f,$3a,$c1,$62,$81,$c2,$01,$82,$01,$02,$01
db $00,$00,$00,$00,$01,$00,$0f,$00,$38,$07,$0f,$00,$01,$00,$00,$00
db $80,$7f,$00,$fe,$00,$f8,$00,$f0,$00,$f0,$00,$f0,$80,$70,$00,$78
db $00,$00,$00,$00,$00,$00,$06,$00,$03,$00,$03,$00,$01,$00,$01,$00
db $01,$00,$01,$00,$01,$00,$03,$00,$c2,$01,$62,$81,$32,$c1,$98,$67
db $80,$00,$80,$00,$80,$00,$80,$00,$c3,$00,$4f,$80,$59,$86,$23,$dc
db $00,$00,$00,$00,$00,$00,$c0,$00,$80,$00,$80,$00,$00,$00,$00,$00
db $02,$fc,$00,$7e,$01,$1e,$01,$0e,$00,$0f,$01,$0e,$03,$0c,$00,$1c
db $04,$78,$06,$f8,$02,$fc,$03,$fc,$59,$86,$4d,$82,$47,$80,$41,$80
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$c0,$00
db $40,$80,$40,$80,$40,$80,$40,$80,$40,$80,$c0,$00,$80,$00,$80,$00
db $80,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $02,$01,$02,$01,$02,$01,$02,$01,$03,$00,$01,$00,$01,$00,$01,$00
db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff
db $00,$00,$03,$03,$0f,$0f,$ff,$ff,$ff,$ff,$ff,$ff,$7f,$7f,$1f,$1f
db $00,$00,$f0,$f0,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$3e,$3e,$ff,$ff,$f7,$ff,$d5,$ff,$ea,$ff,$d1,$ff,$ff,$ff
db $03,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $cf,$ff,$e7,$ff,$73,$7f,$19,$1f,$0f,$0f,$0e,$0f,$06,$07,$06,$05
db $06,$05,$06,$05,$07,$04,$07,$04,$03,$03,$01,$01,$00,$00,$00,$00
db $f2,$7e,$fe,$fe,$ee,$ee,$c6,$c6,$e0,$e0,$f0,$f0,$ff,$ff,$01,$01
db $00,$00,$00,$00,$fc,$fc,$58,$f8,$b0,$f0,$60,$e0,$80,$80,$00,$00
db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$fa,$fa,$fd,$3d,$fd,$1f,$fb,$1f
db $80,$80,$e0,$e0,$e0,$e0,$e0,$e0,$c0,$c0,$80,$80,$00,$00,$00,$00
db $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$f8,$f8
db $fe,$fe,$e3,$ff,$61,$ff,$60,$ff,$30,$ff,$b3,$ff,$bf,$ff,$bf,$ff
db $00,$00,$80,$80,$c0,$c0,$40,$c0,$e0,$e0,$e0,$e0,$c0,$c0,$c0,$c0
db $5f,$7f,$5f,$7f,$5f,$73,$bc,$e4,$f0,$c0,$e0,$c0,$c0,$80,$80,$80
db $80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
db $7f,$41,$7f,$41,$7f,$40,$3f,$00,$3f,$31,$1f,$13,$1e,$12,$00,$00
db $01,$01,$03,$03,$0f,$0f,$0e,$0e,$00,$00,$03,$03,$0f,$0e,$1f,$10
db $ff,$ff,$f2,$f2,$02,$02,$00,$00,$00,$00,$ff,$ff,$ff,$06,$ff,$00
db $ff,$ff,$bb,$ba,$3b,$3a,$1f,$1f,$3c,$34,$7f,$61,$df,$d0,$ef,$68
db $ff,$e0,$ff,$00,$ff,$00,$ff,$c0,$3f,$3e,$07,$07,$81,$81,$01,$01
db $1f,$10,$1f,$10,$1f,$18,$0f,$0f,$03,$03,$00,$00,$00,$00,$00,$00
db $ff,$00,$ff,$00,$ff,$30,$ff,$fc,$cf,$cd,$0f,$0f,$07,$07,$0f,$0f
db $f2,$32,$f0,$00,$fa,$0a,$fe,$3e,$fe,$3e,$fe,$fe,$fe,$fe,$fc,$fc
db $07,$07,$0f,$0f,$07,$07,$07,$07,$0f,$0f,$0f,$0d,$07,$04,$03,$02
db $fc,$fc,$fc,$fc,$fc,$fc,$fc,$fc,$fd,$fd,$f9,$99,$f1,$11,$e0,$00
db $00,$00,$01,$01,$01,$01,$03,$03,$46,$46,$c0,$c0,$87,$87,$1f,$1f
db $00,$00,$80,$80,$df,$df,$fb,$ff,$73,$7f,$e7,$ff,$cf,$ff,$df,$ff
db $ff,$02,$ff,$04,$f3,$0c,$f9,$0f,$fc,$3f,$fe,$ff,$ff,$ff,$f8,$f8
db $f0,$f0,$e0,$e0,$c0,$c0,$00,$00,$20,$20,$60,$60,$00,$00,$00,$00
db $ff,$63,$ff,$03,$ff,$07,$ff,$0f,$fb,$8f,$76,$fe,$fc,$fc,$f8,$f8
db $78,$78,$38,$38,$38,$38,$20,$20,$20,$20,$30,$30,$18,$18,$08,$08
db $0c,$0c,$ff,$7f,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $ff,$ff,$fc,$fc,$e0,$e0,$c0,$c0,$70,$70,$18,$18,$00,$00,$00,$00
db $00,$00,$0f,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $3f,$00,$ff,$00,$ff,$f0,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $fc,$00,$ff,$00,$ff,$01,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$f1
db $03,$03,$00,$00,$e0,$e0,$07,$07,$1f,$1f,$3f,$31,$7f,$60,$ff,$e0
db $fe,$fe,$00,$00,$00,$00,$08,$08,$08,$08,$9c,$9c,$fe,$fe,$ff,$07
db $ff,$e4,$7f,$7f,$38,$38,$10,$10,$00,$00,$00,$00,$00,$00,$00,$00
db $ff,$03,$ff,$c3,$fe,$fe,$3c,$3c,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$18,$18,$10,$10,$c0,$c0,$8f,$8f
db $00,$00,$00,$00,$03,$03,$0e,$0e,$fc,$fc,$f8,$f8,$fe,$fe,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$03,$03,$ff,$ff,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$e0,$e0,$ff,$ff,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f3,$f3,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$f0,$f0,$f8,$f8,$d8,$d8,$c0,$c0,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$ff,$ff,$00,$00
db $00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$07,$07,$07,$07,$00,$00
db $00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
db $00,$00,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$e0,$e0
db $00,$00,$e0,$e0,$fc,$fc,$fc,$fc,$f8,$f8,$e0,$e0,$00,$00,$00,$00
db $f8,$f8,$00,$00,$00,$00,$00,$00,$20,$20,$20,$20,$60,$60,$c0,$c0
db $60,$60,$60,$60,$60,$60,$c0,$c0,$00,$00,$00,$00,$00,$00,$00,$00
db $00,$00,$00,$00,$06,$06,$02,$02,$06,$06,$0c,$0c,$18,$18,$00,$00
Sprites:
db $09, $0a, $0b, $0c
db $07, $08, $0d, $04
db $05, $06, $0e, $0f
db $00, $13, $10, $00
db $00, $12, $11, $00
db $02, $03, $04, $09, $12, $00, $1c, $1d, $24, $25, $26, $22, $34, $35, $36
db $05, $06, $0a, $0b, $00, $13, $14, $15, $16, $1e, $20, $23, $37, $38, $00
db $00, $07, $08, $0d, $00, $17, $18, $19, $00, $1f, $21, $2b, $00, $00, $00
db $00, $00, $0c, $0e, $0f, $00, $1a, $1b, $00, $00, $00, $27, $28, $00, $00
db $00, $00, $00, $10, $11, $00, $00, $00, $00, $00, $00, $29, $2a, $39, $00
db $00, $33, $2c, $00, $00, $2d, $2e, $2f, $00, $00, $32, $30, $31, $00, $00

14
misc.py
View File

@ -28,3 +28,17 @@ def splitn(n, the_string):
for d in out:
print(d)
return out
def transpose_gb_tiles(the_string):
out = [[] for _ in range(max(map(lambda l: len(l.split(", ")), the_string.split("\n"))))]
for l in the_string.split("\n"):
sub = list(l.strip()[3:].split(", "))
for i, byte in enumerate(sub):
out[i].append(byte)
for d in out:
print("db " + ", ".join(d))
return out

Binary file not shown.