diff --git a/gb-export.lua b/gb-export.lua index 005e6fe..28085c0 100644 --- a/gb-export.lua +++ b/gb-export.lua @@ -38,7 +38,7 @@ local plt = sprt.palettes[1] -- DEFINES THE PALETTE local tile_amount = 0 local tile_offset = 0 -local folder = string.find(filepath,"[^/]+$") -1 +local folder = string.find(filepath,"[^/]+$") - 1 filepath = string.sub(filepath,1,folder) local tile_name = "" @@ -391,7 +391,7 @@ local function export_asm(tab,map) end if do_map then -- CHECKS IF MAP IS TO BE EXPORTED - out_contents = out_contents .. map_name .. ":\n" + out_contents = out_contents .. map_name .. ": ; tiles start at " .. tile_offset .. "\n" for i, line in ipairs(map) do local linen = {} for x, mark in ipairs(line) do @@ -409,17 +409,23 @@ local function do_code() local tiles = generate_tileset(layer.tileset) -- GENERATES TILESET local map = generate_tilemap() -- GENERATES TILEMAP + local file_name = filepath .. tile_name + + if string.find(sprt.filename, ".aseprite$") ~= nil then + file_name = string.gsub(sprt.filename, ".aseprite$", "") + end + if (file_format == "C") then local c_file, h_file = export_c(tiles, map) - save_to_file(filepath..tile_name..".c", c_file) - save_to_file(filepath..tile_name..".h", h_file) + save_to_file(file_name ..".c", c_file) + save_to_file(file_name..".h", h_file) print(h_file.."\n") print(c_file) end if (file_format == "ASM") then local asm_file = export_asm(tiles, map) - save_to_file(filepath..tile_name..".asm", asm_file) + save_to_file(file_name..".asm", asm_file) end end @@ -431,4 +437,4 @@ if dlg_data.confirm then end if dlg_data.cancel then return -end \ No newline at end of file +end diff --git a/tarot.asm b/tarot.asm index 9328dbc..b7238ac 100644 --- a/tarot.asm +++ b/tarot.asm @@ -1,5 +1,17 @@ ; From https://gbdev.io/gb-asm-tutorial/part1/hello_world.html +; FF80 CALL +; FF81 LOW +; FF82 HIGH +; FF83 RET +; pattern repeats for the first 16 bytes so we can have some call vectors for the scene system +DEF SCENE_SETUP EQU $FF81 +DEF SCENE_UPDATE EQU SCENE_SETUP + 4 ; call then ret is 3+1 bytes +DEF SCENE_DRAW EQU SCENE_UPDATE + 4 +DEF SCENE_TEARDOWN EQU SCENE_DRAW + 4 +DEF rMYBTN EQU $FF90 +DEF rMYBTNP EQU rMYBTN + 1 + INCLUDE "hardware.inc" SECTION "Header", ROM0[$100] @@ -13,60 +25,157 @@ EntryPoint: ld a, 0 ld [rNR52], a + + + ld a, [Instructions] ; get the value of a call instruction so we can shove it into our handles + ld hl, SCENE_SETUP - 1 + ld [hl], a + ld hl, SCENE_UPDATE - 1 + ld [hl], a + ld hl, SCENE_DRAW - 1 + ld [hl], a + ld hl, SCENE_TEARDOWN - 1 + ld [hl], a + + ld a, [Instructions + 3] ; get the value of a ret instruction + ld hl, SCENE_SETUP + 2 + ld [hl], a + ld hl, SCENE_UPDATE + 2 + ld [hl], a + ld hl, SCENE_DRAW + 2 + ld [hl], a + ld hl, SCENE_TEARDOWN + 2 + ld [hl], a + + ; set up our scene vectors + ld hl, SCENE_SETUP + ld de, CardReadSetup + ld a, e + ld [hl+], a + ld a, d + ld [hl+], a + ld hl, SCENE_UPDATE + ld de, CardReadUpdate + ld a, e + ld [hl+], a + ld a, d + ld [hl+], a + ld hl, SCENE_DRAW + ld de, CardReadDraw + ld a, e + ld [hl+], a + ld a, d + ld [hl+], a + ld hl, SCENE_TEARDOWN + ld de, CardReadTeardown + ld a, e + ld [hl+], a + ld a, d + ld [hl+], a + ; Do not turn the LCD off outside of VBlank WaitVBlank: ld a, [rLY] cp 144 jp c, WaitVBlank - ; Turn the LCD off + call SCENE_SETUP - 1 + +Loop: + ld hl, rP1 + ld [hl], P1F_GET_DPAD + ld a, [hl] + ld a, [hl] + ld a, [hl] + ld a, [hl] + cpl + and a, %00001111 + ld b, a + ld [hl], P1F_GET_BTN + ld a, [hl] + ld a, [hl] + ld a, [hl] + ld a, [hl] + cpl + and a, %00001111 + swap a + or a, b + ld b, a + ld a, [rMYBTN] + cpl + and a, b + ld [rMYBTNP], a + ld a, b + ld [rMYBTN], a + + call SCENE_UPDATE - 1 + + ld b, 144 + call AwaitLine + + call SCENE_DRAW - 1 + + jp Loop + + + +CardReadSetup: +; Turn the LCD off ld a, 0 ld [rLCDC], a - ld de, UITiles ; source - ld hl, $8800 ; destination of copy + ld hl, UITiles ; source + ld de, $8800 ; destination of copy ld bc, UITilesEnd - UITiles ; length to copy call CopyRange - - ld de, BGTiles ; source - ld hl, $8000 ; destination of copy + + ld hl, BGTiles ; source + ld de, $8000 ; destination of copy ld bc, BGTilesEnd - BGTiles ; length to copy call CopyRange - - ld de, LetterTiles ; source - ld hl, $8000 + (128 + 16)*16 + + ld hl, LetterTiles ; map the small font into vram at ascii locations + ld de, $8000 + (127 + $21)*16 ld bc, LetterTilesEnd - LetterTiles call CopyRange - - ld de, BigLetterTiles - ld hl, $8000 + (128 + 16 + 32)*16 + + ld hl, BigLetterTiles + ld de, $8000 + (128 + 16 + 32)*16 ld bc, BigLetterTilesEnd - BigLetterTiles - call CopyRange + ; call CopyRange ld de, UITilemap ; origin ld hl, $9800 ; destination ld b, 18 ; height ld c, 20 ; width call CopyTilesToMap - + ld de, BGTilemap ; origin - ld hl, $9800 + 32 + 1 ; destination + ld hl, $9800 + 32 + 1 ; destination ld b, 16 ; height ld c, 8 ; width call CopyTilesToMap - - ld de, LittleLetters - ld hl, $9800 + 32*5 + 10 - ld b, 5 - ld c, 8 - call CopyTilesToMap - + + ; TheFool is 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 hl, TheFool + ld de, $9800 + 32*5 + 10 + call PrintString + ld de, $9800 + 32*6 + 10 + call PrintString + ld de, $9800 + 32*7 + 10 + call PrintString + ld de, $9800 + 32*8 + 10 + call PrintString + ld de, BigLetters ld hl, $9800 + 32*1 + 10 ld b, 2 ld c, 8 call CopyTilesToMap - + ; Turn the LCD on ld a, LCDCF_BLK01 | LCDCF_ON | LCDCF_BGON ld [rLCDC], a @@ -75,24 +184,138 @@ WaitVBlank: ld a, %11100100 ld [rBGP], a -Done: - jp Done + ld a, 0 + ldh [$FF90+2], a + + ret ; return from cardreadsetup + +CardReadUpdate: + ldh a, [rMYBTNP] + and a, %0000_1000 ; check if down is held + jp z, CardReadUpdateDoneDown + ldh a, [$FF90+2] + inc a ; increment when they press down because the stack has card 0 at the top + ldh [$FF90+2], a +CardReadUpdateDoneDown: + ldh a, [rMYBTNP] + and a, %0000_0100 + jp z, CardReadUpdateDoneUp + ldh a, [$FF90+2] + dec a ; decrement when they press up because the stack has card 0 at the top + ldh [$FF90+2], a +CardReadUpdateDoneUp: + ldh a, [$FF90+2] + cp a, 22 + jp nz, CardReadUpdateDoneZero + ld a, 0 + ldh [$FF90+2], a +CardReadUpdateDoneZero: + cp a, $FF + jp nz, CardReadUpdateReturn + ld a, 21 + ldh [$FF90+2], a +CardReadUpdateReturn: + ret + +CardReadDraw: + ld b, 11 ; 11 rows, and we stop before drawing row zero + ld hl, $9800+32*4+19 ; start point + ld de, 32 ; stride +CardReadDrawCopyTile: + ld a, $81 + ld [hl], a + add hl, de + dec b + jp nz, CardReadDrawCopyTile + + ld a, $87 + ld [hl], a ; draw the cap at the end + +CardReadDrawSelectedTile: + ldh a, [$FF90+2] + ld b, a + srl b + ld hl, $9800+32*4+19 ; start point + ld de, 32 ; stride + jp z, CardReadDrawDrawSelectedTile +CardReadDrawCountDownTile: + add hl, de + dec b + jp nz, CardReadDrawCountDownTile +CardReadDrawDrawSelectedTile: + ldh a, [$FF90+2] + and a, 1 + jp z, CardReadDraw_PickTileWithTop + ld a, $90 + ld [hl], a + add hl, de + ld a, $81 + cp a, [hl] + ld a, $91 + ld [hl], a + jp z, CardReadDrawReturn + ld a, $92 + ld [hl], a + jp CardReadDrawReturn +CardReadDraw_PickTileWithTop: + ld a, $82 + ld [hl], a +CardReadDrawReturn: + ret +CardReadTeardown: + ret +Instructions: + call Instructions + 2 + ret + +TheFool: + db 8, "THE FOOL" + db 6, "-begin" + db 5, "-leap" + db 8, "-naivete" +TheMagician: + db 3, "THE" + db 8, "MAGICIAN" +; subroutines + + +PrintString: ; write ascii string which has been prefixed by its length. + ld b, [hl] + inc hl +PrintBChars: ;write ascii characters. will not respect newlines or anything like that + ; hl should be the source of ascii text + ; de should be the location in the tile map to start writing at + ; b should be the length + ld a, [hli] + or a, %10000000 + ld [de], a + inc de + dec b + jp nz, PrintBChars + ret + +AwaitLine: ; put the line you want to reach in b + ld a, [rLY] + cp b + jp nz, AwaitLine + ret + CopyRange: - ; de is source - ; hl is destination + ; hl is source + ; de is destination ; bc is length to copy - ld a, [de] - ld [hli], a + ld a, [hli] + ld [de], a inc de dec bc - ld a, b + ld a, b or a, c ; check if bc is zero jp nz, CopyRange ret @@ -114,27 +337,28 @@ CopyTile: jp nz, CopyTile DoneWithLine: pop bc - + ld a, l add a, 32 - ld l, a - ld a, h + ld l, a + ld a, h adc a, 0 ld h, a ld a, l sub a, c - ld l, a - ld a, h + ld l, a + ld a, h sbc a, 0 - ld h, a - - dec b - ret z + ld h, a - jp CopyTilesToMap + dec b + jp nz, CopyTilesToMap + ret SECTION "Tile data", ROM0 +Spreads: + UITiles: db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $0f,$0f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10 @@ -152,10 +376,13 @@ UITiles: db $00,$00,$ff,$00,$ff,$00,$aa,$55,$00,$ff,$00,$ff,$ff,$ff,$ff,$ff db $63,$1f,$73,$0f,$63,$1f,$73,$0f,$63,$1f,$73,$0f,$63,$1f,$73,$0f db $ff,$ff,$ff,$ff,$00,$ff,$00,$ff,$55,$aa,$ff,$00,$ff,$00,$00,$00 + db $0f,$0f,$10,$10,$10,$10,$10,$10,$7f,$7f,$80,$80,$80,$80,$80,$80 + db $7f,$7f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10 + db $7f,$7f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 UITilesEnd: BGTiles: - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$01,$00,$02 db $00,$00,$00,$00,$00,$1f,$00,$60,$00,$80,$00,$00,$00,$00,$00,$00 db $00,$00,$00,$00,$00,$00,$00,$c0,$00,$20,$00,$10,$00,$10,$00,$08 @@ -170,34 +397,27 @@ BGTiles: db $f0,$fe,$20,$2b,$10,$53,$e8,$eb,$8c,$8e,$42,$43,$00,$01,$00,$03 db $00,$00,$00,$00,$00,$80,$00,$c0,$00,$40,$00,$20,$00,$60,$00,$20 db $3f,$40,$3e,$41,$1d,$22,$0a,$14,$01,$0c,$02,$08,$05,$08,$02,$08 - db $00,$f4,$a0,$1a,$50,$05,$a8,$02,$50,$05,$aa,$00,$55,$00,$aa,$00 + db $00,$f4,$a0,$1a,$50,$05,$a8,$02,$50,$05,$aa,$00,$55,$00,$aa,$01 db $80,$85,$00,$05,$00,$81,$00,$63,$02,$3d,$1f,$e0,$1c,$e3,$bd,$3c db $00,$20,$00,$a0,$00,$20,$00,$20,$1f,$3f,$00,$aa,$01,$ab,$01,$6b db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$80,$c0,$c0,$c0,$c0 db $05,$08,$02,$08,$04,$0b,$00,$0c,$00,$08,$00,$00,$00,$00,$00,$00 - db $55,$00,$aa,$00,$00,$ff,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01 + db $54,$01,$a9,$02,$00,$fe,$01,$02,$00,$02,$01,$04,$02,$04,$01,$04 db $46,$5c,$8f,$8e,$82,$8e,$86,$8d,$8c,$89,$ca,$b9,$7c,$89,$72,$8d db $a6,$1e,$50,$08,$a8,$04,$54,$02,$a8,$02,$54,$02,$a8,$02,$54,$02 db $20,$20,$10,$10,$08,$08,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04 - db $00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01,$00,$01 + db $02,$04,$01,$04,$02,$04,$01,$04,$02,$04,$01,$04,$02,$04,$01,$06 db $78,$85,$3c,$43,$bc,$43,$3c,$43,$be,$41,$5e,$21,$9e,$21,$5d,$22 db $a8,$02,$54,$02,$a8,$02,$54,$02,$a8,$02,$50,$04,$a8,$04,$50,$04 db $04,$04,$04,$04,$04,$04,$04,$04,$04,$0c,$08,$08,$08,$18,$10,$30 - db $00,$00,$00,$0f,$00,$30,$00,$40,$00,$40,$00,$40,$00,$40,$00,$42 - db $00,$01,$00,$ff,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $9c,$22,$1d,$62,$0c,$b2,$05,$1a,$04,$4a,$01,$86,$00,$82,$01,$82 + db $00,$02,$01,$02,$00,$03,$00,$07,$00,$18,$00,$60,$00,$80,$00,$00 + db $9c,$22,$1d,$62,$0c,$b2,$05,$1a,$04,$0a,$01,$06,$00,$82,$01,$82 db $a8,$04,$50,$04,$a8,$05,$53,$0f,$a0,$08,$50,$08,$a0,$08,$50,$08 db $20,$60,$40,$c0,$80,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$41,$00,$31,$10,$2f,$1c,$23,$1e,$21,$1e,$21,$1e,$21,$1c,$22 - db $00,$c0,$00,$38,$00,$07,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$82,$01,$82,$00,$c2,$01,$62,$00,$21,$00,$20,$00,$30,$00,$30 + db $00,$82,$01,$82,$00,$82,$01,$82,$00,$c1,$00,$c0,$00,$60,$00,$70 db $a0,$08,$40,$38,$80,$48,$00,$84,$00,$04,$00,$04,$00,$04,$00,$08 - db $00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$1e,$00,$20,$00,$40 - db $1c,$22,$1c,$22,$1c,$22,$10,$2e,$00,$f2,$00,$02,$00,$01,$00,$01 db $00,$30,$00,$30,$00,$30,$00,$10,$00,$10,$00,$10,$00,$10,$00,$10 db $00,$08,$00,$08,$00,$08,$00,$08,$00,$08,$00,$10,$00,$10,$00,$08 - db $00,$38,$00,$07,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - db $00,$01,$00,$fe,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $00,$10,$00,$10,$00,$10,$00,$10,$00,$10,$00,$08,$00,$04,$00,$06 db $00,$08,$00,$08,$00,$08,$00,$04,$00,$0c,$00,$0c,$00,$38,$38,$c4 db $00,$03,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 @@ -218,9 +438,53 @@ BGTiles: db $00,$00,$00,$01,$00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 db $00,$80,$00,$00,$00,$00,$00,$80,$00,$c0,$00,$20,$00,$20,$00,$20 db $00,$20,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$02,$00,$03 + db $00,$0c,$00,$10,$00,$20,$00,$40,$00,$80,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$02,$00,$0b,$00,$2f,$00,$b8,$00,$e0 + db $00,$01,$01,$02,$01,$02,$03,$04,$07,$08,$07,$08,$0f,$10,$1f,$20 + db $00,$30,$00,$30,$00,$18,$00,$0c,$00,$0e,$00,$06,$00,$03,$00,$01 + db $1f,$e0,$3e,$41,$1c,$22,$18,$24,$00,$18,$00,$08,$00,$08,$00,$90 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3c,$00,$33 + db $00,$e0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$83,$00,$8e,$00,$d8,$80,$70,$c0,$30,$c0,$20,$80,$40,$00,$80 + db $00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$00,$06 + db $00,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 BGTilesEnd: LetterTiles: db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$04,$00,$00,$04,$04 + db $28,$28,$28,$28,$28,$28,$08,$08,$00,$00,$00,$00,$00,$00,$00,$00 + db $04,$04,$24,$24,$2c,$2c,$28,$28,$fc,$fc,$28,$28,$fe,$fe,$28,$28 + db $38,$38,$60,$60,$e0,$e0,$70,$70,$30,$30,$20,$20,$e0,$e0,$60,$60 + db $e0,$e0,$b0,$b0,$b2,$b2,$e4,$e4,$08,$08,$16,$16,$35,$35,$27,$27 + db $1c,$1c,$74,$74,$60,$60,$38,$38,$3d,$3d,$37,$37,$3e,$3e,$3c,$3c + db $00,$00,$18,$18,$10,$10,$10,$10,$00,$00,$00,$00,$00,$00,$00,$00 + db $08,$08,$10,$10,$20,$20,$20,$20,$20,$20,$20,$20,$30,$30,$10,$10 + db $00,$00,$00,$00,$0e,$0e,$02,$02,$02,$02,$06,$06,$0c,$0c,$18,$18 + db $02,$02,$46,$46,$6c,$6c,$78,$78,$7c,$7c,$68,$68,$0c,$0c,$00,$00 + db $08,$08,$08,$08,$08,$08,$08,$08,$7c,$7c,$08,$08,$08,$08,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$08,$08,$08,$08,$18,$18,$10,$10 + db $00,$00,$00,$00,$00,$00,$3c,$3c,$20,$20,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$20,$20,$00,$00 + db $00,$00,$00,$00,$02,$02,$04,$04,$0c,$0c,$08,$08,$10,$10,$10,$10 + db $00,$00,$00,$00,$3c,$3c,$24,$24,$24,$24,$3c,$3c,$00,$00,$00,$00 + db $00,$00,$04,$04,$04,$04,$04,$04,$04,$04,$0c,$0c,$08,$08,$00,$00 + db $00,$00,$0c,$0c,$12,$12,$12,$12,$02,$02,$0e,$0e,$07,$07,$00,$00 + db $00,$00,$00,$00,$38,$38,$08,$08,$18,$18,$18,$18,$00,$00,$00,$00 + db $02,$02,$32,$32,$26,$26,$3e,$3e,$24,$24,$04,$04,$00,$00,$00,$00 + db $00,$00,$00,$00,$3e,$3e,$20,$20,$38,$38,$08,$08,$38,$38,$20,$20 + db $00,$00,$00,$00,$30,$30,$20,$20,$58,$58,$68,$68,$7c,$7c,$3c,$3c + db $00,$00,$1e,$1e,$03,$03,$03,$03,$02,$02,$04,$04,$04,$04,$00,$00 + db $00,$00,$3c,$3c,$24,$24,$38,$38,$18,$18,$1c,$1c,$38,$38,$00,$00 + db $00,$00,$00,$00,$3e,$3e,$64,$64,$7c,$7c,$0c,$0c,$08,$08,$10,$10 + db $00,$00,$00,$00,$10,$10,$00,$00,$00,$00,$10,$10,$10,$10,$00,$00 + db $00,$00,$08,$08,$00,$00,$00,$00,$0c,$0c,$04,$04,$0c,$0c,$18,$18 + db $00,$00,$04,$04,$1c,$1c,$30,$30,$60,$60,$78,$78,$1e,$1e,$02,$02 + db $00,$00,$00,$00,$00,$00,$3c,$3c,$40,$40,$78,$78,$00,$00,$00,$00 + db $00,$00,$20,$20,$30,$30,$18,$18,$0c,$0c,$1c,$1c,$30,$30,$00,$00 + db $0c,$0c,$3c,$3c,$24,$24,$0c,$0c,$08,$08,$08,$08,$00,$00,$08,$08 + db $00,$00,$04,$04,$1e,$1e,$3f,$3f,$36,$36,$3e,$3e,$1c,$1c,$00,$00 db $00,$00,$10,$10,$28,$28,$28,$28,$7c,$7c,$44,$44,$82,$82,$82,$82 db $00,$00,$7c,$7c,$22,$22,$22,$22,$3c,$3c,$22,$22,$22,$22,$7c,$7c db $00,$00,$3c,$3c,$42,$42,$40,$40,$40,$40,$40,$40,$42,$42,$3c,$3c @@ -231,8 +495,8 @@ LetterTiles: db $00,$00,$44,$44,$44,$44,$44,$44,$7c,$7c,$44,$44,$44,$44,$44,$44 db $00,$00,$38,$38,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$38,$38 db $00,$00,$0e,$0e,$04,$04,$04,$04,$04,$04,$04,$04,$44,$44,$38,$38 - db $44,$44,$48,$48,$50,$50,$60,$60,$60,$60,$50,$50,$48,$48,$44,$44 - db $00,$00,$e0,$e0,$40,$40,$40,$40,$40,$40,$40,$40,$44,$44,$fc,$fc + db $00,$00,$48,$48,$50,$50,$60,$60,$60,$60,$50,$50,$48,$48,$44,$44 + db $00,$00,$70,$70,$20,$20,$20,$20,$20,$20,$20,$20,$22,$22,$7e,$7e db $00,$00,$42,$42,$66,$66,$5a,$5a,$42,$42,$42,$42,$42,$42,$42,$42 db $00,$00,$64,$64,$64,$64,$54,$54,$54,$54,$4c,$4c,$4c,$4c,$44,$44 db $00,$00,$38,$38,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$38,$38 @@ -241,13 +505,49 @@ LetterTiles: db $00,$00,$78,$78,$44,$44,$44,$44,$7c,$7c,$48,$48,$48,$48,$44,$44 db $00,$00,$1c,$1c,$22,$22,$20,$20,$1c,$1c,$02,$02,$62,$62,$1c,$1c db $00,$00,$7c,$7c,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10 - db $00,$00,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$3c,$3c + db $00,$00,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$42,$bc,$bc db $00,$00,$44,$44,$44,$44,$28,$28,$28,$28,$28,$28,$10,$10,$10,$10 db $00,$00,$82,$82,$82,$82,$44,$44,$54,$54,$54,$54,$28,$28,$28,$28 db $00,$00,$44,$44,$28,$28,$28,$28,$10,$10,$28,$28,$28,$28,$44,$44 db $00,$00,$44,$44,$28,$28,$10,$10,$10,$10,$10,$10,$10,$10,$10,$10 db $00,$00,$7c,$7c,$08,$08,$08,$08,$10,$10,$20,$20,$20,$20,$7c,$7c - db $00,$00,$00,$00,$00,$18,$00,$66,$00,$66,$00,$18,$00,$00,$00,$00 + db $00,$00,$3c,$3c,$20,$20,$20,$20,$20,$20,$20,$20,$3c,$3c,$30,$30 + db $00,$00,$c0,$c0,$c0,$c0,$40,$40,$60,$60,$20,$20,$10,$10,$18,$18 + db $18,$18,$0f,$0f,$03,$03,$02,$02,$02,$02,$02,$02,$12,$12,$1e,$1e + db $08,$08,$1c,$1c,$34,$34,$04,$04,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3e,$3e,$00,$00 + db $20,$20,$18,$18,$0c,$0c,$04,$04,$00,$00,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$30,$30,$08,$08,$38,$38,$48,$48,$3c,$3c,$00,$00 + db $08,$08,$08,$08,$08,$08,$08,$08,$0e,$0e,$0d,$0d,$0b,$0b,$0e,$0e + db $00,$00,$00,$00,$00,$00,$0c,$0c,$1c,$1c,$10,$10,$18,$18,$0c,$0c + db $00,$00,$01,$01,$01,$01,$0f,$0f,$09,$09,$09,$09,$0b,$0b,$0e,$0e + db $80,$80,$80,$80,$8c,$8c,$9c,$9c,$1c,$1c,$10,$10,$1c,$1c,$18,$18 + db $38,$38,$2c,$2c,$20,$20,$3c,$3c,$20,$20,$20,$20,$20,$20,$20,$20 + db $00,$00,$00,$00,$1c,$1c,$1c,$1c,$1c,$1c,$1c,$1c,$0c,$0c,$30,$30 + db $20,$20,$20,$20,$20,$20,$38,$38,$38,$38,$24,$24,$20,$20,$00,$00 + db $10,$10,$00,$00,$30,$30,$10,$10,$10,$10,$10,$10,$00,$00,$00,$00 + db $00,$00,$10,$10,$00,$00,$10,$10,$10,$10,$10,$10,$10,$10,$30,$30 + db $10,$10,$16,$16,$1c,$1c,$1c,$1c,$16,$16,$18,$18,$00,$00,$00,$00 + db $28,$28,$20,$20,$20,$20,$30,$30,$10,$10,$10,$10,$00,$00,$00,$00 + db $00,$00,$30,$30,$30,$30,$34,$34,$6c,$6c,$2c,$2c,$04,$04,$00,$00 + db $00,$00,$00,$00,$00,$00,$20,$20,$70,$70,$50,$50,$50,$50,$10,$10 + db $00,$00,$00,$00,$38,$38,$28,$28,$38,$38,$28,$28,$38,$38,$00,$00 + db $00,$00,$60,$60,$60,$60,$50,$50,$70,$70,$40,$40,$60,$60,$00,$00 + db $00,$00,$00,$00,$3c,$3c,$2c,$2c,$3c,$3c,$0c,$0c,$08,$08,$0c,$0c + db $00,$00,$10,$10,$38,$38,$20,$20,$20,$20,$20,$20,$20,$20,$00,$00 + db $00,$00,$00,$00,$0c,$0c,$18,$18,$18,$18,$0c,$0c,$18,$18,$00,$00 + db $00,$00,$18,$18,$08,$08,$08,$08,$3f,$3f,$28,$28,$08,$08,$00,$00 + db $00,$00,$00,$00,$00,$00,$24,$24,$64,$64,$2c,$2c,$38,$38,$00,$00 + db $00,$00,$00,$00,$20,$20,$30,$30,$13,$13,$12,$12,$1c,$1c,$08,$08 + db $00,$00,$00,$00,$01,$01,$21,$21,$2b,$2b,$3e,$3e,$16,$16,$00,$00 + db $00,$00,$00,$00,$20,$20,$3c,$3c,$1c,$1c,$1c,$1c,$36,$36,$30,$30 + db $00,$00,$00,$00,$1a,$1a,$0a,$0a,$0c,$0c,$0c,$0c,$08,$08,$08,$08 + db $60,$60,$00,$00,$30,$30,$3e,$3e,$0c,$0c,$18,$18,$1c,$1c,$00,$00 + db $0e,$0e,$18,$18,$0c,$0c,$0c,$0c,$38,$38,$08,$08,$18,$18,$1c,$1c + db $20,$20,$30,$30,$20,$20,$10,$10,$10,$10,$10,$10,$00,$00,$00,$00 + db $30,$30,$38,$38,$10,$10,$10,$10,$10,$10,$18,$18,$18,$18,$30,$30 + db $00,$00,$00,$00,$32,$32,$3c,$3c,$78,$78,$00,$00,$00,$00,$00,$00 + db $06,$06,$7c,$7c,$5f,$5f,$5b,$5b,$5e,$5e,$72,$72,$03,$03,$00,$00 LetterTilesEnd: BigLetterTiles: @@ -311,49 +611,41 @@ UITilemap: db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $82 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $85, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $83, $86, $83, $83, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $84, $83, $84, $84, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $84, $80, $80, $80, $80, $80, $81 - db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $81 - db $8c, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $88, $80, $80, $80, $80, $80, $80, $80, $80, $80, $87 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $85, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $83, $86, $83, $83, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $84, $83, $84, $84, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $84, $80, $80, $80, $80, $80, $80 + db $8e, $80, $80, $80, $80, $80, $80, $80, $80, $89, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 + db $8c, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $88, $80, $80, $80, $80, $80, $80, $80, $80, $80, $80 UITilemapEnd: BGTilemap: - db $00, $00, $01, $02, $03, $00, $00, $00 + db $00, $00, $01, $02, $03, $00, $00, $00 db $00, $00, $04, $05, $06, $00, $00, $00 db $00, $00, $07, $08, $09, $00, $00, $00 db $00, $00, $0a, $0b, $0c, $0d, $00, $00 db $00, $00, $0e, $0f, $10, $11, $12, $00 db $00, $00, $13, $14, $15, $16, $17, $00 db $00, $00, $00, $18, $19, $1a, $1b, $00 - db $00, $00, $1c, $1d, $1e, $1f, $20, $00 - db $00, $00, $21, $22, $23, $24, $00, $00 - db $00, $25, $26, $00, $27, $28, $00, $00 - db $00, $29, $2a, $00, $2b, $2c, $00, $00 - db $00, $00, $00, $00, $2d, $2e, $2f, $00 - db $00, $30, $31, $32, $00, $33, $34, $00 - db $00, $35, $36, $37, $38, $39, $3a, $3b - db $00, $3c, $3d, $00, $00, $00, $00, $00 - db $00, $00, $3e, $00, $00, $00, $00, $00 + db $00, $00, $42, $1c, $1d, $1e, $1f, $00 + db $00, $38, $39, $3a, $20, $21, $00, $00 + db $3e, $3b, $40, $00, $22, $23, $00, $00 + db $3c, $3d, $41, $00, $24, $25, $00, $00 + db $43, $3f, $00, $00, $26, $27, $28, $00 + db $00, $29, $2a, $2b, $00, $2c, $2d, $00 + db $00, $2e, $2f, $30, $31, $32, $33, $34 + db $00, $35, $36, $00, $00, $00, $00, $00 + db $00, $00, $37, $00, $00, $00, $00, $00 BGTilemapEnd: -LittleLetters: - db $ab, $92, $95, $97, $99, $9e, $90, $90 - db $90, $90, $90, $90, $90, $90, $90, $90 - db $ab, $9c, $95, $91, $a0, $90, $90, $90 - db $90, $90, $90, $90, $90, $90, $90, $90 - db $ab, $9e, $91, $99, $a6, $95, $a4, $95 -LittleLettersEnd: - BigLetters: db $c1, $b1, $b6, $b0, $c2, $ba, $ba, $c4 db $b3, $b2, $b5, $b0, $c3, $b9, $b9, $c5 diff --git a/thefool.aseprite b/thefool.aseprite index 03b009e..34d8fed 100644 Binary files a/thefool.aseprite and b/thefool.aseprite differ diff --git a/thefool.asm b/thefool.asm new file mode 100644 index 0000000..68bf1ab --- /dev/null +++ b/thefool.asm @@ -0,0 +1,46 @@ + ; original export script by gabriel reis, modified by shoofle + + +tileset: + + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $0f,$0f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10 + db $7f,$7f,$80,$80,$80,$80,$80,$80,$7f,$7f,$10,$10,$10,$10,$10,$10 + db $00,$3c,$3c,$7e,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3 + db $42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$42,$c3,$3c,$7e,$00,$3c + db $00,$3c,$3c,$7e,$42,$c3,$5a,$db,$5a,$db,$5a,$db,$5a,$db,$5a,$db + db $5a,$db,$5a,$db,$5a,$db,$5a,$db,$5a,$db,$42,$c3,$3c,$7e,$00,$3c + db $0f,$0f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + db $ce,$f0,$c6,$f8,$0e,$f0,$16,$e8,$5e,$a0,$fe,$00,$fc,$00,$00,$00 + db $ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8,$ce,$f0,$c6,$f8 + db $00,$00,$fc,$00,$fe,$00,$ae,$50,$1e,$e0,$06,$f8,$ce,$f0,$c6,$f8 + db $00,$00,$3f,$00,$7f,$00,$7a,$05,$68,$17,$70,$0f,$63,$1f,$73,$0f + db $63,$1f,$73,$0f,$60,$1f,$78,$07,$75,$0a,$7f,$00,$3f,$00,$00,$00 + db $00,$00,$ff,$00,$ff,$00,$aa,$55,$00,$ff,$00,$ff,$ff,$ff,$ff,$ff + db $63,$1f,$73,$0f,$63,$1f,$73,$0f,$63,$1f,$73,$0f,$63,$1f,$73,$0f + db $ff,$ff,$ff,$ff,$00,$ff,$00,$ff,$55,$aa,$ff,$00,$ff,$00,$00,$00 + db $0f,$0f,$10,$10,$10,$10,$10,$10,$7f,$7f,$80,$80,$80,$80,$80,$80 + db $7f,$7f,$10,$10,$10,$10,$10,$10,$0f,$0f,$10,$10,$10,$10,$10,$10 + db $7f,$7f,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + + + +UIGadgets: ; tiles start at 0 + db $0b, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0d, $0a, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $02 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $05, $00, $00, $00, $00, $00, $10 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $03, $06, $03, $03, $00, $00, $00, $11 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $04, $03, $04, $04, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $04, $00, $00, $00, $00, $00, $01 + db $0e, $00, $00, $00, $00, $00, $00, $00, $00, $09, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01 + db $0c, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $08, $00, $00, $00, $00, $00, $00, $00, $00, $00, $12