From a39b7867f59194cec12ca3773da6e5e524a52dbf Mon Sep 17 00:00:00 2001 From: notaz Date: Sat, 29 Mar 2008 12:06:20 +0000 Subject: [PATCH] 1.40a fixes git-svn-id: file:///home/notaz/opt/svn/PicoDrive@402 be3aeb3a-fb24-0410-a615-afba39da0efa --- platform/base_readme.txt | 13 ++++++++++--- platform/common/emu.c | 2 ++ platform/gp2x/Makefile | 2 +- platform/gp2x/PicoDrive.man.txt | 12 +++++++++--- platform/gp2x/{game.cfg => game_def.cfg} | 0 platform/gp2x/menu.c | 5 ++++- platform/gp2x/version.h | 2 +- 7 files changed, 27 insertions(+), 9 deletions(-) rename platform/gp2x/{game.cfg => game_def.cfg} (100%) diff --git a/platform/base_readme.txt b/platform/base_readme.txt index 34341f8e..9e16c975 100644 --- a/platform/base_readme.txt +++ b/platform/base_readme.txt @@ -25,6 +25,9 @@ from Dave's (fdave, finalburn) PicoDrive 0.30 for Pocket PC. The Sega/Mega CD code is roughly based on Stephane Dallongeville's Gens. #endif +PicoDrive is the first emulator ever to properly emulate Virtua Racing and +it's SVP chip. + How to make it run ------------------ @@ -138,8 +141,6 @@ Other important stuff * Some Sega/Mega CD games don't use Z80 for anything, but they leave it active, so disabling Z80 manually (in advanced options) improves performance. #ifdef GP2X -* Sega/Mega CD: if FMV game performance is poor, try adjusting - "ReadAhead buffer" to something like 2048K. * When you use both GP2X CPUs, keep in mind that you can't overclock as high as when using ARM920 only. For example my GP2X when run singlecore can reach 280MHz, but with both cores it's about 250MHz. When overclocked too much, @@ -518,6 +519,8 @@ z80 @ 3.6MHz: yes, DrZ80 core VDP: yes, except some quirks not used by games YM2612 FM: yes, optimized MAME core SN76489 PSG: yes, MAME core +SVP chip: yes! This is first emu to ever do this. +Some in-cart mappers are supported too. Sega/Mega CD: #ifdef PSP @@ -536,7 +539,7 @@ Problems / limitations * 32x is not emulated. #ifdef PSP -* SVP is not emulated. +* SVP emulation is terribly slow. #endif * Various VDP quirks (window bug, scroll size 2, etc.) are not emulated, as very few games use this (if any at all). @@ -633,6 +636,10 @@ Additional thanks Changelog --------- +1.40a + * Fixed a binding problem with up and down keys. + * Default game config no longer overrides global user config. + 1.40 + Added support for SVP (Sega Virtua Processor) to emulate Virtua Racing, wrote ARM recompiler and some HLE code for VR. Credits to Exophase and diff --git a/platform/common/emu.c b/platform/common/emu.c index 50cfd2e6..a9b98aec 100644 --- a/platform/common/emu.c +++ b/platform/common/emu.c @@ -517,6 +517,8 @@ int emu_ReadConfig(int game, int no_defaults) ret = config_readsect(cfg, sect); currentConfig.volume = vol; // make vol global (bah) } + else + config_readsect("game_def.cfg", sect); if (ret != 0) { diff --git a/platform/gp2x/Makefile b/platform/gp2x/Makefile index 210e1390..beace626 100644 --- a/platform/gp2x/Makefile +++ b/platform/gp2x/Makefile @@ -232,7 +232,7 @@ $(error need VER) endif endif -rel: PicoDrive.gpe code940/pico940_v2.bin readme.txt PicoDrive.man.txt PicoDrive.png game.cfg +rel: PicoDrive.gpe code940/pico940_v2.bin readme.txt PicoDrive.man.txt PicoDrive.png game_def.cfg zip -9 -j ../../PicoDrive_$(VER).zip $^ mmuhack.o zip -9 -r ../../PicoDrive_$(VER).zip skin -i \*.png -i \*.txt diff --git a/platform/gp2x/PicoDrive.man.txt b/platform/gp2x/PicoDrive.man.txt index 5bd7af92..e5f451f6 100644 --- a/platform/gp2x/PicoDrive.man.txt +++ b/platform/gp2x/PicoDrive.man.txt @@ -1,6 +1,8 @@ [About] This is yet another Megadrive / Genesis / Sega CD / Mega CD emulator, which was written having ARM-based handheld devices in mind (such as PDAs, smartphones and handheld consoles like GP2X of course). The critical parts (renderer, 68K and Z80 cpu interpreters) and some other random code is written in ARM asm, other code is C. The base code originates from Dave's (fdave, finalburn) PicoDrive 0.30 for Pocket PC. The Sega/Mega CD code is roughly based on Stephane Dallongeville's Gens. +PicoDrive is the first emulator ever to properly emulate Virtua Racing and it's SVP chip. + For help / comments / questions visit GP32X boards at: http://www.gp32x.com/board/ @@ -163,7 +165,8 @@ This option enables CD audio playback. This enables 8 channel PCM sound source. It is required for some games to run, because they monitor state of this audio chip. 7. "ReadAhead buffer" -This option is for dealing with slow SD card access in GP2X, which makes FMV games unplayable. It will allow emulator not to access SD card for longer periods of time, but it will take more time to fill the buffer. +This option can prefetch more data from the CD image then requested by game (to avoid accessing card later), what can improve performance in some cases. +"OFF" is the recommended setting. 8. "Save RAM cart" Here you can enable 64K RAM cart. Format it in BIOS if you do. @@ -228,6 +231,8 @@ z80 @ 3.6MHz: yes, DrZ80 core VDP: yes, except some quirks not used by games YM2612 FM: yes, optimized MAME core SN76489 PSG: yes, MAME core +SVP chip: yes! This is first emu to ever do this. +Some in-cart mappers are supported too. Sega/Mega CD: another 68k @ 12.5MHz: yes, Cyclone too @@ -239,9 +244,9 @@ RAM cartridge: yes [Problems / limitations] -* 32x and SVP are not emulated. +* 32x is not emulated. * Various VDP quirks (window bug, scroll size 2, etc.) are not emulated, as very few games use this (if any at all). -* Some games don't work or have glitches because of inaccurate timing and sync between the emulated chips. +* The emulator is not 100% accurate, so some things may not work as expected. [Credits] @@ -284,6 +289,7 @@ Helix mp3 decoder * Hermes PS2R, god_at_hell for the CpuCtrl library. * craigix for supplying the GP2X hardware and making this port possible. * Alex for the icon. +* Exophase and Rokas for various ideas. * Anyone else I forgot. You know who you are. diff --git a/platform/gp2x/game.cfg b/platform/gp2x/game_def.cfg similarity index 100% rename from platform/gp2x/game.cfg rename to platform/gp2x/game_def.cfg diff --git a/platform/gp2x/menu.c b/platform/gp2x/menu.c index 506b7c44..55995b9e 100644 --- a/platform/gp2x/menu.c +++ b/platform/gp2x/menu.c @@ -124,6 +124,8 @@ static unsigned long wait_for_input_usbjoy(unsigned long interesting, int *joy) // handle only 1 event at a time for (i = 1; i != 0; i <<= 1) if (ret & i) { ret &= i; break; } + // ... but allow select + ret |= inp_prev & GP2X_SELECT; return ret; } @@ -780,7 +782,8 @@ static void key_config_loop(const me_bind_action *opts, int opt_cnt, int player_ draw_key_config(opts, opt_cnt, player_idx, sel); inp = wait_for_input_usbjoy(CONFIGURABLE_KEYS, &joy); // printf("got %08lX from joy %i\n", inp, joy); - if (joy == 0) { + if (joy == 0) + { if (!(inp & GP2X_SELECT)) { prev_select = 0; if(inp & GP2X_UP ) { sel--; if (sel < 0) sel = menu_sel_max; continue; } diff --git a/platform/gp2x/version.h b/platform/gp2x/version.h index 95717b1c..405cb9c5 100644 --- a/platform/gp2x/version.h +++ b/platform/gp2x/version.h @@ -1,2 +1,2 @@ -#define VERSION "1.40" +#define VERSION "1.40a" -- 2.39.5