notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove #if 0 around NEON enhancement
[pcsx_rearmed.git]
/
frontend
/
libretro.c
diff --git
a/frontend/libretro.c
b/frontend/libretro.c
index
024ea7a
..
ed76798
100644
(file)
--- a/
frontend/libretro.c
+++ b/
frontend/libretro.c
@@
-5,6
+5,7
@@
* See the COPYING file in the top-level directory.
*/
* See the COPYING file in the top-level directory.
*/
+#define _GNU_SOURCE 1 // strcasestr
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@
-17,6
+18,7
@@
#include "../libpcsxcore/cdriso.h"
#include "../libpcsxcore/cheat.h"
#include "../plugins/dfsound/out.h"
#include "../libpcsxcore/cdriso.h"
#include "../libpcsxcore/cheat.h"
#include "../plugins/dfsound/out.h"
+#include "../plugins/dfinput/externals.h"
#include "cspace.h"
#include "main.h"
#include "plugin.h"
#include "cspace.h"
#include "main.h"
#include "plugin.h"
@@
-49,6
+51,10
@@
int in_a1[2] = { 127, 127 }, in_a2[2] = { 127, 127 };
int in_keystate;
int in_enable_vibration;
int in_keystate;
int in_enable_vibration;
+/* PSX max resolution is 640x512, but with enhancement it's 1024x512 */
+#define VOUT_MAX_WIDTH 1024
+#define VOUT_MAX_HEIGHT 512
+
static void init_memcard(char *mcd_data)
{
unsigned off = 0;
static void init_memcard(char *mcd_data)
{
unsigned off = 0;
@@
-237,9
+243,7
@@
void retro_set_environment(retro_environment_t cb)
{ "region", "Region; Auto|NTSC|PAL" },
#ifdef __ARM_NEON__
{ "neon_interlace_enable", "Enable interlacing mode(s); disabled|enabled" },
{ "region", "Region; Auto|NTSC|PAL" },
#ifdef __ARM_NEON__
{ "neon_interlace_enable", "Enable interlacing mode(s); disabled|enabled" },
-#if 0
{ "neon_enhancement_enable", "Enhanced resolution (slow); disabled|enabled" },
{ "neon_enhancement_enable", "Enhanced resolution (slow); disabled|enabled" },
-#endif
#endif
{ NULL, NULL },
};
#endif
{ NULL, NULL },
};
@@
-280,8
+284,8
@@
void retro_get_system_av_info(struct retro_system_av_info *info)
info->timing.sample_rate = 44100;
info->geometry.base_width = 320;
info->geometry.base_height = 240;
info->timing.sample_rate = 44100;
info->geometry.base_width = 320;
info->geometry.base_height = 240;
- info->geometry.max_width =
640
;
- info->geometry.max_height =
512
;
+ info->geometry.max_width =
VOUT_MAX_WIDTH
;
+ info->geometry.max_height =
VOUT_MAX_HEIGHT
;
info->geometry.aspect_ratio = 4.0 / 3.0;
}
info->geometry.aspect_ratio = 4.0 / 3.0;
}
@@
-728,7
+732,7
@@
static const unsigned short retro_psx_map[] = {
};
#define RETRO_PSX_MAP_LEN (sizeof(retro_psx_map) / sizeof(retro_psx_map[0]))
};
#define RETRO_PSX_MAP_LEN (sizeof(retro_psx_map) / sizeof(retro_psx_map[0]))
-static void update_variables(
void
)
+static void update_variables(
bool in_flight
)
{
struct retro_variable var;
{
struct retro_variable var;
@@
-763,7
+767,6
@@
static void update_variables(void)
pl_rearmed_cbs.gpu_neon.allow_interlace = 1;
}
pl_rearmed_cbs.gpu_neon.allow_interlace = 1;
}
-#if 0
var.value = NULL;
var.key = "neon_enhancement_enable";
var.value = NULL;
var.key = "neon_enhancement_enable";
@@
-775,7
+778,18
@@
static void update_variables(void)
pl_rearmed_cbs.gpu_neon.enhancement_enable = 1;
}
#endif
pl_rearmed_cbs.gpu_neon.enhancement_enable = 1;
}
#endif
-#endif
+
+ if (in_flight) {
+ // inform core things about possible config changes
+ plugin_call_rearmed_cbs();
+
+ if (GPU_open != NULL && GPU_close != NULL) {
+ GPU_close();
+ GPU_open(&gpuDisp, "PCSX", NULL);
+ }
+ }
+
+ dfinput_activate();
}
void retro_run(void)
}
void retro_run(void)
@@
-784,9
+798,9
@@
void retro_run(void)
input_poll_cb();
input_poll_cb();
- bool updated = false;
- if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE, &updated) && updated)
-
update_variables(
);
+
bool updated = false;
+
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE, &updated) && updated)
+
update_variables(true
);
in_keystate = 0;
for (i = 0; i < RETRO_PSX_MAP_LEN; i++)
in_keystate = 0;
for (i = 0; i < RETRO_PSX_MAP_LEN; i++)
@@
-822,7
+836,7
@@
void retro_init(void)
exit(1);
}
exit(1);
}
- vout_buf = malloc(
640 * 512
* 2);
+ vout_buf = malloc(
VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT
* 2);
if (environ_cb(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, &dir) && dir)
{
if (environ_cb(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, &dir) && dir)
{
@@
-844,8
+858,12
@@
void retro_init(void)
else
{
SysPrintf("no BIOS files found.\n");
else
{
SysPrintf("no BIOS files found.\n");
- const char *str = "no BIOS found, expect bugs!";
- environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, (void*)&str);
+ struct retro_message msg =
+ {
+ "no BIOS found, expect bugs!",
+ 180
+ };
+ environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, (void*)&msg);
}
level = 1;
}
level = 1;
@@
-873,7
+891,7
@@
void retro_init(void)
SaveFuncs.seek = save_seek;
SaveFuncs.close = save_close;
SaveFuncs.seek = save_seek;
SaveFuncs.close = save_close;
-
update_variables(
);
+
update_variables(false
);
}
void retro_deinit(void)
}
void retro_deinit(void)