forked from KolibriOS/kolibrios
upload pokemini source and binary
git-svn-id: svn://kolibrios.org@6577 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
2eb44d9608
commit
e1cfde849d
BIN
data/common/emul/pokemini
Normal file
BIN
data/common/emul/pokemini
Normal file
Binary file not shown.
15
programs/emulator/pokemini/Makefile
Normal file
15
programs/emulator/pokemini/Makefile
Normal file
@ -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
|
527
programs/emulator/pokemini/PokeMini_SDL.c
Normal file
527
programs/emulator/pokemini/PokeMini_SDL.c
Normal file
@ -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;
|
||||||
|
}
|
15
programs/emulator/pokemini/doc/LICENSE
Normal file
15
programs/emulator/pokemini/doc/LICENSE
Normal file
@ -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/>.
|
19
programs/emulator/pokemini/doc/Readme.txt
Normal file
19
programs/emulator/pokemini/doc/Readme.txt
Normal file
@ -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 !
|
204
programs/emulator/pokemini/doc/original_readme.txt
Normal file
204
programs/emulator/pokemini/doc/original_readme.txt
Normal file
@ -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/
|
5
programs/emulator/pokemini/freebios/Makefile
Normal file
5
programs/emulator/pokemini/freebios/Makefile
Normal file
@ -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
|
259
programs/emulator/pokemini/freebios/freebios.c
Normal file
259
programs/emulator/pokemini/freebios/freebios.c
Normal file
@ -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,
|
||||||
|
};
|
25
programs/emulator/pokemini/freebios/freebios.h
Normal file
25
programs/emulator/pokemini/freebios/freebios.h
Normal file
@ -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
|
235
programs/emulator/pokemini/freebios/noout.map
Normal file
235
programs/emulator/pokemini/freebios/noout.map
Normal file
@ -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)
|
Loading…
Reference in New Issue
Block a user