/programs/emulator/pokemini/Makefile |
---|
0,0 → 1,15 |
OUTFILE = pokemini |
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) $(OBJS5) $(OBJS6) $(OBJS7) $(OBJS8) $(OBJS9) |
OBJS1 = PokeMini_SDL.o ../../sourcex/KeybMapSDL.o ../../sourcex/ExportBMP.o ../../sourcex/ExportWAV.o ../../source/PMCommon.o ../../source/PokeMini.o |
OBJS2 = ../../source/Multicart.o ../../source/Hardware.o ../../source/Video.o ../../source/Video_x1.o ../../source/Video_x2.o ../../source/Video_x3.o |
OBJS3 = ../../source/Video_x4.o ../../source/Video_x5.o ../../source/Video_x6.o ../../source/CommandLine.o ../../source/MinxCPU.o |
OBJS4 = ../../source/MinxCPU_XX.o ../../source/MinxCPU_CE.o ../../source/MinxCPU_CF.o ../../source/MinxCPU_SP.o ../../source/MinxTimers.o |
OBJS5 = ../../source/MinxIO.o ../../source/MinxIRQ.o ../../source/MinxPRC.o ../../source/MinxColorPRC.o ../../source/MinxLCD.o |
OBJS6 = ../../source/MinxAudio.o ../../source/UI.o ../../source/Joystick.o ../../source/Keyboard.o |
OBJS7 = ../../resource/PokeMini_ColorPal.o ../../resource/PokeMini_Font12.o ../../resource/PokeMini_Icons12.o ../../resource/PokeMini_BG2.o |
OBJS8 = ../../resource/PokeMini_BG3.o ../../resource/PokeMini_BG4.o ../../resource/PokeMini_BG5.o ../../resource/PokeMini_BG6.o |
OBJS9 = ./freebios/freebios.o |
CFLAGS = -Os -fomit-frame-pointer -DPERFORMANCE -DNO_ZIP -DNO_SCANDIRS -I$(MENUETDEV)/include/SDL -I./ -I./../../source -I./../../sourcex -I./../../resource -I../../dependencies/minizip -I../../freebios |
LIBS = -lSDL -lm |
include $(MENUETDEV)/makefiles/Makefile_for_program |
/programs/emulator/pokemini/PokeMini_SDL.c |
---|
0,0 → 1,527 |
/* |
PokeMini - Pokémon-Mini Emulator |
Copyright (C) 2009-2015 JustBurn |
This program is free software: you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation, either version 3 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
*/ |
#include <stdlib.h> |
#include <stdio.h> |
#include <string.h> |
#include <math.h> |
#include "SDL.h" |
#include "PokeMini.h" |
#include "Hardware.h" |
#include "ExportBMP.h" |
#include "ExportWAV.h" |
#include "Keyboard.h" |
#include "KeybMapSDL.h" |
#include "Video_x1.h" |
#include "Video_x2.h" |
#include "Video_x3.h" |
#include "Video_x4.h" |
#include "Video_x5.h" |
#include "Video_x6.h" |
#include "PokeMini_BG2.h" |
#include "PokeMini_BG3.h" |
#include "PokeMini_BG4.h" |
#include "PokeMini_BG5.h" |
#include "PokeMini_BG6.h" |
const char *AppName = "PokeMini " PokeMini_Version " SDL"; |
int emurunning = 1, emulimiter = 1; |
SDL_Surface *screen; |
int PMWidth, PMHeight; |
int PixPitch, PMOff, UIOff; |
FILE *sdump; |
void setup_screen(); |
// Sound buffer size |
#define SOUNDBUFFER 512 |
#define PMSNDBUFFER (SOUNDBUFFER*2) |
const char *clc_zoom_txt[] = { |
"0x (Illegal)", |
"1x ( 96x 64)", |
"2x (192x128)", |
"3x (288x192)", |
"4x (384x256)", |
"5x (480x320)", |
"6x (576x384)", |
}; |
// Custom command line (NEW IN 0.5.0) |
int clc_zoom = 6, clc_bpp = 16, clc_fullscreen = 0; |
char clc_dump_sound[PMTMPV] = {0}; |
int clc_displayfps = 0; |
const TCommandLineCustom CustomArgs[] = { |
{ "-dumpsound", (int *)&clc_dump_sound, COMMANDLINE_STR, PMTMPV-1 }, |
{ "-zoom", &clc_zoom, COMMANDLINE_INT, 1, 6 }, |
{ "-bpp", &clc_bpp, COMMANDLINE_INT, 16, 32 }, |
{ "-windowed", &clc_fullscreen, COMMANDLINE_INTSET, 0 }, |
{ "-fullscreen", &clc_fullscreen, COMMANDLINE_INTSET, 1 }, |
{ "-displayfps", &clc_displayfps, COMMANDLINE_INTSET, 1 }, |
{ "", NULL, COMMANDLINE_EOL } |
}; |
const TCommandLineCustom CustomConf[] = { |
{ "zoom", &clc_zoom, COMMANDLINE_INT, 1, 6 }, |
{ "bpp", &clc_bpp, COMMANDLINE_INT, 16, 32 }, |
{ "fullscreen", &clc_fullscreen, COMMANDLINE_BOOL }, |
{ "displayfps", &clc_displayfps, COMMANDLINE_BOOL }, |
{ "", NULL, COMMANDLINE_EOL } |
}; |
// Platform menu (REQUIRED >= 0.4.4) |
int UIItems_PlatformC(int index, int reason); |
TUIMenu_Item UIItems_Platform[] = { |
PLATFORMDEF_GOBACK, |
{ 0, 1, "Zoom: %s", UIItems_PlatformC }, |
{ 0, 2, "Depth: %dbpp", UIItems_PlatformC }, |
/*{ 0, 3, "Fullscreen: %s", UIItems_PlatformC },*/ |
{ 0, 4, "Display FPS: %s", UIItems_PlatformC }, |
{ 0, 9, "Define Keyboard...", UIItems_PlatformC }, |
PLATFORMDEF_SAVEOPTIONS, |
PLATFORMDEF_END(UIItems_PlatformC) |
}; |
int UIItems_PlatformC(int index, int reason) |
{ |
int zoomchanged = 0; |
if (reason == UIMENU_OK) { |
reason = UIMENU_RIGHT; |
} |
if (reason == UIMENU_CANCEL) { |
UIMenu_PrevMenu(); |
} |
if (reason == UIMENU_LEFT) { |
switch (index) { |
case 1: // Zoom |
clc_zoom--; |
if (clc_zoom < 1) clc_zoom = 6; |
zoomchanged = 1; |
break; |
case 2: // Bits-Per-Pixel |
if (clc_bpp == 32) |
clc_bpp = 16; |
else |
clc_bpp = 32; |
zoomchanged = 1; |
break; |
case 3: // Fullscreen |
clc_fullscreen = !clc_fullscreen; |
zoomchanged = 1; |
break; |
case 4: // Display FPS |
clc_displayfps = !clc_displayfps; |
break; |
} |
} |
if (reason == UIMENU_RIGHT) { |
switch (index) { |
case 1: // Zoom |
clc_zoom++; |
if (clc_zoom > 6) clc_zoom = 1; |
zoomchanged = 1; |
break; |
case 2: // Bits-Per-Pixel |
if (clc_bpp == 16) |
clc_bpp = 32; |
else |
clc_bpp = 16; |
zoomchanged = 1; |
break; |
case 3: // Fullscreen |
clc_fullscreen = !clc_fullscreen; |
zoomchanged = 1; |
break; |
case 4: // Display FPS |
clc_displayfps = !clc_displayfps; |
break; |
break; |
case 9: // Define Keyboard... |
KeyboardEnterMenu(); |
break; |
} |
} |
UIMenu_ChangeItem(UIItems_Platform, 1, "Zoom: %s", clc_zoom_txt[clc_zoom]); |
UIMenu_ChangeItem(UIItems_Platform, 2, "Depth: %dbpp", clc_bpp); |
UIMenu_ChangeItem(UIItems_Platform, 3, "Fullscreen: %s", clc_fullscreen ? "Yes" : "No"); |
UIMenu_ChangeItem(UIItems_Platform, 4, "Display FPS: %s", clc_displayfps ? "Yes" : "No"); |
if (zoomchanged) { |
SDL_UnlockSurface(screen); |
setup_screen(); |
SDL_LockSurface(screen); |
return 0; |
} |
return 1; |
} |
// Setup screen |
void setup_screen() |
{ |
TPokeMini_VideoSpec *videospec; |
int depth, PMOffX, PMOffY, UIOffX, UIOffY; |
// Calculate size based of zoom |
if (clc_zoom == 1) { |
videospec = (TPokeMini_VideoSpec *)&PokeMini_Video1x1; |
PMWidth = 192; PMHeight = 128; PMOffX = 48; PMOffY = 32; UIOffX = 0; UIOffY = 0; |
UIMenu_SetDisplay(192, 128, PokeMini_BGR16, (uint8_t *)PokeMini_BG2, (uint16_t *)PokeMini_BG2_PalBGR16, (uint32_t *)PokeMini_BG2_PalBGR32); |
} else if (clc_zoom == 2) { |
videospec = (TPokeMini_VideoSpec *)&PokeMini_Video2x2; |
PMWidth = 208; PMHeight = 144; PMOffX = 8; PMOffY = 8; UIOffX = 8; UIOffY = 8; |
UIMenu_SetDisplay(192, 128, PokeMini_BGR16, (uint8_t *)PokeMini_BG2, (uint16_t *)PokeMini_BG2_PalBGR16, (uint32_t *)PokeMini_BG2_PalBGR32); |
} else if (clc_zoom == 3) { |
videospec = (TPokeMini_VideoSpec *)&PokeMini_Video3x3; |
PMWidth = 304; PMHeight = 208; PMOffX = 8; PMOffY = 8; UIOffX = 8; UIOffY = 8; |
UIMenu_SetDisplay(288, 192, PokeMini_BGR16, (uint8_t *)PokeMini_BG3, (uint16_t *)PokeMini_BG3_PalBGR16, (uint32_t *)PokeMini_BG3_PalBGR32); |
} else if (clc_zoom == 4) { |
videospec = (TPokeMini_VideoSpec *)&PokeMini_Video4x4; |
PMWidth = 400; PMHeight = 272; PMOffX = 8; PMOffY = 8; UIOffX = 8; UIOffY = 8; |
UIMenu_SetDisplay(384, 256, PokeMini_BGR16, (uint8_t *)PokeMini_BG4, (uint16_t *)PokeMini_BG4_PalBGR16, (uint32_t *)PokeMini_BG4_PalBGR32); |
} else if (clc_zoom == 5) { |
videospec = (TPokeMini_VideoSpec *)&PokeMini_Video5x5; |
PMWidth = 496; PMHeight = 336; PMOffX = 8; PMOffY = 8; UIOffX = 8; UIOffY = 8; |
UIMenu_SetDisplay(480, 320, PokeMini_BGR16, (uint8_t *)PokeMini_BG5, (uint16_t *)PokeMini_BG5_PalBGR16, (uint32_t *)PokeMini_BG5_PalBGR32); |
} else { |
videospec = (TPokeMini_VideoSpec *)&PokeMini_Video6x6; |
PMWidth = 592; PMHeight = 400; PMOffX = 8; PMOffY = 8; UIOffX = 8; UIOffY = 8; |
UIMenu_SetDisplay(576, 384, PokeMini_BGR16, (uint8_t *)PokeMini_BG6, (uint16_t *)PokeMini_BG6_PalBGR16, (uint32_t *)PokeMini_BG6_PalBGR32); |
} |
// Set video spec and check if is supported |
depth = PokeMini_SetVideo(videospec, clc_bpp, CommandLine.lcdfilter, CommandLine.lcdmode); |
if (!depth) { |
fprintf(stderr, "Couldn't set video spec from %i bpp\n", clc_bpp); |
exit(1); |
} |
// Set video mode |
screen = SDL_SetVideoMode(PMWidth, PMHeight, depth, SDL_HWSURFACE | SDL_DOUBLEBUF | (clc_fullscreen ? SDL_FULLSCREEN : 0)); |
if (screen == NULL) { |
fprintf(stderr, "Couldn't set video mode: %s\n", SDL_GetError()); |
exit(1); |
} |
// Calculate pitch and offset |
if (depth == 32) { |
PixPitch = screen->pitch / 4; |
PMOff = (PMOffY * screen->pitch) + (PMOffX * 4); |
UIOff = (UIOffY * screen->pitch) + (UIOffX * 4); |
} else { |
PixPitch = screen->pitch / 2; |
PMOff = (PMOffY * screen->pitch) + (PMOffX * 2); |
UIOff = (UIOffY * screen->pitch) + (UIOffX * 2); |
} |
clc_bpp = depth; |
} |
// Capture screen |
void capture_screen() |
{ |
FILE *capf; |
int y, capnum; |
unsigned long Video[96*64]; |
PokeMini_VideoPreview_32((uint32_t *)Video, 96, PokeMini_LCDMode); |
capf = OpenUnique_ExportBMP(&capnum, 96, 64); |
if (!capf) { |
fprintf(stderr, "Error while saving capture\n"); |
return; |
} |
for (y=0; y<64; y++) { |
WriteArray_ExportBMP(capf, (uint32_t *)&Video[(63-y) * 96], 96); |
} |
printf("Capture saved at 'snap_%03d.bmp'\n", capnum); |
Close_ExportBMP(capf); |
} |
// Handle keyboard and quit events |
void handleevents(SDL_Event *event) |
{ |
switch (event->type) { |
case SDL_KEYDOWN: |
if (event->key.keysym.sym == SDLK_F9) { // Capture screen |
capture_screen(); |
} else if (event->key.keysym.sym == SDLK_F4) { // Emulator Exit |
if (event->key.keysym.mod & KMOD_ALT) { |
emurunning = 0; |
} |
} else if (event->key.keysym.sym == SDLK_F10) { // Fullscreen/Window |
clc_fullscreen = !clc_fullscreen; |
setup_screen(); |
UIItems_PlatformC(0, UIMENU_LOAD); |
} else if (event->key.keysym.sym == SDLK_F11) { // Disable speed throttling |
emulimiter = !emulimiter; |
} else if (event->key.keysym.sym == SDLK_TAB) { // Temp disable speed throttling |
emulimiter = 0; |
} else { |
KeyboardPressEvent(event->key.keysym.sym); |
} |
break; |
case SDL_KEYUP: |
if (event->key.keysym.sym == SDLK_TAB) { // Speed threhold |
emulimiter = 1; |
} else { |
KeyboardReleaseEvent(event->key.keysym.sym); |
} |
break; |
case SDL_QUIT: |
emurunning = 0; |
break; |
}; |
} |
// Used to fill the sound buffer |
void emulatorsound(void *unused, Uint8 *stream, int len) |
{ |
MinxAudio_GetSamplesU8(stream, len); |
if (clc_dump_sound[0]) WriteU8A_ExportWAV(sdump, stream, len>>1); |
} |
// Enable / Disable sound |
void enablesound(int sound) |
{ |
MinxAudio_ChangeEngine(sound); |
if (AudioEnabled) SDL_PauseAudio(!sound); |
} |
// Menu loop |
void menuloop() |
{ |
SDL_Event event; |
// Update window's title and stop sound |
SDL_WM_SetCaption(AppName, "PMEWindow"); |
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); |
enablesound(0); |
// Update EEPROM |
PokeMini_SaveFromCommandLines(0); |
// Menu's loop |
while (emurunning && (UI_Status == UI_STATUS_MENU)) { |
// Slowdown to approx. 60fps |
SDL_Delay(1); |
// Process UI |
UIMenu_Process(); |
// Screen rendering |
SDL_FillRect(screen, NULL, 0); |
if (SDL_LockSurface(screen) == 0) { |
// Render the menu or the game screen |
if (PokeMini_VideoDepth == 32) |
UIMenu_Display_32((uint32_t *)((uint8_t *)screen->pixels + UIOff), PixPitch); |
else |
UIMenu_Display_16((uint16_t *)((uint8_t *)screen->pixels + UIOff), PixPitch); |
// Unlock surface |
SDL_UnlockSurface(screen); |
SDL_Flip(screen); |
} |
// Handle events |
while (SDL_PollEvent(&event)) handleevents(&event); |
} |
// Apply configs |
PokeMini_ApplyChanges(); |
if (UI_Status == UI_STATUS_EXIT) emurunning = 0; |
else |
{ |
if (CommandLine.sound == MINX_AUDIO_GENERATED) |
enablesound(MINX_AUDIO_GENERATED); |
else |
enablesound(0); |
} |
SDL_EnableKeyRepeat(0, 0); |
} |
// Main function |
int main(int argc, char **argv) |
{ |
SDL_Event event; |
char title[256]; |
char fpstxt[16]; |
// Process arguments |
printf("%s\n\n", AppName); |
PokeMini_InitDirs(argv[0], NULL); |
CommandLineInit(); |
CommandLineConfFile("/tmp0/1/pokemini.cfg", "/tmp0/1/pokemini_sdl.cfg", CustomConf); |
if (!CommandLineArgs(argc, argv, CustomArgs)) { |
PrintHelpUsage(stdout); |
printf(" -dumpsound sound.wav Dump sound into a WAV file\n"); |
printf(" -windowed Display in window (default)\n"); |
printf(" -fullscreen Display in fullscreen\n"); |
printf(" -displayfps Display FPS counter on screen\n"); |
printf(" -zoom n Zoom display: 1 to 6 (def 4)\n"); |
printf(" -bpp n Bits-Per-Pixel: 16 or 32 (def 16)\n"); |
return 1; |
} |
// Initialize SDL |
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) { |
fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); |
return 1; |
} |
atexit(SDL_Quit); // Clean up on exit |
// Initialize the display |
setup_screen(); |
// Initialize the sound |
SDL_AudioSpec audfmt; |
SDL_AudioSpec obtained; |
audfmt.freq = 44100; |
audfmt.format = AUDIO_U8; |
audfmt.channels = 1; |
audfmt.samples = SOUNDBUFFER; |
audfmt.callback = emulatorsound; |
audfmt.userdata = NULL; |
// Open the audio device |
// Second setting can't be NULL on KolibriOS or else it wont play sound |
if (SDL_OpenAudio(&audfmt, &obtained) < 0) { |
fprintf(stderr, "Unable to open audio: %s\n", SDL_GetError()); |
fprintf(stderr, "Audio will be disabled\n"); |
AudioEnabled = 0; |
} else { |
AudioEnabled = 1; |
} |
// Set the window manager title bar |
SDL_WM_SetCaption(AppName, "PMEWindow"); |
SDL_EnableKeyRepeat(0, 0); |
// Open WAV capture if was requested |
if (clc_dump_sound[0]) { |
sdump = Open_ExportWAV(clc_dump_sound, EXPORTWAV_44KHZ | EXPORTWAV_MONO | EXPORTWAV_16BITS); |
if (!sdump) { |
fprintf(stderr, "Error opening sound export file.\n"); |
return 1; |
} |
} |
// Initialize the emulator |
printf("Starting emulator...\n"); |
if (!PokeMini_Create(0, PMSNDBUFFER)) { |
fprintf(stderr, "Error while initializing emulator\n"); |
return 1; |
} |
// Setup palette and LCD mode |
PokeMini_VideoPalette_Init(PokeMini_BGR16, 1); |
PokeMini_VideoPalette_Index(CommandLine.palette, CommandLine.custompal, CommandLine.lcdcontrast, CommandLine.lcdbright); |
PokeMini_ApplyChanges(); |
// Load stuff |
PokeMini_UseDefaultCallbacks(); |
if (!PokeMini_LoadFromCommandLines("Using FreeBIOS", "EEPROM data will be discarded!")) { |
UI_Status = UI_STATUS_MENU; |
} |
// Enable sound & init UI |
printf("Running emulator...\n"); |
UIMenu_Init(); |
KeyboardRemap(&KeybMapSDL); |
if (CommandLine.sound == MINX_AUDIO_GENERATED) |
enablesound(MINX_AUDIO_GENERATED); |
else |
enablesound(0); |
// Emulator's loop |
unsigned long time, NewTickFPS = 0, NewTickSync = 0; |
int fps = 72, fpscnt = 0; |
while (emurunning) { |
// Emulate and syncronize |
time = SDL_GetTicks(); |
if (RequireSoundSync) { |
PokeMini_EmulateFrame(); |
// Sleep a little in the hope to free a few samples |
if (emulimiter) while (MinxAudio_SyncWithAudio()) SDL_Delay(1); |
} else { |
PokeMini_EmulateFrame(); |
if (emulimiter) { |
do { |
SDL_Delay(1); // This lower CPU usage |
time = SDL_GetTicks(); |
} while (time < NewTickSync); |
NewTickSync = time + 13; // Aprox 72 times per sec |
} |
} |
// Screen rendering |
SDL_FillRect(screen, NULL, 0); |
if (SDL_LockSurface(screen) == 0) { |
// Render the menu or the game screen |
if (PokeMini_Rumbling) { |
PokeMini_VideoBlit((void *)((uint8_t *)screen->pixels + PMOff + PokeMini_GenRumbleOffset(screen->pitch)), PixPitch); |
} else { |
PokeMini_VideoBlit((void *)((uint8_t *)screen->pixels + PMOff), PixPitch); |
} |
LCDDirty = 0; |
// Display FPS counter |
if (clc_displayfps) { |
if (PokeMini_VideoDepth == 32) |
UIDraw_String_32((uint32_t *)screen->pixels, PixPitch, 4, 4, 10, fpstxt, UI_Font1_Pal32); |
else |
UIDraw_String_16((uint16_t *)screen->pixels, PixPitch, 4, 4, 10, fpstxt, UI_Font1_Pal16); |
} |
// Unlock surface |
SDL_UnlockSurface(screen); |
SDL_Flip(screen); |
} |
// Handle events |
while (SDL_PollEvent(&event)) handleevents(&event); |
// Menu |
if (UI_Status == UI_STATUS_MENU) menuloop(); |
// calculate FPS |
fpscnt++; |
if (time >= NewTickFPS) { |
fps = fpscnt; |
sprintf(title, "%s - %d%%", AppName, fps * 100 / 72); |
sprintf(fpstxt, "%i FPS", fps); |
SDL_WM_SetCaption(title, "PMEWindow"); |
NewTickFPS = time + 1000; |
fpscnt = 0; |
} |
} |
// Disable sound & free UI |
enablesound(0); |
UIMenu_Destroy(); |
// Close WAV capture if there's one |
if (clc_dump_sound[0]) Close_ExportWAV(sdump); |
// Save Stuff |
PokeMini_SaveFromCommandLines(1); |
// Terminate... |
printf("Shutdown emulator...\n"); |
PokeMini_VideoPalette_Free(); |
PokeMini_Destroy(); |
return 0; |
} |
/programs/emulator/pokemini/doc/LICENSE |
---|
0,0 → 1,15 |
PokeMini - Pokémon-Mini Emulator |
Copyright (C) 2014 JustBurn |
This program is free software: you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation, either version 3 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
/programs/emulator/pokemini/doc/Readme.txt |
---|
0,0 → 1,19 |
======================== |
PokeMini 0.60 for KolibriOS |
======================== |
Port for KolibriOS by gameblabla |
PokeMini is a Pokémon mini emulator by JustBurn. |
It has been ported to the PCs, Sega Dreamcast, PSP, NDS |
with unofficial ports for the GCW0, TI Nspire and now the KolibriOS. |
This requires at least a Pentium Pro to even work. |
Why ? Because the toolchain was compiled for Pentium Pro+ support only... (SERGE!) |
Sound is supported too, your soundcard needs to support Mono 44050hz 8bits. |
I think that shouldn't be a problem as even a SB16 supports that... |
To open a ROM, you need to use the "Open with..." thingy. |
Choose a Pokémon Mini ROM for that and choose to open it with PokéMini. |
Enjoy ! |
/programs/emulator/pokemini/doc/original_readme.txt |
---|
0,0 → 1,204 |
___ _ _ |
| _ \ | \_/ | |
| _/ | _ | |
| | | | | | |
|_| OKE |_| |_| INI |
------------------- |
Version 0.60 |
Homebrew-emulator for Pokémon-Mini! |
Latest version can be found in: |
http://pokemini.sourceforge.net/ |
For hardware documentation, visit: |
http://wiki.sublab.net/index.php/Pokemon_Mini |
> Keys & Information: |
To include real BIOS, place "bios.min" on the emulator's directory. |
When no "bios.min" is present, emulator will use Pokémon-Mini FreeBIOS. |
Pokémon-Mini PC Keys |
---------------------------- |
D-PAD Left Arrow Left |
D-PAD Right Arrow Right |
D-PAD Up Arrow Up |
D-PAD Down Arrow Down |
Key A Keyboard X |
Key B Keyboard Z |
Key C Keyboard S or C |
Power Button Keyboard E |
Shock Detector Keyboard A |
---------------------------- |
UI Menu Keyboard Esc |
F9 will capture the screen and save as "snap_(sequence number).bmp" |
F10 can toggle between Fullscreen and Windowed. |
F11 will disable/enable speed throttle |
TAB can be hold to temporary disable speed throttle |
> Supported multicarts: |
Type 0 - Disabled (Commercial, Prototype) |
Read only |
Type 1 - Normal 512KB Flash (AM29LV040B) |
Read, Erase, Write, Banking and Manufacturer ID |
Type 2 - Lupin's 512KB Flash (AM29LV040B) |
Read, Erase, Write, Banking and Manufacturer ID |
> Command-Line: |
Usage: |
PokeMini [Options] rom.min |
Options: |
-freebios Force FreeBIOS |
-bios otherbios.min Load BIOS |
-noeeprom Discard EEPROM data |
-eeprom pokemini.eep Load/Save EEPROM file |
-eepromshare Share EEPROM to all ROMs (default) |
-noeepromshare Each ROM will use individual EEPROM |
-nostate Discard State data (default) |
-state pokemini.sta Load/Save state file |
-nortc No RTC |
-statertc RTC time difference in savestates |
-hostrtc RTC match the Host clock (def) |
-nosound Disable sound |
-sound Same as -soundpiezo (def) |
-sounddirect Use timer 3 directly for sound (default) |
-soundemulate Use sound circuit emulation |
-sounddirectpwm Same as direct, can play PWM samples |
-nopiezo Disable piezo speaker filter |
-piezo Enable piezo speaker filter (def) |
-scanline 50% Scanline LCD filter |
-dotmatrix LCD dot-matrix filter (def) |
-nofilter No LCD filter |
-2shades LCD Mode: No mixing |
-3shades LCD Mode: Grey emulation |
-analog LCD Mode: Pretend real LCD (default) |
-fullbattery Emulate with a full battery (default) |
-lowbattery Emulate with a weak battery |
-palette n Select palette for colors (0 to 15) |
-rumblelvl 3 Rumble level (0 to 3) |
-nojoystick Disable joystick (def) |
-joystick Enable joystick |
-joyid 0 Set joystick ID |
-custom1light 0xFFFFFF Palette Custom 1 Light |
-custom1dark 0x000000 Palette Custom 1 Dark |
-custom2light 0xFFFFFF Palette Custom 2 Light |
-custom2dark 0x000000 Palette Custom 2 Dark |
-synccycles 8 Number of cycles per hardware sync. |
-multicart 0 Multicart type (0 to 2) |
-lcdcontrast 64 LCD contrast boost in percent |
-lcdbright 0 LCD brightness offset in percent |
Only on SDL platform: |
-dumpsound sound.wav Dump sound into a WAV file |
-windowed Display in window (default) |
-fullscreen Display in fullscreen |
-zoom n Zoom display: 1 to 4 (def 4) |
-bpp n Bits-Per-Pixel: 16 or 32 (def 16) |
Only on Debugger platform: |
-autorun 0 Autorun, 0=Off, 1=Full, 2=Dbg+Snd, 3=Dbg |
-windowed Display in window (default) |
-fullscreen Display in fullscreen |
-zoom n Zoom display: 1 to 4 (def 4) |
-bpp n Bits-Per-Pixel: 16 or 32 (def 16) |
> System requirements: |
No sound: |
Pentium III 733 Mhz or better recommended. |
With sound: |
Pentium IV 1.7 Ghz or better recommended. |
Note: Performance tests were based on 0.4.0 version |
> History: |
-: 0.60 Changes :- |
Changed version format to only 2 fields to avoid confusion |
Fixed RTC month being reported wrong from host |
Adjusted graphics, now it display darker shades to match more closely the real system |
Added 2 new options: LCD contrast and LCD bright |
Changed the way analog LCD mode works, now it's less blurry and can do up to 5 shades without artifacts |
SDL port has been upgraded to SDL 2, this brings Haptic support and other improvements |
New Keyboard/Joystick option to allow checking inputs |
Applying joystick settings now can (re)enable the device |
Share EEPROM is now disabled by default |
Emulator can be compiled for 64-bit CPU without issues now |
Limited sync-cycles to 64 on 'accurancy' platforms |
Win32 Only: |
Corrected Direct3D issue in some GPUs |
Sound write position is now handled correctly |
NDS Only: Added 3-in-1 rumble support |
PSP Only: |
Analog stick now works |
Added FPS display under Platform... (default is off) |
Reached 100% emulation by skipping 1 frame, aparently hardware is limited to 60fps max |
Dreamcast Only: |
Improved sound latency (thanks BlueCrab). |
Added FPS display under Platform... (default is off) |
Debugger Only: |
Minor fixes |
Trace history is now 10000 instructions instead of 256 |
Added copy & paste buttons to timing counters |
Older History can be found at: |
http://sourceforge.net/p/pokemini/wiki/History/ |
> License GPLv3 (emulator and tools): |
PokeMini - Pokémon-Mini Emulator |
Copyright (C) 2015 JustBurn |
This program is free software: you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation, either version 3 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
> Greetings & Links: |
Thank's to p0p, Dave|X, Onori |
goldmomo, asterick, DarkFader, Agilo |
MrBlinky, Wa, Lupin and everyone at |
#pmdev on IRC EFNET! |
Questions and Bugs reports are welcome! |
PokeMini webpage: |
https://sourceforge.net/projects/pokemini/ |
Pokemon-Mini Hardware: |
http://wiki.sublab.net/index.php/Pokemon_Mini |
Pokémon-mini.net: |
http://www.pokemon-mini.net/ |
MEGA - Museum of Electronic Games & Art: |
http://m-e-g-a.org/ |
Minimon (other Pokemon-Mini emulator): |
http://www.sublab.net/projects/minimon/ |
DarkFader Pokemon-Mini webpage: |
http://darkfader.net/pm/ |
Agilo's Weblog: |
http://www.agilo.nl/ |
/programs/emulator/pokemini/freebios/Makefile |
---|
0,0 → 1,5 |
OUTFILE = noout |
OBJS = freebios.o |
CFLAGS = -Os -DNOTPSP -DFRAMELIMIT -DNODEBUG -DNO_SNPRINTF -DKOLIBRI -I/home/hatsune/menuetos/include/SDL |
LIBS = -lm |
include $(MENUETDEV)/makefiles/Makefile_for_program |
/programs/emulator/pokemini/freebios/freebios.c |
---|
0,0 → 1,259 |
const unsigned char FreeBIOS[] = |
{ |
0x9A,0x00,0xAB,0x00,0xAB,0x00,0x2F,0x02,0x41,0x02,0x53,0x02,0x65,0x02,0x77,0x02, |
0x89,0x02,0x9B,0x02,0xAD,0x02,0xBF,0x02,0xD1,0x02,0xE3,0x02,0xF5,0x02,0x07,0x03, |
0x19,0x03,0xAB,0x00,0xAB,0x00,0x60,0x04,0x2B,0x03,0xF1,0x03,0x3D,0x03,0x4F,0x03, |
0x61,0x03,0x73,0x03,0x85,0x03,0x97,0x03,0xA9,0x03,0xBB,0x03,0xCD,0x03,0xDF,0x03, |
0xF1,0xFF,0x9E,0x04,0x60,0x04,0x60,0x04,0xE4,0x04,0x60,0x04,0x0D,0x05,0x24,0x05, |
0x45,0x05,0x4C,0x05,0x5D,0x05,0x7C,0x05,0x92,0x05,0x9F,0x05,0xBB,0x05,0x60,0x04, |
0x60,0x04,0x60,0x04,0x60,0x04,0x60,0x04,0x60,0x04,0x60,0x04,0x60,0x04,0x60,0x04, |
0x60,0x04,0xD6,0x05,0xE3,0x05,0x60,0x04,0x60,0x04,0xF0,0x05,0x00,0x06,0x66,0x06, |
0x7A,0x06,0x8A,0x06,0x60,0x04,0x60,0x04,0x60,0x04,0x60,0x04,0x60,0x04,0x60,0x04, |
0x60,0x04,0x60,0x04,0x60,0x04,0x00,0x00,0x98,0x06,0xB4,0x20,0x38,0xCE,0xCD,0xDD, |
0x08,0x02,0xD9,0x08,0x01,0xDD,0x00,0x7C,0xDD,0x02,0x00,0x9F,0xC0,0xB4,0x20,0x38, |
0xCE,0xCD,0xCE,0xCE,0xCE,0xCF,0xCF,0x6E,0x00,0x20,0xDD,0x80,0x00,0xCE,0xC4,0x01, |
0xF3,0x01,0x00,0xD9,0x00,0x03,0xD9,0x01,0x30,0xD9,0x02,0xC0,0xF2,0xE1,0x00,0xC6, |
0xA0,0x06,0xBE,0x82,0x20,0x79,0x84,0x79,0x85,0x79,0x86,0x79,0x87,0x79,0x88,0x79, |
0x89,0x38,0xC6,0x00,0x10,0x60,0x92,0xD6,0x00,0x20,0xEF,0xF9,0xFF,0xF2,0x05,0x01, |
0xDD,0xFE,0xAF,0xF2,0x1D,0x01,0xD9,0x80,0x0A,0xD9,0x81,0x01,0xDC,0x10,0x20,0xEF, |
0x40,0x00,0xF2,0x2F,0x00,0xEF,0x3A,0x00,0x38,0xDD,0x80,0x00,0xDD,0x81,0x07,0x78, |
0x82,0x78,0x83,0xD8,0x01,0xEF,0xC6,0x00,0x10,0x60,0x92,0xD6,0x00,0x20,0xEF,0xF9, |
0xFF,0xC4,0x00,0x00,0xCF,0xE4,0xCF,0xE8,0xCF,0xEC,0x4C,0x52,0xB0,0xFF,0x9C,0xC0, |
0xF3,0xD0,0x1F,0xCE,0xD0,0x00,0x21,0x32,0x4D,0xF8,0xCE,0xD0,0x01,0x21,0x32,0x4E, |
0xF8,0xB1,0x03,0xA0,0xB0,0x01,0xC6,0x7D,0x13,0xB1,0x03,0xF2,0x51,0x00,0xC6,0x88, |
0x13,0xB1,0x04,0xF2,0x49,0x00,0xDC,0x10,0x20,0xEE,0x0B,0x00,0xC6,0x94,0x13,0xB0, |
0x08,0xB1,0x04,0xF2,0x39,0x00,0xF2,0xCB,0xFF,0xEE,0x0B,0x00,0xC6,0xA0,0x13,0xB0, |
0x0C,0xB1,0x04,0xF2,0x29,0x00,0xF2,0x2C,0x00,0xC6,0x94,0x13,0xB0,0x00,0xB1,0x04, |
0xF2,0x17,0x00,0xF2,0x1F,0x00,0xA8,0xF5,0xBB,0xC6,0xA0,0x13,0xB0,0x00,0xB1,0x04, |
0xF2,0x07,0x00,0xF2,0x0F,0x00,0xF3,0x6A,0xFF,0x60,0x92,0xF5,0xFD,0xF8,0x60,0x92, |
0x80,0xF5,0xFC,0xF8,0xB0,0xFF,0xB1,0xFF,0xF5,0xFF,0x88,0xEF,0xF9,0xFF,0xF8,0xB1, |
0x00,0xDD,0x10,0x08,0xD8,0x19,0xCF,0x79,0x20,0xDD,0x21,0x30,0xDD,0x22,0x02,0x79, |
0x23,0xDD,0x24,0x02,0x79,0x25,0x79,0x26,0x79,0x40,0x79,0x44,0xDD,0x50,0xFF,0x79, |
0x51,0x79,0x54,0x79,0x55,0xD9,0x60,0x0C,0xD8,0x61,0xFB,0xD9,0x61,0x08,0xD9,0x61, |
0x04,0xDD,0x61,0x20,0xDD,0x60,0x32,0x79,0x62,0x79,0x70,0x79,0x71,0xDD,0xFE,0x81, |
0xDD,0xFE,0x1F,0xF8,0xA1,0xC5,0xFE,0x20,0xB5,0xE3,0xB5,0xA4,0xB5,0xAD,0xB5,0x00, |
0xB5,0x10,0xB5,0xEE,0xB5,0x40,0xB5,0xA2,0xB5,0xA0,0xB5,0xC0,0xB5,0xA6,0xB5,0x2F, |
0xA9,0xF8,0xC5,0xFE,0x20,0xB5,0xE3,0xB3,0xB0,0x6B,0xB5,0x00,0xB5,0x10,0xB1,0x60, |
0x91,0xDD,0xFF,0x00,0xF5,0xFC,0x99,0x83,0xCE,0xBE,0xB8,0xEF,0xEC,0xFF,0xF8,0xA5, |
0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0x00,0x02,0xAC,0xAD,0xF3,0xC8, |
0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0xEE,0x01,0xAC,0xAD, |
0xF3,0xBC,0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0xDC,0x01, |
0xAC,0xAD,0xF3,0xB0,0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA, |
0xCA,0x01,0xAC,0xAD,0xF3,0xA4,0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01, |
0x20,0xEA,0xB8,0x01,0xAC,0xAD,0xF3,0x98,0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20, |
0xDC,0x01,0x20,0xEA,0xA6,0x01,0xAC,0xAD,0xF3,0x8C,0x1E,0xA5,0xA4,0xCE,0xC5,0x00, |
0xB4,0x20,0xDC,0x01,0x20,0xEA,0x94,0x01,0xAC,0xAD,0xF3,0x80,0x1E,0xA5,0xA4,0xCE, |
0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0x82,0x01,0xAC,0xAD,0xF3,0x74,0x1E,0xA5, |
0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0x70,0x01,0xAC,0xAD,0xF3,0x68, |
0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0x5E,0x01,0xAC,0xAD, |
0xF3,0x5C,0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0x4C,0x01, |
0xAC,0xAD,0xF3,0x50,0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA, |
0x3A,0x01,0xAC,0xAD,0xF3,0x44,0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01, |
0x20,0xEA,0x28,0x01,0xAC,0xAD,0xF3,0x38,0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20, |
0xDC,0x01,0x20,0xEA,0x16,0x01,0xAC,0xAD,0xF3,0x2C,0x1E,0xA5,0xA4,0xCE,0xC5,0x00, |
0xB4,0x20,0xDC,0x01,0x20,0xEA,0x04,0x01,0xAC,0xAD,0xF3,0x62,0x1E,0xA5,0xA4,0xCE, |
0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0xF2,0x00,0xAC,0xAD,0xF3,0x14,0x1E,0xA5, |
0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0xE0,0x00,0xAC,0xAD,0xF3,0x08, |
0x1E,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0xCE,0x00,0xAC,0xAD, |
0xF3,0xFC,0x1D,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0xBC,0x00, |
0xAC,0xAD,0xF3,0xF0,0x1D,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA, |
0xAA,0x00,0xAC,0xAD,0xF3,0xE4,0x1D,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01, |
0x20,0xEA,0x98,0x00,0xAC,0xAD,0xF3,0xD8,0x1D,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20, |
0xDC,0x01,0x20,0xEA,0x86,0x00,0xAC,0xAD,0xF3,0xCC,0x1D,0xA5,0xA4,0xCE,0xC5,0x00, |
0xB4,0x20,0xDC,0x01,0x20,0xEA,0x74,0x00,0xAC,0xAD,0xF3,0xC0,0x1D,0xA5,0xA4,0xCE, |
0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0x62,0x00,0xAC,0xAD,0xF3,0xB4,0x1D,0xA5, |
0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEA,0x50,0x00,0xAC,0xAD,0xF3,0xA8, |
0x1D,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x01,0x20,0xEF,0x2A,0x00,0xDC,0x01, |
0x10,0xEF,0xA8,0xFC,0xDC,0x71,0x04,0xEE,0x0D,0x00,0xDC,0x02,0x40,0xEE,0x07,0x00, |
0xD8,0x71,0xFB,0xD9,0x02,0x80,0xDC,0x01,0x80,0xEE,0x11,0x00,0xDC,0x02,0x20,0xEF, |
0x14,0x00,0xAC,0xAD,0xF3,0xD7,0x1B,0xAC,0xAD,0xF3,0x31,0x1D,0xD9,0x01,0x20,0xDC, |
0x02,0x20,0xEF,0xF3,0xFF,0xDD,0x29,0x80,0xAC,0xAD,0xF9,0xDC,0x71,0x04,0xEE,0x0D, |
0x00,0xDC,0x02,0x40,0xEE,0x07,0x00,0xD8,0x71,0xFB,0xD9,0x02,0x80,0xDC,0x01,0x80, |
0xEE,0x0A,0x00,0xCF,0x68,0x03,0x00,0xAC,0xAD,0xF3,0xA2,0x1B,0xD9,0x01,0x20,0xF8, |
0xF9,0xD8,0x80,0xF7,0xDD,0xFE,0xAE,0xDD,0xFE,0xAC,0xDD,0xFE,0x28,0xDD,0xFE,0xA5, |
0xD8,0x02,0xE3,0xD8,0x81,0xFE,0xD9,0x02,0x01,0xD9,0x24,0x02,0xD9,0x21,0x30,0xD8, |
0x01,0xDF,0xD8,0x02,0xE3,0xA7,0x9F,0x80,0xCE,0xAE,0xAF,0xD9,0x02,0x10,0xD9,0x81, |
0x01,0xF2,0x61,0xFD,0xDD,0xFE,0xAF,0xD8,0x02,0xDF,0xD9,0x00,0x03,0xF8,0xA5,0xA4, |
0x9F,0xC0,0xCE,0xC5,0x00,0xB4,0x20,0x4C,0x80,0x44,0x21,0x22,0x0C,0xA0,0x4C,0x23, |
0x44,0x24,0xA0,0x4C,0x25,0x44,0x26,0xA0,0xDD,0x23,0x00,0xDD,0x24,0x00,0xDD,0x25, |
0x80,0xDD,0x26,0x00,0xD9,0x21,0x0C,0xDD,0x29,0x80,0xDD,0x80,0x00,0xF2,0x92,0xFF, |
0xA8,0x79,0x25,0x78,0x26,0xA8,0x79,0x23,0x78,0x24,0xA8,0x79,0x80,0x22,0xF3,0x78, |
0x21,0xAC,0xAD,0xF9,0x9F,0xC0,0xCF,0x6E,0x00,0x20,0xCE,0xC5,0x00,0xB4,0x20,0xF2, |
0xBE,0xFC,0xDD,0x23,0x00,0xDD,0x24,0x00,0xDD,0x25,0x80,0xDD,0x26,0x00,0xDD,0x29, |
0x80,0xDD,0x80,0x00,0xDD,0x21,0x0C,0xF2,0x58,0xFF,0xF3,0x9F,0xFB,0xAF,0xA5,0xA1, |
0xCE,0xC5,0x00,0xC5,0x00,0x20,0xCE,0x84,0xCE,0x84,0xCE,0x25,0x03,0xCE,0x2C,0xA9, |
0xAD,0xF3,0x23,0x00,0xF2,0x27,0x00,0xAF,0xA7,0xEE,0x0A,0x00,0x32,0x3F,0xEE,0x0D, |
0x00,0x80,0xF3,0x0C,0x00,0x28,0xEE,0x05,0x00,0x88,0xF3,0x04,0x00,0xB0,0xFF,0xF9, |
0xF2,0xCC,0xFF,0x38,0xF9,0xAF,0xF2,0x05,0x00,0xF3,0x13,0x00,0xAF,0xA5,0xA4,0xCE, |
0xC5,0x00,0xB4,0x20,0x44,0x00,0xCE,0x8C,0xCE,0x8C,0xAC,0xAD,0xF8,0xAF,0xA5,0xA4, |
0xCE,0xC5,0x00,0xB4,0x20,0x48,0xDC,0x80,0x08,0xA7,0xD8,0x80,0xF7,0xDD,0xFE,0x81, |
0x79,0xFE,0xAF,0xEE,0x04,0x00,0xD9,0x80,0x08,0xAC,0xAD,0xF8,0xA5,0xA4,0xCE,0xC5, |
0x00,0xB4,0x20,0xF2,0x6F,0xFC,0xDD,0xFE,0xAF,0xD9,0x80,0x04,0xD9,0x81,0x01,0xAC, |
0xAD,0xF9,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xF2,0x59,0xFC,0xAC,0xAD,0xF9,0xA5, |
0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xD8,0x80,0xF7,0xDD,0xFE,0xAE,0xDD,0xFE,0xAC,0xDD, |
0xFE,0x28,0xDD,0xFE,0xA5,0xD8,0x81,0xFE,0xAC,0xAD,0xF9,0xA5,0xA4,0xCE,0xC5,0x00, |
0xB4,0x20,0x9F,0xC0,0xDC,0x01,0x80,0xEF,0x0A,0x00,0xD9,0x01,0x80,0xD9,0x01,0x40, |
0xD8,0x01,0xDF,0xAC,0xAD,0xF9,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xD8,0x00,0xFC, |
0xAC,0xAD,0xF9,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xD9,0x00,0x03,0xAC,0xAD,0xF9, |
0xAF,0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xDC,0x53,0x02,0x9E,0x01,0xAC,0xAD,0xF8, |
0xA5,0xA4,0xCE,0xC5,0x00,0xB4,0x20,0xA6,0xA2,0xA3,0xA1,0xCF,0xB1,0x9F,0xC0,0x46, |
0x96,0x01,0xCE,0xC1,0xEE,0x0E,0x00,0xC2,0x0A,0x00,0x5E,0x9A,0x56,0x9A,0xA1,0x4E, |
0x9A,0xF3,0x04,0x00,0xC2,0x07,0x00,0xA0,0x4E,0x9A,0x46,0x9A,0x5E,0x9A,0x56,0x9A, |
0xCE,0xCF,0xCF,0xED,0x46,0x9A,0x5E,0x9A,0x56,0xCE,0xCE,0xCF,0xE9,0xD9,0x02,0x80, |
0xB6,0xFF,0xD9,0x02,0x80,0x47,0xD9,0x02,0x80,0x31,0xA8,0xCE,0xC3,0xEE,0x0A,0x00, |
0xAF,0x51,0xA8,0x58,0x41,0xA7,0xF2,0x0B,0x00,0xA8,0x22,0x01,0xA9,0xAB,0xAA,0xAE, |
0xAC,0xAD,0xF9,0xCE,0xCC,0xF4,0xA5,0xA1,0xCE,0xC5,0x00,0xC5,0x81,0x20,0xCE,0x25, |
0xF1,0x22,0x07,0xCE,0x84,0xCE,0x2C,0xA9,0xAD,0xF9,0xA5,0xA4,0xCE,0xC5,0x00,0xB4, |
0x20,0x44,0x81,0xCE,0x8C,0x22,0x07,0xAC,0xAD,0xF9,0xAF,0xA5,0xA4,0xCE,0xC5,0x00, |
0xB4,0x20,0xDC,0x01,0x08,0xAC,0xAD,0xF8,0xB7,0x02,0xF5,0xFF,0xB7,0x00,0xF9,0xFF, |
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x04,0x82,0xE1,0xE1,0x31,0x31, |
0x39,0x39,0x39,0x39,0x39,0x39,0x31,0x31,0xE1,0xE1,0x82,0x06,0xFA,0x04,0xF8,0x00, |
0xFE,0x82,0xEA,0x3A,0xFE,0x82,0xEA,0x96,0xFC,0xC7,0xAA,0xBB,0xFF,0xC7,0xAA,0xBA, |
0xFE,0x82,0xAA,0xD6,0xFE,0x8A,0xFE,0xC6,0xBB,0xC7,0xFD,0xB6,0xAB,0xAB,0xDA,0x7E, |
0x7C,0x7C,0x40,0x40,0x00,0x38,0x7C,0x44,0x7C,0x38,0x00,0x3C,0x7C,0x20,0x7C,0x3C, |
0x00,0x00,0x7C,0x7C,0x7C,0x74,0x6C,0x54,0x64,0x44,0x44,0x44,0x44,0x6C,0x38,0x00, |
0x7C,0x7C,0x08,0x10,0x7C,0x7C,0x00,0x38,0x7C,0x44,0x7C,0x38,0x00,0x00,0x00,0x38, |
0x44,0x44,0x00,0x78,0x14,0x14,0x78,0x00,0x7C,0x14,0x14,0x68,0x00,0x04,0x7C,0x04, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, |
0x20,0x20,0x20,0x20,0x46,0x72,0x65,0x65,0x77,0x61,0x72,0x65,0x20,0x20,0x20,0x20, |
0x50,0x6F,0x6B,0x65,0x6D,0x6F,0x6E,0x4D,0x69,0x6E,0x69,0x20,0x42,0x49,0x4F,0x53, |
0x20,0x20,0x56,0x65,0x72,0x73,0x69,0x6F,0x6E,0x20,0x20,0x31,0x2E,0x33,0x20,0x20, |
0x20,0x62,0x79,0x20,0x54,0x65,0x61,0x6D,0x20,0x50,0x6F,0x6B,0x65,0x6D,0x65,0x20, |
}; |
/programs/emulator/pokemini/freebios/freebios.h |
---|
0,0 → 1,25 |
/* |
PokeMini - Pokémon-Mini Emulator |
Copyright (C) 2009 JustBurn |
This program is free software: you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation, either version 3 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program. If not, see <http://www.gnu.org/licenses/>. |
*/ |
#ifndef FREEBIOS_H |
#define FREEBIOS_H |
// Free BIOS (4KB) |
extern const unsigned char FreeBIOS[]; |
#endif |
/programs/emulator/pokemini/freebios/noout.map |
---|
0,0 → 1,235 |
Archive member included because of file (symbol) |
/home/hatsune/menuetos/lib/libc.a(param.o) |
/home/hatsune/menuetos/stub/crt0.o (__menuet__app_path_area) |
/home/hatsune/menuetos/lib/libc.a(crt1.o) |
/home/hatsune/menuetos/stub/crt0.o (__crt1_startup) |
/home/hatsune/menuetos/lib/libc.a(brk.o) |
/home/hatsune/menuetos/lib/libc.a(crt1.o) (init_brk) |
/home/hatsune/menuetos/lib/libc.a(crt0.o) |
/home/hatsune/menuetos/lib/libc.a(crt1.o) (__crt0_setup_arguments) |
/home/hatsune/menuetos/lib/libc.a(emu_init.o) |
/home/hatsune/menuetos/lib/libc.a(crt1.o) (dosemu_inithandles) |
/home/hatsune/menuetos/lib/libc.a(_main.o) |
/home/hatsune/menuetos/lib/libc.a(crt1.o) (__main) |
/home/hatsune/menuetos/lib/libc.a(exit.o) |
/home/hatsune/menuetos/lib/libc.a(crt1.o) (exit) |
/home/hatsune/menuetos/lib/libc.a(errno.o) |
/home/hatsune/menuetos/lib/libc.a(brk.o) (errno) |
/home/hatsune/menuetos/lib/libc.a(malloc.o) |
/home/hatsune/menuetos/lib/libc.a(crt0.o) (malloc) |
/home/hatsune/menuetos/lib/libc.a(strlen.o) |
/home/hatsune/menuetos/lib/libc.a(crt0.o) (strlen) |
/home/hatsune/menuetos/lib/libc.a(strcpy.o) |
/home/hatsune/menuetos/lib/libc.a(emu_init.o) (strcpy) |
/home/hatsune/menuetos/lib/libc.a(strrchr.o) |
/home/hatsune/menuetos/lib/libc.a(emu_init.o) (strrchr) |
/home/hatsune/menuetos/lib/libc.a(delay.o) |
/home/hatsune/menuetos/lib/libc.a(malloc.o) (__menuet__delay100) |
/home/hatsune/menuetos/lib/libc.a(memcpy.o) |
/home/hatsune/menuetos/lib/libc.a(malloc.o) (memcpy) |
Memory Configuration |
Name Origin Length Attributes |
*default* 0x0000000000000000 0xffffffffffffffff |
Linker script and memory map |
0x0000000000400000 __image_base__ = 0x400000 |
0x0000000000000000 __dll__ = 0x0 |
0x0000000000400000 ___ImageBase = 0x400000 |
0x0000000000000010 __section_alignment__ = 0x10 |
0x0000000000000010 __file_alignment__ = 0x10 |
0x0000000000000004 __major_os_version__ = 0x4 |
0x0000000000000000 __minor_os_version__ = 0x0 |
0x0000000000000001 __major_image_version__ = 0x1 |
0x0000000000000000 __minor_image_version__ = 0x0 |
0x0000000000000004 __major_subsystem_version__ = 0x4 |
0x0000000000000000 __minor_subsystem_version__ = 0x0 |
0x0000000000000003 __subsystem__ = 0x3 |
0x0000000000200000 __size_of_stack_reserve__ = 0x200000 |
0x0000000000001000 __size_of_stack_commit__ = 0x1000 |
0x0000000000100000 __size_of_heap_reserve__ = 0x100000 |
0x0000000000001000 __size_of_heap_commit__ = 0x1000 |
0x0000000000000000 __loader_flags__ = 0x0 |
0x0000000000000000 __dll_characteristics__ = 0x0 |
.text 0x0000000000000000 0x810 |
0x0000000000000000 code = . |
0x0000000000000000 _code = . |
*(.A) |
.A 0x0000000000000000 0x24 /home/hatsune/menuetos/stub/crt0.o |
0x0000000000000000 __menuet__app_header |
0x0000000000000014 __menuet__memsize |
*(.text) |
.text 0x0000000000000024 0x0 /home/hatsune/menuetos/stub/crt0.o |
0x0000000000000024 start |
.text 0x0000000000000024 0x0 freebios.o |
.text 0x0000000000000024 0x0 /home/hatsune/menuetos/lib/libc.a(param.o) |
.text 0x0000000000000024 0x40 /home/hatsune/menuetos/lib/libc.a(crt1.o) |
0x0000000000000024 __crt1_startup |
.text 0x0000000000000064 0x15c /home/hatsune/menuetos/lib/libc.a(brk.o) |
0x0000000000000064 init_brk |
0x00000000000000b8 sbrk |
.text 0x00000000000001c0 0x140 /home/hatsune/menuetos/lib/libc.a(crt0.o) |
0x0000000000000243 _exit |
0x000000000000024d __crt0_setup_arguments |
.text 0x0000000000000300 0x78 /home/hatsune/menuetos/lib/libc.a(emu_init.o) |
0x0000000000000300 dosemu_inithandles |
0x0000000000000345 init_dir_stack |
.text 0x0000000000000378 0x3c /home/hatsune/menuetos/lib/libc.a(_main.o) |
0x0000000000000378 __main |
.text 0x00000000000003b4 0x24 /home/hatsune/menuetos/lib/libc.a(exit.o) |
0x00000000000003b4 exit |
.text 0x00000000000003d8 0xc /home/hatsune/menuetos/lib/libc.a(errno.o) |
0x00000000000003d8 __isatty |
.text 0x00000000000003e4 0x384 /home/hatsune/menuetos/lib/libc.a(malloc.o) |
0x00000000000004b1 malloc |
0x0000000000000667 free |
0x0000000000000705 realloc |
.text 0x0000000000000768 0x18 /home/hatsune/menuetos/lib/libc.a(strlen.o) |
0x0000000000000768 strlen |
.text 0x0000000000000780 0x1c /home/hatsune/menuetos/lib/libc.a(strcpy.o) |
0x0000000000000780 strcpy |
.text 0x000000000000079c 0x24 /home/hatsune/menuetos/lib/libc.a(strrchr.o) |
0x000000000000079c strrchr |
.text 0x00000000000007c0 0x24 /home/hatsune/menuetos/lib/libc.a(delay.o) |
0x00000000000007c0 __menuet__delay100 |
0x00000000000007d1 __menuet(int, double, long,...) |
.text 0x00000000000007e4 0x2c /home/hatsune/menuetos/lib/libc.a(memcpy.o) |
0x00000000000007e4 memcpy |
*(.fixup) |
*(.gnu.warning) |
*(.gnu.linkonce.t*) |
*(.const) |
*(.ro*) |
*(.gnu.linkonce.r*) |
0x0000000000000810 ecode = . |
0x0000000000000810 _ecode = . |
.rdata 0x0000000000000810 0x1130 |
.rdata 0x0000000000000810 0x1000 freebios.o |
0x0000000000000810 FreeBIOS |
.rdata$zzz 0x0000000000001810 0x14 freebios.o |
.rdata$zzz 0x0000000000001824 0x14 /home/hatsune/menuetos/lib/libc.a(param.o) |
.rdata$zzz 0x0000000000001838 0x14 /home/hatsune/menuetos/lib/libc.a(crt1.o) |
.rdata$zzz 0x000000000000184c 0x14 /home/hatsune/menuetos/lib/libc.a(brk.o) |
.rdata$zzz 0x0000000000001860 0x14 /home/hatsune/menuetos/lib/libc.a(crt0.o) |
.rdata$zzz 0x0000000000001874 0x14 /home/hatsune/menuetos/lib/libc.a(emu_init.o) |
.rdata$zzz 0x0000000000001888 0x14 /home/hatsune/menuetos/lib/libc.a(_main.o) |
.rdata$zzz 0x000000000000189c 0x14 /home/hatsune/menuetos/lib/libc.a(exit.o) |
.rdata$zzz 0x00000000000018b0 0x14 /home/hatsune/menuetos/lib/libc.a(errno.o) |
.rdata$zzz 0x00000000000018c4 0x14 /home/hatsune/menuetos/lib/libc.a(malloc.o) |
.rdata$zzz 0x00000000000018d8 0x14 /home/hatsune/menuetos/lib/libc.a(strlen.o) |
.rdata$zzz 0x00000000000018ec 0x14 /home/hatsune/menuetos/lib/libc.a(strcpy.o) |
.rdata$zzz 0x0000000000001900 0x14 /home/hatsune/menuetos/lib/libc.a(strrchr.o) |
.rdata$zzz 0x0000000000001914 0x14 /home/hatsune/menuetos/lib/libc.a(delay.o) |
.rdata$zzz 0x0000000000001928 0x14 /home/hatsune/menuetos/lib/libc.a(memcpy.o) |
.data 0x000000000000193c 0x4e0 |
0x000000000000193c djgpp_first_ctor = . |
*(.ctor) |
*(.ctors) |
0x000000000000193c djgpp_last_ctor = . |
0x000000000000193c djgpp_first_dtor = . |
*(.dtor) |
*(.dtors) |
0x000000000000193c djgpp_last_dtor = . |
*(.gcc_exc*) |
0x000000000000193c __EH_FRAME_BEGIN__ = . |
*(.eh_fram*) |
.eh_frame 0x000000000000193c 0x34 /home/hatsune/menuetos/lib/libc.a(crt1.o) |
.eh_frame 0x0000000000001970 0x68 /home/hatsune/menuetos/lib/libc.a(brk.o) |
.eh_frame 0x00000000000019d8 0x9c /home/hatsune/menuetos/lib/libc.a(crt0.o) |
.eh_frame 0x0000000000001a74 0x58 /home/hatsune/menuetos/lib/libc.a(emu_init.o) |
.eh_frame 0x0000000000001acc 0x40 /home/hatsune/menuetos/lib/libc.a(_main.o) |
.eh_frame 0x0000000000001b0c 0x34 /home/hatsune/menuetos/lib/libc.a(exit.o) |
.eh_frame 0x0000000000001b40 0x38 /home/hatsune/menuetos/lib/libc.a(errno.o) |
.eh_frame 0x0000000000001b78 0x140 /home/hatsune/menuetos/lib/libc.a(malloc.o) |
.eh_frame 0x0000000000001cb8 0x3c /home/hatsune/menuetos/lib/libc.a(strlen.o) |
.eh_frame 0x0000000000001cf4 0x40 /home/hatsune/menuetos/lib/libc.a(strcpy.o) |
.eh_frame 0x0000000000001d34 0x3c /home/hatsune/menuetos/lib/libc.a(strrchr.o) |
.eh_frame 0x0000000000001d70 0x60 /home/hatsune/menuetos/lib/libc.a(delay.o) |
.eh_frame 0x0000000000001dd0 0x40 /home/hatsune/menuetos/lib/libc.a(memcpy.o) |
0x0000000000001e10 __EH_FRAME_END__ = . |
0x0000000000001e10 0x4 LONG 0x0 |
*(.gnu.linkonce.d*) |
*(.rodata) |
*(.rodata.*) |
*(.data) |
.data 0x0000000000001e14 0x0 freebios.o |
.data 0x0000000000001e14 0x0 /home/hatsune/menuetos/lib/libc.a(param.o) |
.data 0x0000000000001e14 0x4 /home/hatsune/menuetos/lib/libc.a(crt1.o) |
0x0000000000001e14 __bss_count |
.data 0x0000000000001e18 0x0 /home/hatsune/menuetos/lib/libc.a(brk.o) |
.data 0x0000000000001e18 0x0 /home/hatsune/menuetos/lib/libc.a(crt0.o) |
.data 0x0000000000001e18 0x0 /home/hatsune/menuetos/lib/libc.a(emu_init.o) |
.data 0x0000000000001e18 0x4 /home/hatsune/menuetos/lib/libc.a(_main.o) |
.data 0x0000000000001e1c 0x0 /home/hatsune/menuetos/lib/libc.a(exit.o) |
.data 0x0000000000001e1c 0x0 /home/hatsune/menuetos/lib/libc.a(errno.o) |
.data 0x0000000000001e1c 0x0 /home/hatsune/menuetos/lib/libc.a(malloc.o) |
.data 0x0000000000001e1c 0x0 /home/hatsune/menuetos/lib/libc.a(strlen.o) |
.data 0x0000000000001e1c 0x0 /home/hatsune/menuetos/lib/libc.a(strcpy.o) |
.data 0x0000000000001e1c 0x0 /home/hatsune/menuetos/lib/libc.a(strrchr.o) |
.data 0x0000000000001e1c 0x0 /home/hatsune/menuetos/lib/libc.a(delay.o) |
.data 0x0000000000001e1c 0x0 /home/hatsune/menuetos/lib/libc.a(memcpy.o) |
0x0000000000001e1c edata = . |
0x0000000000001e1c _edata = . |
0x0000000000001e1c bss = . |
.bss 0x0000000000001e1c 0x190bc |
*(.bss) |
.bss 0x0000000000001e1c 0x10000 /home/hatsune/menuetos/stub/crt0.o |
.bss 0x0000000000011e1c 0x0 freebios.o |
.bss 0x0000000000011e1c 0x800 /home/hatsune/menuetos/lib/libc.a(param.o) |
0x0000000000011e1c __menuet__app_path_area |
0x000000000001221c __menuet__app_param_area |
.bss 0x000000000001261c 0x14 /home/hatsune/menuetos/lib/libc.a(crt1.o) |
0x000000000001261c __dos_argv0 |
0x0000000000012620 __crt0_argv |
0x0000000000012624 __crt0_argc |
0x0000000000012628 _crt0_startup_flags |
0x000000000001262c environ |
.bss 0x0000000000012630 0x18 /home/hatsune/menuetos/lib/libc.a(brk.o) |
.bss 0x0000000000012648 0x0 /home/hatsune/menuetos/lib/libc.a(crt0.o) |
.bss 0x0000000000012648 0x8800 /home/hatsune/menuetos/lib/libc.a(emu_init.o) |
0x0000000000012648 __curdir_buf |
0x0000000000012a48 _io_handles |
.bss 0x000000000001ae48 0x0 /home/hatsune/menuetos/lib/libc.a(_main.o) |
.bss 0x000000000001ae48 0x8 /home/hatsune/menuetos/lib/libc.a(exit.o) |
0x000000000001ae48 keypress_at_exit |
0x000000000001ae4c __atexit_ptr |
.bss 0x000000000001ae50 0x4 /home/hatsune/menuetos/lib/libc.a(errno.o) |
0x000000000001ae50 errno |
.bss 0x000000000001ae54 0x84 /home/hatsune/menuetos/lib/libc.a(malloc.o) |
.bss 0x000000000001aed8 0x0 /home/hatsune/menuetos/lib/libc.a(strlen.o) |
.bss 0x000000000001aed8 0x0 /home/hatsune/menuetos/lib/libc.a(strcpy.o) |
.bss 0x000000000001aed8 0x0 /home/hatsune/menuetos/lib/libc.a(strrchr.o) |
.bss 0x000000000001aed8 0x0 /home/hatsune/menuetos/lib/libc.a(delay.o) |
.bss 0x000000000001aed8 0x0 /home/hatsune/menuetos/lib/libc.a(memcpy.o) |
0x000000000001aed8 end = . |
0x000000000001aed8 _end = . |
0x000000000001aed8 ___memsize = . |
/DISCARD/ |
*(.debug$S) |
*(.debug$T) |
*(.debug$F) |
*(.drectve) |
*(.note.GNU-stack) |
*(.eh_frame) |
*(.comment) |
*(.debug_abbrev) |
*(.debug_info) |
*(.debug_line) |
*(.debug_frame) |
*(.debug_loc) |
*(.debug_pubnames) |
*(.debug_aranges) |
*(.debug_ranges) |
LOAD /home/hatsune/menuetos/stub/crt0.o |
LOAD freebios.o |
LOAD /home/hatsune/menuetos/lib/libm.a |
LOAD /home/hatsune/menuetos/lib/libc.a |
OUTPUT(noout pei-i386) |