mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
fonts, buffer aligment, save progress
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@51 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
cea6590346
commit
76276b0bc0
13 changed files with 371 additions and 126 deletions
|
@ -56,6 +56,7 @@ extern arearw *areaRead; // external read and write function pointers for
|
||||||
extern arearw *areaWrite; // gzip save state ability
|
extern arearw *areaWrite; // gzip save state ability
|
||||||
extern areaeof *areaEof;
|
extern areaeof *areaEof;
|
||||||
extern areaseek *areaSeek;
|
extern areaseek *areaSeek;
|
||||||
|
extern void (*PicoStateProgressCB)(const char *str);
|
||||||
|
|
||||||
// Cart.c
|
// Cart.c
|
||||||
int PicoCartLoad(FILE *f,unsigned char **prom,unsigned int *psize);
|
int PicoCartLoad(FILE *f,unsigned char **prom,unsigned int *psize);
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
// sn76496
|
// sn76496
|
||||||
extern int *sn76496_regs;
|
extern int *sn76496_regs;
|
||||||
|
|
||||||
|
void (*PicoStateProgressCB)(const char *str) = 0;
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
CHUNK_M68K = 1,
|
CHUNK_M68K = 1,
|
||||||
|
@ -43,6 +45,34 @@ typedef enum {
|
||||||
} chunk_name_e;
|
} chunk_name_e;
|
||||||
|
|
||||||
|
|
||||||
|
static char *chunk_names[] = {
|
||||||
|
"Saving.. M68K state",
|
||||||
|
"Saving.. RAM",
|
||||||
|
"Saving.. VRAM",
|
||||||
|
"Saving.. ZRAM",
|
||||||
|
"Saving.. CRAM", // 5
|
||||||
|
"Saving.. VSRAM",
|
||||||
|
"Saving.. emu state",
|
||||||
|
"Saving.. VIDEO",
|
||||||
|
"Saving.. Z80 state",
|
||||||
|
"Saving.. PSG", // 10
|
||||||
|
"Saving.. FM",
|
||||||
|
// CD stuff
|
||||||
|
"Saving.. S68K state",
|
||||||
|
"Saving.. PRG_RAM",
|
||||||
|
"Saving.. WORD_RAM",
|
||||||
|
"Saving.. PCM_RAM", // 15
|
||||||
|
"Saving.. BRAM",
|
||||||
|
"Saving.. GATE ARRAY regs",
|
||||||
|
"Saving.. PCM state",
|
||||||
|
"Saving.. CDC",
|
||||||
|
"Saving.. CDD", // 20
|
||||||
|
"Saving.. SCD",
|
||||||
|
"Saving.. GFX chip",
|
||||||
|
"Saving.. MCD state",
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
static int write_chunk(chunk_name_e name, int len, void *data, void *file)
|
static int write_chunk(chunk_name_e name, int len, void *data, void *file)
|
||||||
{
|
{
|
||||||
size_t bwritten = 0;
|
size_t bwritten = 0;
|
||||||
|
@ -55,9 +85,11 @@ static int write_chunk(chunk_name_e name, int len, void *data, void *file)
|
||||||
|
|
||||||
|
|
||||||
#define CHECKED_WRITE(name,len,data) \
|
#define CHECKED_WRITE(name,len,data) \
|
||||||
|
if (PicoStateProgressCB) PicoStateProgressCB(chunk_names[name]); \
|
||||||
if (!write_chunk(name, len, data, file)) return 1;
|
if (!write_chunk(name, len, data, file)) return 1;
|
||||||
|
|
||||||
#define CHECKED_WRITE_BUFF(name,buff) \
|
#define CHECKED_WRITE_BUFF(name,buff) \
|
||||||
|
if (PicoStateProgressCB) PicoStateProgressCB(chunk_names[name]); \
|
||||||
if (!write_chunk(name, sizeof(buff), &buff, file)) return 1;
|
if (!write_chunk(name, sizeof(buff), &buff, file)) return 1;
|
||||||
|
|
||||||
int PicoCdSaveState(void *file)
|
int PicoCdSaveState(void *file)
|
||||||
|
@ -88,7 +120,6 @@ int PicoCdSaveState(void *file)
|
||||||
if(PicoOpt&1)
|
if(PicoOpt&1)
|
||||||
CHECKED_WRITE(CHUNK_FM, 0x200+4, ym2612_regs);
|
CHECKED_WRITE(CHUNK_FM, 0x200+4, ym2612_regs);
|
||||||
|
|
||||||
// TODO: cd stuff
|
|
||||||
if (PicoMCD & 1)
|
if (PicoMCD & 1)
|
||||||
{
|
{
|
||||||
Pico_mcd->m.audio_offset = mp3_get_offset();
|
Pico_mcd->m.audio_offset = mp3_get_offset();
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
|
|
||||||
|
|
||||||
unsigned char formatted_bram[8*0x10] =
|
unsigned char formatted_bram[4*0x10] =
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
0x00, 0xd4, 0x63, 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x00, 0x03,
|
0x00, 0xd4, 0x63, 0x00, 0x00, 0x03, 0x03, 0x00, 0x03, 0x03, 0x03, 0x00, 0x03, 0x00, 0x00, 0x03,
|
||||||
0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x53, 0xd2, 0xf5, 0x3a, 0x48, 0x50, 0x35, 0x0f,
|
0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x53, 0xd2, 0xf5, 0x3a, 0x48, 0x50, 0x35, 0x0f,
|
||||||
0x47, 0x14, 0xf5, 0x7e, 0x5c, 0xd4, 0xf3, 0x03, 0x00, 0x03, 0x12, 0x00, 0x0a, 0xff, 0xca, 0xa6,
|
0x47, 0x14, 0xf5, 0x7e, 0x5c, 0xd4, 0xf3, 0x03, 0x00, 0x03, 0x12, 0x00, 0x0a, 0xff, 0xca, 0xa6,
|
||||||
0xf5, 0x27, 0xed, 0x22, 0x47, 0xfa, 0x22, 0x96, 0x6c, 0xa5, 0x88, 0x14, 0x48, 0x48, 0x0a, 0xbb,
|
0xf5, 0x27, 0xed, 0x22, 0x47, 0xfa, 0x22, 0x96, 0x6c, 0xa5, 0x88, 0x14, 0x48, 0x48, 0x0a, 0xbb,
|
||||||
|
#endif
|
||||||
0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x40,
|
0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x40,
|
||||||
0x00, 0x7d, 0x00, 0x7d, 0x00, 0x7d, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x7d, 0x00, 0x7d, 0x00, 0x7d, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x53, 0x45, 0x47, 0x41, 0x5f, 0x43, 0x44, 0x5f, 0x52, 0x4f, 0x4d, 0x00, 0x01, 0x00, 0x00, 0x00,
|
0x53, 0x45, 0x47, 0x41, 0x5f, 0x43, 0x44, 0x5f, 0x52, 0x4f, 0x4d, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||||
0x52, 0x41, 0x4d, 0x5f, 0x43, 0x41, 0x52, 0x54, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x5f, 0x5f,
|
0x52, 0x41, 0x4d, 0x5f, 0x43, 0x41, 0x52, 0x54, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x5f, 0x5f,
|
||||||
// SEGA_CD_ROM.....RAM_CART
|
// SEGA_CD_ROM.....RAM_CARTRIDGE___
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#include "../sound/sound.h"
|
#include "../sound/sound.h"
|
||||||
|
|
||||||
|
|
||||||
extern unsigned char formatted_bram[8*0x10];
|
extern unsigned char formatted_bram[4*0x10];
|
||||||
|
|
||||||
|
|
||||||
int PicoInitMCD(void)
|
int PicoInitMCD(void)
|
||||||
|
@ -34,8 +34,9 @@ int PicoResetMCD(int hard)
|
||||||
memset(Pico_mcd->word_ram, 0, sizeof(Pico_mcd->word_ram));
|
memset(Pico_mcd->word_ram, 0, sizeof(Pico_mcd->word_ram));
|
||||||
memset(Pico_mcd->pcm_ram, 0, sizeof(Pico_mcd->pcm_ram));
|
memset(Pico_mcd->pcm_ram, 0, sizeof(Pico_mcd->pcm_ram));
|
||||||
if (hard) {
|
if (hard) {
|
||||||
|
int fmt_size = sizeof(formatted_bram);
|
||||||
memset(Pico_mcd->bram, 0, sizeof(Pico_mcd->bram));
|
memset(Pico_mcd->bram, 0, sizeof(Pico_mcd->bram));
|
||||||
memcpy(Pico_mcd->bram + sizeof(Pico_mcd->bram) - 8*0x10, formatted_bram, 8*0x10);
|
memcpy(Pico_mcd->bram + sizeof(Pico_mcd->bram) - fmt_size, formatted_bram, fmt_size);
|
||||||
}
|
}
|
||||||
memset(Pico_mcd->s68k_regs, 0, sizeof(Pico_mcd->s68k_regs));
|
memset(Pico_mcd->s68k_regs, 0, sizeof(Pico_mcd->s68k_regs));
|
||||||
memset(&Pico_mcd->pcm, 0, sizeof(Pico_mcd->pcm));
|
memset(&Pico_mcd->pcm, 0, sizeof(Pico_mcd->pcm));
|
||||||
|
|
|
@ -11,7 +11,7 @@ dprint = 1
|
||||||
asm_memory = 0 # TODO
|
asm_memory = 0 # TODO
|
||||||
asm_render = 1
|
asm_render = 1
|
||||||
asm_ym2612 = 1
|
asm_ym2612 = 1
|
||||||
asm_misc = 1
|
asm_misc = 0
|
||||||
#profile = 1
|
#profile = 1
|
||||||
#use_musashi = 1
|
#use_musashi = 1
|
||||||
#up = 1
|
#up = 1
|
||||||
|
@ -33,7 +33,7 @@ LD = $(CROSS)ld
|
||||||
OBJCOPY = $(CROSS)objcopy
|
OBJCOPY = $(CROSS)objcopy
|
||||||
|
|
||||||
# frontend
|
# frontend
|
||||||
OBJS += main.o menu.o gp2x.o usbjoy.o emu.o squidgehack.o asmutils.o cpuctrl.o
|
OBJS += main.o menu.o fonts.o gp2x.o usbjoy.o emu.o squidgehack.o asmutils.o cpuctrl.o
|
||||||
# 940 core control
|
# 940 core control
|
||||||
OBJS += 940ctl.o
|
OBJS += 940ctl.o
|
||||||
# Pico
|
# Pico
|
||||||
|
|
|
@ -564,7 +564,7 @@ void emu_Deinit(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void osd_text(int x, int y, char *text)
|
void osd_text(int x, int y, const char *text)
|
||||||
{
|
{
|
||||||
int len = strlen(text)*8;
|
int len = strlen(text)*8;
|
||||||
|
|
||||||
|
@ -637,7 +637,7 @@ static int EmuScan8(unsigned int num, void *sdata)
|
||||||
int localPal[0x100];
|
int localPal[0x100];
|
||||||
static void (*vidCpyM2)(void *dest, void *src) = NULL;
|
static void (*vidCpyM2)(void *dest, void *src) = NULL;
|
||||||
|
|
||||||
static void blit(char *fps, char *notice)
|
static void blit(const char *fps, const char *notice)
|
||||||
{
|
{
|
||||||
int emu_opt = currentConfig.EmuOpt;
|
int emu_opt = currentConfig.EmuOpt;
|
||||||
|
|
||||||
|
@ -777,8 +777,8 @@ static void RunEvents(unsigned int which)
|
||||||
clearArea(0);
|
clearArea(0);
|
||||||
}
|
}
|
||||||
if (do_it) {
|
if (do_it) {
|
||||||
blit("", (which & 0x1000) ? "LOADING GAME" : "SAVING GAME");
|
osd_text(4, 232, (which & 0x1000) ? "LOADING GAME" : "SAVING GAME");
|
||||||
emu_SaveLoadGame(which & 0x1000, 0);
|
emu_SaveLoadGame((which & 0x1000) >> 12, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
reset_timing = 1;
|
reset_timing = 1;
|
||||||
|
@ -1224,7 +1224,7 @@ if (Pico.m.frame_count == 31563) {
|
||||||
|
|
||||||
// save SRAM
|
// save SRAM
|
||||||
if((currentConfig.EmuOpt & 1) && SRam.changed) {
|
if((currentConfig.EmuOpt & 1) && SRam.changed) {
|
||||||
blit("", "Writing SRAM/BRAM..");
|
osd_text(4, 232, "Writing SRAM/BRAM..");
|
||||||
emu_SaveLoadGame(0, 1);
|
emu_SaveLoadGame(0, 1);
|
||||||
SRam.changed = 0;
|
SRam.changed = 0;
|
||||||
}
|
}
|
||||||
|
@ -1232,11 +1232,15 @@ if (Pico.m.frame_count == 31563) {
|
||||||
// if in 16bit mode, generate 8it image for menu background
|
// if in 16bit mode, generate 8it image for menu background
|
||||||
if (!(PicoOpt&0x10) && (currentConfig.EmuOpt&0x80)) {
|
if (!(PicoOpt&0x10) && (currentConfig.EmuOpt&0x80)) {
|
||||||
PicoOpt |= 0x10;
|
PicoOpt |= 0x10;
|
||||||
Pico.m.dirtyPal = 1;
|
|
||||||
PicoFrameFull();
|
PicoFrameFull();
|
||||||
blit("", NULL); blit("", NULL); blit("", NULL); blit("", NULL); // be sure buffer3 gets updated
|
vidCpyM2((unsigned char *)gp2x_screen+320*8, framebuff+328*8);
|
||||||
|
vidConvCpyRGB32(localPal, Pico.cram, 0x40);
|
||||||
|
gp2x_video_setpalette(localPal, 0x40);
|
||||||
PicoOpt &= ~0x10;
|
PicoOpt &= ~0x10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// for menu bg
|
||||||
|
gp2x_memcpy_all_buffers(gp2x_screen, 0, 320*240*2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1259,11 +1263,20 @@ size_t gzWrite2(void *p, size_t _size, size_t _n, void *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void emu_state_cb(const char *str)
|
||||||
|
{
|
||||||
|
clearArea(0);
|
||||||
|
blit("", str);
|
||||||
|
}
|
||||||
|
|
||||||
int emu_SaveLoadGame(int load, int sram)
|
int emu_SaveLoadGame(int load, int sram)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
char saveFname[512];
|
char saveFname[512];
|
||||||
|
|
||||||
|
PicoStateProgressCB = emu_state_cb;
|
||||||
|
gp2x_memcpy_all_buffers(gp2x_screen, 0, 320*240*2);
|
||||||
|
|
||||||
// make save filename
|
// make save filename
|
||||||
romfname_ext(saveFname, "");
|
romfname_ext(saveFname, "");
|
||||||
if(sram) strcat(saveFname, (PicoMCD&1) ? ".brm" : ".srm");
|
if(sram) strcat(saveFname, (PicoMCD&1) ? ".brm" : ".srm");
|
||||||
|
|
218
platform/gp2x/fonts.c
Normal file
218
platform/gp2x/fonts.c
Normal file
|
@ -0,0 +1,218 @@
|
||||||
|
unsigned char fontdata8x8[64*16] =
|
||||||
|
{
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||||
|
0x3C,0x42,0x99,0xBD,0xBD,0x99,0x42,0x3C,0x3C,0x42,0x81,0x81,0x81,0x81,0x42,0x3C,
|
||||||
|
0xFE,0x82,0x8A,0xD2,0xA2,0x82,0xFE,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x64,0x74,0x7C,0x38,0x00,0x00,
|
||||||
|
0x80,0xC0,0xF0,0xFC,0xF0,0xC0,0x80,0x00,0x01,0x03,0x0F,0x3F,0x0F,0x03,0x01,0x00,
|
||||||
|
0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0x00,0xEE,0xEE,0xEE,0xCC,0x00,0xCC,0xCC,0x00,
|
||||||
|
0x00,0x00,0x30,0x68,0x78,0x30,0x00,0x00,0x00,0x38,0x64,0x74,0x7C,0x38,0x00,0x00,
|
||||||
|
0x3C,0x66,0x7A,0x7A,0x7E,0x7E,0x3C,0x00,0x0E,0x3E,0x3A,0x22,0x26,0x6E,0xE4,0x40,
|
||||||
|
0x18,0x3C,0x7E,0x3C,0x3C,0x3C,0x3C,0x00,0x3C,0x3C,0x3C,0x3C,0x7E,0x3C,0x18,0x00,
|
||||||
|
0x08,0x7C,0x7E,0x7E,0x7C,0x08,0x00,0x00,0x10,0x3E,0x7E,0x7E,0x3E,0x10,0x00,0x00,
|
||||||
|
0x58,0x2A,0xDC,0xC8,0xDC,0x2A,0x58,0x00,0x24,0x66,0xFF,0xFF,0x66,0x24,0x00,0x00,
|
||||||
|
0x00,0x10,0x10,0x38,0x38,0x7C,0xFE,0x00,0xFE,0x7C,0x38,0x38,0x10,0x10,0x00,0x00,
|
||||||
|
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x18,0x00,0x18,0x18,0x00,
|
||||||
|
0x6C,0x6C,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x7C,0x28,0x7C,0x28,0x00,0x00,
|
||||||
|
0x10,0x38,0x60,0x38,0x0C,0x78,0x10,0x00,0x40,0xA4,0x48,0x10,0x24,0x4A,0x04,0x00,
|
||||||
|
0x18,0x34,0x18,0x3A,0x6C,0x66,0x3A,0x00,0x18,0x18,0x20,0x00,0x00,0x00,0x00,0x00,
|
||||||
|
0x30,0x60,0x60,0x60,0x60,0x60,0x30,0x00,0x0C,0x06,0x06,0x06,0x06,0x06,0x0C,0x00,
|
||||||
|
0x10,0x54,0x38,0x7C,0x38,0x54,0x10,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,
|
||||||
|
0x00,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,
|
||||||
|
0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x00,0x00,
|
||||||
|
0x38,0x4C,0xC6,0xC6,0xC6,0x64,0x38,0x00,0x18,0x38,0x18,0x18,0x18,0x18,0x7E,0x00,
|
||||||
|
0x7C,0xC6,0x0E,0x3C,0x78,0xE0,0xFE,0x00,0x7E,0x0C,0x18,0x3C,0x06,0xC6,0x7C,0x00,
|
||||||
|
0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x0C,0x00,0xFC,0xC0,0xFC,0x06,0x06,0xC6,0x7C,0x00,
|
||||||
|
0x3C,0x60,0xC0,0xFC,0xC6,0xC6,0x7C,0x00,0xFE,0xC6,0x0C,0x18,0x30,0x30,0x30,0x00,
|
||||||
|
0x78,0xC4,0xE4,0x78,0x86,0x86,0x7C,0x00,0x7C,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00,
|
||||||
|
0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x18,0x30,
|
||||||
|
0x1C,0x38,0x70,0xE0,0x70,0x38,0x1C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,
|
||||||
|
0x70,0x38,0x1C,0x0E,0x1C,0x38,0x70,0x00,0x7C,0xC6,0xC6,0x1C,0x18,0x00,0x18,0x00,
|
||||||
|
0x3C,0x42,0x99,0xA1,0xA5,0x99,0x42,0x3C,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0x00,
|
||||||
|
0xFC,0xC6,0xC6,0xFC,0xC6,0xC6,0xFC,0x00,0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00,
|
||||||
|
0xF8,0xCC,0xC6,0xC6,0xC6,0xCC,0xF8,0x00,0xFE,0xC0,0xC0,0xFC,0xC0,0xC0,0xFE,0x00,
|
||||||
|
0xFE,0xC0,0xC0,0xFC,0xC0,0xC0,0xC0,0x00,0x3E,0x60,0xC0,0xCE,0xC6,0x66,0x3E,0x00,
|
||||||
|
0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x7E,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,
|
||||||
|
0x06,0x06,0x06,0x06,0xC6,0xC6,0x7C,0x00,0xC6,0xCC,0xD8,0xF0,0xF8,0xDC,0xCE,0x00,
|
||||||
|
0x60,0x60,0x60,0x60,0x60,0x60,0x7E,0x00,0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00,
|
||||||
|
0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
|
||||||
|
0xFC,0xC6,0xC6,0xC6,0xFC,0xC0,0xC0,0x00,0x7C,0xC6,0xC6,0xC6,0xDE,0xCC,0x7A,0x00,
|
||||||
|
0xFC,0xC6,0xC6,0xCE,0xF8,0xDC,0xCE,0x00,0x78,0xCC,0xC0,0x7C,0x06,0xC6,0x7C,0x00,
|
||||||
|
0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
|
||||||
|
0xC6,0xC6,0xC6,0xEE,0x7C,0x38,0x10,0x00,0xC6,0xC6,0xD6,0xFE,0xFE,0xEE,0xC6,0x00,
|
||||||
|
0xC6,0xEE,0x3C,0x38,0x7C,0xEE,0xC6,0x00,0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x00,
|
||||||
|
0xFE,0x0E,0x1C,0x38,0x70,0xE0,0xFE,0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,
|
||||||
|
0x60,0x60,0x30,0x18,0x0C,0x06,0x06,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,
|
||||||
|
0x18,0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
|
||||||
|
0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x3E,0x66,0x66,0x3C,0x00,
|
||||||
|
0x60,0x7C,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,0x3C,0x66,0x60,0x60,0x66,0x3C,0x00,
|
||||||
|
0x06,0x3E,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x3C,0x66,0x66,0x7E,0x60,0x3C,0x00,
|
||||||
|
0x1C,0x30,0x78,0x30,0x30,0x30,0x30,0x00,0x00,0x3E,0x66,0x66,0x66,0x3E,0x06,0x3C,
|
||||||
|
0x60,0x7C,0x76,0x66,0x66,0x66,0x66,0x00,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x00,
|
||||||
|
0x0C,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x38,0x60,0x60,0x66,0x6C,0x78,0x6C,0x66,0x00,
|
||||||
|
0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0xEC,0xFE,0xFE,0xFE,0xD6,0xC6,0x00,
|
||||||
|
0x00,0x7C,0x76,0x66,0x66,0x66,0x66,0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3C,0x00,
|
||||||
|
0x00,0x7C,0x66,0x66,0x66,0x7C,0x60,0x60,0x00,0x3E,0x66,0x66,0x66,0x3E,0x06,0x06,
|
||||||
|
0x00,0x7E,0x70,0x60,0x60,0x60,0x60,0x00,0x00,0x3C,0x60,0x3C,0x06,0x66,0x3C,0x00,
|
||||||
|
0x30,0x78,0x30,0x30,0x30,0x30,0x1C,0x00,0x00,0x66,0x66,0x66,0x66,0x6E,0x3E,0x00,
|
||||||
|
0x00,0x66,0x66,0x66,0x66,0x3C,0x18,0x00,0x00,0xC6,0xD6,0xFE,0xFE,0x7C,0x6C,0x00,
|
||||||
|
0x00,0x66,0x3C,0x18,0x3C,0x66,0x66,0x00,0x00,0x66,0x66,0x66,0x66,0x3E,0x06,0x3C,
|
||||||
|
0x00,0x7E,0x0C,0x18,0x30,0x60,0x7E,0x00,0x0E,0x18,0x0C,0x38,0x0C,0x18,0x0E,0x00,
|
||||||
|
0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00,0x70,0x18,0x30,0x1C,0x30,0x18,0x70,0x00,
|
||||||
|
0x00,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x10,0x28,0x10,0x54,0xAA,0x44,0x00,0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* The font is generated from Xorg clR5x8.bdf */
|
||||||
|
/*
|
||||||
|
COMMENT Copyright 1989 Dale Schumacher, dal@syntel.mn.org
|
||||||
|
COMMENT 399 Beacon Ave.
|
||||||
|
COMMENT St. Paul, MN 55104-3527
|
||||||
|
COMMENT
|
||||||
|
COMMENT Permission to use, copy, modify, and distribute this software and
|
||||||
|
COMMENT its documentation for any purpose and without fee is hereby
|
||||||
|
COMMENT granted, provided that the above copyright notice appear in all
|
||||||
|
COMMENT copies and that both that copyright notice and this permission
|
||||||
|
COMMENT notice appear in supporting documentation, and that the name of
|
||||||
|
COMMENT Dale Schumacher not be used in advertising or publicity pertaining to
|
||||||
|
COMMENT distribution of the software without specific, written prior
|
||||||
|
COMMENT permission. Dale Schumacher makes no representations about the
|
||||||
|
COMMENT suitability of this software for any purpose. It is provided "as
|
||||||
|
COMMENT is" without express or implied warranty.
|
||||||
|
COMMENT
|
||||||
|
*/
|
||||||
|
unsigned char fontdata6x8[256][8] = {
|
||||||
|
{ 0x7c>>2, 0x44>>2, 0x7c>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0xff>>2, 0x7c>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x10>>2, 0x28>>2, 0x44>>2, 0x7c>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x78>>2, 0x44>>2, 0x78>>2, 0x44>>2, 0x78>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x38>>2, 0x44>>2, 0x40>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x78>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x78>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x7c>>2, 0x40>>2, 0x78>>2, 0x40>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x7c>>2, 0x40>>2, 0x78>>2, 0x40>>2, 0x40>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x3c>>2, 0x40>>2, 0x4c>>2, 0x44>>2, 0x3c>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x44>>2, 0x7c>>2, 0x44>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x38>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x1c>>2, 0x04>>2, 0x04>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x48>>2, 0x50>>2, 0x60>>2, 0x50>>2, 0x48>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x6c>>2, 0x54>>2, 0x54>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x64>>2, 0x54>>2, 0x4c>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x38>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x78>>2, 0x44>>2, 0x78>>2, 0x40>>2, 0x40>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x38>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x0c>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x78>>2, 0x44>>2, 0x78>>2, 0x50>>2, 0x4c>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x3c>>2, 0x40>>2, 0x38>>2, 0x04>>2, 0x78>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x7c>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x44>>2, 0x28>>2, 0x28>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x54>>2, 0x54>>2, 0x6c>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x28>>2, 0x10>>2, 0x28>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x28>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x7c>>2, 0x08>>2, 0x10>>2, 0x20>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0xe0>>2, 0x80>>2, 0xe0>>2, 0x8c>>2, 0xf0>>2, 0x10>>2, 0x10>>2, 0x0c>>2, },
|
||||||
|
{ 0x00>>2, 0x10>>2, 0x38>>2, 0x7c>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x7c>>2, 0x38>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x10>>2, 0x18>>2, 0xfc>>2, 0x18>>2, 0x10>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x20>>2, 0x60>>2, 0xfc>>2, 0x60>>2, 0x20>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x00>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x28>>2, 0x28>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x28>>2, 0x7c>>2, 0x28>>2, 0x7c>>2, 0x28>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x3c>>2, 0x50>>2, 0x38>>2, 0x14>>2, 0x78>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x60>>2, 0x64>>2, 0x08>>2, 0x10>>2, 0x20>>2, 0x4c>>2, 0x0c>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x40>>2, 0x40>>2, 0x20>>2, 0x54>>2, 0x48>>2, 0x34>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x20>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x04>>2, 0x08>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x08>>2, 0x04>>2, 0x00>>2, },
|
||||||
|
{ 0x40>>2, 0x20>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x20>>2, 0x40>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x10>>2, 0x54>>2, 0x38>>2, 0x54>>2, 0x10>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x10>>2, 0x10>>2, 0x7c>>2, 0x10>>2, 0x10>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x10>>2, 0x10>>2, 0x20>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x00>>2, 0x7c>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x04>>2, 0x04>>2, 0x08>>2, 0x08>>2, 0x10>>2, 0x10>>2, 0x20>>2, 0x20>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x4c>>2, 0x54>>2, 0x64>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x30>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x04>>2, 0x08>>2, 0x10>>2, 0x20>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x04>>2, 0x18>>2, 0x04>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x18>>2, 0x18>>2, 0x28>>2, 0x28>>2, 0x7c>>2, 0x08>>2, 0x1c>>2, 0x00>>2, },
|
||||||
|
{ 0x7c>>2, 0x40>>2, 0x78>>2, 0x04>>2, 0x04>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x18>>2, 0x20>>2, 0x40>>2, 0x78>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x7c>>2, 0x44>>2, 0x04>>2, 0x08>>2, 0x08>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x44>>2, 0x3c>>2, 0x04>>2, 0x08>>2, 0x30>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x10>>2, 0x10>>2, 0x00>>2, 0x00>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x10>>2, 0x10>>2, 0x00>>2, 0x00>>2, 0x10>>2, 0x10>>2, 0x20>>2, },
|
||||||
|
{ 0x00>>2, 0x0c>>2, 0x30>>2, 0xc0>>2, 0x30>>2, 0x0c>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x7c>>2, 0x00>>2, 0x7c>>2, 0x00>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0xc0>>2, 0x30>>2, 0x0c>>2, 0x30>>2, 0xc0>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x04>>2, 0x08>>2, 0x10>>2, 0x00>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x5c>>2, 0x5c>>2, 0x58>>2, 0x40>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x28>>2, 0x44>>2, 0x44>>2, 0x7c>>2, 0x44>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x78>>2, 0x44>>2, 0x44>>2, 0x78>>2, 0x44>>2, 0x44>>2, 0x78>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x70>>2, 0x48>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x48>>2, 0x70>>2, 0x00>>2, },
|
||||||
|
{ 0x7c>>2, 0x40>>2, 0x40>>2, 0x78>>2, 0x40>>2, 0x40>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0x7c>>2, 0x40>>2, 0x40>>2, 0x78>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x40>>2, 0x4c>>2, 0x44>>2, 0x44>>2, 0x3c>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x44>>2, 0x44>>2, 0x7c>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x7c>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0x1c>>2, 0x04>>2, 0x04>>2, 0x04>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x48>>2, 0x50>>2, 0x60>>2, 0x50>>2, 0x48>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x40>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x6c>>2, 0x54>>2, 0x54>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x64>>2, 0x64>>2, 0x54>>2, 0x4c>>2, 0x4c>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x78>>2, 0x44>>2, 0x44>>2, 0x78>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x0c>>2, },
|
||||||
|
{ 0x78>>2, 0x44>>2, 0x44>>2, 0x78>>2, 0x50>>2, 0x48>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x38>>2, 0x44>>2, 0x40>>2, 0x38>>2, 0x04>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x7c>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x44>>2, 0x44>>2, 0x28>>2, 0x28>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x44>>2, 0x44>>2, 0x54>>2, 0x54>>2, 0x6c>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x44>>2, 0x28>>2, 0x10>>2, 0x28>>2, 0x44>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x44>>2, 0x44>>2, 0x28>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x7c>>2, 0x04>>2, 0x08>>2, 0x10>>2, 0x20>>2, 0x40>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0x1c>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x1c>>2, 0x00>>2, },
|
||||||
|
{ 0x20>>2, 0x20>>2, 0x10>>2, 0x10>>2, 0x08>>2, 0x08>>2, 0x04>>2, 0x04>>2, },
|
||||||
|
{ 0x70>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x70>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x28>>2, 0x44>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0xfc>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x08>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x3c>>2, 0x44>>2, 0x44>>2, 0x4c>>2, 0x34>>2, 0x00>>2, },
|
||||||
|
{ 0x40>>2, 0x40>>2, 0x78>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x78>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x3c>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x3c>>2, 0x00>>2, },
|
||||||
|
{ 0x04>>2, 0x04>>2, 0x3c>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x3c>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x38>>2, 0x44>>2, 0x7c>>2, 0x40>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x1c>>2, 0x20>>2, 0x78>>2, 0x20>>2, 0x20>>2, 0x20>>2, 0x20>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x3c>>2, 0x44>>2, 0x44>>2, 0x3c>>2, 0x04>>2, 0x38>>2, },
|
||||||
|
{ 0x40>>2, 0x40>>2, 0x78>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x00>>2, 0x30>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x08>>2, 0x00>>2, 0x38>>2, 0x08>>2, 0x08>>2, 0x08>>2, 0x08>>2, 0x70>>2, },
|
||||||
|
{ 0x40>>2, 0x40>>2, 0x48>>2, 0x50>>2, 0x60>>2, 0x50>>2, 0x48>>2, 0x00>>2, },
|
||||||
|
{ 0x30>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x68>>2, 0x54>>2, 0x54>>2, 0x54>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x58>>2, 0x64>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x38>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x38>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x78>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x78>>2, 0x40>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x3c>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x3c>>2, 0x04>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x58>>2, 0x60>>2, 0x40>>2, 0x40>>2, 0x40>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x3c>>2, 0x40>>2, 0x38>>2, 0x04>>2, 0x78>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x10>>2, 0x7c>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x0c>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x4c>>2, 0x34>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x6c>>2, 0x28>>2, 0x28>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x54>>2, 0x54>>2, 0x54>>2, 0x28>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x28>>2, 0x10>>2, 0x28>>2, 0x44>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x44>>2, 0x44>>2, 0x44>>2, 0x3c>>2, 0x04>>2, 0x38>>2, },
|
||||||
|
{ 0x00>>2, 0x00>>2, 0x7c>>2, 0x08>>2, 0x10>>2, 0x20>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
{ 0x04>>2, 0x08>>2, 0x08>>2, 0x10>>2, 0x08>>2, 0x08>>2, 0x04>>2, 0x00>>2, },
|
||||||
|
{ 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x10>>2, 0x00>>2, },
|
||||||
|
{ 0x40>>2, 0x20>>2, 0x20>>2, 0x10>>2, 0x20>>2, 0x20>>2, 0x40>>2, 0x00>>2, },
|
||||||
|
{ 0x20>>2, 0x54>>2, 0x08>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, 0x00>>2, },
|
||||||
|
{ 0x00>>2, 0x10>>2, 0x10>>2, 0x28>>2, 0x28>>2, 0x44>>2, 0x7c>>2, 0x00>>2, },
|
||||||
|
};
|
||||||
|
|
4
platform/gp2x/fonts.h
Normal file
4
platform/gp2x/fonts.h
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
extern unsigned char fontdata8x8[64*16];
|
||||||
|
extern unsigned char fontdata6x8[256-32][8];
|
||||||
|
|
|
@ -46,10 +46,11 @@ static int sounddev = 0, mixerdev = 0;
|
||||||
|
|
||||||
void *gp2x_screen;
|
void *gp2x_screen;
|
||||||
|
|
||||||
#define FRAMEBUFF_ADDR0 0x4000000-640*480
|
#define FRAMEBUFF_WHOLESIZE (0x30000*4) // 320*240*2 + some more
|
||||||
#define FRAMEBUFF_ADDR1 0x4000000-640*480*2
|
#define FRAMEBUFF_ADDR0 (0x4000000-FRAMEBUFF_WHOLESIZE)
|
||||||
#define FRAMEBUFF_ADDR2 0x4000000-640*480*3
|
#define FRAMEBUFF_ADDR1 (FRAMEBUFF_ADDR0+0x30000)
|
||||||
#define FRAMEBUFF_ADDR3 0x4000000-640*480*4
|
#define FRAMEBUFF_ADDR2 (FRAMEBUFF_ADDR1+0x30000)
|
||||||
|
#define FRAMEBUFF_ADDR3 (FRAMEBUFF_ADDR2+0x30000)
|
||||||
|
|
||||||
static const int gp2x_screenaddrs[] = { FRAMEBUFF_ADDR0, FRAMEBUFF_ADDR1, FRAMEBUFF_ADDR2, FRAMEBUFF_ADDR3 };
|
static const int gp2x_screenaddrs[] = { FRAMEBUFF_ADDR0, FRAMEBUFF_ADDR1, FRAMEBUFF_ADDR2, FRAMEBUFF_ADDR3 };
|
||||||
static unsigned short gp2x_screenaddr_old[4];
|
static unsigned short gp2x_screenaddr_old[4];
|
||||||
|
@ -58,14 +59,12 @@ static unsigned short gp2x_screenaddr_old[4];
|
||||||
/* video stuff */
|
/* video stuff */
|
||||||
void gp2x_video_flip(void)
|
void gp2x_video_flip(void)
|
||||||
{
|
{
|
||||||
unsigned int address = gp2x_screenaddrs[screensel&3];
|
unsigned short msw = (unsigned short)(gp2x_screenaddrs[screensel&3] >> 16);
|
||||||
unsigned short msb16 = (unsigned short)(address >> 16);
|
|
||||||
unsigned short lsb16 = (unsigned short)(address);
|
|
||||||
|
|
||||||
gp2x_memregs[0x290E>>1] = lsb16;
|
gp2x_memregs[0x2910>>1] = msw;
|
||||||
gp2x_memregs[0x2910>>1] = msb16;
|
gp2x_memregs[0x2914>>1] = msw;
|
||||||
gp2x_memregs[0x2912>>1] = lsb16;
|
gp2x_memregs[0x290E>>1] = 0;
|
||||||
gp2x_memregs[0x2914>>1] = msb16;
|
gp2x_memregs[0x2912>>1] = 0;
|
||||||
|
|
||||||
// jump to other buffer:
|
// jump to other buffer:
|
||||||
gp2x_screen = gp2x_screens[++screensel&3];
|
gp2x_screen = gp2x_screens[++screensel&3];
|
||||||
|
@ -74,14 +73,12 @@ void gp2x_video_flip(void)
|
||||||
/* doulblebuffered flip */
|
/* doulblebuffered flip */
|
||||||
void gp2x_video_flip2(void)
|
void gp2x_video_flip2(void)
|
||||||
{
|
{
|
||||||
unsigned int address = gp2x_screenaddrs[screensel&1];
|
unsigned short msw = (unsigned short)(gp2x_screenaddrs[screensel&1] >> 16);
|
||||||
unsigned short msb16 = (unsigned short)(address >> 16);
|
|
||||||
unsigned short lsb16 = (unsigned short)(address);
|
|
||||||
|
|
||||||
gp2x_memregs[0x290E>>1] = lsb16;
|
gp2x_memregs[0x2910>>1] = msw;
|
||||||
gp2x_memregs[0x2910>>1] = msb16;
|
gp2x_memregs[0x2914>>1] = msw;
|
||||||
gp2x_memregs[0x2912>>1] = lsb16;
|
gp2x_memregs[0x290E>>1] = 0;
|
||||||
gp2x_memregs[0x2914>>1] = msb16;
|
gp2x_memregs[0x2912>>1] = 0;
|
||||||
|
|
||||||
// jump to other buffer:
|
// jump to other buffer:
|
||||||
gp2x_screen = gp2x_screens[++screensel&1];
|
gp2x_screen = gp2x_screens[++screensel&1];
|
||||||
|
@ -99,7 +96,7 @@ void gp2x_video_changemode(int bpp)
|
||||||
{
|
{
|
||||||
gp2x_video_changemode2(bpp);
|
gp2x_video_changemode2(bpp);
|
||||||
|
|
||||||
gp2x_memset_all_buffers(0, 0, 640*480);
|
gp2x_memset_all_buffers(0, 0, 320*240*2);
|
||||||
gp2x_video_flip();
|
gp2x_video_flip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -256,7 +253,7 @@ void Pause940(int yes)
|
||||||
|
|
||||||
void Reset940(int yes, int bank)
|
void Reset940(int yes, int bank)
|
||||||
{
|
{
|
||||||
gp2x_memregs[0x3B48>>1] = ((yes&1) << 7) | (bank & 0x03); /* bank=3 */
|
gp2x_memregs[0x3B48>>1] = ((yes&1) << 7) | (bank & 0x03);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -282,16 +279,16 @@ void gp2x_init(void)
|
||||||
}
|
}
|
||||||
gp2x_memregl = (unsigned long *) gp2x_memregs;
|
gp2x_memregl = (unsigned long *) gp2x_memregs;
|
||||||
|
|
||||||
gp2x_screens[3] = mmap(0, 640*480*4, PROT_WRITE, MAP_SHARED, memdev, FRAMEBUFF_ADDR3);
|
gp2x_screens[0] = mmap(0, FRAMEBUFF_WHOLESIZE, PROT_WRITE, MAP_SHARED, memdev, FRAMEBUFF_ADDR0);
|
||||||
if(gp2x_screens[3] == MAP_FAILED)
|
if(gp2x_screens[0] == MAP_FAILED)
|
||||||
{
|
{
|
||||||
printf("mmap(gp2x_screen) failed with %i\n", errno);
|
printf("mmap(gp2x_screen) failed with %i\n", errno);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
printf("framebuffers point to %p\n", gp2x_screens[3]);
|
printf("framebuffers point to %p\n", gp2x_screens[0]);
|
||||||
gp2x_screens[2] = (char *) gp2x_screens[3]+640*480;
|
gp2x_screens[1] = (char *) gp2x_screens[0]+0x30000;
|
||||||
gp2x_screens[1] = (char *) gp2x_screens[2]+640*480;
|
gp2x_screens[2] = (char *) gp2x_screens[1]+0x30000;
|
||||||
gp2x_screens[0] = (char *) gp2x_screens[1]+640*480;
|
gp2x_screens[3] = (char *) gp2x_screens[2]+0x30000;
|
||||||
|
|
||||||
gp2x_screen = gp2x_screens[0];
|
gp2x_screen = gp2x_screens[0];
|
||||||
screensel = 0;
|
screensel = 0;
|
||||||
|
@ -301,6 +298,8 @@ void gp2x_init(void)
|
||||||
gp2x_screenaddr_old[2] = gp2x_memregs[0x2912>>1];
|
gp2x_screenaddr_old[2] = gp2x_memregs[0x2912>>1];
|
||||||
gp2x_screenaddr_old[3] = gp2x_memregs[0x2914>>1];
|
gp2x_screenaddr_old[3] = gp2x_memregs[0x2914>>1];
|
||||||
|
|
||||||
|
gp2x_memset_all_buffers(0, 0, 320*240*2);
|
||||||
|
|
||||||
// snd
|
// snd
|
||||||
mixerdev = open("/dev/mixer", O_RDWR);
|
mixerdev = open("/dev/mixer", O_RDWR);
|
||||||
if (mixerdev == -1)
|
if (mixerdev == -1)
|
||||||
|
@ -325,7 +324,7 @@ void gp2x_deinit(void)
|
||||||
gp2x_memregs[0x2912>>1] = gp2x_screenaddr_old[2];
|
gp2x_memregs[0x2912>>1] = gp2x_screenaddr_old[2];
|
||||||
gp2x_memregs[0x2914>>1] = gp2x_screenaddr_old[3];
|
gp2x_memregs[0x2914>>1] = gp2x_screenaddr_old[3];
|
||||||
|
|
||||||
munmap(gp2x_screens[0], 640*480*4);
|
munmap(gp2x_screens[0], FRAMEBUFF_WHOLESIZE);
|
||||||
munmap((void *)gp2x_memregs, 0x10000);
|
munmap((void *)gp2x_memregs, 0x10000);
|
||||||
close(memdev);
|
close(memdev);
|
||||||
close(mixerdev);
|
close(mixerdev);
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "gp2x.h"
|
#include "gp2x.h"
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
|
#include "fonts.h"
|
||||||
#include "usbjoy.h"
|
#include "usbjoy.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
|
||||||
|
@ -38,75 +39,7 @@ static char *gp2xKeyNames[] = {
|
||||||
char menuErrorMsg[40] = {0, };
|
char menuErrorMsg[40] = {0, };
|
||||||
|
|
||||||
|
|
||||||
static unsigned char fontdata8x8[] =
|
static void gp2x_text(unsigned char *screen, int x, int y, const char *text, int color)
|
||||||
{
|
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
|
||||||
0x3C,0x42,0x99,0xBD,0xBD,0x99,0x42,0x3C,0x3C,0x42,0x81,0x81,0x81,0x81,0x42,0x3C,
|
|
||||||
0xFE,0x82,0x8A,0xD2,0xA2,0x82,0xFE,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,
|
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x64,0x74,0x7C,0x38,0x00,0x00,
|
|
||||||
0x80,0xC0,0xF0,0xFC,0xF0,0xC0,0x80,0x00,0x01,0x03,0x0F,0x3F,0x0F,0x03,0x01,0x00,
|
|
||||||
0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0x00,0xEE,0xEE,0xEE,0xCC,0x00,0xCC,0xCC,0x00,
|
|
||||||
0x00,0x00,0x30,0x68,0x78,0x30,0x00,0x00,0x00,0x38,0x64,0x74,0x7C,0x38,0x00,0x00,
|
|
||||||
0x3C,0x66,0x7A,0x7A,0x7E,0x7E,0x3C,0x00,0x0E,0x3E,0x3A,0x22,0x26,0x6E,0xE4,0x40,
|
|
||||||
0x18,0x3C,0x7E,0x3C,0x3C,0x3C,0x3C,0x00,0x3C,0x3C,0x3C,0x3C,0x7E,0x3C,0x18,0x00,
|
|
||||||
0x08,0x7C,0x7E,0x7E,0x7C,0x08,0x00,0x00,0x10,0x3E,0x7E,0x7E,0x3E,0x10,0x00,0x00,
|
|
||||||
0x58,0x2A,0xDC,0xC8,0xDC,0x2A,0x58,0x00,0x24,0x66,0xFF,0xFF,0x66,0x24,0x00,0x00,
|
|
||||||
0x00,0x10,0x10,0x38,0x38,0x7C,0xFE,0x00,0xFE,0x7C,0x38,0x38,0x10,0x10,0x00,0x00,
|
|
||||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1C,0x1C,0x18,0x00,0x18,0x18,0x00,
|
|
||||||
0x6C,0x6C,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x7C,0x28,0x7C,0x28,0x00,0x00,
|
|
||||||
0x10,0x38,0x60,0x38,0x0C,0x78,0x10,0x00,0x40,0xA4,0x48,0x10,0x24,0x4A,0x04,0x00,
|
|
||||||
0x18,0x34,0x18,0x3A,0x6C,0x66,0x3A,0x00,0x18,0x18,0x20,0x00,0x00,0x00,0x00,0x00,
|
|
||||||
0x30,0x60,0x60,0x60,0x60,0x60,0x30,0x00,0x0C,0x06,0x06,0x06,0x06,0x06,0x0C,0x00,
|
|
||||||
0x10,0x54,0x38,0x7C,0x38,0x54,0x10,0x00,0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00,
|
|
||||||
0x00,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,
|
|
||||||
0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x00,0x00,
|
|
||||||
0x38,0x4C,0xC6,0xC6,0xC6,0x64,0x38,0x00,0x18,0x38,0x18,0x18,0x18,0x18,0x7E,0x00,
|
|
||||||
0x7C,0xC6,0x0E,0x3C,0x78,0xE0,0xFE,0x00,0x7E,0x0C,0x18,0x3C,0x06,0xC6,0x7C,0x00,
|
|
||||||
0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x0C,0x00,0xFC,0xC0,0xFC,0x06,0x06,0xC6,0x7C,0x00,
|
|
||||||
0x3C,0x60,0xC0,0xFC,0xC6,0xC6,0x7C,0x00,0xFE,0xC6,0x0C,0x18,0x30,0x30,0x30,0x00,
|
|
||||||
0x78,0xC4,0xE4,0x78,0x86,0x86,0x7C,0x00,0x7C,0xC6,0xC6,0x7E,0x06,0x0C,0x78,0x00,
|
|
||||||
0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x18,0x30,
|
|
||||||
0x1C,0x38,0x70,0xE0,0x70,0x38,0x1C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,
|
|
||||||
0x70,0x38,0x1C,0x0E,0x1C,0x38,0x70,0x00,0x7C,0xC6,0xC6,0x1C,0x18,0x00,0x18,0x00,
|
|
||||||
0x3C,0x42,0x99,0xA1,0xA5,0x99,0x42,0x3C,0x38,0x6C,0xC6,0xC6,0xFE,0xC6,0xC6,0x00,
|
|
||||||
0xFC,0xC6,0xC6,0xFC,0xC6,0xC6,0xFC,0x00,0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00,
|
|
||||||
0xF8,0xCC,0xC6,0xC6,0xC6,0xCC,0xF8,0x00,0xFE,0xC0,0xC0,0xFC,0xC0,0xC0,0xFE,0x00,
|
|
||||||
0xFE,0xC0,0xC0,0xFC,0xC0,0xC0,0xC0,0x00,0x3E,0x60,0xC0,0xCE,0xC6,0x66,0x3E,0x00,
|
|
||||||
0xC6,0xC6,0xC6,0xFE,0xC6,0xC6,0xC6,0x00,0x7E,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,
|
|
||||||
0x06,0x06,0x06,0x06,0xC6,0xC6,0x7C,0x00,0xC6,0xCC,0xD8,0xF0,0xF8,0xDC,0xCE,0x00,
|
|
||||||
0x60,0x60,0x60,0x60,0x60,0x60,0x7E,0x00,0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00,
|
|
||||||
0xC6,0xE6,0xF6,0xFE,0xDE,0xCE,0xC6,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
|
|
||||||
0xFC,0xC6,0xC6,0xC6,0xFC,0xC0,0xC0,0x00,0x7C,0xC6,0xC6,0xC6,0xDE,0xCC,0x7A,0x00,
|
|
||||||
0xFC,0xC6,0xC6,0xCE,0xF8,0xDC,0xCE,0x00,0x78,0xCC,0xC0,0x7C,0x06,0xC6,0x7C,0x00,
|
|
||||||
0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0xC6,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,
|
|
||||||
0xC6,0xC6,0xC6,0xEE,0x7C,0x38,0x10,0x00,0xC6,0xC6,0xD6,0xFE,0xFE,0xEE,0xC6,0x00,
|
|
||||||
0xC6,0xEE,0x3C,0x38,0x7C,0xEE,0xC6,0x00,0x66,0x66,0x66,0x3C,0x18,0x18,0x18,0x00,
|
|
||||||
0xFE,0x0E,0x1C,0x38,0x70,0xE0,0xFE,0x00,0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00,
|
|
||||||
0x60,0x60,0x30,0x18,0x0C,0x06,0x06,0x00,0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00,
|
|
||||||
0x18,0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
|
|
||||||
0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x3E,0x66,0x66,0x3C,0x00,
|
|
||||||
0x60,0x7C,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,0x3C,0x66,0x60,0x60,0x66,0x3C,0x00,
|
|
||||||
0x06,0x3E,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,0x3C,0x66,0x66,0x7E,0x60,0x3C,0x00,
|
|
||||||
0x1C,0x30,0x78,0x30,0x30,0x30,0x30,0x00,0x00,0x3E,0x66,0x66,0x66,0x3E,0x06,0x3C,
|
|
||||||
0x60,0x7C,0x76,0x66,0x66,0x66,0x66,0x00,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x00,
|
|
||||||
0x0C,0x00,0x1C,0x0C,0x0C,0x0C,0x0C,0x38,0x60,0x60,0x66,0x6C,0x78,0x6C,0x66,0x00,
|
|
||||||
0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0xEC,0xFE,0xFE,0xFE,0xD6,0xC6,0x00,
|
|
||||||
0x00,0x7C,0x76,0x66,0x66,0x66,0x66,0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3C,0x00,
|
|
||||||
0x00,0x7C,0x66,0x66,0x66,0x7C,0x60,0x60,0x00,0x3E,0x66,0x66,0x66,0x3E,0x06,0x06,
|
|
||||||
0x00,0x7E,0x70,0x60,0x60,0x60,0x60,0x00,0x00,0x3C,0x60,0x3C,0x06,0x66,0x3C,0x00,
|
|
||||||
0x30,0x78,0x30,0x30,0x30,0x30,0x1C,0x00,0x00,0x66,0x66,0x66,0x66,0x6E,0x3E,0x00,
|
|
||||||
0x00,0x66,0x66,0x66,0x66,0x3C,0x18,0x00,0x00,0xC6,0xD6,0xFE,0xFE,0x7C,0x6C,0x00,
|
|
||||||
0x00,0x66,0x3C,0x18,0x3C,0x66,0x66,0x00,0x00,0x66,0x66,0x66,0x66,0x3E,0x06,0x3C,
|
|
||||||
0x00,0x7E,0x0C,0x18,0x30,0x60,0x7E,0x00,0x0E,0x18,0x0C,0x38,0x0C,0x18,0x0E,0x00,
|
|
||||||
0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00,0x70,0x18,0x30,0x1C,0x30,0x18,0x70,0x00,
|
|
||||||
0x00,0x00,0x76,0xDC,0x00,0x00,0x00,0x00,0x10,0x28,0x10,0x54,0xAA,0x44,0x00,0x00,
|
|
||||||
};
|
|
||||||
|
|
||||||
static void gp2x_text(unsigned char *screen, int x, int y, char *text, int color)
|
|
||||||
{
|
{
|
||||||
int i,l;
|
int i,l;
|
||||||
|
|
||||||
|
@ -130,7 +63,7 @@ static void gp2x_text(unsigned char *screen, int x, int y, char *text, int color
|
||||||
}
|
}
|
||||||
|
|
||||||
// draws white text to current bbp15 screen
|
// draws white text to current bbp15 screen
|
||||||
void gp2x_text_out15(int x, int y, char *text)
|
void gp2x_text_out15(int x, int y, const char *text)
|
||||||
{
|
{
|
||||||
int i,l;
|
int i,l;
|
||||||
unsigned short *screen = gp2x_screen;
|
unsigned short *screen = gp2x_screen;
|
||||||
|
@ -155,7 +88,7 @@ void gp2x_text_out15(int x, int y, char *text)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gp2x_text_out8(int x, int y, char *texto, ...)
|
void gp2x_text_out8(int x, int y, const char *texto, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
char buffer[512];
|
char buffer[512];
|
||||||
|
@ -168,12 +101,12 @@ void gp2x_text_out8(int x, int y, char *texto, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gp2x_text_out8_2(int x, int y, char *texto, int color)
|
void gp2x_text_out8_2(int x, int y, const char *texto, int color)
|
||||||
{
|
{
|
||||||
gp2x_text(gp2x_screen, x, y, texto, color);
|
gp2x_text(gp2x_screen, x, y, texto, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
void gp2x_text_out8_lim(int x, int y, char *texto, int max)
|
void gp2x_text_out8_lim(int x, int y, const char *texto, int max)
|
||||||
{
|
{
|
||||||
char buffer[320/8+1];
|
char buffer[320/8+1];
|
||||||
|
|
||||||
|
@ -185,6 +118,49 @@ void gp2x_text_out8_lim(int x, int y, char *texto, int max)
|
||||||
gp2x_text(gp2x_screen,x,y,buffer,0xf0);
|
gp2x_text(gp2x_screen,x,y,buffer,0xf0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void gp2x_smalltext8(int x, int y, const char *texto)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
unsigned char *src, *dst;
|
||||||
|
|
||||||
|
for (i = 0;; i++, x += 6)
|
||||||
|
{
|
||||||
|
unsigned char c = (unsigned char) texto[i];
|
||||||
|
int h = 8;
|
||||||
|
|
||||||
|
if (!c) break;
|
||||||
|
|
||||||
|
src = fontdata6x8[c];
|
||||||
|
dst = (unsigned char *)gp2x_screen + x + y*320;
|
||||||
|
|
||||||
|
while (h--)
|
||||||
|
{
|
||||||
|
int w = 0x20;
|
||||||
|
while (w)
|
||||||
|
{
|
||||||
|
if( *src & w ) *dst = 0xf0;
|
||||||
|
dst++;
|
||||||
|
w>>=1;
|
||||||
|
}
|
||||||
|
src++;
|
||||||
|
|
||||||
|
dst += 320-6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void gp2x_smalltext8_lim(int x, int y, const char *texto, int max)
|
||||||
|
{
|
||||||
|
char buffer[320/6+1];
|
||||||
|
|
||||||
|
strncpy(buffer, texto, 320/6);
|
||||||
|
if (max > 320/6) max = 320/6;
|
||||||
|
if (max < 0) max = 0;
|
||||||
|
buffer[max] = 0;
|
||||||
|
|
||||||
|
gp2x_smalltext8(x, y, buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned long inp_prev = 0;
|
static unsigned long inp_prev = 0;
|
||||||
static int inp_prevjoy = 0;
|
static int inp_prevjoy = 0;
|
||||||
|
@ -283,16 +259,16 @@ static void draw_dirlist(char *curdir, struct dirent **namelist, int n, int sel)
|
||||||
gp2x_pd_clone_buffer2();
|
gp2x_pd_clone_buffer2();
|
||||||
|
|
||||||
if(start - 2 >= 0)
|
if(start - 2 >= 0)
|
||||||
gp2x_text_out8_lim(14, (start - 2)*10, curdir, 38);
|
gp2x_smalltext8_lim(14, (start - 2)*10, curdir, 53-2);
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
pos = start + i;
|
pos = start + i;
|
||||||
if (pos < 0) continue;
|
if (pos < 0) continue;
|
||||||
if (pos > 23) break;
|
if (pos > 23) break;
|
||||||
if (namelist[i+1]->d_type == DT_DIR) {
|
if (namelist[i+1]->d_type == DT_DIR) {
|
||||||
gp2x_text_out8_lim(14, pos*10, "/", 1);
|
gp2x_smalltext8_lim(14, pos*10, "/", 1);
|
||||||
gp2x_text_out8_lim(14+8, pos*10, namelist[i+1]->d_name, 37);
|
gp2x_smalltext8_lim(14+6, pos*10, namelist[i+1]->d_name, 53-3);
|
||||||
} else {
|
} else {
|
||||||
gp2x_text_out8_lim(14, pos*10, namelist[i+1]->d_name, 38);
|
gp2x_smalltext8_lim(14, pos*10, namelist[i+1]->d_name, 53-2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gp2x_text_out8(5, 120, ">");
|
gp2x_text_out8(5, 120, ">");
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
|
|
||||||
extern char menuErrorMsg[40];
|
extern char menuErrorMsg[40];
|
||||||
|
|
||||||
void gp2x_text_out8 (int x, int y, char *texto, ...);
|
void gp2x_text_out8 (int x, int y, const char *texto, ...);
|
||||||
void gp2x_text_out15 (int x, int y, char *text);
|
void gp2x_text_out15 (int x, int y, const char *text);
|
||||||
void gp2x_text_out8_2(int x, int y, char *texto, int color);
|
void gp2x_text_out8_2(int x, int y, const char *texto, int color);
|
||||||
void menu_loop(void);
|
void menu_loop(void);
|
||||||
|
|
||||||
#define CONFIGURABLE_KEYS \
|
#define CONFIGURABLE_KEYS \
|
||||||
|
|
|
@ -24,7 +24,7 @@ COPT += `pkg-config --cflags gthread-2.0`
|
||||||
LDFLAGS += `pkg-config --libs gthread-2.0`
|
LDFLAGS += `pkg-config --libs gthread-2.0`
|
||||||
|
|
||||||
# frontend
|
# frontend
|
||||||
OBJS += ../gp2x/main.o ../gp2x/menu.o ../gp2x/emu.o ../gp2x/usbjoy.o blit.o gp2x.o 940ctl_ym2612.o
|
OBJS += ../gp2x/main.o ../gp2x/menu.o ../gp2x/fonts.o ../gp2x/emu.o ../gp2x/usbjoy.o blit.o gp2x.o 940ctl_ym2612.o
|
||||||
# Pico
|
# Pico
|
||||||
OBJS += ../../Pico/Area.o ../../Pico/Cart.o ../../Pico/Utils.o ../../Pico/Memory.o ../../Pico/Misc.o \
|
OBJS += ../../Pico/Area.o ../../Pico/Cart.o ../../Pico/Utils.o ../../Pico/Memory.o ../../Pico/Misc.o \
|
||||||
../../Pico/Pico.o ../../Pico/Sek.o ../../Pico/VideoPort.o ../../Pico/Draw2.o ../../Pico/Draw.o
|
../../Pico/Pico.o ../../Pico/Sek.o ../../Pico/VideoPort.o ../../Pico/Draw2.o ../../Pico/Draw.o
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue