Gizmondo port updated to 1.51b

git-svn-id: file:///home/notaz/opt/svn/PicoDrive/platform@567 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2008-08-10 10:18:36 +00:00
parent 7443ecd958
commit 5d239ae7a4
5 changed files with 52 additions and 8 deletions

View file

@ -369,6 +369,10 @@ Well known way to improve the GP2X performance. You must restart the emulator
for the change of this option to take effect. for the change of this option to take effect.
#endif #endif
@@1. "Disable idle loop patching"
Idle loop patching is used to improve performance, but may cause compatibility
problems in some rare cases. Try disabling this if your game has problems.
Sega/Mega CD options Sega/Mega CD options
-------------------- --------------------
@ -449,6 +453,9 @@ There are 3 options:
@@3. "Set to unscaled centered" @@3. "Set to unscaled centered"
Adjust the resizing options to set game image to it's original size. Adjust the resizing options to set game image to it's original size.
@@3. "Set to 4:3 scaled"
Scale the image up, but keep 4:3 aspect, by adding black borders.
@@3. "Set to fullscreen" @@3. "Set to fullscreen"
Adjust the resizing options to make the game image fullscreen. Adjust the resizing options to make the game image fullscreen.
@ -645,6 +652,11 @@ Additional thanks
Changelog Changelog
--------- ---------
1.51b
* Fixed a crash when uncompressed savestate is loaded.
* Fixed an idle loop detection related hanging problem.
* PSP: fixed another palette related regression.
1.51a 1.51a
* Fixed a sync problem between main and sub 68k. Should fix the hanging * Fixed a sync problem between main and sub 68k. Should fix the hanging
problem for some games. problem for some games.

View file

@ -41,11 +41,33 @@ void menu_flip(void);
#elif defined(__GIZ__) #elif defined(__GIZ__)
// TODO #include "../gizmondo/giz.h"
//#include "../gizmondo/giz.h"
#define SCREEN_WIDTH 321 #define BTN_NORTH BTN_STOP
#define SCREEN_BUFFER menu_screen #define BTN_SOUTH BTN_PLAY
extern unsigned char *menu_screen; #define BTN_WEST BTN_REW
#define BTN_EAST BTN_FWD
unsigned long wait_for_input(unsigned int interesting);
void menu_draw_begin(int use_bgbuff);
void menu_darken_bg(void *dst, const void *src, int pixels, int darker);
void menu_draw_end(void);
#define SCREEN_WIDTH 321
#define SCREEN_HEIGHT 240
#define SCREEN_BUFFER ((giz_screen != NULL) ? giz_screen : menu_screen)
extern void *menu_screen;
extern void *giz_screen;
#define read_buttons(which) \
wait_for_input(which)
#define read_buttons_async(which) 0
#define menu_draw_begin() \
menu_draw_begin(1)
#define clear_screen() \
memset(SCREEN_BUFFER, 0, SCREEN_WIDTH*SCREEN_HEIGHT*2)
#define darken_screen() \
menu_darken_bg(menu_screen, menu_screen, SCREEN_WIDTH*SCREEN_HEIGHT, 0)
// ------------------------------------ // ------------------------------------

View file

@ -785,7 +785,7 @@ static void parse(const char *var, const char *val)
ret = custom_read(me, var, val); ret = custom_read(me, var, val);
} }
} }
if (!ret) lprintf("config_readsect: unhandled var: %s\n", var); if (!ret) lprintf("config_readsect: unhandled var: \"%s\"\n", var);
} }

View file

@ -1,6 +1,14 @@
@ vim:filetype=armasm @ vim:filetype=armasm
.global cache_flush_d_inval_i
cache_flush_d_inval_i:
mov r2, #0x0 @ must be 0 ???
swi 0x9f0002
bx lr
.global clut_line @ void *dest, void *src, unsigned short *pal, int pixels_mask .global clut_line @ void *dest, void *src, unsigned short *pal, int pixels_mask
clut_line: clut_line:

View file

@ -135,12 +135,13 @@ void emu_Deinit(void)
void emu_prepareDefaultConfig(void) void emu_prepareDefaultConfig(void)
{ {
memset(&defaultConfig, 0, sizeof(defaultConfig)); memset(&defaultConfig, 0, sizeof(defaultConfig));
defaultConfig.EmuOpt = 0x9f | 0x00700; // | <- ram_tmng, confirm_save, cd_leds defaultConfig.EmuOpt = 0x8f | 0x00600; // | <- confirm_save, cd_leds
defaultConfig.s_PicoOpt = 0x0f | POPT_EXT_FM|POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC; defaultConfig.s_PicoOpt = 0x0f | POPT_EXT_FM|POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC;
defaultConfig.s_PicoOpt |= POPT_ACC_SPRITES|POPT_EN_MCD_GFX; defaultConfig.s_PicoOpt |= POPT_ACC_SPRITES|POPT_EN_MCD_GFX;
defaultConfig.s_PicoOpt &= ~POPT_EN_SVP_DRC; // crashes :( defaultConfig.s_PicoOpt &= ~POPT_EN_SVP_DRC; // crashes :(
defaultConfig.EmuOpt &= ~8; // no save gzip
defaultConfig.s_PsndRate = 44100; defaultConfig.s_PsndRate = 44100;
defaultConfig.s_PicoRegion = 0; // auto defaultConfig.s_PicoRegion = 0;
defaultConfig.s_PicoAutoRgnOrder = 0x184; // US, EU, JP defaultConfig.s_PicoAutoRgnOrder = 0x184; // US, EU, JP
defaultConfig.s_PicoCDBuffers = 0; defaultConfig.s_PicoCDBuffers = 0;
defaultConfig.Frameskip = 0; defaultConfig.Frameskip = 0;
@ -938,6 +939,7 @@ void emu_Loop(void)
} }
bench_fps += frames_shown; bench_fps += frames_shown;
sprintf(fpsbuff, "%3i/%3i/%3i", frames_shown, bench_fps_s, (bf[0]+bf[1]+bf[2]+bf[3])>>2); sprintf(fpsbuff, "%3i/%3i/%3i", frames_shown, bench_fps_s, (bf[0]+bf[1]+bf[2]+bf[3])>>2);
printf("%s\n", fpsbuff);
#else #else
if (currentConfig.EmuOpt & 2) { if (currentConfig.EmuOpt & 2) {
sprintf(fpsbuff, "%3i/%3i", frames_shown, frames_done); sprintf(fpsbuff, "%3i/%3i", frames_shown, frames_done);