X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fmain.c;h=d3df71472945d8a91a84b10bf8a0daaf7aa9fcd3;hp=aaf1bb0ff9964f0b863ab834e1d542ba7f9ec6ec;hb=e60da1599d018abcd8256f7a7259678b601d306d;hpb=478216725b77d1c7fd45d972e3c596134633adba diff --git a/frontend/main.c b/frontend/main.c index aaf1bb0f..d3df7147 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -33,6 +33,14 @@ void StartDebugger(); void StopDebugger(); +// sound plugin +extern int iUseReverb; +extern int iUseInterpolation; +extern int iXAPitch; +extern int iSPUIRQWait; +extern int iUseTimer; +extern int iVolume; + int ready_to_go; unsigned long gpuDisp; char cfgfile_basename[MAXPATHLEN]; @@ -125,11 +133,45 @@ static void set_default_paths(void) #if defined(__arm__) && !defined(__ARM_ARCH_7A__) /* XXX */ strcpy(Config.Gpu, "gpuPCSX4ALL.so"); #endif - Config.PsxAuto = 1; snprintf(Config.PatchesDir, sizeof(Config.PatchesDir), "." PATCHES_DIR); } +void emu_set_default_config(void) +{ + // try to set sane config on which most games work + Config.Xa = Config.Cdda = Config.Sio = + Config.SpuIrq = Config.RCntFix = Config.VSyncWA = 0; + Config.CdrReschedule = 0; + Config.PsxAuto = 1; + + pl_rearmed_cbs.gpu_neon.allow_interlace = 2; // auto + pl_rearmed_cbs.gpu_peops.iUseDither = 0; + pl_rearmed_cbs.gpu_peops.dwActFixes = 1<<7; + pl_rearmed_cbs.gpu_unai.abe_hack = + pl_rearmed_cbs.gpu_unai.no_light = + pl_rearmed_cbs.gpu_unai.no_blend = 0; + memset(&pl_rearmed_cbs.gpu_peopsgl, 0, sizeof(pl_rearmed_cbs.gpu_peopsgl)); + pl_rearmed_cbs.gpu_peopsgl.iVRamSize = 64; + pl_rearmed_cbs.gpu_peopsgl.iTexGarbageCollection = 1; + + iUseReverb = 2; + iUseInterpolation = 1; + iXAPitch = 0; + iSPUIRQWait = 1; + iUseTimer = 2; + iVolume = 768; +#ifndef __ARM_ARCH_7A__ /* XXX */ + iUseReverb = 0; + iUseInterpolation = 0; +#endif + new_dynarec_hacks = 0; + cycle_multiplier = 200; + + in_type1 = PSE_PAD_TYPE_STANDARD; + in_type2 = PSE_PAD_TYPE_STANDARD; +} + static void check_memcards(void) { char buf[MAXPATHLEN]; @@ -207,6 +249,13 @@ void do_emu_action(void) snprintf(hud_msg, sizeof(hud_msg), "SCREENSHOT TAKEN"); break; } + case SACTION_VOLUME_UP: + case SACTION_VOLUME_DOWN: + plat_step_volume(emu_action == SACTION_VOLUME_UP); + return; + case SACTION_MINIMIZE: + plat_minimize(); + return; default: return; } @@ -233,6 +282,7 @@ int main(int argc, char *argv[]) CheckSubDir(); set_default_paths(); + emu_set_default_config(); check_memcards(); strcpy(Config.Bios, "HLE"); @@ -317,10 +367,9 @@ int main(int argc, char *argv[]) in_init(); in_evdev_init(); //in_probe(); + pl_init(); plat_init(); menu_init(); // loads config - pl_init(); - plat_rescan_inputs(); if (psxout) Config.PsxOut = 1; @@ -424,6 +473,9 @@ void SysReset() { void *real_lace = GPU_updateLace; GPU_updateLace = dummy_lace; + // reset can run code, timing must be set + pl_timing_prepare(Config.PsxType); + EmuReset(); // hmh core forgets this @@ -481,6 +533,9 @@ int emu_save_state(int slot) return ret; ret = SaveState(fname); +#ifndef __ARM_ARCH_7A__ /* XXX */ + sync(); +#endif printf("* %s \"%s\" [%d]\n", ret == 0 ? "saved" : "failed to save", fname, slot); return ret; }