From 89684a3b83764e20bd49132b13e1568f19b0ede5 Mon Sep 17 00:00:00 2001 From: shoofle Date: Sun, 23 Feb 2025 11:23:58 -0500 Subject: [PATCH] starting to separate card helper functions into their own file --- 00TheFool.inc | 313 +++++++++++++++++++++++++---------------- 00thefool.aseprite | Bin 6446 -> 6800 bytes 00thefool.asm | 153 +++++--------------- 20judgement.aseprite | Bin 6400 -> 6399 bytes CardHelpers.inc | 161 +++++++++++++++++++++ ScreenCardBrowse.inc | 163 +-------------------- ScreenMainMenu.inc | 4 +- ScreenSpreadSelect.inc | 72 +++------- main.asm | 10 +- source.zip | Bin 305558 -> 307273 bytes 10 files changed, 419 insertions(+), 457 deletions(-) create mode 100644 CardHelpers.inc diff --git a/00TheFool.inc b/00TheFool.inc index 9750561..a18231a 100644 --- a/00TheFool.inc +++ b/00TheFool.inc @@ -10,127 +10,198 @@ TheFool: db 9, "beginning" db 9, "leap " db 9, "naivete " - dw FoolMapEnd - FoolMap - dw FoolMap - dw FoolTilesEnd - FoolTiles - dw FoolTiles + dw .BackgroundCopyEnd - .BackgroundCopy + dw .BackgroundCopy + dw .KeyArtTilesEnd - .KeyArtTiles + dw .KeyArtTiles + dw .SpriteTilesEnd - .SpriteTiles + dw .SpriteTiles + dw .fInit + dw .fUpdate + dw .fDraw + + ; original export script by gabriel reis, modified by shoofle +.fInit: + ld h, $c2 + ld l, $00 + ld a, 0 + ld [hl+], a ; $c200 = timer for dog + ld [hl+], a ; $c201 = timer for big zero + +.fUpdate: + ldh a, [rDELTAT] + ld b, a + + ld a, [$c300] + add a, b + ld [$c200], a + ld a, [$c300+1] + adc a, 0 + ld [$c300+1], a ; increment time. when the 16bit time register is greater -FoolTiles: + ld a, [$c300+1] + cp a, $08 ; $10 00 = 1 second + jp c, .doneWithTimer1 ; if the timer is less than $0800, skip to end + + ;otherwise reset the timer + ld a, 0 + ld [$c300], a + ld [$c300+1], a + +.doneWithTimer1 + + ld a, [$c302] + add a, b + ld [$c302], a + ld a, [$c302+1] + adc a, 0 + ld [$c302+1], a + + ld a, [$c302+1] + cp a, $10 ; $10 00 = 1 second + jp c, .doneWithTimer2 ; if the timer is less than $0800, skip to end + + ;otherwise reset the timer + ld a, 0 + ld [$c302], a + ld [$c302+1], a + +.doneWithTimer2 + + ret + +.fDraw: + ret + +.SpriteTiles: db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $e0,$00,$e0,$10,$e0,$10,$e0,$10,$f0,$08,$f0,$08,$f0,$08,$f0,$09 - db $00,$00,$00,$00,$00,$0f,$00,$30,$00,$40,$00,$80,$00,$80,$00,$00 - db $00,$00,$00,$00,$00,$80,$00,$60,$00,$10,$00,$08,$00,$08,$00,$04 - db $f0,$09,$f8,$05,$f8,$05,$f8,$04,$f8,$04,$f8,$04,$fc,$02,$fc,$02 - db $00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$40,$00,$30,$00,$0f - db $00,$04,$00,$04,$00,$04,$00,$08,$00,$08,$00,$10,$00,$60,$00,$80 - db $00,$00,$00,$00,$00,$00,$00,$00,$07,$1f,$0f,$30,$1f,$62,$7f,$81 - db $00,$00,$00,$00,$00,$00,$fc,$fc,$e0,$1e,$fe,$3e,$e0,$1c,$f0,$90 - db $01,$02,$03,$04,$03,$04,$03,$04,$03,$04,$03,$04,$03,$04,$07,$88 - db $fc,$00,$fc,$01,$fc,$01,$f9,$02,$f3,$04,$e7,$08,$cf,$10,$cf,$10 - db $78,$86,$f0,$08,$f0,$08,$e0,$10,$e0,$10,$c0,$21,$c0,$21,$81,$42 - db $78,$7f,$10,$15,$08,$29,$7c,$75,$7e,$c7,$7f,$a1,$ff,$00,$fe,$81 - db $07,$08,$07,$88,$07,$c8,$0f,$e0,$07,$20,$07,$90,$07,$b0,$07,$90 - db $9f,$20,$9f,$20,$cf,$11,$e7,$0a,$f4,$06,$f5,$04,$f6,$04,$f5,$04 - db $f9,$7a,$de,$8f,$a9,$03,$55,$01,$a8,$02,$55,$00,$aa,$00,$55,$00 - db $fd,$42,$fd,$02,$3f,$c0,$0e,$31,$81,$9e,$8f,$f0,$8e,$71,$5e,$9e - db $07,$90,$07,$d0,$07,$90,$00,$90,$0f,$9f,$80,$55,$00,$d5,$90,$35 - db $ff,$00,$ff,$00,$ff,$00,$3f,$00,$be,$81,$5e,$41,$ec,$e2,$ec,$e2 - db $f6,$04,$75,$84,$77,$85,$36,$46,$35,$44,$13,$20,$1f,$20,$1f,$20 - db $aa,$00,$55,$01,$ff,$ff,$01,$01,$f9,$05,$fe,$02,$ff,$02,$fe,$02 - db $33,$ae,$ff,$47,$79,$47,$fb,$46,$7e,$44,$e5,$5c,$3e,$44,$b9,$46 - db $5b,$0f,$ac,$04,$56,$02,$ab,$81,$d5,$81,$ab,$81,$d5,$81,$ab,$81 - db $14,$10,$08,$08,$04,$04,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02 - db $ff,$02,$fe,$02,$ff,$02,$fe,$02,$ff,$02,$fe,$02,$ff,$02,$fe,$03 - db $3c,$42,$9e,$21,$5e,$21,$9e,$21,$5f,$20,$af,$10,$4f,$10,$af,$11 - db $d5,$81,$ab,$81,$d5,$81,$ab,$81,$d5,$81,$aa,$82,$d6,$82,$aa,$02 - db $02,$02,$02,$02,$02,$02,$02,$02,$02,$06,$04,$04,$04,$0c,$08,$18 - db $01,$02,$00,$01,$00,$01,$00,$00,$00,$00,$00,$80,$80,$40,$c0,$23 - db $ff,$01,$ff,$01,$fc,$01,$70,$83,$40,$8c,$00,$30,$00,$c1,$00,$0f - db $4f,$11,$8f,$31,$e7,$f9,$03,$8d,$03,$3d,$01,$7f,$01,$ff,$01,$ff - db $56,$02,$aa,$02,$56,$02,$ad,$07,$54,$04,$ad,$04,$55,$04,$ac,$05 - db $00,$30,$20,$60,$40,$c0,$80,$80,$00,$80,$00,$80,$00,$80,$00,$00 - db $c0,$26,$e0,$08,$c0,$10,$80,$23,$80,$47,$00,$8f,$00,$1f,$00,$bf - db $00,$3f,$00,$7f,$00,$ff,$00,$ff,$00,$fe,$00,$fe,$00,$fc,$00,$f0 - db $01,$ff,$01,$ff,$01,$ff,$01,$bf,$00,$bf,$00,$ff,$00,$3f,$00,$3f - db $54,$05,$b8,$1d,$60,$2c,$c0,$66,$80,$e6,$00,$e6,$00,$e6,$00,$e4 - db $01,$1e,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$1c,$1c,$23,$3b - db $fe,$00,$1e,$e1,$02,$1d,$01,$02,$03,$04,$03,$04,$07,$08,$0f,$10 - db $00,$ff,$80,$7f,$80,$7f,$c0,$3e,$e0,$10,$e0,$18,$c0,$28,$80,$48 - db $00,$e0,$00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$1f,$00,$1f,$00,$1f,$00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$0f - db $00,$e4,$00,$e4,$00,$c4,$00,$e4,$00,$e4,$00,$e8,$00,$e8,$00,$e4 - db $20,$38,$10,$18,$08,$0c,$08,$0e,$04,$07,$02,$03,$01,$01,$01,$01 - db $ff,$f0,$3f,$20,$2e,$31,$1c,$12,$1e,$1e,$0e,$0e,$04,$84,$08,$c8 - db $80,$48,$00,$88,$00,$08,$00,$08,$00,$08,$00,$08,$00,$00,$7f,$00 - db $00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$07,$00,$03,$f8,$03 - db $00,$e4,$00,$e4,$00,$f4,$00,$f6,$00,$f6,$00,$f6,$00,$fc,$1c,$e2 - db $91,$f0,$67,$60,$1f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $3c,$c2,$7e,$81,$3f,$40,$9f,$20,$cf,$10,$e7,$08,$f3,$04,$f9,$02 - db $ff,$00,$7f,$00,$3f,$80,$3f,$80,$9f,$40,$8f,$40,$c7,$20,$e7,$10 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$f8,$07,$f8,$07,$f0,$0c - db $ff,$00,$ff,$00,$ff,$00,$f3,$0c,$00,$ff,$00,$00,$00,$fe,$00,$07 - db $ff,$00,$ff,$00,$ff,$00,$00,$ff,$00,$c0,$00,$00,$00,$00,$00,$80 - db $fc,$01,$fe,$00,$01,$ff,$06,$07,$38,$38,$40,$40,$40,$60,$40,$7f - db $e3,$18,$71,$8c,$fa,$c7,$7e,$fe,$02,$02,$02,$02,$02,$02,$02,$fe - db $f8,$04,$f8,$04,$f8,$04,$f8,$06,$fc,$02,$fc,$03,$fe,$01,$fe,$01 - db $00,$f0,$00,$1e,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$00,$00,$00,$00,$fc,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00 - db $3f,$3f,$00,$00,$00,$00,$00,$ce,$00,$33,$00,$00,$00,$00,$00,$00 - db $fe,$fe,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$00,$00,$00,$00,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$bf,$00,$ef,$00,$00,$00,$00 - db $00,$80,$00,$80,$00,$80,$80,$40,$80,$40,$80,$40,$80,$40,$80,$40 - db $80,$40,$80,$60,$c0,$20,$c0,$20,$c0,$20,$c0,$20,$c0,$20,$c0,$20 - db $00,$10,$00,$10,$00,$10,$00,$10,$00,$10,$00,$10,$00,$00,$ff,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$9f,$60 - db $3f,$80,$1f,$c0,$1f,$40,$0c,$63,$08,$24,$00,$30,$00,$10,$00,$10 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$40,$c0,$20,$e0,$10 - db $f0,$08,$f8,$04,$fc,$02,$fe,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$40,$c0,$20,$c0,$20 - db $e0,$10,$f0,$08,$f8,$04,$fc,$02,$fe,$01,$ff,$00,$ff,$00,$ff,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$3f,$40,$3f,$40 - db $1f,$20,$1f,$20,$0f,$10,$0f,$10,$07,$08,$07,$08,$07,$08,$03,$04 - db $03,$04,$01,$02,$01,$02,$00,$01,$00,$01,$00,$01,$00,$00,$00,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$80,$7f,$80 - db $3f,$40,$3f,$40,$1f,$20,$1f,$20,$1f,$20,$0f,$10,$0f,$10,$07,$08 - db $07,$08,$03,$04,$03,$04,$03,$04,$01,$02,$01,$02,$00,$01,$00,$01 - db $00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $0f,$10,$0f,$10,$07,$08,$07,$08,$03,$04,$03,$04,$03,$04,$01,$02 - db $00,$00,$00,$00,$00,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $ff,$00,$ff,$00,$8c,$73,$00,$fe,$00,$00,$00,$00,$00,$00,$00,$00 - db $ff,$00,$ff,$00,$00,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$01,$fe,$01 - db $fc,$02,$fc,$02,$fc,$02,$fe,$01,$fe,$01,$fe,$01,$fe,$00,$fe,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$01 - db $ff,$00,$7f,$80,$7f,$80,$7f,$80,$7f,$80,$ff,$00,$ff,$00,$ff,$00 - db $00,$01,$00,$01,$00,$01,$01,$02,$01,$02,$01,$02,$01,$02,$01,$02 - db $ff,$00,$ff,$00,$fc,$02,$fc,$02,$f8,$04,$f8,$04,$f0,$08,$f0,$08 - db $f0,$08,$e0,$10,$e0,$10,$e0,$10,$c0,$20,$c0,$20,$80,$40,$80,$40 - db $80,$40,$00,$80,$00,$80,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00 - db $fe,$00,$fe,$00,$fe,$00,$fe,$00,$fe,$00,$fe,$00,$fe,$00,$fc,$02 - db $f0,$0c,$c0,$30,$00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$01,$01,$02,$03,$04,$07,$08,$0f,$10,$1f,$20,$3f,$40,$3f,$00 - db $00,$00,$00,$02,$02,$04,$06,$08,$0e,$10,$1e,$20,$3e,$40,$7e,$80 - db $fe,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $fc,$01,$fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 -FoolTilesEnd: + db $00,$00,$01,$01,$01,$01,$01,$01,$0f,$0f,$1f,$10,$1f,$10,$0f,$0c + db $a0,$a0,$f8,$58,$fc,$04,$5e,$a2,$ff,$01,$ff,$00,$ff,$00,$ff,$00 + db $00,$00,$00,$00,$00,$00,$02,$02,$07,$05,$ff,$fd,$ff,$01,$ff,$01 + db $03,$03,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$93,$7e,$52,$3c,$34,$08,$08 + db $ff,$01,$ff,$01,$ff,$01,$ff,$01,$ff,$c9,$3f,$29,$1e,$1a,$04,$04 + db $00,$00,$00,$00,$00,$00,$04,$04,$0e,$0a,$ff,$fd,$ff,$01,$ff,$01 + db $ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$93,$fc,$94,$78,$58,$20,$20 + db $ff,$01,$ff,$01,$ff,$01,$ff,$01,$ff,$c9,$7e,$4a,$3c,$2c,$10,$10 + db $00,$00,$03,$03,$0c,$0c,$10,$10,$20,$20,$20,$20,$40,$40,$40,$40 + db $00,$00,$c0,$c0,$30,$30,$08,$08,$04,$04,$04,$04,$02,$02,$02,$02 + db $40,$40,$40,$40,$20,$20,$20,$20,$10,$10,$0c,$0c,$03,$03,$00,$00 + db $02,$02,$02,$02,$04,$04,$04,$04,$08,$08,$30,$30,$c0,$c0,$00,$00 +.SpriteTilesEnd: -FoolMap: - db $61, $6f, $1b, $1c, $1d, $70, $71, $6f - db $62, $6f, $1e, $1f, $20, $72, $6f, $6f - db $63, $64, $6e, $21, $22, $23, $6f, $73 - db $1a, $65, $24, $25, $26, $27, $6f, $74 - db $1a, $66, $28, $29, $2a, $2b, $2c, $75 - db $5d, $67, $2d, $2e, $2f, $30, $31, $1a - db $5e, $5f, $68, $32, $33, $34, $35, $1a - db $6f, $60, $36, $37, $38, $39, $3a, $79 - db $5b, $6d, $3b, $3c, $3d, $3e, $78, $76 - db $3f, $40, $41, $42, $43, $44, $5c, $77 - db $45, $46, $47, $1a, $48, $49, $5a, $6c - db $69, $4a, $6f, $6f, $7b, $4b, $4c, $6f - db $6f, $4d, $4e, $4f, $6a, $50, $51, $6b - db $6f, $52, $1a, $53, $54, $55, $56, $57 - db $6f, $7a, $58, $1a, $1a, $1a, $1a, $1a - db $6f, $6f, $59, $1a, $1a, $1a, $1a, $1a -FoolMapEnd: \ No newline at end of file +.KeyArtTiles: + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $1f,$00,$0f,$00,$0f,$00,$0f,$00,$07,$00,$07,$00,$07,$00,$07,$00 + db $07,$00,$03,$00,$03,$00,$03,$00,$03,$00,$03,$00,$01,$00,$01,$00 + db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$e7,$1f,$cf,$30,$9f,$62,$7f,$81 + db $ff,$00,$ff,$00,$ff,$00,$ff,$fc,$e1,$1e,$ff,$3e,$e1,$1e,$90,$ff + db $f8,$00,$f8,$00,$f8,$00,$f8,$00,$f8,$00,$f8,$00,$70,$80,$30,$c0 + db $00,$00,$00,$01,$00,$01,$01,$02,$03,$04,$07,$08,$0f,$10,$0f,$10 + db $79,$86,$f7,$08,$f7,$08,$ef,$10,$ef,$10,$de,$21,$de,$21,$bd,$42 + db $c0,$7f,$80,$7f,$00,$ff,$80,$7f,$f0,$cf,$f8,$87,$f8,$07,$f8,$87 + db $00,$f0,$00,$fc,$00,$f8,$00,$f8,$00,$f8,$00,$f8,$00,$fc,$80,$7c + db $1f,$20,$1f,$20,$0f,$11,$07,$0a,$04,$06,$05,$04,$06,$04,$05,$04 + db $fd,$7a,$de,$8f,$a9,$03,$55,$01,$a8,$02,$55,$00,$aa,$00,$55,$00 + db $fc,$43,$fd,$02,$3e,$c1,$0e,$31,$81,$9e,$8f,$f0,$8e,$71,$5e,$9e + db $80,$7c,$80,$7c,$00,$fc,$00,$fc,$17,$ff,$c4,$ff,$0c,$ff,$9f,$3f + db $00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$40,$c0,$e0,$e0,$e1,$e0 + db $06,$04,$05,$04,$07,$05,$86,$06,$84,$04,$c0,$00,$c0,$00,$c0,$00 + db $aa,$00,$55,$01,$ff,$ff,$3f,$01,$3f,$01,$3e,$02,$3f,$02,$1e,$02 + db $33,$ae,$ff,$47,$79,$47,$fb,$46,$7e,$44,$e5,$5c,$3e,$44,$b9,$46 + db $5f,$0f,$af,$07,$57,$03,$ab,$81,$d5,$81,$ab,$81,$d5,$81,$ab,$81 + db $d1,$f0,$8f,$f8,$87,$fc,$87,$fe,$87,$fe,$87,$fe,$87,$fe,$87,$fe + db $1f,$02,$1e,$02,$1f,$02,$1e,$02,$1f,$02,$1e,$02,$0f,$02,$0e,$03 + db $3c,$42,$9e,$21,$5e,$21,$9e,$21,$5f,$20,$af,$10,$4f,$10,$af,$11 + db $d5,$81,$ab,$81,$d5,$81,$ab,$81,$d5,$81,$ab,$83,$d7,$83,$ab,$03 + db $87,$fe,$87,$fe,$87,$fe,$87,$fe,$87,$fe,$0f,$fc,$0f,$fc,$1f,$f8 + db $fc,$00,$fe,$00,$fe,$00,$ff,$00,$ff,$00,$7f,$00,$3f,$03,$1f,$07 + db $0f,$01,$0f,$01,$0f,$03,$0f,$0f,$3f,$3f,$ff,$ff,$ff,$ff,$ff,$ff + db $4f,$11,$8f,$31,$e7,$f9,$e3,$ed,$ff,$fd,$ff,$ff,$ff,$ff,$ff,$ff + db $57,$03,$ab,$03,$57,$03,$af,$07,$55,$04,$ae,$04,$55,$04,$ae,$05 + db $3f,$f0,$7f,$e0,$ff,$c0,$ff,$80,$7f,$80,$7f,$80,$7f,$80,$ff,$00 + db $1f,$0f,$7f,$7f,$7f,$7f,$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,$fc,$fc + db $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$bf,$ff,$1f,$3f,$1f,$3f + db $54,$05,$be,$1d,$7d,$3c,$ff,$7e,$ff,$fe,$ff,$fe,$ff,$fe,$ff,$fe + db $e0,$00,$f8,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$1c,$e3,$3b + db $00,$00,$00,$01,$c0,$01,$e1,$02,$e1,$06,$e3,$04,$c7,$08,$8f,$10 + db $ff,$ff,$7f,$ff,$ff,$7f,$ff,$3f,$fe,$1e,$e8,$18,$c0,$20,$88,$40 + db $f8,$f8,$c0,$c0,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f + db $fc,$fc,$fc,$fc,$fc,$fc,$fe,$fe,$fe,$fe,$fc,$fc,$fc,$fc,$fc,$fc + db $e0,$38,$f0,$18,$f8,$0c,$f8,$0e,$fc,$07,$fe,$03,$ff,$01,$ff,$01 + db $ff,$f0,$3f,$20,$3c,$23,$1c,$12,$1e,$1e,$0f,$0e,$07,$84,$0f,$c8 + db $18,$80,$38,$80,$3c,$00,$7c,$00,$fc,$00,$fc,$00,$fc,$00,$ff,$00 + db $1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$1f,$ff,$1f + db $fc,$fc,$fc,$fc,$fe,$fe,$fe,$fe,$ff,$ff,$ff,$ff,$f0,$fc,$bc,$c2 + db $9f,$f0,$fb,$64,$f5,$0a,$ee,$11,$55,$aa,$aa,$55,$55,$aa,$aa,$55 + db $7c,$82,$7e,$81,$3f,$40,$1f,$20,$0f,$90,$87,$48,$43,$a4,$a1,$52 + db $55,$2a,$3b,$04,$15,$8a,$8e,$11,$85,$4a,$c2,$05,$e1,$02,$e2,$11 + db $55,$aa,$aa,$55,$55,$aa,$aa,$55,$11,$ee,$af,$57,$47,$bf,$ae,$5f + db $55,$aa,$aa,$55,$55,$aa,$af,$5f,$ff,$ff,$f0,$ff,$fe,$ff,$0f,$ff + db $55,$aa,$aa,$55,$55,$aa,$ff,$ff,$ff,$ff,$00,$ff,$00,$ff,$80,$ff + db $50,$a9,$a8,$54,$fd,$fd,$fe,$ff,$38,$f8,$40,$c0,$40,$e0,$40,$ff + db $f1,$08,$60,$9c,$d3,$ef,$7f,$ff,$01,$01,$01,$01,$01,$01,$01,$ff + db $16,$ef,$ae,$57,$46,$bf,$af,$57,$03,$ff,$ab,$57,$01,$ff,$ab,$55 + db $f0,$ff,$3e,$ff,$07,$ff,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff + db $00,$ff,$00,$ff,$fc,$ff,$ff,$ff,$7f,$ff,$00,$ff,$00,$ff,$00,$ff + db $3f,$ff,$00,$ff,$01,$ff,$ff,$ff,$ff,$ff,$01,$ff,$00,$ff,$00,$ff + db $ff,$ff,$00,$ff,$c0,$ff,$f0,$ff,$ff,$ff,$ff,$ff,$00,$ff,$00,$ff + db $00,$ff,$00,$ff,$00,$ff,$02,$ff,$ff,$ff,$ff,$ff,$00,$ff,$00,$ff + db $80,$ff,$80,$ff,$80,$ff,$c0,$ff,$c0,$ff,$c0,$ff,$e0,$ff,$e0,$7f + db $60,$ff,$60,$ff,$60,$ff,$60,$ff,$60,$ff,$30,$ff,$30,$ff,$30,$ff + db $1f,$00,$1f,$00,$1f,$00,$1f,$00,$1f,$00,$1f,$00,$1f,$00,$ff,$00 + db $80,$00,$c0,$00,$40,$00,$60,$00,$33,$00,$3f,$00,$3f,$00,$1f,$00 + db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$00,$3f,$00,$1f,$00 + db $0f,$00,$07,$00,$03,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $80,$00,$80,$00,$c0,$00,$c0,$00,$c0,$00,$e0,$00,$e0,$00,$f0,$00 + db $f0,$00,$f0,$00,$f8,$00,$f8,$00,$fc,$00,$fc,$00,$fe,$00,$fe,$00 + db $fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 + db $e0,$00,$e0,$00,$f0,$00,$f0,$00,$f8,$00,$f8,$00,$f8,$00,$fc,$00 + db $ff,$00,$ff,$00,$ff,$00,$ee,$11,$55,$aa,$aa,$55,$55,$aa,$aa,$55 + db $55,$aa,$aa,$55,$7f,$ff,$ff,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff + db $55,$aa,$af,$5f,$ff,$ff,$f8,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff + db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$00,$00 + db $01,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$00,$fe,$00,$fe,$00,$fe,$00 + db $fe,$00,$fe,$00,$fc,$00,$fc,$00,$fc,$00,$fc,$00,$fc,$00,$fc,$00 + db $00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$03,$00,$03,$00,$07,$00 + db $07,$00,$07,$00,$0f,$00,$0f,$00,$0f,$00,$1f,$00,$1f,$00,$3f,$00 + db $3f,$00,$3f,$00,$7f,$00,$7f,$00,$7f,$00,$ff,$00,$ff,$00,$ff,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00 + db $03,$00,$0f,$00,$3f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 + db $fe,$00,$fc,$00,$f8,$00,$f0,$00,$e0,$00,$c0,$00,$80,$00,$80,$00 + db $fe,$00,$fc,$00,$f8,$00,$f0,$00,$e0,$00,$c0,$00,$80,$00,$00,$00 + db $01,$ff,$23,$dd,$01,$ff,$ab,$55,$00,$ff,$22,$dd,$00,$ff,$88,$77 + db $5e,$bf,$b8,$44,$54,$aa,$ee,$11,$55,$aa,$aa,$55,$55,$aa,$aa,$55 + db $01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$80,$ff + db $00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff + db $55,$aa,$bb,$44,$55,$aa,$ee,$11,$55,$aa,$aa,$55,$55,$aa,$aa,$55 + db $55,$aa,$aa,$55,$55,$aa,$aa,$55,$11,$ee,$aa,$55,$44,$bb,$aa,$55 + db $11,$ee,$aa,$55,$44,$bb,$aa,$55,$00,$ff,$aa,$55,$00,$ff,$aa,$55 + db $00,$ff,$22,$dd,$00,$ff,$aa,$55,$00,$ff,$22,$dd,$00,$ff,$88,$77 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00 + db $c0,$00,$c0,$00,$e0,$00,$e0,$00,$f0,$00,$f0,$00,$f0,$00,$f8,$00 + db $f8,$00,$fc,$00,$fc,$00,$fe,$00,$fe,$00,$fe,$00,$ff,$00,$ff,$00 +.KeyArtTilesEnd: + +.BackgroundCopy: ; tiles start at 26 + db $75, $1a, $1b, $61, $61, $64, $1a, $1a + db $76, $1a, $1c, $61, $61, $65, $1a, $1a + db $77, $1a, $63, $1d, $1e, $1f, $1a, $66 + db $61, $5a, $20, $21, $22, $23, $1a, $67 + db $61, $5b, $24, $25, $26, $27, $28, $68 + db $58, $5c, $29, $2a, $2b, $2c, $2d, $61 + db $59, $58, $5d, $2e, $2f, $30, $31, $61 + db $1a, $59, $32, $33, $34, $35, $36, $6c + db $1a, $62, $37, $38, $39, $3a, $6b, $69 + db $3b, $3c, $3d, $3e, $3f, $40, $57, $6a + db $41, $42, $43, $1a, $44, $45, $56, $61 + db $5e, $46, $71, $71, $6e, $47, $48, $71 + db $72, $49, $4a, $4b, $5f, $4c, $4d, $60 + db $73, $4e, $6f, $4f, $50, $51, $52, $53 + db $74, $6d, $54, $70, $70, $70, $70, $70 + db $70, $70, $55, $70, $70, $70, $70, $70 +.BackgroundCopyEnd: diff --git a/00thefool.aseprite b/00thefool.aseprite index e98e81907e2e34e5bb553f6ae52c5df50def8d46..c313d4a9add632557a723c35f720f5bcb5925956 100644 GIT binary patch delta 1444 zcmV;V1zY;AGLSU_kQ$K!ehm;B008>&F9Bo#001wMjV1$hkqWW4k_!)u0{{RcAOipZ z00sa60A7>91s9WU3=Mx&0{{ScoW)p+k|QAq6!`ytz7ZP4*JzThI#Rn0jylkyl9ckZ zP!(5JSZ=Z0VhOwuW)Z0X>-i^S#-nURR4~HEc!S#V%!&u<)Gab%ts@s)a*s>^Ds3#M zsVoi;%>$;b$$@Ta6wd_Qi`&NBgNWQ22__z~cuez#S9}y|BSC*nP^o0w6S4RObO_cR z&DGXrA?;b!hp_r#DW(YQ0-FHMmPBBs1rgc`(KAu;^^VwWK&fwzI4H;8qp+q9BV#J3 zb-1-Ia-b9Mz)*Y$aN+~DwFnyIWk>aVhzl}yKq)|^v^>lTX*P&$ks`{DsQrN2x;VA9 zE(L67(bi2|DWiYle(h{gW^{e@RY+Dr@}3ZJL_8OEfnAZY3lUgVu(5iZ5HWd2*ys2< zyAc)3bs1;3mkp&IesPeF*m`t5#S+1jFcAe_1UV|DrPNYdM#Ldo6@65<9nRsm@q60* zxnSQ5^1RtWgR|kJI5)h(#+>D^hj|G1kLAQ}67~_?qw#;i##YT&YxN6I4oK|^Z};50 zVA!+HWjg=-R_w1jcAQ}dFF6(tA|SGZg6u9Kw!;%-geS)Xd6qWC7wD_9#xbqte#WEi zJ@(U?9T}&$-*4jS>*<{qQK+F#Dc}n3s)82lp*?Yxa4zOj!9%Y|^et~`=`VQeMSaKd zEGT7ki==8ZY2s_(|H#%76z7NRP{ve{cotA7}^pidA)=#^H-vljgBsPEAclN&Wq zcbdUZ1mP8%`4@3W4%7Q&bqw=XJnSG~!{0n&(KvteKd-|ue~xA~(TC9-$B&K$$_`DT zeTOw}9+ctgy2TJA)Z&|IQdTG6)pytSns{A5KApIW@6qASpUE!FhSOL3?Qa7!snh*% ztV_@S{3pNe<>=Qw315@w^8Om^Pxt%FeQ|SG{J>iy?_S1xz-3CK+X-*o{0vWZQ#u6> z?)6?c>?^&X>4V4fdBvic$}?K(Gq|l2m|;3 z{~RJ35p+DX>u!WFh7$b>WDLP17C4qXGpv-sS~SljNrQ(5yZ|oHvNN?6N9V8=q`o_- ze7QmM1LSo%sKZIX=Q0 z^JL@v$pVWkan3R;T=2yz@2s&-jtw^X=9Mi9C2apQ{{bLG7-(t$000Fb0st5Q2mt>B z00000000003X_l(Avt4UU|`?^Vr~Y)fCq?qiBLBRhA&_QVkRJFMq;yLQO5$r96-zl yWwQb?Cl+-8c*Fo>jQ{`u1t0^HcovKS1d|09V*v$|X%}7r2b0JbnE?osVi?S})|dPM delta 1251 zcmV<91RVR2HLfxOE*X&mehsb|008>&Apv9n001G8jV1$&tPioak_!*k0{{RcAOipZ z00sa60AiED1s9WU3=Myu0{{ScoUK@kw&NfOMEL)IUIhjfHLXS8*2F-=) zT1yhk6VWT%grXGHH8^dS5M48rEnHH)vH`grLLNZ>p?R{`HE)X>8^xOkXUzWmsCxvN zN({U#XT7+`g`$jAfAw$Hg+P=~-}%Y1Q@J-V?_Uqw3?_fj^1b4bzcQo!prupLvd3?) z4Q&$02y4vRjg(k@dX%3+%^*%lnU7Hymff_5-SlCfok;;Vhpj2ZDqZW4tnb<-2Fy+q zCtwE5>PcwEzISFm0%^kjpuDc}!J2E@!$cX;2-Jc2QG~ZhFd^s9lX!P&PZs12d3$w! zkY)RQ)pCE!3(TctEbiX053cCjWmdk`BD7>J!a^vpjTV;00R6Qv90XoSCkgNGAMd#~Rmv;BU@L0qo~M_X{c3-1K=1zC z`*r-k;)7p5$bYbFm0x-71dqGkyIY&v|I{yU1&)99a>iw!%XPP;UBb`uquWc~9UNNl zW&J}w=e%EWFNw!=u0Wqlh(4Gw^~=Nl_q8e@LBlun{~gt@>HYp!nfczl=S3fjJ~zeh z^J5UOLm)4Oa$Q`@KdogGIkWK(m;;mW14fhA6iu^76)*t-_>*`RH-B}|)oMgR5Cy;+ zcX!#iyZgr7-Sz)}BDJIg`;asg1LrW)Fb7GJ+>t{rdEE05`C**-6i~=xWEn>sb4wA$ zltlNG{LBfZlu=Ga^v}_sQb`rn)KJR{JDgERJq`4c+w6OCRsN(n!w$gA6gu2;00d${6FZZ-PlSx#ohYtpECAnwhL@mO19RWPwGl zqF;))msw$zHPX?4vYz}szdJVm>AwNTITwwM00005AOe%x7mNV|lV=!X0R)rF7+wJe NlPVdR0SA-B8O*BnW1av2 diff --git a/00thefool.asm b/00thefool.asm index ae727cd..69b87ad 100644 --- a/00thefool.asm +++ b/00thefool.asm @@ -1,123 +1,40 @@ ; original export script by gabriel reis, modified by shoofle -KeyArtTiles: - +.SpriteTiles: db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $e0,$00,$e0,$10,$e0,$10,$e0,$10,$f0,$08,$f0,$08,$f0,$08,$f0,$09 - db $00,$00,$00,$00,$00,$0f,$00,$30,$00,$40,$00,$80,$00,$80,$00,$00 - db $00,$00,$00,$00,$00,$80,$00,$60,$00,$10,$00,$08,$00,$08,$00,$04 - db $f0,$09,$f8,$05,$f8,$05,$f8,$04,$f8,$04,$f8,$04,$fc,$02,$fc,$02 - db $00,$00,$00,$00,$00,$00,$00,$80,$00,$80,$00,$40,$00,$30,$00,$0f - db $00,$04,$00,$04,$00,$04,$00,$08,$00,$08,$00,$10,$00,$60,$00,$80 - db $00,$00,$00,$00,$00,$00,$00,$00,$07,$1f,$0f,$30,$1f,$62,$7f,$81 - db $00,$00,$00,$00,$00,$00,$fc,$fc,$e0,$1e,$fe,$3e,$e0,$1c,$f0,$90 - db $01,$02,$03,$04,$03,$04,$03,$04,$03,$04,$03,$04,$03,$04,$07,$88 - db $fc,$00,$fc,$01,$fc,$01,$f9,$02,$f3,$04,$e7,$08,$cf,$10,$cf,$10 - db $78,$86,$f0,$08,$f0,$08,$e0,$10,$e0,$10,$c0,$21,$c0,$21,$81,$42 - db $78,$7f,$10,$15,$08,$29,$7c,$75,$7e,$c7,$7f,$a1,$ff,$00,$fe,$81 - db $07,$08,$07,$88,$07,$c8,$0f,$e0,$07,$20,$07,$90,$07,$b0,$07,$90 - db $9f,$20,$9f,$20,$cf,$11,$e7,$0a,$f4,$06,$f5,$04,$f6,$04,$f5,$04 - db $f9,$7a,$de,$8f,$a9,$03,$55,$01,$a8,$02,$55,$00,$aa,$00,$55,$00 - db $fd,$42,$fd,$02,$3f,$c0,$0e,$31,$81,$9e,$8f,$f0,$8e,$71,$5e,$9e - db $07,$90,$07,$d0,$07,$90,$00,$90,$0f,$9f,$80,$55,$00,$d5,$90,$35 - db $ff,$00,$ff,$00,$ff,$00,$3f,$00,$be,$81,$5e,$41,$ec,$e2,$ec,$e2 - db $f6,$04,$75,$84,$77,$85,$36,$46,$35,$44,$13,$20,$1f,$20,$1f,$20 - db $aa,$00,$55,$01,$ff,$ff,$01,$01,$f9,$05,$fe,$02,$ff,$02,$fe,$02 - db $33,$ae,$ff,$47,$79,$47,$fb,$46,$7e,$44,$e5,$5c,$3e,$44,$b9,$46 - db $5b,$0f,$ac,$04,$56,$02,$ab,$81,$d5,$81,$ab,$81,$d5,$81,$ab,$81 - db $14,$10,$08,$08,$04,$04,$02,$02,$02,$02,$02,$02,$02,$02,$02,$02 - db $ff,$02,$fe,$02,$ff,$02,$fe,$02,$ff,$02,$fe,$02,$ff,$02,$fe,$03 - db $3c,$42,$9e,$21,$5e,$21,$9e,$21,$5f,$20,$af,$10,$4f,$10,$af,$11 - db $d5,$81,$ab,$81,$d5,$81,$ab,$81,$d5,$81,$aa,$82,$d6,$82,$aa,$02 - db $02,$02,$02,$02,$02,$02,$02,$02,$02,$06,$04,$04,$04,$0c,$08,$18 - db $01,$02,$00,$01,$00,$01,$00,$00,$00,$00,$00,$80,$80,$40,$c0,$23 - db $ff,$01,$ff,$01,$fc,$01,$70,$83,$40,$8c,$00,$30,$00,$c1,$00,$0f - db $4f,$11,$8f,$31,$e7,$f9,$03,$8d,$03,$3d,$01,$7f,$01,$ff,$01,$ff - db $56,$02,$aa,$02,$56,$02,$ad,$07,$54,$04,$ad,$04,$55,$04,$ac,$05 - db $00,$30,$20,$60,$40,$c0,$80,$80,$00,$80,$00,$80,$00,$80,$00,$00 - db $c0,$26,$e0,$08,$c0,$10,$80,$23,$80,$47,$00,$8f,$00,$1f,$00,$bf - db $00,$3f,$00,$7f,$00,$ff,$00,$ff,$00,$fe,$00,$fe,$00,$fc,$00,$f0 - db $01,$ff,$01,$ff,$01,$ff,$01,$bf,$00,$bf,$00,$ff,$00,$3f,$00,$3f - db $54,$05,$b8,$1d,$60,$2c,$c0,$66,$80,$e6,$00,$e6,$00,$e6,$00,$e4 - db $01,$1e,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$1c,$1c,$23,$3b - db $fe,$00,$1e,$e1,$02,$1d,$01,$02,$03,$04,$03,$04,$07,$08,$0f,$10 - db $00,$ff,$80,$7f,$80,$7f,$c0,$3e,$e0,$10,$e0,$18,$c0,$28,$80,$48 - db $00,$e0,$00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$1f,$00,$1f,$00,$1f,$00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$0f - db $00,$e4,$00,$e4,$00,$c4,$00,$e4,$00,$e4,$00,$e8,$00,$e8,$00,$e4 - db $20,$38,$10,$18,$08,$0c,$08,$0e,$04,$07,$02,$03,$01,$01,$01,$01 - db $ff,$f0,$3f,$20,$2e,$31,$1c,$12,$1e,$1e,$0e,$0e,$04,$84,$08,$c8 - db $80,$48,$00,$88,$00,$08,$00,$08,$00,$08,$00,$08,$00,$00,$7f,$00 - db $00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$0f,$00,$07,$00,$03,$f8,$03 - db $00,$e4,$00,$e4,$00,$f4,$00,$f6,$00,$f6,$00,$f6,$00,$fc,$1c,$e2 - db $91,$f0,$67,$60,$1f,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $3c,$c2,$7e,$81,$3f,$40,$9f,$20,$cf,$10,$e7,$08,$f3,$04,$f9,$02 - db $ff,$00,$7f,$00,$3f,$80,$3f,$80,$9f,$40,$8f,$40,$c7,$20,$e7,$10 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$f8,$07,$f8,$07,$f0,$0c - db $ff,$00,$ff,$00,$ff,$00,$f3,$0c,$00,$ff,$00,$00,$00,$fe,$00,$07 - db $ff,$00,$ff,$00,$ff,$00,$00,$ff,$00,$c0,$00,$00,$00,$00,$00,$80 - db $fc,$01,$fe,$00,$01,$ff,$06,$07,$38,$38,$40,$40,$40,$60,$40,$7f - db $e3,$18,$71,$8c,$fa,$c7,$7e,$fe,$02,$02,$02,$02,$02,$02,$02,$fe - db $f8,$04,$f8,$04,$f8,$04,$f8,$06,$fc,$02,$fc,$03,$fe,$01,$fe,$01 - db $00,$f0,$00,$1e,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$00,$00,$00,$00,$fc,$00,$03,$00,$00,$00,$00,$00,$00,$00,$00 - db $3f,$3f,$00,$00,$00,$00,$00,$ce,$00,$33,$00,$00,$00,$00,$00,$00 - db $fe,$fe,$00,$00,$00,$00,$00,$00,$00,$ff,$00,$00,$00,$00,$00,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$bf,$00,$ef,$00,$00,$00,$00 - db $00,$80,$00,$80,$00,$80,$80,$40,$80,$40,$80,$40,$80,$40,$80,$40 - db $80,$40,$80,$60,$c0,$20,$c0,$20,$c0,$20,$c0,$20,$c0,$20,$c0,$20 - db $00,$10,$00,$10,$00,$10,$00,$10,$00,$10,$00,$10,$00,$00,$ff,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$9f,$60 - db $3f,$80,$1f,$c0,$1f,$40,$0c,$63,$08,$24,$00,$30,$00,$10,$00,$10 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$40,$c0,$20,$e0,$10 - db $f0,$08,$f8,$04,$fc,$02,$fe,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$40,$c0,$20,$c0,$20 - db $e0,$10,$f0,$08,$f8,$04,$fc,$02,$fe,$01,$ff,$00,$ff,$00,$ff,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$3f,$40,$3f,$40 - db $1f,$20,$1f,$20,$0f,$10,$0f,$10,$07,$08,$07,$08,$07,$08,$03,$04 - db $03,$04,$01,$02,$01,$02,$00,$01,$00,$01,$00,$01,$00,$00,$00,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$7f,$80,$7f,$80 - db $3f,$40,$3f,$40,$1f,$20,$1f,$20,$1f,$20,$0f,$10,$0f,$10,$07,$08 - db $07,$08,$03,$04,$03,$04,$03,$04,$01,$02,$01,$02,$00,$01,$00,$01 - db $00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $0f,$10,$0f,$10,$07,$08,$07,$08,$03,$04,$03,$04,$03,$04,$01,$02 - db $00,$00,$00,$00,$00,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $ff,$00,$ff,$00,$8c,$73,$00,$fe,$00,$00,$00,$00,$00,$00,$00,$00 - db $ff,$00,$ff,$00,$00,$ff,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$fe,$01,$fe,$01 - db $fc,$02,$fc,$02,$fc,$02,$fe,$01,$fe,$01,$fe,$01,$fe,$00,$fe,$00 - db $ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$01 - db $ff,$00,$7f,$80,$7f,$80,$7f,$80,$7f,$80,$ff,$00,$ff,$00,$ff,$00 - db $00,$01,$00,$01,$00,$01,$01,$02,$01,$02,$01,$02,$01,$02,$01,$02 - db $ff,$00,$ff,$00,$fc,$02,$fc,$02,$f8,$04,$f8,$04,$f0,$08,$f0,$08 - db $f0,$08,$e0,$10,$e0,$10,$e0,$10,$c0,$20,$c0,$20,$80,$40,$80,$40 - db $80,$40,$00,$80,$00,$80,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00 - db $fe,$00,$fe,$00,$fe,$00,$fe,$00,$fe,$00,$fe,$00,$fe,$00,$fc,$02 - db $f0,$0c,$c0,$30,$00,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$01,$01,$02,$03,$04,$07,$08,$0f,$10,$1f,$20,$3f,$40,$3f,$00 - db $00,$00,$00,$02,$02,$04,$06,$08,$0e,$10,$1e,$20,$3e,$40,$7e,$80 - db $fe,$01,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 - db $fc,$01,$fe,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00,$ff,$00 + db $00,$00,$01,$01,$01,$01,$01,$01,$0f,$0f,$1f,$10,$1f,$10,$0f,$0c + db $a0,$a0,$f8,$58,$fc,$04,$5e,$a2,$ff,$01,$ff,$00,$ff,$00,$ff,$00 + db $00,$00,$00,$00,$00,$00,$02,$02,$07,$05,$ff,$fd,$ff,$01,$ff,$01 + db $03,$03,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$93,$7e,$52,$3c,$34,$08,$08 + db $ff,$01,$ff,$01,$ff,$01,$ff,$01,$ff,$c9,$3f,$29,$1e,$1a,$04,$04 + db $00,$00,$00,$00,$00,$00,$04,$04,$0e,$0a,$ff,$fd,$ff,$01,$ff,$01 + db $ff,$00,$ff,$00,$ff,$00,$ff,$80,$ff,$93,$fc,$94,$78,$58,$20,$20 + db $ff,$01,$ff,$01,$ff,$01,$ff,$01,$ff,$c9,$7e,$4a,$3c,$2c,$10,$10 + db $00,$00,$03,$03,$0c,$0c,$10,$10,$20,$20,$20,$20,$40,$40,$40,$40 + db $00,$00,$c0,$c0,$30,$30,$08,$08,$04,$04,$04,$04,$02,$02,$02,$02 + db $40,$40,$40,$40,$20,$20,$20,$20,$10,$10,$0c,$0c,$03,$03,$00,$00 + db $02,$02,$02,$02,$04,$04,$04,$04,$08,$08,$30,$30,$c0,$c0,$00,$00 +.SpriteTilesEnd: - - -BackgroundCopy: ; tiles start at 26 - db $61, $6f, $1b, $1c, $1d, $70, $71, $6f - db $62, $6f, $1e, $1f, $20, $72, $6f, $6f - db $63, $64, $6e, $21, $22, $23, $6f, $73 - db $1a, $65, $24, $25, $26, $27, $6f, $74 - db $1a, $66, $28, $29, $2a, $2b, $2c, $75 - db $5d, $67, $2d, $2e, $2f, $30, $31, $1a - db $5e, $5f, $68, $32, $33, $34, $35, $1a - db $6f, $60, $36, $37, $38, $39, $3a, $79 - db $5b, $6d, $3b, $3c, $3d, $3e, $78, $76 - db $3f, $40, $41, $42, $43, $44, $5c, $77 - db $45, $46, $47, $1a, $48, $49, $5a, $6c - db $69, $4a, $6f, $6f, $7b, $4b, $4c, $6f - db $6f, $4d, $4e, $4f, $6a, $50, $51, $6b - db $6f, $52, $1a, $53, $54, $55, $56, $57 - db $6f, $7a, $58, $1a, $1a, $1a, $1a, $1a - db $6f, $6f, $59, $1a, $1a, $1a, $1a, $1a +.Sprites: ; tiles start at 0 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $0a, $0b, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $0c, $0d, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $01, $02, $03, $01, $02, $07, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $04, $08, $06, $04, $05, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 +.SpritesEnd: diff --git a/20judgement.aseprite b/20judgement.aseprite index 024c517ddf032f074da4085eba475b89aaf33fc2..ada5ad54388449a841709ad1f4aac0f5496343f4 100644 GIT binary patch delta 749 zcmVj2r z6#lEIfeCsW-l*t+s11%7M>&CAWvHyX$OA9{U1hG@3x4gA9)tR&kUcGnIF%}LR?X~< zM+dl!h>w_M%##ca9RvrZ$|#d94Hp9))G(7r4K#nv#{NpV8(c%}Goj&NY=zp7v>{v# za+Lqa>9l+rsK4XrwdY-B$86&<|C=4BG{%BAbUr6e1@0TRqs_{ipI1x#cy4FpdUfzh zoC}DS+k%Dr5+5XlbRM`04t(h6t;O~cv9!M0`3v?#qbOEI8tAd*yE?RblskO@m67JP zQ0sp~KBcs8ukgq8q7HM!Z-_XaSp!z-UyMlD_mxgiC@e&IMu%h*CtZ-Pf1xxUW`dr` zd~VYDxziiYItNZ~N}xTYw-hu089)tNeOH z^Jgg8eZJ56zwcPD9qm$|p%`$hcW8}y%gQjTv@4vHI}eVP3^z(3yrzX|@E`GwHqU<; z0Z;ca;FWH(0T`0{IjSRF1{k+C!-cL41R8ACJsT-TAt{AGaO9b@p7{iA@ek;$HzfBRR{Wu(?D`k6pY zug+Zl6?MUd>4Sib|At1!>j!{HIMpk6Y#b+a-7h_IV(w49O+R^QJsWiOYlZMnzqQq6 fJuCg}JI@QLoKqbs#25(58o zEQS9nYG8uihBqp@AZm*v#!*gSR~ahnF7f~jKu0;(?FE1Dk{*Nlp^!Z-i#U}ka#qdk zjR;4$jEIkzWzCZd4ILgArOGM~bP{j$A{dHFT*OK|UD+xIcstGG$A4Yau#-j&G=H6q z{grYzxQ5ziLc_t>3bh|;L%3SxDF2VA)9uqj{T)}YJ?|fn_)7Z5GC1q=5j9wdY`4_pNYKJ@3U#r74kw7%N;3-+N= z6ssaFbZq&q4y_*LN?$-_r1M&+^?xBxDec=U{AGGkhdJUmL>y<C-l#tWfaEOo`6|)SOvHaj#1&$OUQEH^Lc-r4 zUxJN+kL|i@%q7hOXB;pPLN81UV!H^0aE=LlgyB;e znHc-F?+(5N2=d~+XFYh8UvFss3?;kI_c{Of9qYBDUFtIw18(&Wtub#|8D^Dsg_CmU z!LgFzLJ5S|v@i|+Bfin*8Gj?-={^R$(rq>XLsCCSb)>fe#;wh8;jhj^JVCjCz=IbQ zJ}P2BoY59o?bDuJhhZrmg85$E^v{0*r(hz95+ptGupf0#DeGriG-_XdIPx)iQsVlx?<2dRuxBb#1 pC+2?YZTiVe>)D{IUn_(^{nl2O^=#Yu$NDEdKb18pJF}q=UI|`)aU=i$ diff --git a/CardHelpers.inc b/CardHelpers.inc new file mode 100644 index 0000000..91aea69 --- /dev/null +++ b/CardHelpers.inc @@ -0,0 +1,161 @@ +LoadCardDataAsync: ; to be called as async + ei + ld a, 1 + ldh [vBlocked], a + ldh a, [vSelectedCardIndex] + ldh [vPreviousCardIndex], a + + ld b, 0 + ld c, a ; load bc from a, the number of the card in the cards list + ld hl, Cards + 1 ; skip the length prefix + add hl, bc + add hl, bc + add hl, bc ; triple add bc entries are bank, addr, addr + + ld a, [hl+] + ld [rROMB0], a ; select the specified bank + ; follow the pointer we're looking at + ld a, [hl+] + ld c, a + ld a, [hl+] + ld b, a + + ld h, b + ld l, c ; hl now contains the address of the card data. + + ld a, LOW(.duringDraw) + ld [vAsyncNext], a + ld a, HIGH(.duringDraw) + ld [vAsyncNext+1], a + ld a, 0 + ld [vAsyncAfter], a + ld [vAsyncAfter+1], a + di + nop + nop + ret +.duringDraw + di ; these function calls should be fast so we'll disable interrupts and do them + nop + ; synchronously + + ; hl points to a card struct. + ; card struct starts with a sequence of length-prefixed strings in memory + ; so when we're done writing one, hl will be correctly placed to read the next + ; length-prefixed print doesn't require passing a length + ; so all we have to set is the destination for each + ld de, $9800 + 32*11 + 10 + call PrintString + ld de, $9800 + 32*12 + 10 + call PrintString + ld de, $9800 + 32*14 + 10 + call PrintString + ld de, $9800 + 32*15 + 10 + call PrintString + ld de, $9800 + 32*16 + 10 + call PrintString + + ei + + ; hl now contains the address after all the strings. + ; [hl+] and [hl+] read the length first, into bc + ld a, [hl+] + ld c, a + ld a, [hl+] + ld b, a ; bc has length + ld a, [hl+] + ld e, a + ld a, [hl+] + ld d, a ; de has source of tile range copy + + ld h, d + ld l, e ; source + ld de, $9800 + 32 + 1 ; destination + ld b, 16 ; height + ld c, 8 ; width + + ld a, LOW(CopyTilesToMapThreadsafe) + ld [vAsyncNext], a + ld a, HIGH(CopyTilesToMapThreadsafe) + ld [vAsyncNext+1], a + ld a, LOW(.afterCopyTiles) + ld [vAsyncAfter], a + ld a, HIGH(.afterCopyTiles) + ld [vAsyncAfter+1], a + di + nop + nop + ret +.afterCopyTiles + ei + ldh a, [vSelectedCardIndex] + ldh [vPreviousCardIndex], a + + ld b, 0 + ld c, a ; load bc from a, the number of the card in the cards list + ld hl, Cards + 1 ; skip the length prefix + add hl, bc + add hl, bc + add hl, bc ; triple add bc entries are bank, addr, addr + + ld a, [hl+] + ld [rROMB0], a ; select the specified bank + ; follow the pointer we're looking at + ld a, [hl+] + ld c, a + ld a, [hl+] + ld b, a + + ld h, b + ld l, c ; hl now contains the address of the card data. + di + call PassList + call PassList + call PassList + call PassList + call PassList ; skip the strings + ei + inc hl + inc hl ; skip tile map width + inc hl + inc hl ; skip tile map pointer + ld a, [hl+] + ld c, a + ld a, [hl+] + ld b, a ; bc has length of tile data + ld a, [hl+] + ld e, a + ld a, [hl+] + ld d, a ; de has source of tile range copy + + ld h, d + ld l, e ; hl takes the source + + ld de, $9000 + VARIABLE_TILES_START*$10 ; always load tile data into the same spot in vram + ld a, LOW(CopyRangeUnsafe) + ld [vAsyncNext], a + ld a, HIGH(CopyRangeUnsafe) + ld [vAsyncNext+1], a + ld a, LOW(.afterLoadingTiles) + ld [vAsyncAfter], a + ld a, HIGH(.afterLoadingTiles) + ld [vAsyncAfter+1], a + di + nop + nop + ret +.afterLoadingTiles + ei + ld a, 0 + ldh [vBlocked], a + + ld a, 0 + ld [vAsyncNext], a + ld [vAsyncNext+1], a + ld [vAsyncAfter], a + ld [vAsyncAfter+1], a + di + nop + nop + + ret diff --git a/ScreenCardBrowse.inc b/ScreenCardBrowse.inc index bc763c0..4f044fb 100644 --- a/ScreenCardBrowse.inc +++ b/ScreenCardBrowse.inc @@ -151,7 +151,7 @@ DrawDeckMinimap: .loop inc b ld a, b - cp a, 2 + cp a, 5 jp nz, .noNewLine ld [hl], $13 ld hl, $9800 + 32*2 + 11 @@ -185,167 +185,6 @@ DrawDeckMinimap: CardBrowseTeardown: ret -LoadCardDataAsync: ; to be called as async - ei - ld a, 1 - ldh [vBlocked], a - ldh a, [vSelectedCardIndex] - ldh [vPreviousCardIndex], a - - ld b, 0 - ld c, a ; load bc from a, the number of the card in the cards list - ld hl, Cards + 1 ; skip the length prefix - add hl, bc - add hl, bc - add hl, bc ; triple add bc entries are bank, addr, addr - - ld a, [hl+] - ld [rROMB0], a ; select the specified bank - ; follow the pointer we're looking at - ld a, [hl+] - ld c, a - ld a, [hl+] - ld b, a - - ld h, b - ld l, c ; hl now contains the address of the card data. - - ld a, LOW(.duringDraw) - ld [vAsyncNext], a - ld a, HIGH(.duringDraw) - ld [vAsyncNext+1], a - ld a, 0 - ld [vAsyncAfter], a - ld [vAsyncAfter+1], a - di - nop - nop - ret -.duringDraw - di ; these function calls should be fast so we'll disable interrupts and do them - nop - ; synchronously - - ; hl points to a card struct. - ; card struct starts with a sequence of length-prefixed strings in memory - ; so when we're done writing one, hl will be correctly placed to read the next - ; length-prefixed print doesn't require passing a length - ; so all we have to set is the destination for each - ld de, $9800 + 32*11 + 10 - call PrintString - ld de, $9800 + 32*12 + 10 - call PrintString - ld de, $9800 + 32*14 + 10 - call PrintString - ld de, $9800 + 32*15 + 10 - call PrintString - ld de, $9800 + 32*16 + 10 - call PrintString - - ei - - ; hl now contains the address after all the strings. - ; [hl+] and [hl+] read the length first, into bc - ld a, [hl+] - ld c, a - ld a, [hl+] - ld b, a ; bc has length - ld a, [hl+] - ld e, a - ld a, [hl+] - ld d, a ; de has source of tile range copy - - ld h, d - ld l, e ; source - ld de, $9800 + 32 + 1 ; destination - ld b, 16 ; height - ld c, 8 ; width - - ld a, LOW(CopyTilesToMapThreadsafe) - ld [vAsyncNext], a - ld a, HIGH(CopyTilesToMapThreadsafe) - ld [vAsyncNext+1], a - ld a, LOW(.afterCopyTiles) - ld [vAsyncAfter], a - ld a, HIGH(.afterCopyTiles) - ld [vAsyncAfter+1], a - di - nop - nop - ret -.afterCopyTiles - ei - ldh a, [vSelectedCardIndex] - ldh [vPreviousCardIndex], a - - ld b, 0 - ld c, a ; load bc from a, the number of the card in the cards list - ld hl, Cards + 1 ; skip the length prefix - add hl, bc - add hl, bc - add hl, bc ; triple add bc entries are bank, addr, addr - - ld a, [hl+] - ld [rROMB0], a ; select the specified bank - ; follow the pointer we're looking at - ld a, [hl+] - ld c, a - ld a, [hl+] - ld b, a - - ld h, b - ld l, c ; hl now contains the address of the card data. - di - call PassList - call PassList - call PassList - call PassList - call PassList ; skip the strings - ei - inc hl - inc hl ; skip tile map width - inc hl - inc hl ; skip tile map pointer - ld a, [hl+] - ld c, a - ld a, [hl+] - ld b, a ; bc has length of tile data - ld a, [hl+] - ld e, a - ld a, [hl+] - ld d, a ; de has source of tile range copy - - ld h, d - ld l, e ; hl takes the source - - ld de, $9000 + VARIABLE_TILES_START*$10 ; always load tile data into the same spot in vram - ld a, LOW(CopyRangeUnsafe) - ld [vAsyncNext], a - ld a, HIGH(CopyRangeUnsafe) - ld [vAsyncNext+1], a - ld a, LOW(.afterLoadingTiles) - ld [vAsyncAfter], a - ld a, HIGH(.afterLoadingTiles) - ld [vAsyncAfter+1], a - di - nop - nop - ret -.afterLoadingTiles - ei - ld a, 0 - ldh [vBlocked], a - - ld a, 0 - ld [vAsyncNext], a - ld [vAsyncNext+1], a - ld [vAsyncAfter], a - ld [vAsyncAfter+1], a - di - nop - nop - - ret CardBrowse.UITilemap: diff --git a/ScreenMainMenu.inc b/ScreenMainMenu.inc index 8114ad7..f635f16 100644 --- a/ScreenMainMenu.inc +++ b/ScreenMainMenu.inc @@ -40,8 +40,9 @@ MainMenuSetup_ScreenOff: ld de, $8010 + $80*16 ld bc, (SquaresTilesetEnd - SquaresTileset8) call CopyRangeUnsafe + def spacing equ $12 - + ld hl, CardBackSprites24 ; source def TileStartCardBackSprites24 equ 0 ld de, $8000 + TileStartCardBackSprites24*$10; destination of copy @@ -245,7 +246,6 @@ MainMenuUpdate: ret .doneWithMenuSelect - ld hl, vTime ldh a, [rDELTAT] ld b, a ldh a, [vTime] diff --git a/ScreenSpreadSelect.inc b/ScreenSpreadSelect.inc index 69ef836..e363eae 100644 --- a/ScreenSpreadSelect.inc +++ b/ScreenSpreadSelect.inc @@ -260,6 +260,8 @@ DrawSpreadAsync: ld [vAsyncAfter], a ld a, HIGH(.afterClear) ld [vAsyncAfter+1], a + di + nop ret ; return from async execution now that we've registered desire ; to call copytilestomapthreadsafe ; and then drawspread @@ -293,6 +295,8 @@ DrawSpreadAsync: ld [vAsyncAfter], a ld a, HIGH(.afterTitle) ld [vAsyncAfter+1], a + di + nop ret .afterTitle @@ -305,6 +309,8 @@ DrawSpreadAsync: ld [vAsyncAfter], a ld a, HIGH(DrawSpreadALittleAsync) ld [vAsyncAfter+1], a + di + nop ret DrawSpreadALittleAsync: @@ -322,6 +328,8 @@ DrawSpreadALittleAsync: ld [vAsyncAfter], a ld a, HIGH(.drawSpreadPositionDescription) ld [vAsyncAfter+1], a + di + nop ret .drawSpreadPositionDescription @@ -354,6 +362,8 @@ DrawSpreadALittleAsync: ld [vAsyncAfter], a ld a, HIGH(.drawSecondDescription) ld [vAsyncAfter+1], a + di + nop ret .drawSecondDescription @@ -365,11 +375,13 @@ DrawSpreadALittleAsync: ld a, 0 ld [vAsyncAfter], a ld [vAsyncAfter+1], a + di + nop ret SpreadSelectDraw: - di - ld hl, SquaresTiles + 1 + ld hl, SquaresTiles + inc hl ld b, 0 ldh a, [vFrameCountSquares] ld c, a @@ -380,55 +392,11 @@ SpreadSelectDraw: ld b, [hl] ld h, b ld l, c - ld de, $8000 + $1000 + $10 - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - inc de - ld a, [hl+] - ld [de], a - reti + ld de, $8000+$100*16 + 1*16 + ld bc, (SquaresTileset8 - SquaresTileset7) / 8 + call CopyRangeUnsafeBy8s + + ret SpreadSelectTeardown: ret @@ -491,7 +459,7 @@ DrawSpreadBigAndThreadsafe: call DrawBigCardSelected .doneDrawingSpread - ei + di nop nop ret diff --git a/main.asm b/main.asm index dc5538e..94c174d 100644 --- a/main.asm +++ b/main.asm @@ -17,6 +17,7 @@ DEF SCENE_TEARDOWN EQU SCENE_DRAW + 4 DEF INTERRUPT_LCD EQU $c111 def SHUFFLED_DECK equ $c200 ; location for the shuffled deck +def CARD_VARIABLES equ $c300 def ZEROES equ $D000 def ONES equ $D200 @@ -26,7 +27,7 @@ DEF SYSTEM_VARS_START equ ASYNC_VARS_START + $10 ; allocating $8 spaces for system variables, currently only using $3 bytes DEF rMYBTN EQU SYSTEM_VARS_START DEF rMYBTNP EQU rMYBTN + 1 -DEF rDELTAT EQU rMYBTNP + 1 +DEF rDELTAT EQU rMYBTNP + 1 ; delta_t where $1000 = 1 second def rLFSR equ rDELTAT + 1 ; 16 bit DEF GLOBAL_VARS_START EQU SYSTEM_VARS_START + $8 ; global app-wide variables go after GLOBAL_VARS_START. allocated $10 for them @@ -35,7 +36,11 @@ def VARIABLES_START equ GLOBAL_VARS_START + $10 ; WRAM Layout looks like this: ; $c000 - $c100 OAM DMA source -; $c101 - $c113 self-modifying code interrupts +; $c100 - $c114 self-modifying code interrupts +; $c200 - $c21a shuffled deck +; $c300 - $c400 card display variables +; $c300-$c30f timers +; $c300 - $c400 card display variables ; $d000 - $d400 zeroes and ones, just because they're handy! def VARIABLE_TILES_START equ 26 @@ -480,6 +485,7 @@ INCLUDE "CopyRangeSafe.inc" INCLUDE "CopyTilesSafe.inc" INCLUDE "ScreenMainMenu.inc" INCLUDE "ScreenSpreadSelect.inc" +INCLUDE "CardHelpers.inc" INCLUDE "ScreenCardRead.inc" INCLUDE "ScreenCardBrowse.inc" INCLUDE "ScreenShuffle.inc" diff --git a/source.zip b/source.zip index 46504a3aae9132d6bb88f2c736cae47d5dd7d335..adec502d7e81bab8fcdadbdff7e66a054424b50a 100644 GIT binary patch delta 7074 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 Fe*=yC+I9c{