s32 load_config_file() { u8 config_path[512]; sprintf(config_path, "%s/%s", main_path, GPSP_CONFIG_FILENAME); FILE_OPEN(config_file, config_path, read); if(FILE_CHECK_VALID(config_file)) { u32 file_size = FILE_LENGTH(config_file); // Sanity check: File size must be the right size if(file_size == 92) { u32 file_options[file_size / 4]; u32 i; s32 menu_button = -1; file_read_array(config_file, file_options); screen_scale = file_options[0] % 2; screen_filter = file_options[1] % 2; global_enable_audio = file_options[2] % 2; #ifdef ZAURUS audio_buffer_size_number = file_options[3] % 4; #else audio_buffer_size_number = file_options[3] % 11; #endif global_enable_analog = file_options[5] % 2; analog_sensitivity_level = file_options[6] % 8; // Sanity check: Make sure there's a MENU or FRAMESKIP // key, if not assign to triangle for(i = 0; i < 16; i++) { gamepad_config_map[i] = file_options[7 + i] % (BUTTON_ID_NONE + 1); if(gamepad_config_map[i] == BUTTON_ID_MENU) { menu_button = i; } } if(menu_button == -1) { gamepad_config_map[0] = BUTTON_ID_MENU; } } FILE_CLOSE(config_file); return 0; } return -1; }
s32 load_game_config_file() { u8 game_config_filename[512]; u32 file_loaded = 0; u32 i; change_ext(gamepak_filename, game_config_filename, ".cfg"); file_open(game_config_file, game_config_filename, read); if(file_check_valid(game_config_file)) { u32 file_size = file_length(game_config_filename, game_config_file); // Sanity check: File size must be the right size if(file_size == 56) { u32 file_options[file_size / 4]; file_read_array(game_config_file, file_options); current_frameskip_type = file_options[0] % 3; frameskip_value = file_options[1]; random_skip = file_options[2] & 1; clock_speed = global_cycles_per_instruction = file_options[3]; if(frameskip_value < 0) frameskip_value = 0; if(frameskip_value > 99) frameskip_value = 99; file_close(game_config_file); file_loaded = 1; } } if(file_loaded) return 0; current_frameskip_type = auto_frameskip; frameskip_value = 0; random_skip = 0; clock_speed = 4; for(i = 0; i < 10; i++) { cheats[i].cheat_active = 0; } return -1; }
void get_savestate_snapshot(u8 *savestate_filename) { u16 snapshot_buffer[240 * 160]; u8 savestate_timestamp_string[80]; file_open(savestate_file, savestate_filename, read); if(file_check_valid(savestate_file)) { u8 weekday_strings[7][11] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; time_t savestate_time_flat; struct tm *current_time; file_read_array(savestate_file, snapshot_buffer); file_read_variable(savestate_file, savestate_time_flat); file_close(savestate_file); current_time = localtime(&savestate_time_flat); sprintf(savestate_timestamp_string, "%s %02d/%02d/%04d %02d:%02d:%02d ", weekday_strings[current_time->tm_wday], current_time->tm_mon + 1, current_time->tm_mday, current_time->tm_year + 1900, current_time->tm_hour, current_time->tm_min, current_time->tm_sec); savestate_timestamp_string[40] = 0; print_string(savestate_timestamp_string, COLOR_HELP_TEXT, COLOR_BG, 10, 40); } else { memset(snapshot_buffer, 0, 240 * 160 * 2); print_string_ext("No savestate exists for this slot.", 0xFFFF, 0x0000, 15, 75, snapshot_buffer, 240, 0); print_string("---------- --/--/---- --:--:-- ", COLOR_HELP_TEXT, COLOR_BG, 10, 40); } #ifndef GP2X_BUILD blit_to_screen(snapshot_buffer, 240, 160, 230, 40); #endif }
void get_savestate_snapshot(u8 *savestate_filename) { /* Unimplemented. Need to figure out a way to show this screenshot on a * 320x240 screen first. - Neb, 2013-08-19 */ #if 0 u16 snapshot_buffer[240 * 160]; u8 savestate_timestamp_string[80]; FILE_OPEN(savestate_file, savestate_filename, read); if(FILE_CHECK_VALID(savestate_file)) { u8 weekday_strings[7][11] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; time_t savestate_time_flat; struct tm *current_time; file_read_array(savestate_file, snapshot_buffer); file_read_variable(savestate_file, savestate_time_flat); file_close(savestate_file); current_time = localtime(&savestate_time_flat); sprintf(savestate_timestamp_string, "%s %02d/%02d/%04d %02d:%02d:%02d ", weekday_strings[current_time->tm_wday], current_time->tm_mon + 1, current_time->tm_mday, current_time->tm_year + 1900, current_time->tm_hour, current_time->tm_min, current_time->tm_sec); savestate_timestamp_string[40] = 0; print_string(savestate_timestamp_string, COLOR_HELP_TEXT, COLOR_BG, 10, 40); } else { memset(snapshot_buffer, 0, 240 * 160 * 2); print_string_ext("No savestate exists for this slot.", 0xFFFF, 0x0000, 15, 75, snapshot_buffer, 240, 0); print_string("---------- --/--/---- --:--:-- ", COLOR_HELP_TEXT, COLOR_BG, 10, 40); } #endif }
s32 load_config_file() { u8 config_path[512]; #if defined(PSP_BUILD) || defined(ZAURUS) sprintf(config_path, "%s/%s", main_path, GPSP_CONFIG_FILENAME); #else sprintf(config_path, "%s\\%s", main_path, GPSP_CONFIG_FILENAME); #endif file_open(config_file, config_path, read); if(file_check_valid(config_file)) { u32 file_size = file_length(config_path, config_file); // Sanity check: File size must be the right size if(file_size == 92) { u32 file_options[file_size / 4]; u32 i; s32 menu_button = -1; file_read_array(config_file, file_options); screen_scale = file_options[0] % 3; // 2 screen_filter = file_options[1] % 2; global_enable_audio = file_options[2] % 2; #if defined(ZAURUS) || defined(DINGUX_ON_WIN32) audio_buffer_size_number = file_options[3] % 4; #else audio_buffer_size_number = file_options[3] % 11; #endif update_backup_flag = file_options[4] % 2; global_enable_analog = file_options[5] % 2; analog_sensitivity_level = file_options[6] % 8; #ifdef PSP_BUILD scePowerSetClockFrequency(clock_speed, clock_speed, clock_speed / 2); #endif // Sanity check: Make sure there's a MENU or FRAMESKIP // key, if not assign to triangle for(i = 0; i < 16; i++) { gamepad_config_map[i] = file_options[7 + i] % (BUTTON_ID_NONE + 1); if(gamepad_config_map[i] == BUTTON_ID_MENU) { menu_button = i; } } if(menu_button == -1) { gamepad_config_map[0] = BUTTON_ID_MENU; } file_close(config_file); } return 0; } return -1; }