X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=gui.c;h=22a39e0d20f78256d1f038ac24930bf2ca60ff24;hb=eb3668fc5dab138073cd4844208ac05b94086a4a;hp=b1a2d7d95be6fddb7c5cd0d813acfb34cbf27b52;hpb=1d02ca757541e9b8e44362c013a1300cabf69458;p=gpsp.git diff --git a/gui.c b/gui.c index b1a2d7d..22a39e0 100644 --- a/gui.c +++ b/gui.c @@ -16,6 +16,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "common.h" +#include "font.h" + #ifndef _WIN32_WCE #include @@ -25,20 +28,13 @@ #endif -#ifndef GP2X_BUILD -#include "gp2x/cpuctrl.h" -#endif - -#include "common.h" -#include "font.h" - #define MAX_PATH 1024 // Blatantly stolen and trimmed from MZX (megazeux.sourceforge.net) #ifdef GP2X_BUILD -#define FILE_LIST_ROWS ((int)((SDL_SCREEN_HEIGHT - 40) / FONT_HEIGHT)) +#define FILE_LIST_ROWS 20 #define FILE_LIST_POSITION 5 #define DIR_LIST_POSITION 260 @@ -52,23 +48,17 @@ #ifdef PSP_BUILD +#define COLOR_BG color16(2, 8, 10) + #define color16(red, green, blue) \ (blue << 11) | (green << 5) | red \ #else -#define color16(red, green, blue) \ - (red << 11) | (green << 5) | blue \ - -#endif - -#ifdef GP2X_BUILD - #define COLOR_BG color16(0, 0, 0) -#else - -#define COLOR_BG color16(2, 8, 10) +#define color16(red, green, blue) \ + (red << 11) | (green << 5) | blue \ #endif @@ -579,11 +569,11 @@ struct _menu_option_type void (* action_function)(); void (* passive_function)(); struct _menu_type *sub_menu; - char *display_string; + const char *display_string; void *options; u32 *current_option; u32 num_options; - char *help_string; + const char *help_string; u32 line_number; menu_option_type_enum option_type; }; @@ -750,16 +740,26 @@ u32 gamepad_config_line_to_button[] = #endif +#ifdef PND_BUILD + +u32 gamepad_config_line_to_button[] = + { 0, 2, 1, 3, 8, 9, 10, 11, 6, 7, 4, 5, 12, 13, 14, 15 }; + +#endif + u8 *scale_options[] = { -#ifdef WIZ_BUILD +#ifdef PSP_BUILD + "unscaled 3:2", "scaled 3:2", "fullscreen 16:9" +#elif defined(WIZ_BUILD) "unscaled 3:2", "scaled 3:2 (slower)", "unscaled 3:2 (anti-tear)", "scaled 3:2 (anti-tear)" +#elif defined(PND_BUILD) + "unscaled", "2x", "3x", "fullscreen" +#elif defined(GP2X_BUILD) + "unscaled 3:2", "scaled 3:2", "fullscreen", "scaled 3:2 (software)" #else - "unscaled 3:2", "scaled 3:2", "fullscreen" -#ifdef PSP_BUILD - " 16:9" -#endif + "unscaled 3:2" #endif }; @@ -842,10 +842,10 @@ s32 load_config_file() { u8 config_path[512]; - #if (defined(PSP_BUILD) || defined(ARM_ARCH)) && !defined(_WIN32_WCE) - sprintf(config_path, "%s/%s", main_path, GPSP_CONFIG_FILENAME); - #else + #if defined(_WIN32) || defined(_WIN32_WCE) 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); @@ -1034,7 +1034,7 @@ void get_savestate_snapshot(u8 *savestate_filename) else { memset(snapshot_buffer, 0, 240 * 160 * 2); - print_string_ext("No savestate exists for this slot.", + print_string_ext("No savestate in this slot.", 0xFFFF, 0x0000, 15, 75, snapshot_buffer, 240, 0, 0, FONT_HEIGHT); print_string("---------- --/--/---- --:--:-- ", COLOR_HELP_TEXT, COLOR_BG, 10, 40); @@ -1094,7 +1094,7 @@ u32 menu(u16 *original_screen) auto void choose_menu(); auto void clear_help(); - u8 *gamepad_help[] = + static const u8 * const gamepad_help[] = { "Up button on GBA d-pad.", "Down button on GBA d-pad.", @@ -1325,16 +1325,19 @@ u32 menu(u16 *original_screen) (u32 *)(&screen_scale), sizeof(scale_options) / sizeof(scale_options[0]), #ifndef GP2X_BUILD - "Determines how the GBA screen is resized in relation to the entire\n" - "screen. Select unscaled 3:2 for GBA resolution, scaled 3:2 for GBA\n" + "Determines how the GBA screen is resized in relation to the\n" + "entire screen." +#ifdef PSP_BUILD + " Select unscaled 3:2 for GBA resolution, scaled 3:2 for GBA\n" "aspect ratio scaled to fill the height of the PSP screen, and\n" "fullscreen to fill the entire PSP screen." +#endif #endif "", 2), #ifndef GP2X_BUILD string_selection_option(NULL, "Screen filtering", yes_no_options, (u32 *)(&screen_filter), 2, - "Determines whether or not bilinear filtering should be used when\n" + "Determines whether or not filtering should be used when\n" "scaling the screen. Selecting this will produce a more even and\n" "smooth image, at the cost of being blurry and having less vibrant\n" "colors.", 3), @@ -1362,8 +1365,8 @@ u32 menu(u16 *original_screen) #ifndef GP2X_BUILD "If objects in the game flicker at a regular rate certain manual\n" "frameskip values may cause them to normally disappear. Change this\n" - "value to 'random' to avoid this. Do not use otherwise, as it tends to\n" - "make the image quality worse, especially in high motion games." + "value to 'random' to avoid this. Do not use otherwise, as it tends\n" + "to make the image quality worse, especially in high motion games." #endif "", 7), string_selection_option(NULL, "Audio output", yes_no_options, @@ -1405,25 +1408,29 @@ u32 menu(u16 *original_screen) cheat_option(7), cheat_option(8), cheat_option(9), +#if defined(PSP_BUILD) || defined(GP2X_BUILD) string_selection_option(NULL, "Clock speed", clock_speed_options, &clock_speed_number, sizeof(clock_speed_options) / sizeof(clock_speed_options[0]), "Change the clock speed of the device. Higher clock\n" "speed will yield better performance, but will drain\n" "battery life further.", 11), +#endif string_selection_option(NULL, "Update backup", update_backup_options, &update_backup_flag, 2, #ifdef GP2X_BUILD "Determines when in-game save files should be\n" - "written back to SD card.", + "written back to SD card." #else "Determines when in-game save files should be written back to\n" - "memstick. If set to 'automatic' writebacks will occur shortly after\n" - "the game's backup is altered. On 'exit only' it will only be written\n" - "back when you exit from this menu (NOT from using the home button).\n" - "Use the latter with extreme care.", + "card. If set to 'automatic' writebacks will occur shortly after\n" + "the game's backup is altered. On 'exit only' it will only be\n" + "written back when you exit from this menu.\n" +#ifdef PSP + "(NOT from using the home button), use the latter with extreme care." +#endif #endif - 12), + "", 12), submenu_option(NULL, "Back", "Return to the main menu.", 14) }; @@ -1493,7 +1500,7 @@ u32 menu(u16 *original_screen) #endif -#ifdef GP2X_BUILD +#if defined(GP2X_BUILD) || defined(PND_BUILD) menu_option_type gamepad_config_options[] = { @@ -1513,10 +1520,18 @@ u32 menu(u16 *original_screen) gamepad_config_option("Start ", 10), #endif gamepad_config_option("Select ", 11), -#ifndef WIZ_BUILD +#if !defined(WIZ_BUILD) && !defined(PND_BUILD) gamepad_config_option("Stick Push ", 12), #endif +#ifdef PND_BUILD + gamepad_config_option("1 ", 12), + gamepad_config_option("2 ", 13), + gamepad_config_option("3 ", 14), + gamepad_config_option("4 ", 15), + submenu_option(NULL, "Back", "Return to the main menu.", 16) +#else submenu_option(NULL, "Back", "Return to the main menu.", 14) +#endif }; @@ -1675,13 +1690,13 @@ u32 menu(u16 *original_screen) if(display_option == current_option) { - print_string_pad(line_buffer, COLOR_ACTIVE_ITEM, COLOR_BG, 10, - (display_option->line_number * 10) + 40, 41); + print_string_pad(line_buffer, COLOR_ACTIVE_ITEM, COLOR_BG, 6, + (display_option->line_number * 10) + 40, 36); } else { - print_string_pad(line_buffer, COLOR_INACTIVE_ITEM, COLOR_BG, 10, - (display_option->line_number * 10) + 40, 41); + print_string_pad(line_buffer, COLOR_INACTIVE_ITEM, COLOR_BG, 6, + (display_option->line_number * 10) + 40, 36); } } @@ -1766,6 +1781,7 @@ u32 menu(u16 *original_screen) set_clock_speed(); SDL_PauseAudio(0); + num_skipped_frames = 100; return return_value; }