dumped fonts
3
.gitignore
vendored
@ -7,6 +7,9 @@
|
|||||||
*.8bpp
|
*.8bpp
|
||||||
*.gbapal
|
*.gbapal
|
||||||
*.lz
|
*.lz
|
||||||
|
*.latfont
|
||||||
|
*.hwjpnfont
|
||||||
|
*.fwjpnfont
|
||||||
pokeas
|
pokeas
|
||||||
pokeld
|
pokeld
|
||||||
pokeobjcopy
|
pokeobjcopy
|
||||||
|
17
Makefile
@ -13,12 +13,7 @@ SHA1 := sha1sum -c
|
|||||||
|
|
||||||
.PHONY: rom tools gbagfx scaninc clean compare
|
.PHONY: rom tools gbagfx scaninc clean compare
|
||||||
|
|
||||||
gfx := tools/gbagfx/gbagfx
|
gfx := @tools/gbagfx/gbagfx
|
||||||
1bpp := @$(gfx) 1bpp
|
|
||||||
4bpp := @$(gfx) 4bpp
|
|
||||||
8bpp := @$(gfx) 8bpp
|
|
||||||
gbapal := @$(gfx) gbapal
|
|
||||||
lz := @$(gfx) lz
|
|
||||||
scaninc := tools/scaninc/scaninc
|
scaninc := tools/scaninc/scaninc
|
||||||
|
|
||||||
objs = asm/emerald.o
|
objs = asm/emerald.o
|
||||||
@ -52,11 +47,11 @@ include graphics_file_rules.mk
|
|||||||
|
|
||||||
%.png: ;
|
%.png: ;
|
||||||
%.pal: ;
|
%.pal: ;
|
||||||
%.1bpp: %.png ; $(1bpp) $<
|
%.1bpp: %.png ; $(gfx) $< $@
|
||||||
%.4bpp: %.png ; $(4bpp) $<
|
%.4bpp: %.png ; $(gfx) $< $@
|
||||||
%.8bpp: %.png ; $(8bpp) $<
|
%.8bpp: %.png ; $(gfx) $< $@
|
||||||
%.gbapal: %.pal ; $(gbapal) $<
|
%.gbapal: %.pal ; $(gfx) $< $@
|
||||||
%.lz: % ; $(lz) $<
|
%.lz: % ; $(gfx) $< $@
|
||||||
|
|
||||||
%.o: %.s $$($$@_deps)
|
%.o: %.s $$($$@_deps)
|
||||||
$(AS) $(ASFLAGS) -o $@ $<
|
$(AS) $(ASFLAGS) -o $@ $<
|
||||||
|
40
data/data2.s
@ -124,7 +124,7 @@ gMenuCursorDimensions: ; 82EA608
|
|||||||
.byte 0, 0
|
.byte 0, 0
|
||||||
|
|
||||||
gFont9JapaneseGlyphs: ; 82EA61C
|
gFont9JapaneseGlyphs: ; 82EA61C
|
||||||
.incbin "base_emerald.gba", 0x2ea61c, 0x2000
|
.incbin "data/graphics/fonts/font9.hwjpnfont"
|
||||||
|
|
||||||
; Unreferenced data. This also comes before the gpu_bg.s data in Ruby and seems
|
; Unreferenced data. This also comes before the gpu_bg.s data in Ruby and seems
|
||||||
; to be unreferenced there too.
|
; to be unreferenced there too.
|
||||||
@ -11093,7 +11093,7 @@ gUnknown_08616124: ; 8616124
|
|||||||
.incbin "base_emerald.gba", 0x616124, 0x4
|
.incbin "base_emerald.gba", 0x616124, 0x4
|
||||||
|
|
||||||
gFont6BrailleGlyphs: ; 8616128
|
gFont6BrailleGlyphs: ; 8616128
|
||||||
.incbin "base_emerald.gba", 0x616128, 0x1000
|
.incbin "data/graphics/fonts/font6.fwjpnfont"
|
||||||
|
|
||||||
gUnknown_08617128: ; 8617128
|
gUnknown_08617128: ; 8617128
|
||||||
.incbin "base_emerald.gba", 0x617128, 0x48
|
.incbin "base_emerald.gba", 0x617128, 0x48
|
||||||
@ -12032,58 +12032,58 @@ gUnknown_0862B7FC: ; 862B7FC
|
|||||||
.incbin "base_emerald.gba", 0x62b7fc, 0x2e8
|
.incbin "base_emerald.gba", 0x62b7fc, 0x2e8
|
||||||
|
|
||||||
gFont8LatinGlyphs: ; 862BAE4
|
gFont8LatinGlyphs: ; 862BAE4
|
||||||
.incbin "base_emerald.gba", 0x62bae4, 0x8000
|
.incbin "data/graphics/fonts/font8.latfont"
|
||||||
|
|
||||||
gFont8LatinGlyphWidths: ; 8633AE4
|
gFont8LatinGlyphWidths: ; 8633AE4
|
||||||
.incbin "base_emerald.gba", 0x633ae4, 0x200
|
.include "data/graphics/fonts/font8_latin_widths.s"
|
||||||
|
|
||||||
gFont0LatinGlyphs: ; 8633CE4
|
gFont0LatinGlyphs: ; 8633CE4
|
||||||
.incbin "base_emerald.gba", 0x633ce4, 0x8000
|
.incbin "data/graphics/fonts/font0.latfont"
|
||||||
|
|
||||||
gFont0LatinGlyphWidths: ; 863BCE4
|
gFont0LatinGlyphWidths: ; 863BCE4
|
||||||
.incbin "base_emerald.gba", 0x63bce4, 0x200
|
.include "data/graphics/fonts/font0_latin_widths.s"
|
||||||
|
|
||||||
gFont7LatinGlyphs: ; 863BEE4
|
gFont7LatinGlyphs: ; 863BEE4
|
||||||
.incbin "base_emerald.gba", 0x63bee4, 0x8000
|
.incbin "data/graphics/fonts/font7.latfont"
|
||||||
|
|
||||||
gFont7LatinGlyphWidths: ; 8643EE4
|
gFont7LatinGlyphWidths: ; 8643EE4
|
||||||
.incbin "base_emerald.gba", 0x643ee4, 0x200
|
.include "data/graphics/fonts/font7_latin_widths.s"
|
||||||
|
|
||||||
gFont2LatinGlyphs: ; 86440E4
|
gFont2LatinGlyphs: ; 86440E4
|
||||||
.incbin "base_emerald.gba", 0x6440e4, 0x8000
|
.incbin "data/graphics/fonts/font2.latfont"
|
||||||
|
|
||||||
gFont2LatinGlyphWidths: ; 864C0E4
|
gFont2LatinGlyphWidths: ; 864C0E4
|
||||||
.incbin "base_emerald.gba", 0x64c0e4, 0x200
|
.include "data/graphics/fonts/font2_latin_widths.s"
|
||||||
|
|
||||||
gFont1LatinGlyphs: ; 864C2E4
|
gFont1LatinGlyphs: ; 864C2E4
|
||||||
.incbin "base_emerald.gba", 0x64c2e4, 0x8000
|
.incbin "data/graphics/fonts/font1.latfont"
|
||||||
|
|
||||||
gFont1LatinGlyphWidths: ; 86542E4
|
gFont1LatinGlyphWidths: ; 86542E4
|
||||||
.incbin "base_emerald.gba", 0x6542e4, 0x200
|
.include "data/graphics/fonts/font1_latin_widths.s"
|
||||||
|
|
||||||
gFont0JapaneseGlyphs: ; 86544E4
|
gFont0JapaneseGlyphs: ; 86544E4
|
||||||
.incbin "base_emerald.gba", 0x6544e4, 0x4000
|
.incbin "data/graphics/fonts/font0.hwjpnfont"
|
||||||
|
|
||||||
gFont1JapaneseGlyphs: ; 86584E4
|
gFont1JapaneseGlyphs: ; 86584E4
|
||||||
.incbin "base_emerald.gba", 0x6584e4, 0x4000
|
.incbin "data/graphics/fonts/font1.hwjpnfont"
|
||||||
|
|
||||||
gUnusedFullwidthJapaneseFontGlyphs: ; 865C4E4
|
gUnusedFullwidthJapaneseFontGlyphs: ; 865C4E4
|
||||||
.incbin "base_emerald.gba", 0x65c4e4, 0x8000
|
.incbin "data/graphics/fonts/unused_1.fwjpnfont"
|
||||||
|
|
||||||
gUnusedFullwidthJapaneseFontGlyphWidths: ; 86644E4
|
gUnusedFullwidthJapaneseFontGlyphWidths: ; 86644E4
|
||||||
.incbin "base_emerald.gba", 0x6644e4, 0x200
|
.include "data/graphics/fonts/unused_japanese_font_1_widths.s"
|
||||||
|
|
||||||
gUnusedFullwidthJapaneseFont2Glyphs: ; 86646E4
|
gUnusedFullwidthJapaneseFont2Glyphs: ; 86646E4
|
||||||
.incbin "base_emerald.gba", 0x6646e4, 0x8000
|
.incbin "data/graphics/fonts/unused_2.fwjpnfont"
|
||||||
|
|
||||||
gUnusedFullwidthJapaneseFont2GlyphWidths: ; 866C6E4
|
gUnusedFullwidthJapaneseFont2GlyphWidths: ; 866C6E4
|
||||||
.incbin "base_emerald.gba", 0x66c6e4, 0x200
|
.include "data/graphics/fonts/unused_japanese_font_2_widths.s"
|
||||||
|
|
||||||
gFont2JapaneseGlyphs: ; 866C8E4
|
gFont2JapaneseGlyphs: ; 866C8E4
|
||||||
.incbin "base_emerald.gba", 0x66c8e4, 0x8000
|
.incbin "data/graphics/fonts/font2.fwjpnfont"
|
||||||
|
|
||||||
gFont2JapaneseGlyphWidths: ; 86748E4
|
gFont2JapaneseGlyphWidths: ; 86748E4
|
||||||
.incbin "base_emerald.gba", 0x6748e4, 0x200
|
.include "data/graphics/fonts/font2_japanese_widths.s"
|
||||||
|
|
||||||
gUnknown_08674AE4: ; 8674AE4
|
gUnknown_08674AE4: ; 8674AE4
|
||||||
.incbin "base_emerald.gba", 0x674ae4, 0x32
|
.incbin "base_emerald.gba", 0x674ae4, 0x32
|
||||||
|
BIN
data/graphics/fonts/font0_japanese.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
data/graphics/fonts/font0_latin.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
512
data/graphics/fonts/font0_latin_widths.s
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 7
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 7
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 4
|
||||||
|
.byte 7
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 1
|
||||||
|
.byte 2
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 7
|
||||||
|
.byte 5
|
||||||
|
.byte 7
|
||||||
|
.byte 7
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 7
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
BIN
data/graphics/fonts/font1_japanese.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
data/graphics/fonts/font1_latin.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
512
data/graphics/fonts/font1_latin_widths.s
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 9
|
||||||
|
.byte 7
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 4
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 7
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 7
|
||||||
|
.byte 7
|
||||||
|
.byte 7
|
||||||
|
.byte 7
|
||||||
|
.byte 1
|
||||||
|
.byte 2
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 7
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 7
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
BIN
data/graphics/fonts/font2_japanese.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
512
data/graphics/fonts/font2_japanese_widths.s
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 7
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 2
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
BIN
data/graphics/fonts/font2_latin.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
512
data/graphics/fonts/font2_latin_widths.s
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 9
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 12
|
||||||
|
.byte 12
|
||||||
|
.byte 12
|
||||||
|
.byte 12
|
||||||
|
.byte 1
|
||||||
|
.byte 2
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 7
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 9
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 12
|
||||||
|
.byte 12
|
||||||
|
.byte 12
|
||||||
|
.byte 12
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
BIN
data/graphics/fonts/font6_braille.png
Normal file
After Width: | Height: | Size: 220 B |
BIN
data/graphics/fonts/font7_latin.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
512
data/graphics/fonts/font7_latin_widths.s
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 9
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 7
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 7
|
||||||
|
.byte 7
|
||||||
|
.byte 7
|
||||||
|
.byte 7
|
||||||
|
.byte 1
|
||||||
|
.byte 2
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 7
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
BIN
data/graphics/fonts/font8_latin.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
512
data/graphics/fonts/font8_latin_widths.s
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 0
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 1
|
||||||
|
.byte 2
|
||||||
|
.byte 3
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 7
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 7
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 4
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 7
|
||||||
|
.byte 3
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 5
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 3
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 3
|
BIN
data/graphics/fonts/font9_japanese.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
data/graphics/fonts/unused_japanese_font_1.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
512
data/graphics/fonts/unused_japanese_font_1_widths.s
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
.byte 0
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 8
|
||||||
|
.byte 7
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 2
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
BIN
data/graphics/fonts/unused_japanese_font_2.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
512
data/graphics/fonts/unused_japanese_font_2_widths.s
Normal file
@ -0,0 +1,512 @@
|
|||||||
|
.byte 0
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 9
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 9
|
||||||
|
.byte 8
|
||||||
|
.byte 7
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 5
|
||||||
|
.byte 9
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 8
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 8
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 2
|
||||||
|
.byte 4
|
||||||
|
.byte 6
|
||||||
|
.byte 3
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 5
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 6
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 0
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
||||||
|
.byte 10
|
@ -36,193 +36,231 @@ $(monpaldir)/castform_shiny_palette.gbapal: $(monpaldir)/castform_normal_form_sh
|
|||||||
tilesetdir := data/graphics/tilesets
|
tilesetdir := data/graphics/tilesets
|
||||||
|
|
||||||
$(tilesetdir)/secondary/petalburg/tiles.4bpp: $(tilesetdir)/secondary/petalburg/tiles.png
|
$(tilesetdir)/secondary/petalburg/tiles.4bpp: $(tilesetdir)/secondary/petalburg/tiles.png
|
||||||
$(4bpp) $< -num_tiles 159
|
$(gfx) $< $@ -num_tiles 159
|
||||||
|
|
||||||
$(tilesetdir)/secondary/rustboro/tiles.4bpp: $(tilesetdir)/secondary/rustboro/tiles.png
|
$(tilesetdir)/secondary/rustboro/tiles.4bpp: $(tilesetdir)/secondary/rustboro/tiles.png
|
||||||
$(4bpp) $< -num_tiles 498
|
$(gfx) $< $@ -num_tiles 498
|
||||||
|
|
||||||
$(tilesetdir)/secondary/dewford/tiles.4bpp: $(tilesetdir)/secondary/dewford/tiles.png
|
$(tilesetdir)/secondary/dewford/tiles.4bpp: $(tilesetdir)/secondary/dewford/tiles.png
|
||||||
$(4bpp) $< -num_tiles 503
|
$(gfx) $< $@ -num_tiles 503
|
||||||
|
|
||||||
$(tilesetdir)/secondary/slateport/tiles.4bpp: $(tilesetdir)/secondary/slateport/tiles.png
|
$(tilesetdir)/secondary/slateport/tiles.4bpp: $(tilesetdir)/secondary/slateport/tiles.png
|
||||||
$(4bpp) $< -num_tiles 504
|
$(gfx) $< $@ -num_tiles 504
|
||||||
|
|
||||||
$(tilesetdir)/secondary/mauville/tiles.4bpp: $(tilesetdir)/secondary/mauville/tiles.png
|
$(tilesetdir)/secondary/mauville/tiles.4bpp: $(tilesetdir)/secondary/mauville/tiles.png
|
||||||
$(4bpp) $< -num_tiles 503
|
$(gfx) $< $@ -num_tiles 503
|
||||||
|
|
||||||
$(tilesetdir)/secondary/lavaridge/tiles.4bpp: $(tilesetdir)/secondary/lavaridge/tiles.png
|
$(tilesetdir)/secondary/lavaridge/tiles.4bpp: $(tilesetdir)/secondary/lavaridge/tiles.png
|
||||||
$(4bpp) $< -num_tiles 450
|
$(gfx) $< $@ -num_tiles 450
|
||||||
|
|
||||||
$(tilesetdir)/secondary/fortree/tiles.4bpp: $(tilesetdir)/secondary/fortree/tiles.png
|
$(tilesetdir)/secondary/fortree/tiles.4bpp: $(tilesetdir)/secondary/fortree/tiles.png
|
||||||
$(4bpp) $< -num_tiles 493
|
$(gfx) $< $@ -num_tiles 493
|
||||||
|
|
||||||
$(tilesetdir)/secondary/pacifidlog/tiles.4bpp: $(tilesetdir)/secondary/pacifidlog/tiles.png
|
$(tilesetdir)/secondary/pacifidlog/tiles.4bpp: $(tilesetdir)/secondary/pacifidlog/tiles.png
|
||||||
$(4bpp) $< -num_tiles 504
|
$(gfx) $< $@ -num_tiles 504
|
||||||
|
|
||||||
$(tilesetdir)/secondary/sootopolis/tiles.4bpp: $(tilesetdir)/secondary/sootopolis/tiles.png
|
$(tilesetdir)/secondary/sootopolis/tiles.4bpp: $(tilesetdir)/secondary/sootopolis/tiles.png
|
||||||
$(4bpp) $< -num_tiles 328
|
$(gfx) $< $@ -num_tiles 328
|
||||||
|
|
||||||
$(tilesetdir)/secondary/battle_frontier_outside_west/tiles.4bpp: $(tilesetdir)/secondary/battle_frontier_outside_west/tiles.png
|
$(tilesetdir)/secondary/battle_frontier_outside_west/tiles.4bpp: $(tilesetdir)/secondary/battle_frontier_outside_west/tiles.png
|
||||||
$(4bpp) $< -num_tiles 508
|
$(gfx) $< $@ -num_tiles 508
|
||||||
|
|
||||||
$(tilesetdir)/secondary/battle_frontier_outside_east/tiles.4bpp: $(tilesetdir)/secondary/battle_frontier_outside_east/tiles.png
|
$(tilesetdir)/secondary/battle_frontier_outside_east/tiles.4bpp: $(tilesetdir)/secondary/battle_frontier_outside_east/tiles.png
|
||||||
$(4bpp) $< -num_tiles 508
|
$(gfx) $< $@ -num_tiles 508
|
||||||
|
|
||||||
$(tilesetdir)/primary/inside_building/tiles.4bpp: $(tilesetdir)/primary/inside_building/tiles.png
|
$(tilesetdir)/primary/inside_building/tiles.4bpp: $(tilesetdir)/primary/inside_building/tiles.png
|
||||||
$(4bpp) $< -num_tiles 502
|
$(gfx) $< $@ -num_tiles 502
|
||||||
|
|
||||||
$(tilesetdir)/secondary/shop/tiles.4bpp: $(tilesetdir)/secondary/shop/tiles.png
|
$(tilesetdir)/secondary/shop/tiles.4bpp: $(tilesetdir)/secondary/shop/tiles.png
|
||||||
$(4bpp) $< -num_tiles 502
|
$(gfx) $< $@ -num_tiles 502
|
||||||
|
|
||||||
$(tilesetdir)/secondary/pokemon_center/tiles.4bpp: $(tilesetdir)/secondary/pokemon_center/tiles.png
|
$(tilesetdir)/secondary/pokemon_center/tiles.4bpp: $(tilesetdir)/secondary/pokemon_center/tiles.png
|
||||||
$(4bpp) $< -num_tiles 478
|
$(gfx) $< $@ -num_tiles 478
|
||||||
|
|
||||||
$(tilesetdir)/secondary/cave/tiles.4bpp: $(tilesetdir)/secondary/cave/tiles.png
|
$(tilesetdir)/secondary/cave/tiles.4bpp: $(tilesetdir)/secondary/cave/tiles.png
|
||||||
$(4bpp) $< -num_tiles 425
|
$(gfx) $< $@ -num_tiles 425
|
||||||
|
|
||||||
$(tilesetdir)/secondary/pokemon_school/tiles.4bpp: $(tilesetdir)/secondary/pokemon_school/tiles.png
|
$(tilesetdir)/secondary/pokemon_school/tiles.4bpp: $(tilesetdir)/secondary/pokemon_school/tiles.png
|
||||||
$(4bpp) $< -num_tiles 278
|
$(gfx) $< $@ -num_tiles 278
|
||||||
|
|
||||||
$(tilesetdir)/secondary/pokemon_fan_club/tiles.4bpp: $(tilesetdir)/secondary/pokemon_fan_club/tiles.png
|
$(tilesetdir)/secondary/pokemon_fan_club/tiles.4bpp: $(tilesetdir)/secondary/pokemon_fan_club/tiles.png
|
||||||
$(4bpp) $< -num_tiles 319
|
$(gfx) $< $@ -num_tiles 319
|
||||||
|
|
||||||
$(tilesetdir)/secondary/unused_1/tiles.4bpp: $(tilesetdir)/secondary/unused_1/tiles.png
|
$(tilesetdir)/secondary/unused_1/tiles.4bpp: $(tilesetdir)/secondary/unused_1/tiles.png
|
||||||
$(4bpp) $< -num_tiles 17
|
$(gfx) $< $@ -num_tiles 17
|
||||||
|
|
||||||
$(tilesetdir)/secondary/meteor_falls/tiles.4bpp: $(tilesetdir)/secondary/meteor_falls/tiles.png
|
$(tilesetdir)/secondary/meteor_falls/tiles.4bpp: $(tilesetdir)/secondary/meteor_falls/tiles.png
|
||||||
$(4bpp) $< -num_tiles 460
|
$(gfx) $< $@ -num_tiles 460
|
||||||
|
|
||||||
$(tilesetdir)/secondary/oceanic_museum/tiles.4bpp: $(tilesetdir)/secondary/oceanic_museum/tiles.png
|
$(tilesetdir)/secondary/oceanic_museum/tiles.4bpp: $(tilesetdir)/secondary/oceanic_museum/tiles.png
|
||||||
$(4bpp) $< -num_tiles 319
|
$(gfx) $< $@ -num_tiles 319
|
||||||
|
|
||||||
$(tilesetdir)/secondary/cable_club/unknown_tiles.4bpp: $(tilesetdir)/secondary/cable_club/unknown_tiles.png
|
$(tilesetdir)/secondary/cable_club/unknown_tiles.4bpp: $(tilesetdir)/secondary/cable_club/unknown_tiles.png
|
||||||
$(4bpp) $< -num_tiles 120
|
$(gfx) $< $@ -num_tiles 120
|
||||||
|
|
||||||
$(tilesetdir)/secondary/seashore_house/tiles.4bpp: $(tilesetdir)/secondary/seashore_house/tiles.png
|
$(tilesetdir)/secondary/seashore_house/tiles.4bpp: $(tilesetdir)/secondary/seashore_house/tiles.png
|
||||||
$(4bpp) $< -num_tiles 312
|
$(gfx) $< $@ -num_tiles 312
|
||||||
|
|
||||||
$(tilesetdir)/secondary/pretty_petal_flower_shop/tiles.4bpp: $(tilesetdir)/secondary/pretty_petal_flower_shop/tiles.png
|
$(tilesetdir)/secondary/pretty_petal_flower_shop/tiles.4bpp: $(tilesetdir)/secondary/pretty_petal_flower_shop/tiles.png
|
||||||
$(4bpp) $< -num_tiles 345
|
$(gfx) $< $@ -num_tiles 345
|
||||||
|
|
||||||
$(tilesetdir)/secondary/pokemon_day_care/tiles.4bpp: $(tilesetdir)/secondary/pokemon_day_care/tiles.png
|
$(tilesetdir)/secondary/pokemon_day_care/tiles.4bpp: $(tilesetdir)/secondary/pokemon_day_care/tiles.png
|
||||||
$(4bpp) $< -num_tiles 355
|
$(gfx) $< $@ -num_tiles 355
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/brown_cave/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/brown_cave/tiles.png
|
$(tilesetdir)/secondary/secret_base/brown_cave/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/brown_cave/tiles.png
|
||||||
$(4bpp) $< -output $@ -num_tiles 82
|
$(gfx) $< $@ -num_tiles 82
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/tree/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/tree/tiles.png
|
$(tilesetdir)/secondary/secret_base/tree/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/tree/tiles.png
|
||||||
$(4bpp) $< -output $@ -num_tiles 82
|
$(gfx) $< $@ -num_tiles 82
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/shrub/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/shrub/tiles.png
|
$(tilesetdir)/secondary/secret_base/shrub/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/shrub/tiles.png
|
||||||
$(4bpp) $< -output $@ -num_tiles 82
|
$(gfx) $< $@ -num_tiles 82
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/blue_cave/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/blue_cave/tiles.png
|
$(tilesetdir)/secondary/secret_base/blue_cave/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/blue_cave/tiles.png
|
||||||
$(4bpp) $< -output $@ -num_tiles 82
|
$(gfx) $< $@ -num_tiles 82
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/yellow_cave/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/yellow_cave/tiles.png
|
$(tilesetdir)/secondary/secret_base/yellow_cave/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/yellow_cave/tiles.png
|
||||||
$(4bpp) $< -output $@ -num_tiles 82
|
$(gfx) $< $@ -num_tiles 82
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/red_cave/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/red_cave/tiles.png
|
$(tilesetdir)/secondary/secret_base/red_cave/unused_tiles.4bpp: $(tilesetdir)/secondary/secret_base/red_cave/tiles.png
|
||||||
$(4bpp) $< -output $@ -num_tiles 82
|
$(gfx) $< $@ -num_tiles 82
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/brown_cave/tiles.4bpp: $(tilesetdir)/secondary/secret_base/brown_cave/tiles.png
|
$(tilesetdir)/secondary/secret_base/brown_cave/tiles.4bpp: $(tilesetdir)/secondary/secret_base/brown_cave/tiles.png
|
||||||
$(4bpp) $< -num_tiles 83
|
$(gfx) $< $@ -num_tiles 83
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/tree/tiles.4bpp: $(tilesetdir)/secondary/secret_base/tree/tiles.png
|
$(tilesetdir)/secondary/secret_base/tree/tiles.4bpp: $(tilesetdir)/secondary/secret_base/tree/tiles.png
|
||||||
$(4bpp) $< -num_tiles 83
|
$(gfx) $< $@ -num_tiles 83
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/shrub/tiles.4bpp: $(tilesetdir)/secondary/secret_base/shrub/tiles.png
|
$(tilesetdir)/secondary/secret_base/shrub/tiles.4bpp: $(tilesetdir)/secondary/secret_base/shrub/tiles.png
|
||||||
$(4bpp) $< -num_tiles 83
|
$(gfx) $< $@ -num_tiles 83
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/blue_cave/tiles.4bpp: $(tilesetdir)/secondary/secret_base/blue_cave/tiles.png
|
$(tilesetdir)/secondary/secret_base/blue_cave/tiles.4bpp: $(tilesetdir)/secondary/secret_base/blue_cave/tiles.png
|
||||||
$(4bpp) $< -num_tiles 83
|
$(gfx) $< $@ -num_tiles 83
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/yellow_cave/tiles.4bpp: $(tilesetdir)/secondary/secret_base/yellow_cave/tiles.png
|
$(tilesetdir)/secondary/secret_base/yellow_cave/tiles.4bpp: $(tilesetdir)/secondary/secret_base/yellow_cave/tiles.png
|
||||||
$(4bpp) $< -num_tiles 83
|
$(gfx) $< $@ -num_tiles 83
|
||||||
|
|
||||||
$(tilesetdir)/secondary/secret_base/red_cave/tiles.4bpp: $(tilesetdir)/secondary/secret_base/red_cave/tiles.png
|
$(tilesetdir)/secondary/secret_base/red_cave/tiles.4bpp: $(tilesetdir)/secondary/secret_base/red_cave/tiles.png
|
||||||
$(4bpp) $< -num_tiles 83
|
$(gfx) $< $@ -num_tiles 83
|
||||||
|
|
||||||
$(tilesetdir)/secondary/inside_of_truck/tiles.4bpp: $(tilesetdir)/secondary/inside_of_truck/tiles.png
|
$(tilesetdir)/secondary/inside_of_truck/tiles.4bpp: $(tilesetdir)/secondary/inside_of_truck/tiles.png
|
||||||
$(4bpp) $< -num_tiles 62
|
$(gfx) $< $@ -num_tiles 62
|
||||||
|
|
||||||
$(tilesetdir)/secondary/contest/tiles.4bpp: $(tilesetdir)/secondary/contest/tiles.png
|
$(tilesetdir)/secondary/contest/tiles.4bpp: $(tilesetdir)/secondary/contest/tiles.png
|
||||||
$(4bpp) $< -num_tiles 430
|
$(gfx) $< $@ -num_tiles 430
|
||||||
|
|
||||||
$(tilesetdir)/secondary/lilycove_museum/tiles.4bpp: $(tilesetdir)/secondary/lilycove_museum/tiles.png
|
$(tilesetdir)/secondary/lilycove_museum/tiles.4bpp: $(tilesetdir)/secondary/lilycove_museum/tiles.png
|
||||||
$(4bpp) $< -num_tiles 431
|
$(gfx) $< $@ -num_tiles 431
|
||||||
|
|
||||||
$(tilesetdir)/secondary/lab/tiles.4bpp: $(tilesetdir)/secondary/lab/tiles.png
|
$(tilesetdir)/secondary/lab/tiles.4bpp: $(tilesetdir)/secondary/lab/tiles.png
|
||||||
$(4bpp) $< -num_tiles 500
|
$(gfx) $< $@ -num_tiles 500
|
||||||
|
|
||||||
$(tilesetdir)/secondary/underwater/tiles.4bpp: $(tilesetdir)/secondary/underwater/tiles.png
|
$(tilesetdir)/secondary/underwater/tiles.4bpp: $(tilesetdir)/secondary/underwater/tiles.png
|
||||||
$(4bpp) $< -num_tiles 500
|
$(gfx) $< $@ -num_tiles 500
|
||||||
|
|
||||||
$(tilesetdir)/secondary/generic_building/tiles.4bpp: $(tilesetdir)/secondary/generic_building/tiles.png
|
$(tilesetdir)/secondary/generic_building/tiles.4bpp: $(tilesetdir)/secondary/generic_building/tiles.png
|
||||||
$(4bpp) $< -num_tiles 509
|
$(gfx) $< $@ -num_tiles 509
|
||||||
|
|
||||||
$(tilesetdir)/secondary/mauville_game_corner/tiles.4bpp: $(tilesetdir)/secondary/mauville_game_corner/tiles.png
|
$(tilesetdir)/secondary/mauville_game_corner/tiles.4bpp: $(tilesetdir)/secondary/mauville_game_corner/tiles.png
|
||||||
$(4bpp) $< -num_tiles 469
|
$(gfx) $< $@ -num_tiles 469
|
||||||
|
|
||||||
$(tilesetdir)/secondary/unused_2/tiles.4bpp: $(tilesetdir)/secondary/unused_2/tiles.png
|
$(tilesetdir)/secondary/unused_2/tiles.4bpp: $(tilesetdir)/secondary/unused_2/tiles.png
|
||||||
$(4bpp) $< -num_tiles 150
|
$(gfx) $< $@ -num_tiles 150
|
||||||
|
|
||||||
$(tilesetdir)/secondary/rustboro_gym/tiles.4bpp: $(tilesetdir)/secondary/rustboro_gym/tiles.png
|
$(tilesetdir)/secondary/rustboro_gym/tiles.4bpp: $(tilesetdir)/secondary/rustboro_gym/tiles.png
|
||||||
$(4bpp) $< -num_tiles 60
|
$(gfx) $< $@ -num_tiles 60
|
||||||
|
|
||||||
$(tilesetdir)/secondary/dewford_gym/tiles.4bpp: $(tilesetdir)/secondary/dewford_gym/tiles.png
|
$(tilesetdir)/secondary/dewford_gym/tiles.4bpp: $(tilesetdir)/secondary/dewford_gym/tiles.png
|
||||||
$(4bpp) $< -num_tiles 61
|
$(gfx) $< $@ -num_tiles 61
|
||||||
|
|
||||||
$(tilesetdir)/secondary/lavaridge_gym/tiles.4bpp: $(tilesetdir)/secondary/lavaridge_gym/tiles.png
|
$(tilesetdir)/secondary/lavaridge_gym/tiles.4bpp: $(tilesetdir)/secondary/lavaridge_gym/tiles.png
|
||||||
$(4bpp) $< -num_tiles 54
|
$(gfx) $< $@ -num_tiles 54
|
||||||
|
|
||||||
$(tilesetdir)/secondary/petalburg_gym/tiles.4bpp: $(tilesetdir)/secondary/petalburg_gym/tiles.png
|
$(tilesetdir)/secondary/petalburg_gym/tiles.4bpp: $(tilesetdir)/secondary/petalburg_gym/tiles.png
|
||||||
$(4bpp) $< -num_tiles 148
|
$(gfx) $< $@ -num_tiles 148
|
||||||
|
|
||||||
$(tilesetdir)/secondary/fortree_gym/tiles.4bpp: $(tilesetdir)/secondary/fortree_gym/tiles.png
|
$(tilesetdir)/secondary/fortree_gym/tiles.4bpp: $(tilesetdir)/secondary/fortree_gym/tiles.png
|
||||||
$(4bpp) $< -num_tiles 61
|
$(gfx) $< $@ -num_tiles 61
|
||||||
|
|
||||||
$(tilesetdir)/secondary/mossdeep_gym/tiles.4bpp: $(tilesetdir)/secondary/mossdeep_gym/tiles.png
|
$(tilesetdir)/secondary/mossdeep_gym/tiles.4bpp: $(tilesetdir)/secondary/mossdeep_gym/tiles.png
|
||||||
$(4bpp) $< -num_tiles 82
|
$(gfx) $< $@ -num_tiles 82
|
||||||
|
|
||||||
$(tilesetdir)/secondary/sootopolis_gym/tiles.4bpp: $(tilesetdir)/secondary/sootopolis_gym/tiles.png
|
$(tilesetdir)/secondary/sootopolis_gym/tiles.4bpp: $(tilesetdir)/secondary/sootopolis_gym/tiles.png
|
||||||
$(4bpp) $< -num_tiles 484
|
$(gfx) $< $@ -num_tiles 484
|
||||||
|
|
||||||
$(tilesetdir)/secondary/trick_house_puzzle/tiles.4bpp: $(tilesetdir)/secondary/trick_house_puzzle/tiles.png
|
$(tilesetdir)/secondary/trick_house_puzzle/tiles.4bpp: $(tilesetdir)/secondary/trick_house_puzzle/tiles.png
|
||||||
$(4bpp) $< -num_tiles 294
|
$(gfx) $< $@ -num_tiles 294
|
||||||
|
|
||||||
$(tilesetdir)/secondary/inside_ship/tiles.4bpp: $(tilesetdir)/secondary/inside_ship/tiles.png
|
$(tilesetdir)/secondary/inside_ship/tiles.4bpp: $(tilesetdir)/secondary/inside_ship/tiles.png
|
||||||
$(4bpp) $< -num_tiles 342
|
$(gfx) $< $@ -num_tiles 342
|
||||||
|
|
||||||
$(tilesetdir)/secondary/elite_four/tiles.4bpp: $(tilesetdir)/secondary/elite_four/tiles.png
|
$(tilesetdir)/secondary/elite_four/tiles.4bpp: $(tilesetdir)/secondary/elite_four/tiles.png
|
||||||
$(4bpp) $< -num_tiles 505
|
$(gfx) $< $@ -num_tiles 505
|
||||||
|
|
||||||
$(tilesetdir)/secondary/battle_frontier/tiles.4bpp: $(tilesetdir)/secondary/battle_frontier/tiles.png
|
$(tilesetdir)/secondary/battle_frontier/tiles.4bpp: $(tilesetdir)/secondary/battle_frontier/tiles.png
|
||||||
$(4bpp) $< -num_tiles 310
|
$(gfx) $< $@ -num_tiles 310
|
||||||
|
|
||||||
$(tilesetdir)/secondary/battle_factory/tiles.4bpp: $(tilesetdir)/secondary/battle_factory/tiles.png
|
$(tilesetdir)/secondary/battle_factory/tiles.4bpp: $(tilesetdir)/secondary/battle_factory/tiles.png
|
||||||
$(4bpp) $< -num_tiles 424
|
$(gfx) $< $@ -num_tiles 424
|
||||||
|
|
||||||
$(tilesetdir)/secondary/battle_pike/tiles.4bpp: $(tilesetdir)/secondary/battle_pike/tiles.png
|
$(tilesetdir)/secondary/battle_pike/tiles.4bpp: $(tilesetdir)/secondary/battle_pike/tiles.png
|
||||||
$(4bpp) $< -num_tiles 382
|
$(gfx) $< $@ -num_tiles 382
|
||||||
|
|
||||||
$(tilesetdir)/secondary/mirage_tower/tiles.4bpp: $(tilesetdir)/secondary/mirage_tower/tiles.png
|
$(tilesetdir)/secondary/mirage_tower/tiles.4bpp: $(tilesetdir)/secondary/mirage_tower/tiles.png
|
||||||
$(4bpp) $< -num_tiles 420
|
$(gfx) $< $@ -num_tiles 420
|
||||||
|
|
||||||
$(tilesetdir)/secondary/mossdeep_game_corner/tiles.4bpp: $(tilesetdir)/secondary/mossdeep_game_corner/tiles.png
|
$(tilesetdir)/secondary/mossdeep_game_corner/tiles.4bpp: $(tilesetdir)/secondary/mossdeep_game_corner/tiles.png
|
||||||
$(4bpp) $< -num_tiles 95
|
$(gfx) $< $@ -num_tiles 95
|
||||||
|
|
||||||
$(tilesetdir)/secondary/island_habor/tiles.4bpp: $(tilesetdir)/secondary/island_habor/tiles.png
|
$(tilesetdir)/secondary/island_harbor/tiles.4bpp: $(tilesetdir)/secondary/island_harbor/tiles.png
|
||||||
$(4bpp) $< -num_tiles 503
|
$(gfx) $< $@ -num_tiles 503
|
||||||
|
|
||||||
$(tilesetdir)/secondary/trainer_hill/tiles.4bpp: $(tilesetdir)/secondary/trainer_hill/tiles.png
|
$(tilesetdir)/secondary/trainer_hill/tiles.4bpp: $(tilesetdir)/secondary/trainer_hill/tiles.png
|
||||||
$(4bpp) $< -num_tiles 374
|
$(gfx) $< $@ -num_tiles 374
|
||||||
|
|
||||||
$(tilesetdir)/secondary/navel_rock/tiles.4bpp: $(tilesetdir)/secondary/navel_rock/tiles.png
|
$(tilesetdir)/secondary/navel_rock/tiles.4bpp: $(tilesetdir)/secondary/navel_rock/tiles.png
|
||||||
$(4bpp) $< -num_tiles 420
|
$(gfx) $< $@ -num_tiles 420
|
||||||
|
|
||||||
$(tilesetdir)/secondary/battle_frontier_ranking_hall/tiles.4bpp: $(tilesetdir)/secondary/battle_frontier_ranking_hall/tiles.png
|
$(tilesetdir)/secondary/battle_frontier_ranking_hall/tiles.4bpp: $(tilesetdir)/secondary/battle_frontier_ranking_hall/tiles.png
|
||||||
$(4bpp) $< -num_tiles 136
|
$(gfx) $< $@ -num_tiles 136
|
||||||
|
|
||||||
$(tilesetdir)/secondary/mystery_events_house/tiles.4bpp: $(tilesetdir)/secondary/mystery_events_house/tiles.png
|
$(tilesetdir)/secondary/mystery_events_house/tiles.4bpp: $(tilesetdir)/secondary/mystery_events_house/tiles.png
|
||||||
$(4bpp) $< -num_tiles 509
|
$(gfx) $< $@ -num_tiles 509
|
||||||
|
|
||||||
|
fontdir := data/graphics/fonts
|
||||||
|
|
||||||
|
$(fontdir)/font0.latfont: $(fontdir)/font0_latin.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font1.latfont: $(fontdir)/font1_latin.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font2.latfont: $(fontdir)/font2_latin.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font7.latfont: $(fontdir)/font7_latin.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font8.latfont: $(fontdir)/font8_latin.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font0.hwjpnfont: $(fontdir)/font0_japanese.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font1.hwjpnfont: $(fontdir)/font1_japanese.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font9.hwjpnfont: $(fontdir)/font9_japanese.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font2.fwjpnfont: $(fontdir)/font2_japanese.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/font6.fwjpnfont: $(fontdir)/font6_braille.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/unused_1.fwjpnfont: $(fontdir)/unused_japanese_font_1.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
|
||||||
|
$(fontdir)/unused_2.fwjpnfont: $(fontdir)/unused_japanese_font_2.png
|
||||||
|
$(gfx) $< $@
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
CC = gcc
|
CC = gcc
|
||||||
|
|
||||||
CFLAGS = -Wall -std=c11 -O2
|
CFLAGS = -Wall -Wextra -std=c11 -O2
|
||||||
|
|
||||||
LIBS = -lz -lpng
|
LIBS = -lz -lpng
|
||||||
|
|
||||||
SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c util.c
|
SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c util.c font.c
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h util.h
|
gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h util.h font.h
|
||||||
$(CC) $(CFLAGS) $(SRCS) -o $@ $(LIBS)
|
$(CC) $(CFLAGS) $(SRCS) -o $@ $(LIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
@ -134,7 +134,7 @@ void WritePng(char *path, struct Image *image)
|
|||||||
if (image->hasPalette) {
|
if (image->hasPalette) {
|
||||||
SetPngPalette(png_ptr, info_ptr, &image->palette);
|
SetPngPalette(png_ptr, info_ptr, &image->palette);
|
||||||
|
|
||||||
if (image->isObject) {
|
if (image->hasTransparency) {
|
||||||
png_byte trans = 0;
|
png_byte trans = 0;
|
||||||
png_set_tRNS(png_ptr, info_ptr, &trans, 1, 0);
|
png_set_tRNS(png_ptr, info_ptr, &trans, 1, 0);
|
||||||
}
|
}
|
||||||
|
326
tools/gbagfx/font.c
Normal file
@ -0,0 +1,326 @@
|
|||||||
|
// Copyright (c) 2015 YamaArashi
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "global.h"
|
||||||
|
#include "font.h"
|
||||||
|
#include "gfx.h"
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
unsigned char gFontPalette[][3] = {
|
||||||
|
{0x90, 0xC8, 0xFF}, // bg (saturated blue that contrasts well with the shadow color)
|
||||||
|
{0x38, 0x38, 0x38}, // fg (dark grey)
|
||||||
|
{0xD8, 0xD8, 0xD8}, // shadow (light grey)
|
||||||
|
{0xFF, 0xFF, 0xFF} // box (white)
|
||||||
|
};
|
||||||
|
|
||||||
|
static void ConvertFromLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||||
|
{
|
||||||
|
unsigned int srcPixelsOffset = 0;
|
||||||
|
|
||||||
|
for (unsigned int row = 0; row < numRows; row++) {
|
||||||
|
for (unsigned int column = 0; column < 16; column++) {
|
||||||
|
for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) {
|
||||||
|
unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8);
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < 8; i++) {
|
||||||
|
unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i;
|
||||||
|
unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4);
|
||||||
|
|
||||||
|
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||||
|
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||||
|
|
||||||
|
srcPixelsOffset += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ConvertToLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||||
|
{
|
||||||
|
unsigned int destPixelsOffset = 0;
|
||||||
|
|
||||||
|
for (unsigned int row = 0; row < numRows; row++) {
|
||||||
|
for (unsigned int column = 0; column < 16; column++) {
|
||||||
|
for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) {
|
||||||
|
unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8);
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < 8; i++) {
|
||||||
|
unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i;
|
||||||
|
unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4);
|
||||||
|
|
||||||
|
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||||
|
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||||
|
|
||||||
|
destPixelsOffset += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ConvertFromHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||||
|
{
|
||||||
|
for (unsigned int row = 0; row < numRows; row++) {
|
||||||
|
for (unsigned int column = 0; column < 16; column++) {
|
||||||
|
unsigned int glyphIndex = (row * 16) + column;
|
||||||
|
|
||||||
|
for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) {
|
||||||
|
unsigned int pixelsX = column * 8;
|
||||||
|
unsigned int srcPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile;
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < 8; i++) {
|
||||||
|
unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i;
|
||||||
|
unsigned int destPixelsOffset = (pixelsY * 32) + (pixelsX / 4);
|
||||||
|
|
||||||
|
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||||
|
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||||
|
|
||||||
|
srcPixelsOffset += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ConvertToHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||||
|
{
|
||||||
|
for (unsigned int row = 0; row < numRows; row++) {
|
||||||
|
for (unsigned int column = 0; column < 16; column++) {
|
||||||
|
unsigned int glyphIndex = (row * 16) + column;
|
||||||
|
|
||||||
|
for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) {
|
||||||
|
unsigned int pixelsX = column * 8;
|
||||||
|
unsigned int destPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile;
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < 8; i++) {
|
||||||
|
unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i;
|
||||||
|
unsigned int srcPixelsOffset = (pixelsY * 32) + (pixelsX / 4);
|
||||||
|
|
||||||
|
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||||
|
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||||
|
|
||||||
|
destPixelsOffset += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ConvertFromFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||||
|
{
|
||||||
|
for (unsigned int row = 0; row < numRows; row++) {
|
||||||
|
for (unsigned int column = 0; column < 16; column++) {
|
||||||
|
unsigned int glyphIndex = (row * 16) + column;
|
||||||
|
|
||||||
|
for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) {
|
||||||
|
unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8);
|
||||||
|
unsigned int srcPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1);
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < 8; i++) {
|
||||||
|
unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i;
|
||||||
|
unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4);
|
||||||
|
|
||||||
|
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||||
|
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||||
|
|
||||||
|
srcPixelsOffset += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ConvertToFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows)
|
||||||
|
{
|
||||||
|
for (unsigned int row = 0; row < numRows; row++) {
|
||||||
|
for (unsigned int column = 0; column < 16; column++) {
|
||||||
|
unsigned int glyphIndex = (row * 16) + column;
|
||||||
|
|
||||||
|
for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) {
|
||||||
|
unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8);
|
||||||
|
unsigned int destPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1);
|
||||||
|
|
||||||
|
for (unsigned int i = 0; i < 8; i++) {
|
||||||
|
unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i;
|
||||||
|
unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4);
|
||||||
|
|
||||||
|
dest[destPixelsOffset] = src[srcPixelsOffset + 1];
|
||||||
|
dest[destPixelsOffset + 1] = src[srcPixelsOffset];
|
||||||
|
|
||||||
|
destPixelsOffset += 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void SetFontPalette(struct Image *image)
|
||||||
|
{
|
||||||
|
image->hasPalette = true;
|
||||||
|
|
||||||
|
image->palette.numColors = 4;
|
||||||
|
|
||||||
|
for (int i = 0; i < image->palette.numColors; i++) {
|
||||||
|
image->palette.colors[i].red = gFontPalette[i][0];
|
||||||
|
image->palette.colors[i].green = gFontPalette[i][1];
|
||||||
|
image->palette.colors[i].blue = gFontPalette[i][2];
|
||||||
|
}
|
||||||
|
|
||||||
|
image->hasTransparency = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReadLatinFont(char *path, struct Image *image)
|
||||||
|
{
|
||||||
|
int fileSize;
|
||||||
|
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
||||||
|
|
||||||
|
int numGlyphs = fileSize / 64;
|
||||||
|
|
||||||
|
if (numGlyphs % 16 != 0)
|
||||||
|
FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs);
|
||||||
|
|
||||||
|
int numRows = numGlyphs / 16;
|
||||||
|
|
||||||
|
image->width = 256;
|
||||||
|
image->height = numRows * 16;
|
||||||
|
image->bitDepth = 2;
|
||||||
|
image->pixels = malloc(fileSize);
|
||||||
|
|
||||||
|
if (image->pixels == NULL)
|
||||||
|
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||||
|
|
||||||
|
ConvertFromLatinFont(buffer, image->pixels, numRows);
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
|
||||||
|
SetFontPalette(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WriteLatinFont(char *path, struct Image *image)
|
||||||
|
{
|
||||||
|
if (image->width != 256)
|
||||||
|
FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width);
|
||||||
|
|
||||||
|
if (image->height % 16 != 0)
|
||||||
|
FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height);
|
||||||
|
|
||||||
|
int numRows = image->height / 16;
|
||||||
|
int bufferSize = numRows * 16 * 64;
|
||||||
|
unsigned char *buffer = malloc(bufferSize);
|
||||||
|
|
||||||
|
if (buffer == NULL)
|
||||||
|
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||||
|
|
||||||
|
ConvertToLatinFont(image->pixels, buffer, numRows);
|
||||||
|
|
||||||
|
WriteWholeFile(path, buffer, bufferSize);
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReadHalfwidthJapaneseFont(char *path, struct Image *image)
|
||||||
|
{
|
||||||
|
int fileSize;
|
||||||
|
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
||||||
|
|
||||||
|
int glyphSize = 32;
|
||||||
|
|
||||||
|
if (fileSize % glyphSize != 0)
|
||||||
|
FATAL_ERROR("The file size (%d) is not a multiple of %d.\n", fileSize, glyphSize);
|
||||||
|
|
||||||
|
int numGlyphs = fileSize / glyphSize;
|
||||||
|
|
||||||
|
if (numGlyphs % 16 != 0)
|
||||||
|
FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs);
|
||||||
|
|
||||||
|
int numRows = numGlyphs / 16;
|
||||||
|
|
||||||
|
image->width = 128;
|
||||||
|
image->height = numRows * 16;
|
||||||
|
image->bitDepth = 2;
|
||||||
|
image->pixels = malloc(fileSize);
|
||||||
|
|
||||||
|
if (image->pixels == NULL)
|
||||||
|
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||||
|
|
||||||
|
ConvertFromHalfwidthJapaneseFont(buffer, image->pixels, numRows);
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
|
||||||
|
SetFontPalette(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WriteHalfwidthJapaneseFont(char *path, struct Image *image)
|
||||||
|
{
|
||||||
|
if (image->width != 128)
|
||||||
|
FATAL_ERROR("The width of the font image (%d) is not 128.\n", image->width);
|
||||||
|
|
||||||
|
if (image->height % 16 != 0)
|
||||||
|
FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height);
|
||||||
|
|
||||||
|
int numRows = image->height / 16;
|
||||||
|
int bufferSize = numRows * 16 * 32;
|
||||||
|
unsigned char *buffer = malloc(bufferSize);
|
||||||
|
|
||||||
|
if (buffer == NULL)
|
||||||
|
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||||
|
|
||||||
|
ConvertToHalfwidthJapaneseFont(image->pixels, buffer, numRows);
|
||||||
|
|
||||||
|
WriteWholeFile(path, buffer, bufferSize);
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReadFullwidthJapaneseFont(char *path, struct Image *image)
|
||||||
|
{
|
||||||
|
int fileSize;
|
||||||
|
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
||||||
|
|
||||||
|
int numGlyphs = fileSize / 64;
|
||||||
|
|
||||||
|
if (numGlyphs % 16 != 0)
|
||||||
|
FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs);
|
||||||
|
|
||||||
|
int numRows = numGlyphs / 16;
|
||||||
|
|
||||||
|
image->width = 256;
|
||||||
|
image->height = numRows * 16;
|
||||||
|
image->bitDepth = 2;
|
||||||
|
image->pixels = malloc(fileSize);
|
||||||
|
|
||||||
|
if (image->pixels == NULL)
|
||||||
|
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||||
|
|
||||||
|
ConvertFromFullwidthJapaneseFont(buffer, image->pixels, numRows);
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
|
||||||
|
SetFontPalette(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WriteFullwidthJapaneseFont(char *path, struct Image *image)
|
||||||
|
{
|
||||||
|
if (image->width != 256)
|
||||||
|
FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width);
|
||||||
|
|
||||||
|
if (image->height % 16 != 0)
|
||||||
|
FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height);
|
||||||
|
|
||||||
|
int numRows = image->height / 16;
|
||||||
|
int bufferSize = numRows * 16 * 64;
|
||||||
|
unsigned char *buffer = malloc(bufferSize);
|
||||||
|
|
||||||
|
if (buffer == NULL)
|
||||||
|
FATAL_ERROR("Failed to allocate memory for font.\n");
|
||||||
|
|
||||||
|
ConvertToFullwidthJapaneseFont(image->pixels, buffer, numRows);
|
||||||
|
|
||||||
|
WriteWholeFile(path, buffer, bufferSize);
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
}
|
16
tools/gbagfx/font.h
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// Copyright (c) 2015 YamaArashi
|
||||||
|
|
||||||
|
#ifndef FONT_H
|
||||||
|
#define FONT_H
|
||||||
|
|
||||||
|
#include<stdbool.h>
|
||||||
|
#include "gfx.h"
|
||||||
|
|
||||||
|
void ReadLatinFont(char *path, struct Image *image);
|
||||||
|
void WriteLatinFont(char *path, struct Image *image);
|
||||||
|
void ReadHalfwidthJapaneseFont(char *path, struct Image *image);
|
||||||
|
void WriteHalfwidthJapaneseFont(char *path, struct Image *image);
|
||||||
|
void ReadFullwidthJapaneseFont(char *path, struct Image *image);
|
||||||
|
void WriteFullwidthJapaneseFont(char *path, struct Image *image);
|
||||||
|
|
||||||
|
#endif // FONT_H
|
@ -24,7 +24,7 @@ struct Image {
|
|||||||
unsigned char *pixels;
|
unsigned char *pixels;
|
||||||
bool hasPalette;
|
bool hasPalette;
|
||||||
struct Palette palette;
|
struct Palette palette;
|
||||||
bool isObject;
|
bool hasTransparency;
|
||||||
};
|
};
|
||||||
|
|
||||||
void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bool invertColors);
|
void ReadImage(char *path, int tilesWidth, int bitDepth, struct Image *image, bool invertColors);
|
||||||
|
@ -14,6 +14,8 @@ do { \
|
|||||||
exit(1); \
|
exit(1); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define UNUSED
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define FATAL_ERROR(format, ...) \
|
#define FATAL_ERROR(format, ...) \
|
||||||
@ -22,14 +24,8 @@ do { \
|
|||||||
exit(1); \
|
exit(1); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define UNUSED __attribute__((__unused__))
|
||||||
|
|
||||||
#endif // _MSC_VER
|
#endif // _MSC_VER
|
||||||
|
|
||||||
#define GBAGFX_MAX_PATH 255
|
|
||||||
|
|
||||||
#define CHECK_PATH_LENGTH(path) \
|
|
||||||
do { \
|
|
||||||
if (strlen(path) > GBAGFX_MAX_PATH) \
|
|
||||||
FATAL_ERROR("\"%s\" is too long a path.\n", path); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#endif // GLOBAL_H
|
#endif // GLOBAL_H
|
||||||
|
@ -9,25 +9,18 @@
|
|||||||
#include "convert_png.h"
|
#include "convert_png.h"
|
||||||
#include "jasc_pal.h"
|
#include "jasc_pal.h"
|
||||||
#include "lz.h"
|
#include "lz.h"
|
||||||
|
#include "font.h"
|
||||||
|
|
||||||
void ConvertToPng(char *imageFilePath, char *outputFilePath, char *paletteFilePath, bool isObject, int width)
|
struct CommandHandler
|
||||||
|
{
|
||||||
|
const char *inputFileExtension;
|
||||||
|
const char *outputFileExtension;
|
||||||
|
void(*function)(char *inputPath, char *outputPath, int argc, char **argv);
|
||||||
|
};
|
||||||
|
|
||||||
|
void ConvertGbaToPng(char *inputPath, char *outputPath, int width, int bitDepth, char *paletteFilePath, bool hasTransparency)
|
||||||
{
|
{
|
||||||
struct Image image;
|
struct Image image;
|
||||||
int bitDepth = 0;
|
|
||||||
|
|
||||||
char *extension = GetFileExtension(imageFilePath);
|
|
||||||
|
|
||||||
if (extension == NULL)
|
|
||||||
FATAL_ERROR("\"%s\" has no file extension.\n", imageFilePath);
|
|
||||||
|
|
||||||
if (strcmp(extension, "1bpp") == 0)
|
|
||||||
bitDepth = 1;
|
|
||||||
else if (strcmp(extension, "4bpp") == 0)
|
|
||||||
bitDepth = 4;
|
|
||||||
else if (strcmp(extension, "8bpp") == 0)
|
|
||||||
bitDepth = 8;
|
|
||||||
else
|
|
||||||
FATAL_ERROR("Unexpected file extension \"%s\". Expected \"1bpp\", \"4bpp\", or \"8bpp\".\n", extension);
|
|
||||||
|
|
||||||
if (paletteFilePath != NULL) {
|
if (paletteFilePath != NULL) {
|
||||||
ReadGbaPalette(paletteFilePath, &image.palette);
|
ReadGbaPalette(paletteFilePath, &image.palette);
|
||||||
@ -36,149 +29,51 @@ void ConvertToPng(char *imageFilePath, char *outputFilePath, char *paletteFilePa
|
|||||||
image.hasPalette = false;
|
image.hasPalette = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReadImage(imageFilePath, width, bitDepth, &image, !image.hasPalette);
|
ReadImage(inputPath, width, bitDepth, &image, !image.hasPalette);
|
||||||
|
|
||||||
image.isObject = isObject;
|
image.hasTransparency = hasTransparency;
|
||||||
|
|
||||||
if (outputFilePath == NULL) {
|
WritePng(outputPath, &image);
|
||||||
ChangeFileExtension(imageFilePath, "png");
|
|
||||||
outputFilePath = imageFilePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
WritePng(outputFilePath, &image);
|
|
||||||
|
|
||||||
FreeImage(&image);
|
FreeImage(&image);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConvertFromPng(char *imageFilePath, char *outputFilePath, int numTiles, int bitDepth)
|
void ConvertPngToGba(char *inputPath, char *outputPath, int numTiles, int bitDepth)
|
||||||
{
|
{
|
||||||
struct Image image;
|
struct Image image;
|
||||||
|
|
||||||
image.bitDepth = bitDepth;
|
image.bitDepth = bitDepth;
|
||||||
|
|
||||||
ExpectFileExtension(imageFilePath, "png");
|
ReadPng(inputPath, &image);
|
||||||
|
|
||||||
ReadPng(imageFilePath, &image);
|
WriteImage(outputPath, numTiles, bitDepth, &image, !image.hasPalette);
|
||||||
|
|
||||||
if (outputFilePath == NULL) {
|
|
||||||
char newExtension[5];
|
|
||||||
snprintf(newExtension, 5, "%dbpp", bitDepth);
|
|
||||||
ChangeFileExtension(imageFilePath, newExtension);
|
|
||||||
outputFilePath = imageFilePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
WriteImage(outputFilePath, numTiles, bitDepth, &image, !image.hasPalette);
|
|
||||||
|
|
||||||
FreeImage(&image);
|
FreeImage(&image);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConvertToJascPalette(char *paletteFilePath)
|
void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **argv)
|
||||||
{
|
{
|
||||||
struct Palette palette;
|
char *inputFileExtension = GetFileExtension(inputPath);
|
||||||
|
int bitDepth = inputFileExtension[0] - '0';
|
||||||
ExpectFileExtension(paletteFilePath, "gbapal");
|
char *paletteFilePath;
|
||||||
|
|
||||||
ReadGbaPalette(paletteFilePath, &palette);
|
|
||||||
|
|
||||||
ChangeFileExtension(paletteFilePath, "pal");
|
|
||||||
|
|
||||||
WriteJascPalette(paletteFilePath, &palette);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConvertFromJascPalette(char *paletteFilePath)
|
|
||||||
{
|
|
||||||
struct Palette palette;
|
|
||||||
|
|
||||||
ExpectFileExtension(paletteFilePath, "pal");
|
|
||||||
|
|
||||||
ReadJascPalette(paletteFilePath, &palette);
|
|
||||||
|
|
||||||
ChangeFileExtension(paletteFilePath, "gbapal");
|
|
||||||
|
|
||||||
WriteGbaPalette(paletteFilePath, &palette);
|
|
||||||
}
|
|
||||||
|
|
||||||
void LZCompressFile(char *path)
|
|
||||||
{
|
|
||||||
int fileSize;
|
|
||||||
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
|
||||||
|
|
||||||
int compressedSize;
|
|
||||||
unsigned char *compressedData = LZCompress(buffer, fileSize, &compressedSize);
|
|
||||||
|
|
||||||
free(buffer);
|
|
||||||
|
|
||||||
AddFileExtension(path, "lz");
|
|
||||||
|
|
||||||
WriteWholeFile(path, compressedData, compressedSize);
|
|
||||||
|
|
||||||
free(compressedData);
|
|
||||||
}
|
|
||||||
|
|
||||||
void LZDecompressFile(char *path)
|
|
||||||
{
|
|
||||||
ExpectFileExtension(path, "lz");
|
|
||||||
|
|
||||||
int fileSize;
|
|
||||||
unsigned char *buffer = ReadWholeFile(path, &fileSize);
|
|
||||||
|
|
||||||
int uncompressedSize;
|
|
||||||
unsigned char *uncompressedData = LZDecompress(buffer, fileSize, &uncompressedSize);
|
|
||||||
|
|
||||||
free(buffer);
|
|
||||||
|
|
||||||
RemoveFileExtension(path);
|
|
||||||
|
|
||||||
WriteWholeFile(path, uncompressedData, uncompressedSize);
|
|
||||||
|
|
||||||
free(uncompressedData);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
if (argc < 2)
|
|
||||||
FATAL_ERROR("No args.\n");
|
|
||||||
|
|
||||||
char *command = argv[1];
|
|
||||||
|
|
||||||
if (strcmp(command, "png") == 0) {
|
|
||||||
if (argc < 3)
|
|
||||||
FATAL_ERROR("No image file path arg.\n");
|
|
||||||
|
|
||||||
CHECK_PATH_LENGTH(argv[2]);
|
|
||||||
|
|
||||||
char imageFilePath[GBAGFX_MAX_PATH + 1];
|
|
||||||
strcpy(imageFilePath, argv[2]);
|
|
||||||
|
|
||||||
char *outputFilePath = NULL;
|
|
||||||
char paletteFilePath[GBAGFX_MAX_PATH + 1];
|
|
||||||
bool hasPalette = false;
|
bool hasPalette = false;
|
||||||
bool isObject = false;
|
bool hasTransparency = false;
|
||||||
int width = 1;
|
int width = 1;
|
||||||
|
|
||||||
for (int i = 3; i < argc; i++) {
|
for (int i = 3; i < argc; i++) {
|
||||||
char *option = argv[i];
|
char *option = argv[i];
|
||||||
|
|
||||||
if (strcmp(option, "-output") == 0) {
|
if (strcmp(option, "-palette") == 0) {
|
||||||
if (i + 1 >= argc)
|
|
||||||
FATAL_ERROR("No output file path following \"-output\".\n");
|
|
||||||
|
|
||||||
i++;
|
|
||||||
|
|
||||||
outputFilePath = argv[i];
|
|
||||||
} else if (strcmp(option, "-palette") == 0) {
|
|
||||||
if (i + 1 >= argc)
|
if (i + 1 >= argc)
|
||||||
FATAL_ERROR("No palette file path following \"-palette\".\n");
|
FATAL_ERROR("No palette file path following \"-palette\".\n");
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
|
|
||||||
CHECK_PATH_LENGTH(argv[i]);
|
paletteFilePath = argv[i];
|
||||||
|
|
||||||
strcpy(paletteFilePath, argv[i]);
|
|
||||||
|
|
||||||
hasPalette = true;
|
hasPalette = true;
|
||||||
} else if (strcmp(option, "-object") == 0) {
|
} else if (strcmp(option, "-object") == 0) {
|
||||||
isObject = true;
|
hasTransparency = true;
|
||||||
} else if (strcmp(option, "-width") == 0) {
|
} else if (strcmp(option, "-width") == 0) {
|
||||||
if (i + 1 >= argc)
|
if (i + 1 >= argc)
|
||||||
FATAL_ERROR("No width following \"-width\".\n");
|
FATAL_ERROR("No width following \"-width\".\n");
|
||||||
@ -195,31 +90,19 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ConvertToPng(imageFilePath, outputFilePath, hasPalette ? paletteFilePath : NULL, isObject, width);
|
ConvertGbaToPng(inputPath, outputPath, width, bitDepth, hasPalette ? paletteFilePath : NULL, hasTransparency);
|
||||||
} else if (strcmp(command, "1bpp") == 0 || strcmp(command, "4bpp") == 0 || strcmp(command, "8bpp") == 0) {
|
}
|
||||||
if (argc < 3)
|
|
||||||
FATAL_ERROR("No image file path arg.\n");
|
|
||||||
|
|
||||||
CHECK_PATH_LENGTH(argv[2]);
|
void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv)
|
||||||
|
{
|
||||||
char imageFilePath[GBAGFX_MAX_PATH + 1];
|
char *outputFileExtension = GetFileExtension(outputPath);
|
||||||
strcpy(imageFilePath, argv[2]);
|
int bitDepth = outputFileExtension[0] - '0';
|
||||||
|
|
||||||
char *outputFilePath = NULL;
|
|
||||||
int numTiles = 0;
|
int numTiles = 0;
|
||||||
int bitDepth = command[0] - '0';
|
|
||||||
|
|
||||||
for (int i = 3; i < argc; i++) {
|
for (int i = 3; i < argc; i++) {
|
||||||
char *option = argv[i];
|
char *option = argv[i];
|
||||||
|
|
||||||
if (strcmp(option, "-output") == 0) {
|
if (strcmp(option, "-num_tiles") == 0) {
|
||||||
if (i + 1 >= argc)
|
|
||||||
FATAL_ERROR("No output file path following \"-output\".\n");
|
|
||||||
|
|
||||||
i++;
|
|
||||||
|
|
||||||
outputFilePath = argv[i];
|
|
||||||
} else if (strcmp(option, "-num_tiles") == 0) {
|
|
||||||
if (i + 1 >= argc)
|
if (i + 1 >= argc)
|
||||||
FATAL_ERROR("No number of tiles following \"-num_tiles\".\n");
|
FATAL_ERROR("No number of tiles following \"-num_tiles\".\n");
|
||||||
|
|
||||||
@ -235,50 +118,160 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ConvertFromPng(imageFilePath, outputFilePath, numTiles, bitDepth);
|
ConvertPngToGba(inputPath, outputPath, numTiles, bitDepth);
|
||||||
} else if (strcmp(command, "pal") == 0) {
|
|
||||||
if (argc < 3)
|
|
||||||
FATAL_ERROR("No palette file path arg.\n");
|
|
||||||
|
|
||||||
CHECK_PATH_LENGTH(argv[2]);
|
|
||||||
|
|
||||||
char paletteFilePath[GBAGFX_MAX_PATH + 1];
|
|
||||||
strcpy(paletteFilePath, argv[2]);
|
|
||||||
|
|
||||||
ConvertToJascPalette(paletteFilePath);
|
|
||||||
} else if (strcmp(command, "gbapal") == 0) {
|
|
||||||
if (argc < 3)
|
|
||||||
FATAL_ERROR("No palette file path arg.\n");
|
|
||||||
|
|
||||||
CHECK_PATH_LENGTH(argv[2]);
|
|
||||||
|
|
||||||
char paletteFilePath[GBAGFX_MAX_PATH + 1];
|
|
||||||
strcpy(paletteFilePath, argv[2]);
|
|
||||||
|
|
||||||
ConvertFromJascPalette(paletteFilePath);
|
|
||||||
} else if (strcmp(command, "lz") == 0) {
|
|
||||||
if (argc < 3)
|
|
||||||
FATAL_ERROR("No file path arg.\n");
|
|
||||||
|
|
||||||
CHECK_PATH_LENGTH(argv[2]);
|
|
||||||
|
|
||||||
char path[GBAGFX_MAX_PATH + 1];
|
|
||||||
strcpy(path, argv[2]);
|
|
||||||
|
|
||||||
LZCompressFile(path);
|
|
||||||
} else if (strcmp(command, "unlz") == 0) {
|
|
||||||
if (argc < 3)
|
|
||||||
FATAL_ERROR("No file path arg.\n");
|
|
||||||
|
|
||||||
CHECK_PATH_LENGTH(argv[2]);
|
|
||||||
|
|
||||||
char path[GBAGFX_MAX_PATH + 1];
|
|
||||||
strcpy(path, argv[2]);
|
|
||||||
|
|
||||||
LZDecompressFile(path);
|
|
||||||
} else {
|
|
||||||
FATAL_ERROR("Unrecognized command \"%s\".\n", command);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HandleGbaToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
struct Palette palette;
|
||||||
|
|
||||||
|
ReadGbaPalette(inputPath, &palette);
|
||||||
|
WriteJascPalette(outputPath, &palette);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleJascToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
struct Palette palette;
|
||||||
|
|
||||||
|
ReadJascPalette(inputPath, &palette);
|
||||||
|
WriteGbaPalette(outputPath, &palette);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleLatinFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
struct Image image;
|
||||||
|
|
||||||
|
ReadLatinFont(inputPath, &image);
|
||||||
|
WritePng(outputPath, &image);
|
||||||
|
|
||||||
|
FreeImage(&image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandlePngToLatinFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
struct Image image;
|
||||||
|
|
||||||
|
image.bitDepth = 2;
|
||||||
|
|
||||||
|
ReadPng(inputPath, &image);
|
||||||
|
WriteLatinFont(outputPath, &image);
|
||||||
|
|
||||||
|
FreeImage(&image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleHalfwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
struct Image image;
|
||||||
|
|
||||||
|
ReadHalfwidthJapaneseFont(inputPath, &image);
|
||||||
|
WritePng(outputPath, &image);
|
||||||
|
|
||||||
|
FreeImage(&image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandlePngToHalfwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
struct Image image;
|
||||||
|
|
||||||
|
image.bitDepth = 2;
|
||||||
|
|
||||||
|
ReadPng(inputPath, &image);
|
||||||
|
WriteHalfwidthJapaneseFont(outputPath, &image);
|
||||||
|
|
||||||
|
FreeImage(&image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleFullwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
struct Image image;
|
||||||
|
|
||||||
|
ReadFullwidthJapaneseFont(inputPath, &image);
|
||||||
|
WritePng(outputPath, &image);
|
||||||
|
|
||||||
|
FreeImage(&image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandlePngToFullwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
struct Image image;
|
||||||
|
|
||||||
|
image.bitDepth = 2;
|
||||||
|
|
||||||
|
ReadPng(inputPath, &image);
|
||||||
|
WriteFullwidthJapaneseFont(outputPath, &image);
|
||||||
|
|
||||||
|
FreeImage(&image);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleLZCompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
int fileSize;
|
||||||
|
unsigned char *buffer = ReadWholeFile(inputPath, &fileSize);
|
||||||
|
|
||||||
|
int compressedSize;
|
||||||
|
unsigned char *compressedData = LZCompress(buffer, fileSize, &compressedSize);
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
|
||||||
|
WriteWholeFile(outputPath, compressedData, compressedSize);
|
||||||
|
|
||||||
|
free(compressedData);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleLZDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
|
||||||
|
{
|
||||||
|
int fileSize;
|
||||||
|
unsigned char *buffer = ReadWholeFile(inputPath, &fileSize);
|
||||||
|
|
||||||
|
int uncompressedSize;
|
||||||
|
unsigned char *uncompressedData = LZDecompress(buffer, fileSize, &uncompressedSize);
|
||||||
|
|
||||||
|
free(buffer);
|
||||||
|
|
||||||
|
WriteWholeFile(outputPath, uncompressedData, uncompressedSize);
|
||||||
|
|
||||||
|
free(uncompressedData);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
if (argc < 3)
|
||||||
|
FATAL_ERROR("Usage: gbagfx INPUT_PATH OUTPUT_PATH [options...]\n");
|
||||||
|
|
||||||
|
struct CommandHandler handlers[] =
|
||||||
|
{
|
||||||
|
{ "1bpp", "png", HandleGbaToPngCommand },
|
||||||
|
{ "4bpp", "png", HandleGbaToPngCommand },
|
||||||
|
{ "8bpp", "png", HandleGbaToPngCommand },
|
||||||
|
{ "png", "1bpp", HandlePngToGbaCommand },
|
||||||
|
{ "png", "4bpp", HandlePngToGbaCommand },
|
||||||
|
{ "png", "8bpp", HandlePngToGbaCommand },
|
||||||
|
{ "gbapal", "pal", HandleGbaToJascPaletteCommand },
|
||||||
|
{ "pal", "gbapal", HandleJascToGbaPaletteCommand },
|
||||||
|
{ "latfont", "png", HandleLatinFontToPngCommand },
|
||||||
|
{ "png", "latfont", HandlePngToLatinFontCommand },
|
||||||
|
{ "hwjpnfont", "png", HandleHalfwidthJapaneseFontToPngCommand },
|
||||||
|
{ "png", "hwjpnfont", HandlePngToHalfwidthJapaneseFontCommand },
|
||||||
|
{ "fwjpnfont", "png", HandleFullwidthJapaneseFontToPngCommand },
|
||||||
|
{ "png", "fwjpnfont", HandlePngToFullwidthJapaneseFontCommand },
|
||||||
|
{ NULL, "lz", HandleLZCompressCommand },
|
||||||
|
{ "lz", NULL, HandleLZDecompressCommand },
|
||||||
|
{ NULL, NULL, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
|
char *inputPath = argv[1];
|
||||||
|
char *outputPath = argv[2];
|
||||||
|
|
||||||
|
for (int i = 0; handlers[i].function != NULL; i++) {
|
||||||
|
char *inputFileExtension = GetFileExtension(inputPath);
|
||||||
|
char *outputFileExtension = GetFileExtension(outputPath);
|
||||||
|
|
||||||
|
if ((handlers[i].inputFileExtension == NULL || strcmp(handlers[i].inputFileExtension, inputFileExtension) == 0)
|
||||||
|
&& (handlers[i].outputFileExtension == NULL || strcmp(handlers[i].outputFileExtension, outputFileExtension) == 0)) {
|
||||||
|
handlers[i].function(inputPath, outputPath, argc, argv);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", inputPath, outputPath);
|
||||||
|
}
|
||||||
|
@ -58,48 +58,6 @@ char *GetFileExtension(char *path)
|
|||||||
return extension;
|
return extension;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExpectFileExtension(char *path, char *expectedExtension)
|
|
||||||
{
|
|
||||||
char *extension = GetFileExtension(path);
|
|
||||||
|
|
||||||
if (extension == NULL)
|
|
||||||
FATAL_ERROR("\"%s\" has no file extension.\n", path);
|
|
||||||
|
|
||||||
if (strcmp(extension, expectedExtension) != 0)
|
|
||||||
FATAL_ERROR("Unexpected file extension \"%s\". Expected \"%s\".\n", extension, expectedExtension);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddFileExtension(char *path, char *extension)
|
|
||||||
{
|
|
||||||
int pathLength = strlen(path);
|
|
||||||
int extensionLength = strlen(extension);
|
|
||||||
|
|
||||||
if (pathLength + 1 + extensionLength > GBAGFX_MAX_PATH)
|
|
||||||
FATAL_ERROR("\"%s\" is too long a path to add the extension \"%s\".\n", path, extension);
|
|
||||||
|
|
||||||
path[pathLength] = '.';
|
|
||||||
memcpy(path + pathLength + 1, extension, extensionLength);
|
|
||||||
path[pathLength + 1 + extensionLength] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void RemoveFileExtension(char *path)
|
|
||||||
{
|
|
||||||
char *extension = GetFileExtension(path);
|
|
||||||
|
|
||||||
if (extension == NULL)
|
|
||||||
FATAL_ERROR("\"%s\" doesn't have a file extension.\n", path);
|
|
||||||
|
|
||||||
extension--;
|
|
||||||
|
|
||||||
*extension = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ChangeFileExtension(char *path, char *extension)
|
|
||||||
{
|
|
||||||
RemoveFileExtension(path);
|
|
||||||
AddFileExtension(path, extension);
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned char *ReadWholeFile(char *path, int *size)
|
unsigned char *ReadWholeFile(char *path, int *size)
|
||||||
{
|
{
|
||||||
FILE *fp = fopen(path, "rb");
|
FILE *fp = fopen(path, "rb");
|
||||||
|
@ -7,10 +7,6 @@
|
|||||||
|
|
||||||
bool ParseNumber(char *s, char **end, int radix, int *intValue);
|
bool ParseNumber(char *s, char **end, int radix, int *intValue);
|
||||||
char *GetFileExtension(char *path);
|
char *GetFileExtension(char *path);
|
||||||
void ExpectFileExtension(char *path, char *expectedExtension);
|
|
||||||
void AddFileExtension(char *path, char *extension);
|
|
||||||
void RemoveFileExtension(char *path);
|
|
||||||
void ChangeFileExtension(char *path, char *extension);
|
|
||||||
unsigned char *ReadWholeFile(char *path, int *size);
|
unsigned char *ReadWholeFile(char *path, int *size);
|
||||||
void WriteWholeFile(char *path, void *buffer, int bufferSize);
|
void WriteWholeFile(char *path, void *buffer, int bufferSize);
|
||||||
|
|
||||||
|