diff options
| author | user <user@clank> | 2026-07-16 14:53:25 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-07-16 14:53:25 +0200 |
| commit | db022ffc366c8e81cd1120aa0190661e43d5dc32 (patch) | |
| tree | 56c2682f04db9fe5171393ff407bdebd390ec42f /src/font.asm | |
| parent | term: 40-column text terminal on the CGB LCD (4x8 dynamic tiles) (diff) | |
| download | gbos-db022ffc366c8e81cd1120aa0190661e43d5dc32.tar.gz gbos-db022ffc366c8e81cd1120aa0190661e43d5dc32.tar.xz gbos-db022ffc366c8e81cd1120aa0190661e43d5dc32.zip | |
font: full mixed-case + punctuation glyph set (not uppercase-only)
Replace the small-caps placeholder font with a real baseline-aligned
4x8 set covering all 96 printable ASCII: distinct lowercase with true
ascenders (b d f h k l t) and descenders (g j p q y), digits, and
punctuation. Metrics: caps/ascenders rows 1-5, x-height rows 2-5,
baseline row 5, descenders into rows 6-7. Glyphs are ~3px wide in the
4px cell -- cramped but legible; the tile mechanism itself imposes no
character-set limit.
genfont.py now takes per-glyph (top, rows) so glyphs sit on the baseline.
Demo strings in term_test updated to show mixed case + punctuation.
Verified by screenshot: descenders visibly drop below the baseline.
Diffstat (limited to 'src/font.asm')
| -rw-r--r-- | src/font.asm | 192 |
1 files changed, 96 insertions, 96 deletions
diff --git a/src/font.asm b/src/font.asm index a6ff7d9..ce83d2a 100644 --- a/src/font.asm +++ b/src/font.asm @@ -1,99 +1,99 @@ -; auto-generated by tools/genfont.py - 4x8 font (3x5 glyphs), 96 glyphs +; auto-generated by tools/genfont.py - 4x8 mixed-case font, 96 glyphs SECTION "font", ROM0 FontData:: - db $00,$00,$00,$00,$00,$00,$00,$00 ; ' ' - db $04,$04,$04,$00,$04,$00,$00,$00 ; '!' - db $0A,$0A,$00,$00,$00,$00,$00,$00 ; '"' - db $0A,$0E,$0A,$0E,$0A,$00,$00,$00 ; '#' - db $04,$06,$0C,$06,$0C,$00,$00,$00 ; '$' - db $0A,$02,$04,$08,$0A,$00,$00,$00 ; '%' - db $04,$0A,$04,$0A,$06,$00,$00,$00 ; '&' - db $04,$04,$00,$00,$00,$00,$00,$00 ; ''' - db $02,$04,$04,$04,$02,$00,$00,$00 ; '(' - db $08,$04,$04,$04,$08,$00,$00,$00 ; ')' - db $0A,$04,$0E,$04,$0A,$00,$00,$00 ; '*' - db $00,$04,$0E,$04,$00,$00,$00,$00 ; '+' - db $00,$00,$00,$04,$08,$00,$00,$00 ; ',' - db $00,$00,$0E,$00,$00,$00,$00,$00 ; '-' + db $00,$00,$00,$00,$00,$00,$00,$00 ; 'SP' + db $00,$04,$04,$04,$00,$04,$00,$00 ; '!' + db $00,$0A,$0A,$00,$00,$00,$00,$00 ; '"' + db $00,$0A,$0E,$0A,$0E,$0A,$00,$00 ; '#' + db $00,$06,$0A,$04,$0A,$0C,$00,$00 ; '$' + db $00,$0A,$02,$04,$08,$0A,$00,$00 ; '%' + db $00,$04,$0A,$04,$0A,$06,$00,$00 ; '&' + db $00,$04,$04,$00,$00,$00,$00,$00 ; ''' + db $00,$02,$04,$04,$04,$02,$00,$00 ; '(' + db $00,$08,$04,$04,$04,$08,$00,$00 ; ')' + db $00,$0A,$04,$0E,$04,$0A,$00,$00 ; '*' + db $00,$00,$04,$0E,$04,$00,$00,$00 ; '+' + db $00,$00,$00,$00,$04,$08,$00,$00 ; ',' + db $00,$00,$00,$0E,$00,$00,$00,$00 ; '-' db $00,$00,$00,$00,$04,$00,$00,$00 ; '.' - db $02,$02,$04,$08,$08,$00,$00,$00 ; '/' - db $04,$0A,$0A,$0A,$04,$00,$00,$00 ; '0' - db $04,$0C,$04,$04,$0E,$00,$00,$00 ; '1' - db $0C,$02,$04,$08,$0E,$00,$00,$00 ; '2' - db $0C,$02,$04,$02,$0C,$00,$00,$00 ; '3' - db $0A,$0A,$0E,$02,$02,$00,$00,$00 ; '4' - db $0E,$08,$0C,$02,$0C,$00,$00,$00 ; '5' - db $06,$08,$0C,$0A,$04,$00,$00,$00 ; '6' - db $0E,$02,$04,$04,$04,$00,$00,$00 ; '7' - db $04,$0A,$04,$0A,$04,$00,$00,$00 ; '8' - db $04,$0A,$06,$02,$0C,$00,$00,$00 ; '9' - db $00,$04,$00,$04,$00,$00,$00,$00 ; ':' - db $00,$04,$00,$04,$08,$00,$00,$00 ; ';' - db $02,$04,$08,$04,$02,$00,$00,$00 ; '<' - db $00,$0E,$00,$0E,$00,$00,$00,$00 ; '=' - db $08,$04,$02,$04,$08,$00,$00,$00 ; '>' - db $0C,$02,$04,$00,$04,$00,$00,$00 ; '?' - db $04,$0A,$0E,$08,$06,$00,$00,$00 ; '@' - db $0C,$0A,$0E,$0A,$0A,$00,$00,$00 ; 'A' - db $0C,$0A,$0C,$0A,$0C,$00,$00,$00 ; 'B' - db $06,$08,$08,$08,$06,$00,$00,$00 ; 'C' - db $0C,$0A,$0A,$0A,$0C,$00,$00,$00 ; 'D' - db $0E,$08,$0C,$08,$0E,$00,$00,$00 ; 'E' - db $0E,$08,$0C,$08,$08,$00,$00,$00 ; 'F' - db $06,$08,$0A,$0A,$06,$00,$00,$00 ; 'G' - db $0A,$0A,$0E,$0A,$0A,$00,$00,$00 ; 'H' - db $0E,$04,$04,$04,$0E,$00,$00,$00 ; 'I' - db $02,$02,$02,$0A,$04,$00,$00,$00 ; 'J' - db $0A,$0A,$0C,$0A,$0A,$00,$00,$00 ; 'K' - db $08,$08,$08,$08,$0E,$00,$00,$00 ; 'L' - db $0A,$0E,$0E,$0A,$0A,$00,$00,$00 ; 'M' - db $0A,$0E,$0E,$0E,$0A,$00,$00,$00 ; 'N' - db $04,$0A,$0A,$0A,$04,$00,$00,$00 ; 'O' - db $0C,$0A,$0C,$08,$08,$00,$00,$00 ; 'P' - db $04,$0A,$0A,$04,$02,$00,$00,$00 ; 'Q' - db $0C,$0A,$0C,$0A,$0A,$00,$00,$00 ; 'R' - db $06,$08,$04,$02,$0C,$00,$00,$00 ; 'S' - db $0E,$04,$04,$04,$04,$00,$00,$00 ; 'T' - db $0A,$0A,$0A,$0A,$06,$00,$00,$00 ; 'U' - db $0A,$0A,$0A,$04,$04,$00,$00,$00 ; 'V' - db $0A,$0A,$0E,$0E,$0A,$00,$00,$00 ; 'W' - db $0A,$0A,$04,$0A,$0A,$00,$00,$00 ; 'X' - db $0A,$0A,$04,$04,$04,$00,$00,$00 ; 'Y' - db $0E,$02,$04,$08,$0E,$00,$00,$00 ; 'Z' - db $0C,$08,$08,$08,$0C,$00,$00,$00 ; '[' - db $08,$08,$04,$02,$02,$00,$00,$00 ; '?' - db $06,$02,$02,$02,$06,$00,$00,$00 ; ']' - db $04,$0A,$00,$00,$00,$00,$00,$00 ; '^' - db $00,$00,$00,$00,$0E,$00,$00,$00 ; '_' - db $08,$04,$00,$00,$00,$00,$00,$00 ; '`' - db $0C,$0A,$0E,$0A,$0A,$00,$00,$00 ; 'a' - db $0C,$0A,$0C,$0A,$0C,$00,$00,$00 ; 'b' - db $06,$08,$08,$08,$06,$00,$00,$00 ; 'c' - db $0C,$0A,$0A,$0A,$0C,$00,$00,$00 ; 'd' - db $0E,$08,$0C,$08,$0E,$00,$00,$00 ; 'e' - db $0E,$08,$0C,$08,$08,$00,$00,$00 ; 'f' - db $06,$08,$0A,$0A,$06,$00,$00,$00 ; 'g' - db $0A,$0A,$0E,$0A,$0A,$00,$00,$00 ; 'h' - db $0E,$04,$04,$04,$0E,$00,$00,$00 ; 'i' - db $02,$02,$02,$0A,$04,$00,$00,$00 ; 'j' - db $0A,$0A,$0C,$0A,$0A,$00,$00,$00 ; 'k' - db $08,$08,$08,$08,$0E,$00,$00,$00 ; 'l' - db $0A,$0E,$0E,$0A,$0A,$00,$00,$00 ; 'm' - db $0A,$0E,$0E,$0E,$0A,$00,$00,$00 ; 'n' - db $04,$0A,$0A,$0A,$04,$00,$00,$00 ; 'o' - db $0C,$0A,$0C,$08,$08,$00,$00,$00 ; 'p' - db $04,$0A,$0A,$04,$02,$00,$00,$00 ; 'q' - db $0C,$0A,$0C,$0A,$0A,$00,$00,$00 ; 'r' - db $06,$08,$04,$02,$0C,$00,$00,$00 ; 's' - db $0E,$04,$04,$04,$04,$00,$00,$00 ; 't' - db $0A,$0A,$0A,$0A,$06,$00,$00,$00 ; 'u' - db $0A,$0A,$0A,$04,$04,$00,$00,$00 ; 'v' - db $0A,$0A,$0E,$0E,$0A,$00,$00,$00 ; 'w' - db $0A,$0A,$04,$0A,$0A,$00,$00,$00 ; 'x' - db $0A,$0A,$04,$04,$04,$00,$00,$00 ; 'y' - db $0E,$02,$04,$08,$0E,$00,$00,$00 ; 'z' - db $02,$04,$0C,$04,$02,$00,$00,$00 ; '{' - db $04,$04,$04,$04,$04,$00,$00,$00 ; '|' - db $08,$04,$06,$04,$08,$00,$00,$00 ; '}' - db $00,$06,$0C,$00,$00,$00,$00,$00 ; '~' - db $0E,$0A,$0A,$0A,$0E,$00,$00,$00 ; '?' + db $00,$02,$02,$04,$08,$08,$00,$00 ; '/' + db $00,$04,$0A,$0A,$0A,$04,$00,$00 ; '0' + db $00,$04,$0C,$04,$04,$0E,$00,$00 ; '1' + db $00,$0C,$02,$04,$08,$0E,$00,$00 ; '2' + db $00,$0C,$02,$04,$02,$0C,$00,$00 ; '3' + db $00,$0A,$0A,$0E,$02,$02,$00,$00 ; '4' + db $00,$0E,$08,$0C,$02,$0C,$00,$00 ; '5' + db $00,$06,$08,$0C,$0A,$04,$00,$00 ; '6' + db $00,$0E,$02,$04,$04,$04,$00,$00 ; '7' + db $00,$04,$0A,$04,$0A,$04,$00,$00 ; '8' + db $00,$04,$0A,$06,$02,$0C,$00,$00 ; '9' + db $00,$00,$04,$00,$04,$00,$00,$00 ; ':' + db $00,$00,$04,$00,$04,$08,$00,$00 ; ';' + db $00,$02,$04,$08,$04,$02,$00,$00 ; '<' + db $00,$00,$0E,$00,$0E,$00,$00,$00 ; '=' + db $00,$08,$04,$02,$04,$08,$00,$00 ; '>' + db $00,$0C,$02,$04,$00,$04,$00,$00 ; '?' + db $00,$04,$0A,$0E,$08,$06,$00,$00 ; '@' + db $00,$0C,$0A,$0E,$0A,$0A,$00,$00 ; 'A' + db $00,$0C,$0A,$0C,$0A,$0C,$00,$00 ; 'B' + db $00,$06,$08,$08,$08,$06,$00,$00 ; 'C' + db $00,$0C,$0A,$0A,$0A,$0C,$00,$00 ; 'D' + db $00,$0E,$08,$0C,$08,$0E,$00,$00 ; 'E' + db $00,$0E,$08,$0C,$08,$08,$00,$00 ; 'F' + db $00,$06,$08,$0A,$0A,$06,$00,$00 ; 'G' + db $00,$0A,$0A,$0E,$0A,$0A,$00,$00 ; 'H' + db $00,$0E,$04,$04,$04,$0E,$00,$00 ; 'I' + db $00,$02,$02,$02,$0A,$04,$00,$00 ; 'J' + db $00,$0A,$0A,$0C,$0A,$0A,$00,$00 ; 'K' + db $00,$08,$08,$08,$08,$0E,$00,$00 ; 'L' + db $00,$0A,$0E,$0E,$0A,$0A,$00,$00 ; 'M' + db $00,$0A,$0E,$0E,$0E,$0A,$00,$00 ; 'N' + db $00,$04,$0A,$0A,$0A,$04,$00,$00 ; 'O' + db $00,$0C,$0A,$0C,$08,$08,$00,$00 ; 'P' + db $00,$04,$0A,$0A,$04,$02,$00,$00 ; 'Q' + db $00,$0C,$0A,$0C,$0A,$0A,$00,$00 ; 'R' + db $00,$06,$08,$04,$02,$0C,$00,$00 ; 'S' + db $00,$0E,$04,$04,$04,$04,$00,$00 ; 'T' + db $00,$0A,$0A,$0A,$0A,$06,$00,$00 ; 'U' + db $00,$0A,$0A,$0A,$04,$04,$00,$00 ; 'V' + db $00,$0A,$0A,$0E,$0E,$0A,$00,$00 ; 'W' + db $00,$0A,$0A,$04,$0A,$0A,$00,$00 ; 'X' + db $00,$0A,$0A,$04,$04,$04,$00,$00 ; 'Y' + db $00,$0E,$02,$04,$08,$0E,$00,$00 ; 'Z' + db $00,$0C,$08,$08,$08,$0C,$00,$00 ; '[' + db $00,$08,$08,$04,$02,$02,$00,$00 ; '\\' + db $00,$06,$02,$02,$02,$06,$00,$00 ; ']' + db $00,$04,$0A,$00,$00,$00,$00,$00 ; '^' + db $00,$00,$00,$00,$00,$00,$00,$0E ; '_' + db $00,$08,$04,$00,$00,$00,$00,$00 ; '`' + db $00,$00,$0C,$06,$0A,$06,$00,$00 ; 'a' + db $00,$08,$08,$0C,$0A,$0C,$00,$00 ; 'b' + db $00,$00,$06,$08,$08,$06,$00,$00 ; 'c' + db $00,$02,$02,$06,$0A,$06,$00,$00 ; 'd' + db $00,$00,$04,$0A,$0C,$06,$00,$00 ; 'e' + db $00,$06,$04,$0E,$04,$04,$00,$00 ; 'f' + db $00,$00,$06,$0A,$06,$02,$0C,$00 ; 'g' + db $00,$08,$08,$0C,$0A,$0A,$00,$00 ; 'h' + db $00,$04,$00,$04,$04,$04,$00,$00 ; 'i' + db $00,$00,$02,$00,$02,$02,$0C,$00 ; 'j' + db $00,$08,$0A,$0C,$0A,$0A,$00,$00 ; 'k' + db $00,$0C,$04,$04,$04,$06,$00,$00 ; 'l' + db $00,$00,$0A,$0E,$0E,$0A,$00,$00 ; 'm' + db $00,$00,$0C,$0A,$0A,$0A,$00,$00 ; 'n' + db $00,$00,$04,$0A,$0A,$04,$00,$00 ; 'o' + db $00,$00,$0C,$0A,$0C,$08,$08,$00 ; 'p' + db $00,$00,$06,$0A,$06,$02,$02,$00 ; 'q' + db $00,$00,$0A,$0C,$08,$08,$00,$00 ; 'r' + db $00,$00,$06,$0C,$06,$0C,$00,$00 ; 's' + db $00,$04,$0E,$04,$04,$06,$00,$00 ; 't' + db $00,$00,$0A,$0A,$0A,$06,$00,$00 ; 'u' + db $00,$00,$0A,$0A,$0A,$04,$00,$00 ; 'v' + db $00,$00,$0A,$0E,$0E,$0A,$00,$00 ; 'w' + db $00,$00,$0A,$04,$04,$0A,$00,$00 ; 'x' + db $00,$00,$0A,$0A,$06,$02,$0C,$00 ; 'y' + db $00,$00,$0E,$02,$04,$0E,$00,$00 ; 'z' + db $00,$02,$04,$0C,$04,$02,$00,$00 ; '{' + db $00,$04,$04,$04,$04,$04,$00,$00 ; '|' + db $00,$08,$04,$06,$04,$08,$00,$00 ; '}' + db $00,$00,$00,$06,$0C,$00,$00,$00 ; '~' + db $00,$0E,$0A,$0A,$0A,$0E,$00,$00 ; 'DEL' |
