diff --git a/ps3/main.c b/ps3/main.c index d710c52a98..10b5b3e0fc 100644 --- a/ps3/main.c +++ b/ps3/main.c @@ -213,6 +213,21 @@ static void get_path_settings(bool multiman_support) } } +static void callback_sysutil_exit(uint64_t status, uint64_t param, void *userdata) +{ + (void) param; + (void) userdata; + + switch (status) + { + case CELL_SYSUTIL_REQUEST_EXITGAME: + menu_is_running = 0; + g_quitting = true; + sys_process_exit(0); + break; + } +} + // Temporary, a more sane implementation should go here. int main(int argc, char *argv[]) { @@ -222,6 +237,9 @@ int main(int argc, char *argv[]) cellSysmoduleLoadModule(CELL_SYSMODULE_FS); cellSysmoduleLoadModule(CELL_SYSMODULE_SYSUTIL_GAME); + SSNES_LOG("Registering Callback\n"); + cellSysutilRegisterCallback(0, callback_sysutil_exit, NULL); + g_rom_loaded = false; #ifdef MULTIMAN_SUPPORT return_to_MM = true; diff --git a/ps3/menu.c b/ps3/menu.c index fa4dd2f8da..a428c13764 100644 --- a/ps3/menu.c +++ b/ps3/menu.c @@ -498,225 +498,10 @@ static void do_pathChoice(uint32_t menu_id) static void display_help_text(int currentsetting) { - switch(currentsetting) - { - case SETTING_HW_TEXTURE_FILTER: - case SETTING_HW_TEXTURE_FILTER_2: - case SETTING_SCALE_ENABLED: - case SETTING_ENABLE_SCREENSHOTS: - case SETTING_TRIPLE_BUFFERING: - case SETTING_THROTTLE_MODE: - case SETTING_APPLY_SHADER_PRESET_ON_STARTUP: - print_help_message_yesno(menu_generalvideosettings, currentsetting); - break; - case SETTING_SCALE_FACTOR: - snprintf(menu_generalvideosettings.items[currentsetting].comment, sizeof(menu_generalvideosettings.items[currentsetting].comment), "INFO - [Custom Scaling Factor] is set to: %dx (X), %dx (Y).", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); - print_help_message(menu_generalvideosettings, currentsetting); - break; - case SETTING_KEEP_ASPECT_RATIO: - break; - case SETTING_SOUND_MODE: - print_help_message(menu_generalaudiosettings, currentsetting); - break; - case SETTING_BORDER: - /*case SETTING_GAME_AWARE_SHADER:*/ - case SETTING_SHADER: - case SETTING_SHADER_2: - case SETTING_FONT_SIZE: - case SETTING_CHANGE_RESOLUTION: - case SETTING_HW_OVERSCAN_AMOUNT: - case SETTING_DEFAULT_VIDEO_ALL: - case SETTING_SAVE_SHADER_PRESET: - print_help_message(menu_generalvideosettings, currentsetting); - break; - case SETTING_DEFAULT_AUDIO_ALL: - case SETTING_RSOUND_SERVER_IP_ADDRESS: - print_help_message(menu_generalaudiosettings, currentsetting); - break; - case SETTING_CONTROLS_SCHEME: - break; - case SETTING_CONTROLS_DPAD_UP: - case SETTING_CONTROLS_DPAD_DOWN: - case SETTING_CONTROLS_DPAD_LEFT: - case SETTING_CONTROLS_DPAD_RIGHT: - case SETTING_CONTROLS_BUTTON_CIRCLE: - case SETTING_CONTROLS_BUTTON_CROSS: - case SETTING_CONTROLS_BUTTON_TRIANGLE: - case SETTING_CONTROLS_BUTTON_SQUARE: - case SETTING_CONTROLS_BUTTON_SELECT: - case SETTING_CONTROLS_BUTTON_START: - case SETTING_CONTROLS_BUTTON_L1: - case SETTING_CONTROLS_BUTTON_R1: - case SETTING_CONTROLS_BUTTON_L2: - case SETTING_CONTROLS_BUTTON_R2: - case SETTING_CONTROLS_BUTTON_L3: - case SETTING_CONTROLS_BUTTON_R3: - case SETTING_CONTROLS_BUTTON_L2_BUTTON_L3: - case SETTING_CONTROLS_BUTTON_L2_BUTTON_R3: - case SETTING_CONTROLS_BUTTON_L2_ANALOG_R_RIGHT: - case SETTING_CONTROLS_BUTTON_L2_ANALOG_R_LEFT: - case SETTING_CONTROLS_BUTTON_L2_ANALOG_R_UP: - case SETTING_CONTROLS_BUTTON_L2_ANALOG_R_DOWN: - case SETTING_CONTROLS_BUTTON_R2_ANALOG_R_RIGHT: - case SETTING_CONTROLS_BUTTON_R2_ANALOG_R_LEFT: - case SETTING_CONTROLS_BUTTON_R2_ANALOG_R_UP: - case SETTING_CONTROLS_BUTTON_R2_ANALOG_R_DOWN: - case SETTING_CONTROLS_BUTTON_R2_BUTTON_R3: - case SETTING_CONTROLS_BUTTON_R3_BUTTON_L3: - case SETTING_CONTROLS_ANALOG_R_UP: - case SETTING_CONTROLS_ANALOG_R_DOWN: - case SETTING_CONTROLS_ANALOG_R_LEFT: - case SETTING_CONTROLS_ANALOG_R_RIGHT: - //cellDbgFontPrintf(0.09f, 0.83f, 0.86f, LIGHTBLUE, "INFO - [%s] on the PS3 controller is mapped to action:\n[%s].", menu_controlssettings.items[currentsetting].text, Input_PrintMappedButton(control_binds[currently_selected_controller_menu][currentsetting-FIRST_CONTROL_BIND])); - break; - case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS: - cellDbgFontPuts(0.09f, 0.83f, 0.86f, LIGHTBLUE, "INFO - Save the custom control settings.\nNOTE: This option will not do anything with Control Scheme [New] or [Default]."); - break; - case SETTING_CONTROLS_DEFAULT_ALL: - cellDbgFontPuts(0.09f, 0.83f, 0.86f, LIGHTBLUE, "INFO - Set all 'Controls' settings back to their default values."); - break; - case SETTING_EMU_CURRENT_SAVE_STATE_SLOT: - case SETTING_EMU_DEFAULT_ALL: - print_help_message(menu_emu_settings, currentsetting); - case SETTING_EMU_VIDEO_DEFAULT_ALL: - print_help_message(menu_emu_videosettings, currentsetting); - break; - case SETTING_EMU_AUDIO_DEFAULT_ALL: - print_help_message(menu_emu_audiosettings, currentsetting); - break; - case SETTING_PATH_SAVESTATES_DIRECTORY: - case SETTING_PATH_DEFAULT_ROM_DIRECTORY: - case SETTING_PATH_SRAM_DIRECTORY: - case SETTING_PATH_CHEATS: - case SETTING_PATH_DEFAULT_ALL: - print_help_message(menu_pathsettings, currentsetting); - break; - /* - case SETTING_PAL60_MODE: - cellDbgFontPrintf(0.09f, 0.83f, 0.86f, LIGHTBLUE, "%s", Settings.PS3PALTemporalMode60Hz ? "INFO - PAL 60Hz mode is enabled - 60Hz NTSC games will run correctly at 576p PAL\nresolution. NOTE: This is configured on-the-fly." : "INFO - PAL 60Hz mode disabled - 50Hz PAL games will run correctly at 576p PAL\nresolution. NOTE: This is configured on-the-fly."); - break; - */ - } } static void display_label_value(uint64_t switchvalue) { - switch(switchvalue) - { - case SETTING_CHANGE_RESOLUTION: - { - cellDbgFontPrintf(0.5f, menu_generalvideosettings.items[switchvalue].text_ypos, FONT_SIZE, GREEN, "Unimplemented"); - cellDbgFontDraw(); - break; - } -#if 0 - case SETTING_PAL60_MODE: - cellDbgFontPuts (menu_generalvideosettings.items[switchvalue].text_xpos, menu_generalvideosettings.items[switchvalue].text_ypos, FONT_SIZE, currently_selected_setting == menu_generalvideosettings.items[switchvalue].enum_id ? YELLOW : WHITE, "PAL60 Mode (576p only)"); - cellDbgFontPrintf (0.5f, menu_generalvideosettings.items[switchvalue].text_ypos, FONT_SIZE, Settings.PS3PALTemporalMode60Hz ? ORANGE : GREEN, Settings.PS3PALTemporalMode60Hz ? "ON" : "OFF"); - break; -#endif -#if 0 - case SETTING_GAME_AWARE_SHADER: - cellDbgFontPrintf(0.5f, menu_generalvideosettings.items[menu_generalvideosettings.items[switchvalue].enum_id].text_ypos, FONT_SIZE, Settings.GameAwareShaderPath == "" ? GREEN : ORANGE, "%s", Settings.GameAwareShaderPath); - break; -#endif - case SETTING_SHADER_PRESETS: - break; - case SETTING_BORDER: - { - } - break; - case SETTING_SHADER: - { - } - break; - case SETTING_SHADER_2: - { - } - break; - case SETTING_FONT_SIZE: - cellDbgFontPrintf(0.5f, menu_generalvideosettings.items[switchvalue].text_ypos, FONT_SIZE, GREEN, "%f", FONT_SIZE); - break; - case SETTING_KEEP_ASPECT_RATIO: - cellDbgFontDraw(); - break; - case SETTING_HW_TEXTURE_FILTER: - cellDbgFontPrintf(0.5f, menu_generalvideosettings.items[switchvalue].text_ypos, FONT_SIZE, g_settings.video.smooth ? GREEN : ORANGE, g_settings.video.smooth ? "Linear interpolation" : "Point filtering"); - break; - case SETTING_HW_TEXTURE_FILTER_2: - cellDbgFontPrintf(0.5f, menu_generalvideosettings.items[switchvalue].text_ypos, FONT_SIZE, !(menu_generalvideosettings.items[menu_generalvideosettings.items[switchvalue].enum_id].enabled) ? SILVER : g_settings.video.second_pass_smooth ? GREEN : ORANGE, g_settings.video.second_pass_smooth ? "Linear interpolation" : "Point filtering"); - break; - case SETTING_SCALE_FACTOR: - cellDbgFontPrintf(0.5f, menu_generalvideosettings.items[menu_generalvideosettings.items[switchvalue].enum_id].text_ypos, FONT_SIZE, (menu_generalvideosettings.items[menu_generalvideosettings.items[switchvalue].enum_id].enabled == 0) ? SILVER : g_settings.video.fbo_scale_x == 2 && g_settings.video.fbo_scale_y ? GREEN : ORANGE, "%dx (X), %dx (Y)", g_settings.video.fbo_scale_x, g_settings.video.fbo_scale_y); - break; - case SETTING_HW_OVERSCAN_AMOUNT: - break; - case SETTING_SOUND_MODE: - break; - case SETTING_RSOUND_SERVER_IP_ADDRESS: - break; - case SETTING_THROTTLE_MODE: - case SETTING_ENABLE_SCREENSHOTS: - case SETTING_TRIPLE_BUFFERING: - case SETTING_SCALE_ENABLED: - case SETTING_APPLY_SHADER_PRESET_ON_STARTUP: - break; - case SETTING_EMU_CURRENT_SAVE_STATE_SLOT: - cellDbgFontPrintf(0.5f, menu_emu_settings.items[menu_emu_settings.items[switchvalue].enum_id].text_ypos, FONT_SIZE, g_extern.state_slot == 0 ? GREEN : ORANGE, "%d", g_extern.state_slot); - break; - case SETTING_PATH_DEFAULT_ROM_DIRECTORY: - break; - case SETTING_PATH_SAVESTATES_DIRECTORY: - break; - case SETTING_PATH_SRAM_DIRECTORY: - break; - case SETTING_PATH_CHEATS: - cellDbgFontPuts (0.5f, menu_pathsettings.items[switchvalue].text_ypos, FONT_SIZE, !(strcmp(g_settings.cheat_database,usrDirPath)) ? GREEN : ORANGE, g_settings.cheat_database); - break; - case SETTING_DEFAULT_VIDEO_ALL: - case SETTING_SAVE_SHADER_PRESET: - case SETTING_DEFAULT_AUDIO_ALL: - case SETTING_CONTROLS_SAVE_CUSTOM_CONTROLS: - cellDbgFontDraw(); - break; - case SETTING_CONTROLS_SCHEME: - break; - case SETTING_CONTROLS_NUMBER: - break; - case SETTING_CONTROLS_DPAD_UP: - case SETTING_CONTROLS_DPAD_DOWN: - case SETTING_CONTROLS_DPAD_LEFT: - case SETTING_CONTROLS_DPAD_RIGHT: - case SETTING_CONTROLS_BUTTON_CIRCLE: - case SETTING_CONTROLS_BUTTON_CROSS: - case SETTING_CONTROLS_BUTTON_TRIANGLE: - case SETTING_CONTROLS_BUTTON_SQUARE: - case SETTING_CONTROLS_BUTTON_SELECT: - case SETTING_CONTROLS_BUTTON_START: - case SETTING_CONTROLS_BUTTON_L1: - case SETTING_CONTROLS_BUTTON_R1: - case SETTING_CONTROLS_BUTTON_L2: - case SETTING_CONTROLS_BUTTON_R2: - case SETTING_CONTROLS_BUTTON_L3: - case SETTING_CONTROLS_BUTTON_R3: - case SETTING_CONTROLS_BUTTON_L2_BUTTON_L3: - case SETTING_CONTROLS_BUTTON_L2_BUTTON_R3: - case SETTING_CONTROLS_BUTTON_L2_ANALOG_R_RIGHT: - case SETTING_CONTROLS_BUTTON_L2_ANALOG_R_LEFT: - case SETTING_CONTROLS_BUTTON_L2_ANALOG_R_UP: - case SETTING_CONTROLS_BUTTON_L2_ANALOG_R_DOWN: - case SETTING_CONTROLS_BUTTON_R2_ANALOG_R_RIGHT: - case SETTING_CONTROLS_BUTTON_R2_ANALOG_R_LEFT: - case SETTING_CONTROLS_BUTTON_R2_ANALOG_R_UP: - case SETTING_CONTROLS_BUTTON_R2_ANALOG_R_DOWN: - case SETTING_CONTROLS_BUTTON_R2_BUTTON_R3: - case SETTING_CONTROLS_BUTTON_R3_BUTTON_L3: - case SETTING_CONTROLS_ANALOG_R_UP: - case SETTING_CONTROLS_ANALOG_R_DOWN: - case SETTING_CONTROLS_ANALOG_R_LEFT: - case SETTING_CONTROLS_ANALOG_R_RIGHT: - break; - } } static void apply_scaling(void) diff --git a/ps3/ps3_video_psgl.c b/ps3/ps3_video_psgl.c index 90c229bfe9..404790653c 100644 --- a/ps3/ps3_video_psgl.c +++ b/ps3/ps3_video_psgl.c @@ -89,7 +89,7 @@ static bool load_fbo_proc(void) { return true; } #endif #define TEXTURES_MASK (TEXTURES - 1) -static bool g_quitting; +bool g_quitting; unsigned g_frame_count; void *g_gl; @@ -881,21 +881,6 @@ static bool psgl_init_device(gl_t *gl, const video_info_t *video, uint32_t resol return true; } -void callback_sysutil_exit(uint64_t status, uint64_t param, void *userdata) -{ - (void) param; - (void) userdata; - - switch (status) - { - case CELL_SYSUTIL_REQUEST_EXITGAME: - g_quitting = true; - break; - default: - break; - } -} - static void psgl_init_dbgfont(gl_t *gl) { CellDbgFontConfig cfg; @@ -943,8 +928,6 @@ static void *gl_init(const video_info_t *video, const input_driver_t **input, vo gl_init_fbo(gl, SSNES_SCALE_BASE * video->input_scale, SSNES_SCALE_BASE * video->input_scale); - SSNES_LOG("Registering Callback\n"); - cellSysutilRegisterCallback(0, callback_sysutil_exit, NULL); gl->keep_aspect = video->force_aspect; diff --git a/ps3/shared.h b/ps3/shared.h index c6168fb4ed..08ae0786ec 100644 --- a/ps3/shared.h +++ b/ps3/shared.h @@ -22,6 +22,7 @@ extern char special_action_msg[256]; extern uint32_t special_action_msg_expired; extern unsigned g_frame_count; extern bool g_rom_loaded; +extern bool g_quitting; extern char contentInfoPath[MAX_PATH_LENGTH]; extern char usrDirPath[MAX_PATH_LENGTH];