mirror of
https://github.com/libretro/RetroArch
synced 2025-01-30 12:32:52 +00:00
(PS3) Bootup regressions fixed
This commit is contained in:
parent
f6b8ddc912
commit
3aaf7b8368
@ -15,7 +15,6 @@
|
||||
*/
|
||||
|
||||
#include "../../driver.h"
|
||||
#include "../../retroarch.h"
|
||||
#include "../../ps3/sdk_defines.h"
|
||||
|
||||
#ifdef HAVE_LIBDBGFONT
|
||||
@ -48,6 +47,22 @@ typedef struct gfx_ctx_ps3_data
|
||||
#endif
|
||||
} gfx_ctx_ps3_data_t;
|
||||
|
||||
static unsigned gfx_ctx_ps3_get_resolution_width(unsigned resolution_id)
|
||||
{
|
||||
CellVideoOutResolution resolution;
|
||||
cellVideoOutGetResolution(resolution_id, &resolution);
|
||||
|
||||
return resolution.width;
|
||||
}
|
||||
|
||||
static unsigned gfx_ctx_ps3_get_resolution_height(unsigned resolution_id)
|
||||
{
|
||||
CellVideoOutResolution resolution;
|
||||
cellVideoOutGetResolution(resolution_id, &resolution);
|
||||
|
||||
return resolution.height;
|
||||
}
|
||||
|
||||
static float gfx_ctx_ps3_get_aspect_ratio(void *data)
|
||||
{
|
||||
CellVideoOutState videoState;
|
||||
@ -225,43 +240,6 @@ static void gfx_ctx_ps3_get_video_size(void *data,
|
||||
#endif
|
||||
}
|
||||
|
||||
static void gfx_ctx_ps3_get_video_output_size(void *data,
|
||||
unsigned *width, unsigned *height)
|
||||
{
|
||||
unsigned ident = g_extern.console.screen.resolutions.current.id;
|
||||
if (!width || !height)
|
||||
return;
|
||||
|
||||
CellVideoOutResolution resolution;
|
||||
cellVideoOutGetResolution(ident, &resolution);
|
||||
|
||||
*width = resolution.width;
|
||||
*height = resolution.height;
|
||||
}
|
||||
|
||||
static void gfx_ctx_ps3_get_video_output_prev(void *data)
|
||||
{
|
||||
if (g_extern.console.screen.resolutions.current.idx)
|
||||
{
|
||||
g_extern.console.screen.resolutions.current.idx--;
|
||||
g_extern.console.screen.resolutions.current.id =
|
||||
g_extern.console.screen.resolutions.list
|
||||
[g_extern.console.screen.resolutions.current.idx];
|
||||
}
|
||||
}
|
||||
|
||||
static void gfx_ctx_ps3_get_video_output_next(void *data)
|
||||
{
|
||||
if (g_extern.console.screen.resolutions.current.idx + 1 <
|
||||
g_extern.console.screen.resolutions.count)
|
||||
{
|
||||
g_extern.console.screen.resolutions.current.idx++;
|
||||
g_extern.console.screen.resolutions.current.id =
|
||||
g_extern.console.screen.resolutions.list
|
||||
[g_extern.console.screen.resolutions.current.idx];
|
||||
}
|
||||
}
|
||||
|
||||
static bool gfx_ctx_ps3_init(void *data)
|
||||
{
|
||||
gfx_ctx_ps3_data_t *ps3 = (gfx_ctx_ps3_data_t*)
|
||||
@ -295,8 +273,8 @@ static bool gfx_ctx_ps3_init(void *data)
|
||||
if (g_extern.console.screen.resolutions.current.id)
|
||||
{
|
||||
params.enable |= PSGL_DEVICE_PARAMETERS_WIDTH_HEIGHT;
|
||||
|
||||
gfx_ctx_ps3_get_video_output_size(data, ¶ms.width, ¶ms.height);
|
||||
params.width = gfx_ctx_ps3_get_resolution_width(g_extern.console.screen.resolutions.current.id);
|
||||
params.height = gfx_ctx_ps3_get_resolution_height(g_extern.console.screen.resolutions.current.id);
|
||||
g_extern.console.screen.pal_enable = false;
|
||||
|
||||
if (params.width == 720 && params.height == 576)
|
||||
@ -339,21 +317,6 @@ static bool gfx_ctx_ps3_set_video_mode(void *data,
|
||||
bool fullscreen)
|
||||
{
|
||||
(void)data;
|
||||
|
||||
if (g_extern.console.screen.resolutions.list[
|
||||
g_extern.console.screen.resolutions.current.idx] ==
|
||||
CELL_VIDEO_OUT_RESOLUTION_576)
|
||||
{
|
||||
if (g_extern.console.screen.pal_enable)
|
||||
g_extern.console.screen.pal60_enable = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_extern.console.screen.pal_enable = false;
|
||||
g_extern.console.screen.pal60_enable = false;
|
||||
}
|
||||
|
||||
rarch_main_command(RARCH_CMD_REINIT);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -416,10 +379,10 @@ const gfx_ctx_driver_t gfx_ctx_ps3 = {
|
||||
gfx_ctx_ps3_set_swap_interval,
|
||||
gfx_ctx_ps3_set_video_mode,
|
||||
gfx_ctx_ps3_get_video_size,
|
||||
gfx_ctx_ps3_get_video_output_size,
|
||||
gfx_ctx_ps3_get_video_output_prev,
|
||||
gfx_ctx_ps3_get_video_output_next,
|
||||
NULL, /* translate_aspect */
|
||||
NULL, /* get_video_output_size */
|
||||
NULL, /* get_video_output_prev */
|
||||
NULL, /* get_video_output_next */
|
||||
NULL,
|
||||
gfx_ctx_ps3_update_window_title,
|
||||
gfx_ctx_ps3_check_window,
|
||||
gfx_ctx_ps3_set_resize,
|
||||
|
@ -249,11 +249,29 @@ static int action_ok_video_filter(const char *path,
|
||||
if (!menu)
|
||||
return -1;
|
||||
|
||||
#ifdef __CELLOS_LV2__
|
||||
if (g_extern.console.screen.resolutions.list[
|
||||
g_extern.console.screen.resolutions.current.idx] ==
|
||||
CELL_VIDEO_OUT_RESOLUTION_576)
|
||||
{
|
||||
if (g_extern.console.screen.pal_enable)
|
||||
g_extern.console.screen.pal60_enable = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_extern.console.screen.pal_enable = false;
|
||||
g_extern.console.screen.pal60_enable = false;
|
||||
}
|
||||
|
||||
rarch_main_command(RARCH_CMD_REINIT);
|
||||
return 0;
|
||||
#else
|
||||
return menu_list_push_stack_refresh(
|
||||
menu->menu_list,
|
||||
g_settings.video.filter_dir,
|
||||
"deferred_video_filter",
|
||||
0, idx);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int action_ok_core_updater_list(const char *path,
|
||||
|
@ -396,6 +396,30 @@ static int action_toggle_shader_num_passes(unsigned type, const char *label,
|
||||
static int action_toggle_video_resolution(unsigned type, const char *label,
|
||||
unsigned action)
|
||||
{
|
||||
#if defined(__CELLOS_LV2__)
|
||||
switch (action)
|
||||
{
|
||||
case MENU_ACTION_LEFT:
|
||||
if (g_extern.console.screen.resolutions.current.idx)
|
||||
{
|
||||
g_extern.console.screen.resolutions.current.idx--;
|
||||
g_extern.console.screen.resolutions.current.id =
|
||||
g_extern.console.screen.resolutions.list
|
||||
[g_extern.console.screen.resolutions.current.idx];
|
||||
}
|
||||
break;
|
||||
case MENU_ACTION_RIGHT:
|
||||
if (g_extern.console.screen.resolutions.current.idx + 1 <
|
||||
g_extern.console.screen.resolutions.count)
|
||||
{
|
||||
g_extern.console.screen.resolutions.current.idx++;
|
||||
g_extern.console.screen.resolutions.current.id =
|
||||
g_extern.console.screen.resolutions.list
|
||||
[g_extern.console.screen.resolutions.current.idx];
|
||||
}
|
||||
break;
|
||||
}
|
||||
#else
|
||||
switch (action)
|
||||
{
|
||||
case MENU_ACTION_LEFT:
|
||||
@ -409,6 +433,7 @@ static int action_toggle_video_resolution(unsigned type, const char *label,
|
||||
driver.video_poke->get_video_output_next(driver.video_data);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user