X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=081f8bacf271821a14bd5cdd774f20fbf8ad211b;hb=651892c3a169815448a53d9102afbb4cef8a8bda;hp=32f00dc6b75f1f84be70c4965c4c234d4f278d34;hpb=6af013d2c5d4d19d855d5213467032bb9a444d6b;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 32f00dc6..081f8bac 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -134,6 +134,16 @@ static int snd_init(void){return 0;} static void snd_finish(void){} static int snd_busy(void){return 0;} +#define GPU_PEOPS_ODD_EVEN_BIT (1 << 0) +#define GPU_PEOPS_EXPAND_SCREEN_WIDTH (1 << 1) +#define GPU_PEOPS_IGNORE_BRIGHTNESS (1 << 2) +#define GPU_PEOPS_DISABLE_COORD_CHECK (1 << 3) +#define GPU_PEOPS_LAZY_SCREEN_UPDATE (1 << 6) +#define GPU_PEOPS_OLD_FRAME_SKIP (1 << 7) +#define GPU_PEOPS_REPEATED_TRIANGLES (1 << 8) +#define GPU_PEOPS_QUADS_WITH_TRIANGLES (1 << 9) +#define GPU_PEOPS_FAKE_BUSY_STATE (1 << 10) + static void init_memcard(char *mcd_data) { unsigned off = 0; @@ -1633,91 +1643,91 @@ static void update_variables(bool in_flight) #ifdef GPU_PEOPS var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_0"; + var.key = "pcsx_rearmed_gpu_peops_odd_even_bit"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 0); + gpu_peops_fix |= GPU_PEOPS_ODD_EVEN_BIT; } var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_1"; + var.key = "pcsx_rearmed_gpu_peops_expand_screen_width"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 1); + gpu_peops_fix |= GPU_PEOPS_EXPAND_SCREEN_WIDTH; } var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_2"; + var.key = "pcsx_rearmed_gpu_peops_ignore_brightness"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 2); + gpu_peops_fix |= GPU_PEOPS_IGNORE_BRIGHTNESS; } var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_3"; + var.key = "pcsx_rearmed_gpu_peops_disable_coord_check"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 3); + gpu_peops_fix |= GPU_PEOPS_DISABLE_COORD_CHECK; } var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_6"; + var.key = "pcsx_rearmed_gpu_peops_lazy_screen_update"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 6); + gpu_peops_fix |= GPU_PEOPS_LAZY_SCREEN_UPDATE; } var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_7"; + var.key = "pcsx_rearmed_gpu_peops_old_frame_skip"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 7); + gpu_peops_fix |= GPU_PEOPS_OLD_FRAME_SKIP; } var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_8"; + var.key = "pcsx_rearmed_gpu_peops_repeated_triangles"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 8); + gpu_peops_fix |= GPU_PEOPS_REPEATED_TRIANGLES; } var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_9"; + var.key = "pcsx_rearmed_gpu_peops_quads_with_triangles"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 9); + gpu_peops_fix |= GPU_PEOPS_QUADS_WITH_TRIANGLES; } var.value = "NULL"; - var.key = "pcsx_rearmed_gpu_peops_fix_10"; + var.key = "pcsx_rearmed_gpu_peops_fake_busy_state"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "enabled") == 0) - gpu_peops_fix |= (1 << 10); + gpu_peops_fix |= GPU_PEOPS_FAKE_BUSY_STATE; } if (pl_rearmed_cbs.gpu_peops.dwActFixes != gpu_peops_fix) pl_rearmed_cbs.gpu_peops.dwActFixes = gpu_peops_fix; - /* Show/hide core options */ + /* Show/hide core options */ var.key = "pcsx_rearmed_show_gpu_peops_settings"; var.value = NULL; @@ -1734,16 +1744,16 @@ static void update_variables(bool in_flight) { unsigned i; struct retro_core_option_display option_display; - char gpu_peops_option[9][32] = { - "pcsx_rearmed_gpu_peops_fix_0", - "pcsx_rearmed_gpu_peops_fix_1", - "pcsx_rearmed_gpu_peops_fix_2", - "pcsx_rearmed_gpu_peops_fix_3", - "pcsx_rearmed_gpu_peops_fix_6", - "pcsx_rearmed_gpu_peops_fix_7", - "pcsx_rearmed_gpu_peops_fix_8", - "pcsx_rearmed_gpu_peops_fix_9", - "pcsx_rearmed_gpu_peops_fix_10", + char gpu_peops_option[9][45] = { + "pcsx_rearmed_gpu_peops_odd_even_bit", + "pcsx_rearmed_gpu_peops_expand_screen_width", + "pcsx_rearmed_gpu_peops_ignore_brightness", + "pcsx_rearmed_gpu_peops_disable_coord_check", + "pcsx_rearmed_gpu_peops_lazy_screen_update", + "pcsx_rearmed_gpu_peops_old_frame_skip", + "pcsx_rearmed_gpu_peops_repeated_triangles", + "pcsx_rearmed_gpu_peops_quads_with_triangles", + "pcsx_rearmed_gpu_peops_fake_busy_state", }; option_display.visible = show_advanced_gpu_peops_settings; @@ -2068,7 +2078,7 @@ static bool find_any_bios(const char *dirpath, char *path, size_t path_size) return false; while ((ent = readdir(dir))) { - if (strncasecmp(ent->d_name, "scph", 4) != 0) + if ((strncasecmp(ent->d_name, "scph", 4) != 0) && (strncasecmp(ent->d_name, "psx", 3) != 0)) continue; snprintf(path, path_size, "%s%c%s", dirpath, SLASH, ent->d_name); @@ -2134,6 +2144,7 @@ static void loadPSXBios(void) unsigned useHLE = 0; const char *bios[] = { + "PSXONPSP660", "psxonpsp660", "SCPH101", "scph101", "SCPH5501", "scph5501", "SCPH7001", "scph7001", @@ -2247,7 +2258,7 @@ void retro_init(void) cycle_multiplier = 200; #endif pl_rearmed_cbs.gpu_peops.iUseDither = 1; - pl_rearmed_cbs.gpu_peops.dwActFixes = 1 << 7; + pl_rearmed_cbs.gpu_peops.dwActFixes = GPU_PEOPS_OLD_FRAME_SKIP; spu_config.iUseFixedUpdates = 1; SaveFuncs.open = save_open; @@ -2265,6 +2276,7 @@ void retro_init(void) void retro_deinit(void) { + ClosePlugins(); SysClose(); #ifdef _3DS linearFree(vout_buf);