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;
};
#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)"
-#else
+#elif defined(PND_BUILD)
+ "unscaled", "2x", "3x", "fullscreen"
+#elif defined(GP2X_BUILD)
"unscaled 3:2", "scaled 3:2", "fullscreen", "scaled 3:2 (software)"
-#ifdef PSP_BUILD
- " 16:9"
-#endif
+#else
+ "unscaled 3:2"
#endif
};
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);
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.",
(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),
#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,
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)
};
#endif
-#ifdef GP2X_BUILD
+#if defined(GP2X_BUILD) || defined(PND_BUILD)
menu_option_type gamepad_config_options[] =
{
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
};
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);
}
}
set_clock_speed();
SDL_PauseAudio(0);
+ num_skipped_frames = 100;
return return_value;
}