-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 2c6659c
Showing
8 changed files
with
1,524 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
*.cdi | ||
*.bin | ||
*.o | ||
*.elf | ||
*.BIN | ||
cd/*.bin | ||
cd/*.BIN | ||
src/*.old | ||
*.iso |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2023 Andrej | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
CC = kos-cc | ||
CXX = kos-c++ | ||
|
||
CFLAGS += -DLSB_FIRST -DALIGN_DWORD -DDREAMCAST -DNOMUTEX -Ofast | ||
CFLAGS += -Isrc | ||
CXXFLAGS = $(CFLAGS) -std=gnu17 -fno-exceptions -fno-rtti | ||
|
||
#LDFLAGS = -lSDL -ltremor -lm -lz | ||
|
||
#Including OPUS Libraries | ||
LDFLAGS = -lc -lm -lSDL -lz -s -flto -Wl,--as-needed -Wl,--gc-sections | ||
OUTPUT = llama_dc.elf | ||
|
||
SRCDIR = ./src | ||
VPATH = $(SRCDIR) | ||
SRC_C = $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.c)) | ||
SRC_CP = $(foreach dir, $(SRCDIR), $(wildcard $(dir)/*.cpp)) | ||
OBJ_C = $(notdir $(patsubst %.c, %.o, $(SRC_C))) | ||
OBJ_CP = $(notdir $(patsubst %.cpp, %.o, $(SRC_CP))) | ||
OBJS = $(OBJ_C) $(OBJ_CP) | ||
|
||
all: ${OUTPUT} | ||
|
||
${OUTPUT}: ${OBJS} | ||
${CXX} ${CXXFLAGS} -o ${OUTPUT} ${OBJS} ${LDFLAGS} | ||
|
||
pack_unused_cdda: | ||
rm -f IP.BIN | ||
sh-elf-objcopy -R .stack -O binary $(OUTPUT) main.bin | ||
${KOS_BASE}/utils/scramble/scramble main.bin ./cd/1ST_READ.BIN | ||
makeip ip.txt IP.BIN | ||
mkisofs -C 0,$(shell lbacalc track1.raw track2.raw track3.raw) -V OVERHEATED -G IP.BIN -joliet -rock -l -o "llama.iso" ./cd | ||
mds4dc -c llama.mds llama.iso track1.raw track2.raw track3.raw | ||
|
||
pack: | ||
rm -f IP.BIN | ||
sh-elf-objcopy -R .stack -O binary $(OUTPUT) main.bin | ||
${KOS_BASE}/utils/scramble/scramble main.bin ./cd/1ST_READ.BIN | ||
makeip ip.txt IP.BIN | ||
mkisofs -V llama -G IP.BIN -joliet -rock -l -x cd -o "llama.iso" ./cd | ||
cdi4dc llama.iso llama.cdi -d | ||
|
||
clean: | ||
rm *.o *.img src/*.o src/sdl/*.o src/dc/*.o src/enemies/*.o ${OUTPUT} *.BIN *.iso *.mds *.mdf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
Hardware ID : SEGA SEGAKATANA | ||
Maker ID : SEGA ENTERPRISES | ||
Device Info : 0000 CD-ROM1/1 | ||
Area Symbols : JUE | ||
Peripherals : E000F10 | ||
Product No : GBB020 | ||
Version : V1.100 | ||
Release Date : 20250104 | ||
Boot Filename : 1ST_READ.BIN | ||
SW Maker Name : GAMEBLABLA | ||
Game Title : LLAMA2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
#include <stdio.h> | ||
#include <stdlib.h> | ||
#include <stdint.h> | ||
#include <SDL/SDL.h> | ||
#include "font_drawing.h" | ||
#include "font_menudata.h" | ||
|
||
extern SDL_Surface* gScreen; | ||
#define setPixel(buffer, x,y,c) *((uint16_t* restrict)buffer + ((x) + (y) * (gScreen->pitch>>1))) = c; | ||
|
||
/** | ||
* Returns whether a pixel at (x,y) in the 8x8 character is an "outline" pixel. | ||
* (Unchanged) | ||
*/ | ||
static int32_t isOutlinePixel(uint8_t* charfont, int32_t x, int32_t y) | ||
{ | ||
int32_t xis0 = !x, xis7 = x == 7, yis0 = !y, yis7 = y == 7; | ||
|
||
if(xis0) | ||
{ | ||
if(yis0) | ||
{ | ||
return !(*charfont & 0x80) && ( | ||
(*charfont & 0x40) || | ||
(charfont[1] & 0x80) || (charfont[1] & 0x40)); | ||
} | ||
else if(yis7) | ||
{ | ||
return !(charfont[7] & 0x80) && ( | ||
(charfont[7] & 0x40) || | ||
(charfont[6] & 0x80) || (charfont[6] & 0x40)); | ||
} | ||
else | ||
{ | ||
return !(charfont[y] & 0x80) && ( | ||
(charfont[y - 1] & 0x80) || (charfont[y - 1] & 0x40) || | ||
(charfont[y] & 0x40) || | ||
(charfont[y + 1] & 0x80) || (charfont[y + 1] & 0x40)); | ||
} | ||
} | ||
else if(xis7) | ||
{ | ||
if(yis0) | ||
{ | ||
return !(*charfont & 0x01) && ( | ||
(*charfont & 0x02) || | ||
(charfont[1] & 0x01) || (charfont[1] & 0x02)); | ||
} | ||
else if(yis7) | ||
{ | ||
return !(charfont[7] & 0x01) && ( | ||
(charfont[7] & 0x02) || | ||
(charfont[6] & 0x01) || (charfont[6] & 0x02)); | ||
} | ||
else | ||
{ | ||
return !(charfont[y] & 0x01) && ( | ||
(charfont[y - 1] & 0x01) || (charfont[y - 1] & 0x02) || | ||
(charfont[y] & 0x02) || | ||
(charfont[y + 1] & 0x01) || (charfont[y + 1] & 0x02)); | ||
} | ||
} | ||
else | ||
{ | ||
int32_t b = 1 << (7 - x); | ||
if(yis0) | ||
{ | ||
return !(*charfont & b) && ( | ||
(*charfont & (b << 1)) || (*charfont & (b >> 1)) || | ||
(charfont[1] & (b << 1)) || (charfont[1] & b) || (charfont[1] & (b >> 1))); | ||
} | ||
else if(yis7) | ||
{ | ||
return !(charfont[7] & b) && ( | ||
(charfont[7] & (b << 1)) || (charfont[7] & (b >> 1)) || | ||
(charfont[6] & (b << 1)) || (charfont[6] & b) || (charfont[6] & (b >> 1))); | ||
} | ||
else | ||
{ | ||
return !(charfont[y] & b) && ( | ||
(charfont[y] & (b << 1)) || (charfont[y] & (b >> 1)) || | ||
(charfont[y - 1] & (b << 1)) || (charfont[y - 1] & b) || (charfont[y - 1] & (b >> 1)) || | ||
(charfont[y + 1] & (b << 1)) || (charfont[y + 1] & b) || (charfont[y + 1] & (b >> 1))); | ||
} | ||
} | ||
} | ||
|
||
/** | ||
* Draws a single character. Modified to make the output 8×16 (twice as tall). | ||
*/ | ||
static void drawChar(uint16_t* restrict buffer, int32_t *x, int32_t *y, | ||
int32_t margin, char ch, uint32_t fc, uint32_t olc) | ||
{ | ||
int32_t i, j; | ||
uint8_t *charSprite; | ||
|
||
// If newline, reset x and move y down by 16 (instead of 8). | ||
if (ch == '\n') | ||
{ | ||
*x = margin; | ||
*y += 16; // Twice the normal line height | ||
} | ||
else if(*y < gScreen->h - 1) | ||
{ | ||
// Get pointer to the 8×8 font data for character ch | ||
charSprite = ch * 8 + n2DLib_font; | ||
|
||
// Draw charSprite as 8×16: | ||
// For each row in [0..7], draw it twice (i*2) and (i*2+1). | ||
for(i = 0; i < 8; i++) | ||
{ | ||
for(j = 7; j >= 0; j--) | ||
{ | ||
// Is this bit set in the font? | ||
if ((charSprite[i] >> j) & 1) | ||
{ | ||
setPixel(buffer, *x + (7 - j), *y + (i * 2), fc); | ||
setPixel(buffer, *x + (7 - j), *y + (i * 2) + 1, fc); | ||
} | ||
else if (isOutlinePixel(charSprite, 7 - j, i)) | ||
{ | ||
setPixel(buffer, *x + (7 - j), *y + (i * 2), olc); | ||
setPixel(buffer, *x + (7 - j), *y + (i * 2) + 1, olc); | ||
} | ||
} | ||
} | ||
|
||
// Advance to the next character by 8 pixels horizontally | ||
*x += 8; | ||
} | ||
} | ||
|
||
/** | ||
* Draws a string of characters. (Unchanged except that we now expect | ||
* the new line to jump 16 pixels down, which is handled inside drawChar.) | ||
*/ | ||
static void drawString(uint16_t* restrict buffer, int32_t *x, int32_t *y, | ||
int32_t _x, const char *str, uint32_t fc, uint32_t olc) | ||
{ | ||
unsigned long i, max = strlen(str) + 1; | ||
for(i = 0; i < max; i++) | ||
drawChar(buffer, x, y, _x, str[i], fc, olc); | ||
} | ||
|
||
/** | ||
* Public function to print a string at (x,y). | ||
* No changes needed here except that it uses the new drawChar that doubles the height. | ||
*/ | ||
void print_string(const char *s, const uint32_t fg_color, const uint32_t bg_color, | ||
int32_t x, int32_t y, uint16_t* restrict buffer) | ||
{ | ||
drawString(buffer, &x, &y, 0, s, fg_color, bg_color); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
#ifndef FONT_DRAWING_H | ||
#define FONT_DRAWING_H | ||
|
||
#include <stdint.h> | ||
#include <string.h> | ||
|
||
#define TextWhite 65535 | ||
#define TextRed ((255>>3)<<11) + ((0>>2)<<5) + (0>>3) | ||
#define TextBlue ((0>>3)<<11) + ((0>>2)<<5) + (255>>3) | ||
|
||
void print_string(const char *s,const uint32_t fg_color, const uint32_t bg_color, int32_t x, int32_t y, uint16_t* restrict buffer) ; | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
#ifndef n2DLIB_FONT | ||
#define n2DLIB_FONT | ||
|
||
static uint8_t n2DLib_font[] = | ||
{ | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Char 000 (.) */ | ||
0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, /* Char 001 (.) */ | ||
0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, /* Char 002 (.) */ | ||
0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, /* Char 003 (.) */ | ||
0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, /* Char 004 (.) */ | ||
0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x7C, 0x38, 0x7C, /* Char 005 (.) */ | ||
0x10, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, /* Char 006 (.) */ | ||
0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, /* Char 007 (.) */ | ||
0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, /* Char 008 (.) */ | ||
0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, /* Char 009 (.) */ | ||
0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, /* Char 010 (.) */ | ||
0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, /* Char 011 (.) */ | ||
0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, /* Char 012 (.) */ | ||
0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, /* Char 013 (.) */ | ||
0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0, /* Char 014 (.) */ | ||
0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, /* Char 015 (.) */ | ||
0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, /* Char 016 (.) */ | ||
0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, /* Char 017 (.) */ | ||
0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, /* Char 018 (.) */ | ||
0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, /* Char 019 (.) */ | ||
0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, /* Char 020 (.) */ | ||
0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0xCC, 0x78, /* Char 021 (.) */ | ||
0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, /* Char 022 (.) */ | ||
0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, /* Char 023 (.) */ | ||
0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, /* Char 024 (.) */ | ||
0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, /* Char 025 (.) */ | ||
0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, /* Char 026 (<=)*/ | ||
0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, /* Char 027 (.) */ | ||
0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, /* Char 028 (.) */ | ||
0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, /* Char 029 (.) */ | ||
0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, /* Char 030 (.) */ | ||
0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, /* Char 031 (.) */ | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Char 032 ( ) */ | ||
0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x40, 0x00, /* Char 033 (!) */ | ||
0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Char 034 (") */ | ||
0x50, 0x50, 0xF8, 0x50, 0xF8, 0x50, 0x50, 0x00, /* Char 035 (#) */ | ||
0x20, 0x78, 0xA0, 0x70, 0x28, 0xF0, 0x20, 0x00, /* Char 036 ($) */ | ||
0xC8, 0xC8, 0x10, 0x20, 0x40, 0x98, 0x98, 0x00, /* Char 037 (%) */ | ||
0x70, 0x88, 0x50, 0x20, 0x54, 0x88, 0x74, 0x00, /* Char 038 (&) */ | ||
0x60, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, /* Char 039 (') */ | ||
0x20, 0x40, 0x80, 0x80, 0x80, 0x40, 0x20, 0x00, /* Char 040 (() */ | ||
0x20, 0x10, 0x08, 0x08, 0x08, 0x10, 0x20, 0x00, /* Char 041 () */ | ||
0x00, 0x20, 0xA8, 0x70, 0x70, 0xA8, 0x20, 0x00, /* Char 042 (*) */ | ||
0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, /* Char 043 (+) */ | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x20, 0x40, /* Char 044 (,) */ | ||
0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, /* Char 045 (-) */ | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, /* Char 046 (.) */ | ||
0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, /* Char 047 (/) */ | ||
0x70, 0x88, 0x98, 0xA8, 0xC8, 0x88, 0x70, 0x00, /* Char 048 (0) */ | ||
0x40, 0xC0, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, /* Char 049 (1) */ | ||
0x70, 0x88, 0x08, 0x10, 0x20, 0x40, 0xF8, 0x00, /* Char 050 (2) */ | ||
0x70, 0x88, 0x08, 0x10, 0x08, 0x88, 0x70, 0x00, /* Char 051 (3) */ | ||
0x08, 0x18, 0x28, 0x48, 0xFC, 0x08, 0x08, 0x00, /* Char 052 (4) */ | ||
0xF8, 0x80, 0x80, 0xF0, 0x08, 0x88, 0x70, 0x00, /* Char 053 (5) */ | ||
0x20, 0x40, 0x80, 0xF0, 0x88, 0x88, 0x70, 0x00, /* Char 054 (6) */ | ||
0xF8, 0x08, 0x10, 0x20, 0x40, 0x40, 0x40, 0x00, /* Char 055 (7) */ | ||
0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x70, 0x00, /* Char 056 (8) */ | ||
0x70, 0x88, 0x88, 0x78, 0x08, 0x08, 0x70, 0x00, /* Char 057 (9) */ | ||
0x00, 0x00, 0x60, 0x60, 0x00, 0x60, 0x60, 0x00, /* Char 058 (:) */ | ||
0x00, 0x00, 0x60, 0x60, 0x00, 0x60, 0x60, 0x20, /* Char 059 (;) */ | ||
0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x00, /* Char 060 (<) */ | ||
0x00, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0x00, 0x00, /* Char 061 (=) */ | ||
0x80, 0x40, 0x20, 0x10, 0x20, 0x40, 0x80, 0x00, /* Char 062 (>) */ | ||
0x78, 0x84, 0x04, 0x08, 0x10, 0x00, 0x10, 0x00, /* Char 063 (?) */ | ||
0x70, 0x88, 0x88, 0xA8, 0xB8, 0x80, 0x78, 0x00, /* Char 064 (@) */ | ||
0x20, 0x50, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x00, /* Char 065 (A) */ | ||
0xF0, 0x88, 0x88, 0xF0, 0x88, 0x88, 0xF0, 0x00, /* Char 066 (B) */ | ||
0x70, 0x88, 0x80, 0x80, 0x80, 0x88, 0x70, 0x00, /* Char 067 (C) */ | ||
0xF0, 0x88, 0x88, 0x88, 0x88, 0x88, 0xF0, 0x00, /* Char 068 (D) */ | ||
0xF8, 0x80, 0x80, 0xE0, 0x80, 0x80, 0xF8, 0x00, /* Char 069 (E) */ | ||
0xF8, 0x80, 0x80, 0xE0, 0x80, 0x80, 0x80, 0x00, /* Char 070 (F) */ | ||
0x70, 0x88, 0x80, 0x80, 0x98, 0x88, 0x78, 0x00, /* Char 071 (G) */ | ||
0x88, 0x88, 0x88, 0xF8, 0x88, 0x88, 0x88, 0x00, /* Char 072 (H) */ | ||
0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, /* Char 073 (I) */ | ||
0x38, 0x10, 0x10, 0x10, 0x10, 0x90, 0x60, 0x00, /* Char 074 (J) */ | ||
0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, 0x00, /* Char 075 (K) */ | ||
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xF8, 0x00, /* Char 076 (L) */ | ||
0x82, 0xC6, 0xAA, 0x92, 0x82, 0x82, 0x82, 0x00, /* Char 077 (M) */ | ||
0x84, 0xC4, 0xA4, 0x94, 0x8C, 0x84, 0x84, 0x00, /* Char 078 (N) */ | ||
0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, /* Char 079 (O) */ | ||
0xF0, 0x88, 0x88, 0xF0, 0x80, 0x80, 0x80, 0x00, /* Char 080 (P) */ | ||
0x70, 0x88, 0x88, 0x88, 0xA8, 0x90, 0x68, 0x00, /* Char 081 (Q) */ | ||
0xF0, 0x88, 0x88, 0xF0, 0xA0, 0x90, 0x88, 0x00, /* Char 082 (R) */ | ||
0x70, 0x88, 0x80, 0x70, 0x08, 0x88, 0x70, 0x00, /* Char 083 (S) */ | ||
0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, /* Char 084 (T) */ | ||
0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, /* Char 085 (U) */ | ||
0x88, 0x88, 0x88, 0x50, 0x50, 0x20, 0x20, 0x00, /* Char 086 (V) */ | ||
0x82, 0x82, 0x82, 0x82, 0x92, 0x92, 0x6C, 0x00, /* Char 087 (W) */ | ||
0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88, 0x00, /* Char 088 (X) */ | ||
0x88, 0x88, 0x88, 0x50, 0x20, 0x20, 0x20, 0x00, /* Char 089 (Y) */ | ||
0xF8, 0x08, 0x10, 0x20, 0x40, 0x80, 0xF8, 0x00, /* Char 090 (Z) */ | ||
0xE0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xE0, 0x00, /* Char 091 ([) */ | ||
0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, /* Char 092 (\) */ | ||
0xE0, 0x20, 0x20, 0x20, 0x20, 0x20, 0xE0, 0x00, /* Char 093 (]) */ | ||
0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, /* Char 094 (^) */ | ||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, /* Char 095 (_) */ | ||
0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Char 096 (`) */ | ||
0x00, 0x00, 0x70, 0x08, 0x78, 0x88, 0x74, 0x00, /* Char 097 (a) */ | ||
0x80, 0x80, 0xB0, 0xC8, 0x88, 0xC8, 0xB0, 0x00, /* Char 098 (b) */ | ||
0x00, 0x00, 0x70, 0x88, 0x80, 0x88, 0x70, 0x00, /* Char 099 (c) */ | ||
0x08, 0x08, 0x68, 0x98, 0x88, 0x98, 0x68, 0x00, /* Char 100 (d) */ | ||
0x00, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x70, 0x00, /* Char 101 (e) */ | ||
0x30, 0x48, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x00, /* Char 102 (f) */ | ||
0x00, 0x00, 0x34, 0x48, 0x48, 0x38, 0x08, 0x30, /* Char 103 (g) */ | ||
0x80, 0x80, 0xB0, 0xC8, 0x88, 0x88, 0x88, 0x00, /* Char 104 (h) */ | ||
0x20, 0x00, 0x60, 0x20, 0x20, 0x20, 0x70, 0x00, /* Char 105 (i) */ | ||
0x10, 0x00, 0x30, 0x10, 0x10, 0x10, 0x90, 0x60, /* Char 106 (j) */ | ||
0x80, 0x80, 0x88, 0x90, 0xA0, 0xD0, 0x88, 0x00, /* Char 107 (k) */ | ||
0xC0, 0x40, 0x40, 0x40, 0x40, 0x40, 0xE0, 0x00, /* Char 108 (l) */ | ||
0x00, 0x00, 0xEC, 0x92, 0x92, 0x92, 0x92, 0x00, /* Char 109 (m) */ | ||
0x00, 0x00, 0xB0, 0xC8, 0x88, 0x88, 0x88, 0x00, /* Char 110 (n) */ | ||
0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, /* Char 111 (o) */ | ||
0x00, 0x00, 0xB0, 0xC8, 0xC8, 0xB0, 0x80, 0x80, /* Char 112 (p) */ | ||
0x00, 0x00, 0x68, 0x98, 0x98, 0x68, 0x08, 0x08, /* Char 113 (q) */ | ||
0x00, 0x00, 0xB0, 0xC8, 0x80, 0x80, 0x80, 0x00, /* Char 114 (r) */ | ||
0x00, 0x00, 0x78, 0x80, 0x70, 0x08, 0xF0, 0x00, /* Char 115 (s) */ | ||
0x40, 0x40, 0xE0, 0x40, 0x40, 0x50, 0x20, 0x00, /* Char 116 (t) */ | ||
0x00, 0x00, 0x88, 0x88, 0x88, 0x98, 0x68, 0x00, /* Char 117 (u) */ | ||
0x00, 0x00, 0x88, 0x88, 0x88, 0x50, 0x20, 0x00, /* Char 118 (v) */ | ||
0x00, 0x00, 0x82, 0x82, 0x92, 0x92, 0x6C, 0x00, /* Char 119 (w) */ | ||
0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, 0x00, /* Char 120 (x) */ | ||
0x00, 0x00, 0x88, 0x88, 0x98, 0x68, 0x08, 0x70, /* Char 121 (y) */ | ||
0x00, 0x00, 0xF8, 0x10, 0x20, 0x40, 0xF8, 0x00, /* Char 122 (z) */ | ||
0x10, 0x20, 0x20, 0x40, 0x20, 0x20, 0x10, 0x00, /* Char 123 ({) */ | ||
0x40, 0x40, 0x40, 0x00, 0x40, 0x40, 0x40, 0x00, /* Char 124 (|) */ | ||
0x40, 0x20, 0x20, 0x10, 0x20, 0x20, 0x40, 0x00, /* Char 125 (}) */ | ||
0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Char 126 (~) */ | ||
0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00 /* Char 127 (.) */ | ||
}; | ||
#endif |
Oops, something went wrong.