#include "emu.h"\r
#include "menu.h"\r
#include "usbjoy.h"\r
-#include "../common/arm_utils.h"\r
+#include "../common/emu.h"\r
#include "../common/menu.h"\r
+#include "../common/arm_utils.h"\r
#include "../common/readpng.h"\r
#include "version.h"\r
\r
#error "need d_type for file browser\r
#endif\r
\r
-extern char romFileName[PATH_MAX];\r
-extern char *rom_data;\r
extern int mmuhack_status;\r
-extern int state_slot;\r
-extern int config_slot, config_slot_current;\r
\r
static const char *gp2xKeyNames[] = {\r
"UP", "???", "LEFT", "???", "DOWN", "???", "RIGHT", "???",\r
"???", "???", "???", "PUSH", "???", "???", "???", "???"\r
};\r
\r
-char menuErrorMsg[40] = {0, };\r
-\r
static void menu_darken_bg(void *dst, int pixels, int darker);\r
static void menu_prepare_bg(int use_game_bg);\r
\r
\r
// --------- loading ROM screen ----------\r
\r
+static int cdload_called = 0;\r
+\r
static void load_progress_cb(int percent)\r
{\r
int ln, len = percent * 320 / 100;\r
unsigned short *dst = (unsigned short *)gp2x_screen + 320*20;\r
\r
if (len > 320) len = 320;\r
- for (ln = 10; ln > 0; ln--, dst += 320)\r
+ for (ln = 8; ln > 0; ln--, dst += 320)\r
+ memset(dst, 0xff, len*2);\r
+ menu_flip();\r
+}\r
+\r
+static void cdload_progress_cb(int percent)\r
+{\r
+ int ln, len = percent * 320 / 100;\r
+ unsigned short *dst = (unsigned short *)gp2x_screen + 320*20;\r
+\r
+ memset(dst, 0xff, 320*2*8);\r
+\r
+ smalltext_out16(1, 3*10, "Processing CD image / MP3s", 0xffff);\r
+ smalltext_out16_lim(1, 4*10, romFileName, 0xffff, 80);\r
+ dst += 320*30;\r
+\r
+ if (len > 320) len = 320;\r
+ for (ln = 8; ln > 0; ln--, dst += 320)\r
memset(dst, 0xff, len*2);\r
menu_flip();\r
+ cdload_called = 1;\r
}\r
\r
void menu_romload_prepare(const char *rom_name)\r
gp2x_memcpy_buffers(3, gp2x_screen, 0, 320*240*2);\r
menu_flip();\r
PicoCartLoadProgressCB = load_progress_cb;\r
+ PicoCDLoadProgressCB = cdload_progress_cb;\r
+ cdload_called = 0;\r
}\r
\r
void menu_romload_end(void)\r
{\r
- PicoCartLoadProgressCB = NULL;\r
- smalltext_out16(1, 30, "Starting emulation...", 0xffff);\r
+ PicoCartLoadProgressCB = PicoCDLoadProgressCB = NULL;\r
+ smalltext_out16(1, cdload_called ? 60 : 30, "Starting emulation...", 0xffff);\r
menu_flip();\r
}\r
\r
static unsigned short file2color(const char *fname)\r
{\r
const char *ext = fname + strlen(fname) - 3;\r
- static const char *rom_exts[] = { "zip", "bin", "smd", "gen", "iso" };\r
+ static const char *rom_exts[] = { "zip", "bin", "smd", "gen", "iso", "cso" };\r
static const char *other_exts[] = { "gmv", "pat" };\r
int i;\r
\r
\r
for (slot = 0; slot < 10; slot++)\r
{\r
- if (emu_check_save_file(slot))\r
+ if (emu_checkSaveFile(slot))\r
{\r
state_slot_flags |= 1 << slot;\r
}\r
\r
if (strcmp(fname + strlen(fname) - 3, ".gz") == 0) {\r
file = gzopen(fname, "rb");\r
- emu_set_save_cbs(1);\r
+ emu_setSaveStateCbs(1);\r
} else {\r
file = fopen(fname, "rb");\r
- emu_set_save_cbs(0);\r
+ emu_setSaveStateCbs(0);\r
}\r
\r
if (file) {\r
areaClose(file);\r
}\r
\r
- emu_forced_frame();\r
+ emu_forcedFrame();\r
menu_prepare_bg(1);\r
\r
memcpy(Pico.vram, tmp_vram, sizeof(Pico.vram));\r
menu_id selected_id;\r
char *bios, *p;\r
\r
- if (find_bios(4, &bios)) { // US\r
+ if (emu_findBios(4, &bios)) { // US\r
for (p = bios+strlen(bios)-1; p > bios && *p != '/'; p--); p++;\r
strncpy(bios_names.us, p, sizeof(bios_names.us)); bios_names.us[sizeof(bios_names.us)-1] = 0;\r
} else strcpy(bios_names.us, "NOT FOUND");\r
\r
- if (find_bios(8, &bios)) { // EU\r
+ if (emu_findBios(8, &bios)) { // EU\r
for (p = bios+strlen(bios)-1; p > bios && *p != '/'; p--); p++;\r
strncpy(bios_names.eu, p, sizeof(bios_names.eu)); bios_names.eu[sizeof(bios_names.eu)-1] = 0;\r
} else strcpy(bios_names.eu, "NOT FOUND");\r
\r
- if (find_bios(1, &bios)) { // JP\r
+ if (emu_findBios(1, &bios)) { // JP\r
for (p = bios+strlen(bios)-1; p > bios && *p != '/'; p--); p++;\r
strncpy(bios_names.jp, p, sizeof(bios_names.jp)); bios_names.jp[sizeof(bios_names.jp)-1] = 0;\r
} else strcpy(bios_names.jp, "NOT FOUND");\r
if (inp & GP2X_START) { // BIOS testers\r
switch (selected_id) {\r
case MA_CDOPT_TESTBIOS_USA:\r
- if (find_bios(4, &bios)) { // test US\r
+ if (emu_findBios(4, &bios)) { // test US\r
strcpy(romFileName, bios);\r
engineState = PGS_ReloadRom;\r
return;\r
}\r
break;\r
case MA_CDOPT_TESTBIOS_EUR:\r
- if (find_bios(8, &bios)) { // test EU\r
+ if (emu_findBios(8, &bios)) { // test EU\r
strcpy(romFileName, bios);\r
engineState = PGS_ReloadRom;\r
return;\r
}\r
break;\r
case MA_CDOPT_TESTBIOS_JAP:\r
- if (find_bios(1, &bios)) { // test JP\r
+ if (emu_findBios(1, &bios)) { // test JP\r
strcpy(romFileName, bios);\r
engineState = PGS_ReloadRom;\r
return;\r
PicoOpt = currentConfig.PicoOpt;\r
PsndRate = currentConfig.PsndRate;\r
PicoRegionOverride = currentConfig.PicoRegion;\r
+ if (PicoRegionOverride) {\r
+ // force setting possibly changed..\r
+ Pico.m.pal = (PicoRegionOverride == 2 || PicoRegionOverride == 8) ? 1 : 0;\r
+ }\r
if (!(PicoOpt & 0x20)) {\r
// unbind XYZ MODE, just in case\r
unbind_action(0xf00, -1, -1);\r
}\r
- scaling_update();\r
}\r
\r
static int menu_loop_options(void)\r
text_out16(tl_x, 20, "PicoDrive v" VERSION " (c) notaz, 2006,2007");\r
y = tl_y;\r
text_out16(tl_x, y, "Credits:");\r
- text_out16(tl_x, (y+=10), "Dave: Cyclone 68000 core,");\r
+ text_out16(tl_x, (y+=10), "fDave: Cyclone 68000 core,");\r
text_out16(tl_x, (y+=10), " base code of PicoDrive");\r
text_out16(tl_x, (y+=10), "Reesy & FluBBa: DrZ80 core");\r
text_out16(tl_x, (y+=10), "MAME devs: YM2612 and SN76496 cores");\r
selfname = romsel_loop(curr_path);\r
if (selfname) {\r
int ret = -1, cd_type;\r
- cd_type = emu_cd_check(NULL);\r
+ cd_type = emu_cdCheck(NULL);\r
if (cd_type > 0)\r
ret = Insert_CD(romFileName, cd_type == 2);\r
if (ret != 0) {\r