From 5da884036e1bc26c73ec125194db03b7c3d41477 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 27 May 2014 21:38:30 +0200 Subject: [PATCH] (PS3) Starts to somewhat get back to booting - still a lot of breakage to go through --- driver.h | 3 +++ frontend/menu/menu_common.c | 10 ++++++++++ gfx/image_context.c | 8 ++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/driver.h b/driver.h index d7e92a21b0..43fc5365f2 100644 --- a/driver.h +++ b/driver.h @@ -580,6 +580,8 @@ void find_prev_location_driver(void); void find_next_location_driver(void); #endif +void find_image_driver(void); + void driver_set_monitor_refresh_rate(float hz); bool driver_monitor_fps_statistics(double *refresh_rate, double *deviation, unsigned *sample_points); void driver_set_nonblock_state(bool nonblock); @@ -626,6 +628,7 @@ void driver_location_set_interval(unsigned interval_msecs, unsigned interval_dis const void *menu_ctx_find_driver(const char *ident); // Finds driver with ident. Does not initialize. void find_prev_menu_driver(void); void find_next_menu_driver(void); +void find_menu_driver(void); #endif // Used by RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 2667b2f4bb..2fde834159 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -324,6 +324,16 @@ void *menu_init(void) return NULL; } + if (!driver.image) + { + RARCH_ERR("Image driver not initialized.\n"); + RARCH_WARN("Trying to bring up image driver interface.\n"); + find_image_driver(); + + if (!driver.image) + RARCH_ERR("Still couldn't initialize image driver.\n"); + } + if (driver.menu_ctx->init) rgui = (rgui_handle_t*)driver.menu_ctx->init(); diff --git a/gfx/image_context.c b/gfx/image_context.c index 06a4d17836..ed042003cc 100644 --- a/gfx/image_context.c +++ b/gfx/image_context.c @@ -59,12 +59,16 @@ void find_image_driver(void) else { unsigned d; - RARCH_ERR("Couldn't find any image driver named \"%s\"\n", g_settings.image.driver); + RARCH_WARN("Couldn't find any image driver named \"%s\"\n", g_settings.image.driver); RARCH_LOG_OUTPUT("Available image drivers are:\n"); for (d = 0; image_ctx_drivers[d]; d++) RARCH_LOG_OUTPUT("\t%s\n", image_ctx_drivers[d]->ident); + RARCH_WARN("Going to default to first image driver...\n"); - rarch_fail(1, "find_image_driver()"); + driver.image = image_ctx_drivers[0]; + + if (!driver.image) + rarch_fail(1, "find_image_driver()"); } }