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
gpu: improve timings of clipped sprites
[pcsx_rearmed.git]
/
frontend
/
libretro.c
diff --git
a/frontend/libretro.c
b/frontend/libretro.c
index
80dc8a9
..
d361be1
100644
(file)
--- a/
frontend/libretro.c
+++ b/
frontend/libretro.c
@@
-76,6
+76,13
@@
static retro_set_rumble_state_t rumble_cb;
static struct retro_log_callback logging;
static retro_log_printf_t log_cb;
static struct retro_log_callback logging;
static retro_log_printf_t log_cb;
+#define LogWarn(fmt, ...) do { \
+ if (log_cb) log_cb(RETRO_LOG_WARN, fmt, ##__VA_ARGS__); \
+} while (0)
+#define LogErr(fmt, ...) do { \
+ if (log_cb) log_cb(RETRO_LOG_ERROR, fmt, ##__VA_ARGS__); \
+} while (0)
+
static unsigned msg_interface_version = 0;
static void *vout_buf;
static unsigned msg_interface_version = 0;
static void *vout_buf;
@@
-84,7
+91,6
@@
static int vout_width = 256, vout_height = 240, vout_pitch = 256;
static int vout_fb_dirty;
static int psx_w, psx_h;
static bool vout_can_dupe;
static int vout_fb_dirty;
static int psx_w, psx_h;
static bool vout_can_dupe;
-static bool duping_enable;
static bool found_bios;
static bool display_internal_fps = false;
static unsigned frame_count = 0;
static bool found_bios;
static bool display_internal_fps = false;
static unsigned frame_count = 0;
@@
-237,10
+243,13
@@
static void set_vout_fb()
fb.access_flags = RETRO_MEMORY_ACCESS_WRITE;
vout_pitch = vout_width;
fb.access_flags = RETRO_MEMORY_ACCESS_WRITE;
vout_pitch = vout_width;
- if (environ_cb(RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER, &fb) && fb.format == RETRO_PIXEL_FORMAT_RGB565) {
+ if (environ_cb(RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER, &fb)
+ && fb.format == RETRO_PIXEL_FORMAT_RGB565
+ && vout_can_dupe)
+ {
vout_buf_ptr = fb.data;
if (fb.pitch / 2 != vout_pitch && fb.pitch != vout_width * 2)
vout_buf_ptr = fb.data;
if (fb.pitch / 2 != vout_pitch && fb.pitch != vout_width * 2)
-
SysPrintf
("got unusual pitch %zd for resolution %dx%d\n", fb.pitch, vout_width, vout_height);
+
LogWarn
("got unusual pitch %zd for resolution %dx%d\n", fb.pitch, vout_width, vout_height);
vout_pitch = fb.pitch / 2;
}
else
vout_pitch = fb.pitch / 2;
}
else
@@
-409,7
+418,7
@@
void *pl_3ds_mmap(unsigned long addr, size_t size, int is_fixed,
if (svcControlMemory(&tmp, (void *)custom_map->target_map, (void *)ptr_aligned, size, MEMOP_MAP, 0x3) < 0)
{
if (svcControlMemory(&tmp, (void *)custom_map->target_map, (void *)ptr_aligned, size, MEMOP_MAP, 0x3) < 0)
{
-
SysPrintf
("could not map memory @0x%08X\n", custom_map->target_map);
+
LogErr
("could not map memory @0x%08X\n", custom_map->target_map);
exit(1);
}
exit(1);
}
@@
-1082,7
+1091,7
@@
static void save_close(void *file)
return;
if (fp->pos > r_size)
return;
if (fp->pos > r_size)
-
SysPrintf
("ERROR: save buffer overflow detected\n");
+
LogErr
("ERROR: save buffer overflow detected\n");
else if (fp->is_write && fp->pos < r_size)
// make sure we don't save trash in leftover space
memset(fp->buf + fp->pos, 0, r_size - fp->pos);
else if (fp->is_write && fp->pos < r_size)
// make sure we don't save trash in leftover space
memset(fp->buf + fp->pos, 0, r_size - fp->pos);
@@
-1153,7
+1162,7
@@
void retro_cheat_set(unsigned index, bool enabled, const char *code)
finish:
if (ret != 0)
finish:
if (ret != 0)
-
SysPrintf
("Failed to set cheat %#u\n", index);
+
LogErr
("Failed to set cheat %#u\n", index);
else if (index < NumCheats)
Cheats[index].Enabled = enabled;
free(buf);
else if (index < NumCheats)
Cheats[index].Enabled = enabled;
free(buf);
@@
-1259,7
+1268,7
@@
static bool disk_set_image_index(unsigned int index)
if (disks[index].fname == NULL)
{
if (disks[index].fname == NULL)
{
-
SysPrintf
("missing disk #%u\n", index);
+
LogErr
("missing disk #%u\n", index);
CDR_shutdown();
// RetroArch specifies "no disk" with index == count,
CDR_shutdown();
// RetroArch specifies "no disk" with index == count,
@@
-1268,19
+1277,19
@@
static bool disk_set_image_index(unsigned int index)
return true;
}
return true;
}
-
SysPrintf
("switching to disk %u: \"%s\" #%d\n", index,
+
LogErr
("switching to disk %u: \"%s\" #%d\n", index,
disks[index].fname, disks[index].internal_index);
cdrIsoMultidiskSelect = disks[index].internal_index;
set_cd_image(disks[index].fname);
if (ReloadCdromPlugin() < 0)
{
disks[index].fname, disks[index].internal_index);
cdrIsoMultidiskSelect = disks[index].internal_index;
set_cd_image(disks[index].fname);
if (ReloadCdromPlugin() < 0)
{
-
SysPrintf
("failed to load cdr plugin\n");
+
LogErr
("failed to load cdr plugin\n");
return false;
}
if (CDR_open() < 0)
{
return false;
}
if (CDR_open() < 0)
{
-
SysPrintf
("failed to open cdr plugin\n");
+
LogErr
("failed to open cdr plugin\n");
return false;
}
return false;
}
@@
-1677,7
+1686,7
@@
bool retro_load_game(const struct retro_game_info *info)
if (info == NULL || info->path == NULL)
{
if (info == NULL || info->path == NULL)
{
-
SysPrintf
("info->path required\n");
+
LogErr
("info->path required\n");
return false;
}
return false;
}
@@
-1697,7
+1706,7
@@
bool retro_load_game(const struct retro_game_info *info)
{
if (!read_m3u(info->path))
{
{
if (!read_m3u(info->path))
{
-
log_cb(RETRO_LOG_INFO,
"failed to read m3u file\n");
+
LogErr(
"failed to read m3u file\n");
return false;
}
}
return false;
}
}
@@
-1730,7
+1739,7
@@
bool retro_load_game(const struct retro_game_info *info)
/* have to reload after set_cd_image for correct cdr plugin */
if (LoadPlugins() == -1)
{
/* have to reload after set_cd_image for correct cdr plugin */
if (LoadPlugins() == -1)
{
-
log_cb(RETRO_LOG_INFO,
"failed to load plugins\n");
+
LogErr(
"failed to load plugins\n");
return false;
}
return false;
}
@@
-1739,7
+1748,7
@@
bool retro_load_game(const struct retro_game_info *info)
if (OpenPlugins() == -1)
{
if (OpenPlugins() == -1)
{
-
log_cb(RETRO_LOG_INFO,
"failed to open plugins\n");
+
LogErr(
"failed to open plugins\n");
return false;
}
return false;
}
@@
-1798,12
+1807,12
@@
bool retro_load_game(const struct retro_game_info *info)
if (ReloadCdromPlugin() < 0)
{
if (ReloadCdromPlugin() < 0)
{
-
log_cb(RETRO_LOG_INFO,
"failed to reload cdr plugins\n");
+
LogErr(
"failed to reload cdr plugins\n");
return false;
}
if (CDR_open() < 0)
{
return false;
}
if (CDR_open() < 0)
{
-
log_cb(RETRO_LOG_INFO,
"failed to open cdr plugin\n");
+
LogErr(
"failed to open cdr plugin\n");
return false;
}
}
return false;
}
}
@@
-1818,7
+1827,7
@@
bool retro_load_game(const struct retro_game_info *info)
if (!is_exe && CheckCdrom() == -1)
{
if (!is_exe && CheckCdrom() == -1)
{
-
log_cb(RETRO_LOG_INFO,
"unsupported/invalid CD image: %s\n", info->path);
+
LogErr(
"unsupported/invalid CD image: %s\n", info->path);
return false;
}
return false;
}
@@
-1830,7
+1839,7
@@
bool retro_load_game(const struct retro_game_info *info)
ret = LoadCdrom();
if (ret != 0)
{
ret = LoadCdrom();
if (ret != 0)
{
-
log_cb(RETRO_LOG_INFO,
"could not load %s (%d)\n", is_exe ? "exe" : "CD", ret);
+
LogErr(
"could not load %s (%d)\n", is_exe ? "exe" : "CD", ret);
return false;
}
emu_on_new_cd(0);
return false;
}
emu_on_new_cd(0);
@@
-2099,17
+2108,6
@@
static void update_variables(bool in_flight)
}
#endif
}
#endif
- var.value = NULL;
- var.key = "pcsx_rearmed_duping_enable";
-
- if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
- {
- if (strcmp(var.value, "disabled") == 0)
- duping_enable = false;
- else if (strcmp(var.value, "enabled") == 0)
- duping_enable = true;
- }
-
var.value = NULL;
var.key = "pcsx_rearmed_display_internal_fps";
var.value = NULL;
var.key = "pcsx_rearmed_display_internal_fps";
@@
-3083,7
+3081,7
@@
void retro_run(void)
frameskip_counter = 0;
}
frameskip_counter = 0;
}
- video_cb((vout_fb_dirty || !vout_can_dupe
|| !duping_enable
) ? vout_buf_ptr : NULL,
+ video_cb((vout_fb_dirty || !vout_can_dupe) ? vout_buf_ptr : NULL,
vout_width, vout_height, vout_pitch * 2);
vout_fb_dirty = 0;
}
vout_width, vout_height, vout_pitch * 2);
vout_fb_dirty = 0;
}
@@
-3207,7
+3205,7
@@
static int init_memcards(void)
{
if (strlen(dir) + strlen(CARD2_FILE) + 2 > sizeof(Config.Mcd2))
{
{
if (strlen(dir) + strlen(CARD2_FILE) + 2 > sizeof(Config.Mcd2))
{
-
SysPrintf
("Path '%s' is too long. Cannot use memcard 2. Use a shorter path.\n", dir);
+
LogErr
("Path '%s' is too long. Cannot use memcard 2. Use a shorter path.\n", dir);
ret = -1;
}
else
ret = -1;
}
else
@@
-3219,7
+3217,7
@@
static int init_memcards(void)
}
else
{
}
else
{
-
SysPrintf
("Could not get save directory! Could not create memcard 2.");
+
LogErr
("Could not get save directory! Could not create memcard 2.");
ret = -1;
}
}
ret = -1;
}
}
@@
-3334,7
+3332,7
@@
void retro_init(void)
ret |= emu_core_init();
if (ret != 0)
{
ret |= emu_core_init();
if (ret != 0)
{
-
SysPrintf
("PCSX init failed.\n");
+
LogErr
("PCSX init failed.\n");
exit(1);
}
exit(1);
}
@@
-3354,6
+3352,8
@@
void retro_init(void)
loadPSXBios();
environ_cb(RETRO_ENVIRONMENT_GET_CAN_DUPE, &vout_can_dupe);
loadPSXBios();
environ_cb(RETRO_ENVIRONMENT_GET_CAN_DUPE, &vout_can_dupe);
+ if (!vout_can_dupe)
+ LogWarn("CAN_DUPE reports false\n");
disk_initial_index = 0;
disk_initial_path[0] = '\0';
disk_initial_index = 0;
disk_initial_path[0] = '\0';