tweaks from 2008 (gpsp09-2xb_3)
This commit is contained in:
parent
010878638d
commit
9020645032
|
@ -28,12 +28,13 @@
|
||||||
extern int main_cpuspeed(int argc, char *argv[]);
|
extern int main_cpuspeed(int argc, char *argv[]);
|
||||||
extern SDL_Surface* screen;
|
extern SDL_Surface* screen;
|
||||||
|
|
||||||
u32 gp2x_audio_volume = 74;
|
u32 gp2x_audio_volume = 74/2;
|
||||||
u32 gpsp_gp2x_dev_audio = 0;
|
u32 gpsp_gp2x_dev_audio = 0;
|
||||||
u32 gpsp_gp2x_dev = 0;
|
u32 gpsp_gp2x_dev = 0;
|
||||||
|
|
||||||
volatile u16 *gpsp_gp2x_memregs;
|
volatile u16 *gpsp_gp2x_memregs;
|
||||||
volatile u32 *gpsp_gp2x_memregl;
|
volatile u32 *gpsp_gp2x_memregl;
|
||||||
|
extern unsigned short *gp2x_memregs;
|
||||||
|
|
||||||
static volatile u16 *MEM_REG;
|
static volatile u16 *MEM_REG;
|
||||||
|
|
||||||
|
@ -64,7 +65,9 @@ void gp2x_overclock()
|
||||||
gpsp_gp2x_memregs = (unsigned short *)gpsp_gp2x_memregl;
|
gpsp_gp2x_memregs = (unsigned short *)gpsp_gp2x_memregl;
|
||||||
|
|
||||||
clear_screen(0);
|
clear_screen(0);
|
||||||
main_cpuspeed(0, NULL);
|
// main_cpuspeed(0, NULL);
|
||||||
|
gp2x_memregs = (void *)gpsp_gp2x_memregs;
|
||||||
|
cpuctrl_init();
|
||||||
gp2x_sound_volume(1);
|
gp2x_sound_volume(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +76,7 @@ void gp2x_quit()
|
||||||
munmap((void *)gpsp_gp2x_memregl, 0x10000);
|
munmap((void *)gpsp_gp2x_memregl, 0x10000);
|
||||||
close(gpsp_gp2x_dev_audio);
|
close(gpsp_gp2x_dev_audio);
|
||||||
close(gpsp_gp2x_dev);
|
close(gpsp_gp2x_dev);
|
||||||
|
|
||||||
chdir("/usr/gp2x");
|
chdir("/usr/gp2x");
|
||||||
execl("gp2xmenu", "gp2xmenu", NULL);
|
execl("gp2xmenu", "gp2xmenu", NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,23 @@ not apply however).
|
||||||
|
|
||||||
Changelog:
|
Changelog:
|
||||||
|
|
||||||
|
0.9-2xb u1 (unofficial notaz release):
|
||||||
|
- Fixed a problen in thread synchronization which caused deadlock after
|
||||||
|
some time.
|
||||||
|
|
||||||
|
0.9-2xb u2 (unofficial notaz release):
|
||||||
|
- Replaced non-working mmuhack.o with proper one, added cache flush calls
|
||||||
|
to avoid artifacts.
|
||||||
|
|
||||||
|
0.9-2xb u3 (unofficial notaz release, released with permission):
|
||||||
|
- Removed built-in CPU/LCD/RAM-Tweaker.
|
||||||
|
- Improved usability of volume control.
|
||||||
|
- Removed PSP-specific GUI options, adjusted help text.
|
||||||
|
- Overclocking from menu now works, keep it at 200 if you don't want that
|
||||||
|
(if you want to overclock using launcher, for example).
|
||||||
|
- Fixed centering-on-first-run problem.
|
||||||
|
- 3:2 scaled option now does what it says.
|
||||||
|
|
||||||
0.9-2xb:
|
0.9-2xb:
|
||||||
-- IMPORTANT-- If you're overwriting an old version, be sure to delete the
|
-- IMPORTANT-- If you're overwriting an old version, be sure to delete the
|
||||||
gpsp.cfg file first, or be prepared to have a bunch of weird button
|
gpsp.cfg file first, or be prepared to have a bunch of weird button
|
||||||
|
|
156
gui.c
156
gui.c
|
@ -25,6 +25,10 @@
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef GP2X_BUILD
|
||||||
|
#include "gp2x/cpuctrl.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "font.h"
|
#include "font.h"
|
||||||
|
|
||||||
|
@ -643,7 +647,7 @@ u32 gamepad_config_line_to_button[] =
|
||||||
#ifdef GP2X_BUILD
|
#ifdef GP2X_BUILD
|
||||||
|
|
||||||
u32 gamepad_config_line_to_button[] =
|
u32 gamepad_config_line_to_button[] =
|
||||||
{ 0, 2, 1, 3, 8, 9, 10, 11, 6, 7, 4, 5 };
|
{ 0, 2, 1, 3, 8, 9, 10, 11, 6, 7, 4, 5, 14 };
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -672,8 +676,13 @@ s32 load_game_config_file()
|
||||||
random_skip = file_options[2] % 2;
|
random_skip = file_options[2] % 2;
|
||||||
clock_speed = file_options[3];
|
clock_speed = file_options[3];
|
||||||
|
|
||||||
|
#ifdef GP2X_BUILD
|
||||||
|
if(clock_speed >= 300)
|
||||||
|
clock_speed = 200;
|
||||||
|
#else
|
||||||
if(clock_speed > 333)
|
if(clock_speed > 333)
|
||||||
clock_speed = 333;
|
clock_speed = 333;
|
||||||
|
#endif
|
||||||
|
|
||||||
if(clock_speed < 33)
|
if(clock_speed < 33)
|
||||||
clock_speed = 33;
|
clock_speed = 33;
|
||||||
|
@ -701,7 +710,11 @@ s32 load_game_config_file()
|
||||||
current_frameskip_type = auto_frameskip;
|
current_frameskip_type = auto_frameskip;
|
||||||
frameskip_value = 4;
|
frameskip_value = 4;
|
||||||
random_skip = 0;
|
random_skip = 0;
|
||||||
|
#ifdef GP2X_BUILD
|
||||||
|
clock_speed = 200;
|
||||||
|
#else
|
||||||
clock_speed = 333;
|
clock_speed = 333;
|
||||||
|
#endif
|
||||||
|
|
||||||
for(i = 0; i < 10; i++)
|
for(i = 0; i < 10; i++)
|
||||||
{
|
{
|
||||||
|
@ -945,7 +958,10 @@ void get_savestate_filename_noshot(u32 slot, u8 *name_buffer)
|
||||||
|
|
||||||
u32 menu(u16 *original_screen)
|
u32 menu(u16 *original_screen)
|
||||||
{
|
{
|
||||||
u32 clock_speed_number = (clock_speed / 33) - 1;
|
u32 clock_speed_number;
|
||||||
|
#ifdef GP2X_BUILD
|
||||||
|
static u32 clock_speed_old = 200;
|
||||||
|
#endif
|
||||||
u8 print_buffer[81];
|
u8 print_buffer[81];
|
||||||
u32 _current_option = 0;
|
u32 _current_option = 0;
|
||||||
gui_action_type gui_action;
|
gui_action_type gui_action;
|
||||||
|
@ -1001,7 +1017,11 @@ u32 menu(u16 *original_screen)
|
||||||
|
|
||||||
void menu_quit()
|
void menu_quit()
|
||||||
{
|
{
|
||||||
|
#ifdef PSP_BUILD
|
||||||
clock_speed = (clock_speed_number + 1) * 33;
|
clock_speed = (clock_speed_number + 1) * 33;
|
||||||
|
#elif defined(GP2X_BUILD)
|
||||||
|
clock_speed = 150 + clock_speed_number * 10;
|
||||||
|
#endif
|
||||||
save_config_file();
|
save_config_file();
|
||||||
quit();
|
quit();
|
||||||
}
|
}
|
||||||
|
@ -1134,7 +1154,10 @@ u32 menu(u16 *original_screen)
|
||||||
|
|
||||||
u8 *scale_options[] =
|
u8 *scale_options[] =
|
||||||
{
|
{
|
||||||
"unscaled 3:2", "scaled 3:2", "fullscreen 16:9"
|
"unscaled 3:2", "scaled 3:2", "fullscreen"
|
||||||
|
#ifdef PSP_BUILD
|
||||||
|
" 16:9"
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
u8 *frameskip_options[] = { "automatic", "manual", "off" };
|
u8 *frameskip_options[] = { "automatic", "manual", "off" };
|
||||||
|
@ -1158,11 +1181,20 @@ u32 menu(u16 *original_screen)
|
||||||
|
|
||||||
u8 *update_backup_options[] = { "Exit only", "Automatic" };
|
u8 *update_backup_options[] = { "Exit only", "Automatic" };
|
||||||
|
|
||||||
|
#ifdef GP2X_BUILD
|
||||||
|
u8 *clock_speed_options[] =
|
||||||
|
{
|
||||||
|
"150MHz", "160MHz", "170MHz", "180MHz", "190MHz",
|
||||||
|
"200MHz", "210MHz", "220MHz", "230MHz", "240MHz",
|
||||||
|
"250MHz", "260MHz", "270MHz", "280MHz", "290MHz"
|
||||||
|
};
|
||||||
|
#else
|
||||||
u8 *clock_speed_options[] =
|
u8 *clock_speed_options[] =
|
||||||
{
|
{
|
||||||
"33MHz", "66MHz", "100MHz", "133MHz", "166MHz", "200MHz", "233MHz",
|
"33MHz", "66MHz", "100MHz", "133MHz", "166MHz", "200MHz", "233MHz",
|
||||||
"266MHz", "300MHz", "333MHz"
|
"266MHz", "300MHz", "333MHz"
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
u8 *gamepad_config_buttons[] =
|
u8 *gamepad_config_buttons[] =
|
||||||
{
|
{
|
||||||
|
@ -1195,38 +1227,52 @@ u32 menu(u16 *original_screen)
|
||||||
{
|
{
|
||||||
string_selection_option(NULL, "Display scaling", scale_options,
|
string_selection_option(NULL, "Display scaling", scale_options,
|
||||||
(u32 *)(&screen_scale), 3,
|
(u32 *)(&screen_scale), 3,
|
||||||
|
#ifndef GP2X_BUILD
|
||||||
"Determines how the GBA screen is resized in relation to the entire\n"
|
"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"
|
"screen. 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"
|
"aspect ratio scaled to fill the height of the PSP screen, and\n"
|
||||||
"fullscreen to fill the entire PSP screen.", 2),
|
"fullscreen to fill the entire PSP screen."
|
||||||
|
#endif
|
||||||
|
"", 2),
|
||||||
|
#ifndef GP2X_BUILD
|
||||||
string_selection_option(NULL, "Screen filtering", yes_no_options,
|
string_selection_option(NULL, "Screen filtering", yes_no_options,
|
||||||
(u32 *)(&screen_filter), 2,
|
(u32 *)(&screen_filter), 2,
|
||||||
"Determines whether or not bilinear filtering should be used when\n"
|
"Determines whether or not bilinear filtering should be used when\n"
|
||||||
"scaling the screen. Selecting this will produce a more even and\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"
|
"smooth image, at the cost of being blurry and having less vibrant\n"
|
||||||
"colors.", 3),
|
"colors.", 3),
|
||||||
|
#endif
|
||||||
string_selection_option(NULL, "Frameskip type", frameskip_options,
|
string_selection_option(NULL, "Frameskip type", frameskip_options,
|
||||||
(u32 *)(¤t_frameskip_type), 3,
|
(u32 *)(¤t_frameskip_type), 3,
|
||||||
"Determines what kind of frameskipping should be employed.\n"
|
"Determines what kind of frameskipping to use.\n"
|
||||||
|
#ifndef GP2X_BUILD
|
||||||
"Frameskipping may improve emulation speed of many games.\n"
|
"Frameskipping may improve emulation speed of many games.\n"
|
||||||
"Off: Do not skip any frames.\n"
|
"Off: Do not skip any frames.\n"
|
||||||
"Auto: Skip up to N frames (see next option) as needed.\n"
|
"Auto: Skip up to N frames (see next option) as needed.\n"
|
||||||
"Manual: Always render only 1 out of N + 1 frames.", 5),
|
"Manual: Always render only 1 out of N + 1 frames."
|
||||||
|
#endif
|
||||||
|
"", 5),
|
||||||
numeric_selection_option(NULL, "Frameskip value", &frameskip_value, 100,
|
numeric_selection_option(NULL, "Frameskip value", &frameskip_value, 100,
|
||||||
|
#ifndef GP2X_BUILD
|
||||||
"For auto frameskip, determines the maximum number of frames that\n"
|
"For auto frameskip, determines the maximum number of frames that\n"
|
||||||
"are allowed to be skipped consecutively.\n"
|
"are allowed to be skipped consecutively.\n"
|
||||||
"For manual frameskip, determines the number of frames that will\n"
|
"For manual frameskip, determines the number of frames that will\n"
|
||||||
"always be skipped.", 6),
|
"always be skipped."
|
||||||
|
#endif
|
||||||
|
"", 6),
|
||||||
string_selection_option(NULL, "Framskip variation",
|
string_selection_option(NULL, "Framskip variation",
|
||||||
frameskip_variation_options, &random_skip, 2,
|
frameskip_variation_options, &random_skip, 2,
|
||||||
|
#ifndef GP2X_BUILD
|
||||||
"If objects in the game flicker at a regular rate certain manual\n"
|
"If objects in the game flicker at a regular rate certain manual\n"
|
||||||
"frameskip values may cause them to normally disappear. Change this\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"
|
"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.", 7),
|
"make the image quality worse, especially in high motion games."
|
||||||
|
#endif
|
||||||
|
"", 7),
|
||||||
string_selection_option(NULL, "Audio output", yes_no_options,
|
string_selection_option(NULL, "Audio output", yes_no_options,
|
||||||
&global_enable_audio, 2,
|
&global_enable_audio, 2,
|
||||||
"Select 'no' to turn off all audio output. This will not result in a\n"
|
"Select 'no' to turn off all audio output. This will\n"
|
||||||
"significant change in performance.", 9),
|
"not result in a significant change in performance.", 9),
|
||||||
#ifndef PSP_BUILD
|
#ifndef PSP_BUILD
|
||||||
string_selection_option(NULL, "Audio buffer", audio_buffer_options,
|
string_selection_option(NULL, "Audio buffer", audio_buffer_options,
|
||||||
&audio_buffer_size_number, 11,
|
&audio_buffer_size_number, 11,
|
||||||
|
@ -1258,16 +1304,28 @@ u32 menu(u16 *original_screen)
|
||||||
cheat_option(8),
|
cheat_option(8),
|
||||||
cheat_option(9),
|
cheat_option(9),
|
||||||
string_selection_option(NULL, "Clock speed",
|
string_selection_option(NULL, "Clock speed",
|
||||||
clock_speed_options, &clock_speed_number, 10,
|
clock_speed_options, &clock_speed_number,
|
||||||
"Change the clock speed of the device. Higher clock speed will yield\n"
|
#ifdef GP2X_BUILD
|
||||||
"better performance, but will use drain battery life further.", 11),
|
15,
|
||||||
|
#else
|
||||||
|
10,
|
||||||
|
#endif
|
||||||
|
"Change the clock speed of the device. Higher clock\n"
|
||||||
|
"speed will yield better performance, but will drain\n"
|
||||||
|
"battery life further.", 11),
|
||||||
string_selection_option(NULL, "Update backup",
|
string_selection_option(NULL, "Update backup",
|
||||||
update_backup_options, &update_backup_flag, 2,
|
update_backup_options, &update_backup_flag, 2,
|
||||||
|
#ifdef GP2X_BUILD
|
||||||
|
"Determines when in-game save files should be\n"
|
||||||
|
"written back to SD card.",
|
||||||
|
#else
|
||||||
"Determines when in-game save files should be written back to\n"
|
"Determines when in-game save files should be written back to\n"
|
||||||
"memstick. If set to 'automatic' writebacks will occur shortly after\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"
|
"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"
|
"back when you exit from this menu (NOT from using the home button).\n"
|
||||||
"Use the latter with extreme care.", 12),
|
"Use the latter with extreme care.",
|
||||||
|
#endif
|
||||||
|
12),
|
||||||
submenu_option(NULL, "Back", "Return to the main menu.", 14)
|
submenu_option(NULL, "Back", "Return to the main menu.", 14)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1277,17 +1335,20 @@ u32 menu(u16 *original_screen)
|
||||||
{
|
{
|
||||||
numeric_selection_action_hide_option(menu_load_state, menu_change_state,
|
numeric_selection_action_hide_option(menu_load_state, menu_change_state,
|
||||||
"Load savestate from current slot", &savestate_slot, 10,
|
"Load savestate from current slot", &savestate_slot, 10,
|
||||||
"Select to load the game state from the current slot for this game.\n"
|
"Select to load the game state from the current slot\n"
|
||||||
|
"for this game.\n"
|
||||||
"Press left + right to change the current slot.", 6),
|
"Press left + right to change the current slot.", 6),
|
||||||
numeric_selection_action_hide_option(menu_save_state, menu_change_state,
|
numeric_selection_action_hide_option(menu_save_state, menu_change_state,
|
||||||
"Save savestate to current slot", &savestate_slot, 10,
|
"Save savestate to current slot", &savestate_slot, 10,
|
||||||
"Select to save the game state to the current slot for this game.\n"
|
"Select to save the game state to the current slot\n"
|
||||||
|
"for this game.\n"
|
||||||
"Press left + right to change the current slot.", 7),
|
"Press left + right to change the current slot.", 7),
|
||||||
numeric_selection_action_hide_option(menu_load_state_file,
|
numeric_selection_action_hide_option(menu_load_state_file,
|
||||||
menu_change_state,
|
menu_change_state,
|
||||||
"Load savestate from file", &savestate_slot, 10,
|
"Load savestate from file", &savestate_slot, 10,
|
||||||
"Restore gameplay from a savestate file.\n"
|
"Restore gameplay from a savestate file.\n"
|
||||||
"Note: The same file used to save the state must be present.\n", 9),
|
"Note: The same file used to save the state must be\n"
|
||||||
|
"present.\n", 9),
|
||||||
numeric_selection_option(menu_change_state,
|
numeric_selection_option(menu_change_state,
|
||||||
"Current savestate slot", &savestate_slot, 10,
|
"Current savestate slot", &savestate_slot, 10,
|
||||||
"Change the current savestate slot.\n", 11),
|
"Change the current savestate slot.\n", 11),
|
||||||
|
@ -1350,7 +1411,8 @@ u32 menu(u16 *original_screen)
|
||||||
gamepad_config_option("Right Trigger", 9),
|
gamepad_config_option("Right Trigger", 9),
|
||||||
gamepad_config_option("Start ", 10),
|
gamepad_config_option("Start ", 10),
|
||||||
gamepad_config_option("Select ", 11),
|
gamepad_config_option("Select ", 11),
|
||||||
submenu_option(NULL, "Back", "Return to the main menu.", 13)
|
gamepad_config_option("Stick Push ", 12),
|
||||||
|
submenu_option(NULL, "Back", "Return to the main menu.", 14)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1381,39 +1443,42 @@ u32 menu(u16 *original_screen)
|
||||||
menu_option_type main_options[] =
|
menu_option_type main_options[] =
|
||||||
{
|
{
|
||||||
submenu_option(&graphics_sound_menu, "Graphics and Sound options",
|
submenu_option(&graphics_sound_menu, "Graphics and Sound options",
|
||||||
"Select to set display parameters and frameskip behavior,\n"
|
"Select to set display parameters and frameskip\n"
|
||||||
"audio on/off, audio buffer size, and audio filtering.", 0),
|
"behavior, audio on/off, buffer size, and filtering.", 0),
|
||||||
numeric_selection_action_option(menu_load_state, NULL,
|
numeric_selection_action_option(menu_load_state, NULL,
|
||||||
"Load state from slot", &savestate_slot, 10,
|
"Load state from slot", &savestate_slot, 10,
|
||||||
"Select to load the game state from the current slot for this game,\n"
|
"Select to load the game state from the current slot\n"
|
||||||
"if it exists (see the extended menu for more information)\n"
|
"for this game, if it exists.\n"
|
||||||
"Press left + right to change the current slot.", 2),
|
"Press left + right to change the current slot.", 2),
|
||||||
numeric_selection_action_option(menu_save_state, NULL,
|
numeric_selection_action_option(menu_save_state, NULL,
|
||||||
"Save state to slot", &savestate_slot, 10,
|
"Save state to slot", &savestate_slot, 10,
|
||||||
"Select to save the game state to the current slot for this game.\n"
|
"Select to save the game state to the current slot\n"
|
||||||
"See the extended menu for more information.\n"
|
"for this game. See the extended menu for more info.\n"
|
||||||
"Press left + right to change the current slot.", 3),
|
"Press left + right to change the current slot.", 3),
|
||||||
submenu_option(&savestate_menu, "Savestate options",
|
submenu_option(&savestate_menu, "Savestate options",
|
||||||
"Select to enter a menu for loading, saving, and viewing the\n"
|
"Select to enter a menu for loading, saving, and\n"
|
||||||
"currently active savestate for this game (or to load a savestate\n"
|
"viewing the currently active savestate for this game\n"
|
||||||
"file from another game)", 4),
|
"(or to load a savestate file from another game)", 4),
|
||||||
submenu_option(&gamepad_config_menu, "Configure gamepad input",
|
submenu_option(&gamepad_config_menu, "Configure gamepad input",
|
||||||
"Select to change the in-game behavior of the PSP buttons and d-pad.",
|
"Select to change the in-game behavior of buttons\n"
|
||||||
6),
|
"and d-pad.", 6),
|
||||||
|
#ifndef GP2X_BUILD
|
||||||
submenu_option(&analog_config_menu, "Configure analog input",
|
submenu_option(&analog_config_menu, "Configure analog input",
|
||||||
"Select to change the in-game behavior of the PSP analog nub.", 7),
|
"Select to change the in-game behavior of the PSP analog nub.", 7),
|
||||||
|
#endif
|
||||||
submenu_option(&cheats_misc_menu, "Cheats and Miscellaneous options",
|
submenu_option(&cheats_misc_menu, "Cheats and Miscellaneous options",
|
||||||
"Select to manage cheats, set backup behavior, and set device clock\n"
|
"Select to manage cheats, set backup behavior,\n"
|
||||||
"speed.", 9),
|
"and set device clock speed.", 9),
|
||||||
action_option(menu_load, NULL, "Load new game",
|
action_option(menu_load, NULL, "Load new game",
|
||||||
"Select to load a new game (will exit a game if currently playing).",
|
"Select to load a new game\n"
|
||||||
11),
|
"(will exit a game if currently playing).", 11),
|
||||||
action_option(menu_restart, NULL, "Restart game",
|
action_option(menu_restart, NULL, "Restart game",
|
||||||
"Select to reset the GBA with the current game loaded.", 12),
|
"Select to reset the GBA with the current game\n"
|
||||||
|
"loaded.", 12),
|
||||||
action_option(menu_exit, NULL, "Return to game",
|
action_option(menu_exit, NULL, "Return to game",
|
||||||
"Select to exit this menu and resume gameplay.", 13),
|
"Select to exit this menu and resume gameplay.", 13),
|
||||||
action_option(menu_quit, NULL, "Exit gpSP",
|
action_option(menu_quit, NULL, "Exit gpSP",
|
||||||
"Select to exit gpSP and return to the PSP XMB/loader.", 15)
|
"Select to exit gpSP and return to the menu.", 15)
|
||||||
};
|
};
|
||||||
|
|
||||||
make_menu(main, submenu_main, NULL);
|
make_menu(main, submenu_main, NULL);
|
||||||
|
@ -1440,10 +1505,16 @@ u32 menu(u16 *original_screen)
|
||||||
{
|
{
|
||||||
for(i = 0; i < 6; i++)
|
for(i = 0; i < 6; i++)
|
||||||
{
|
{
|
||||||
print_string_pad(" ", COLOR_BG, COLOR_BG, 30, 210 + (i * 10), 70);
|
print_string_pad(" ", COLOR_BG, COLOR_BG, 8, 210 + (i * 10), 70);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef PSP_BUILD
|
||||||
|
clock_speed_number = (clock_speed / 33) - 1;
|
||||||
|
#elif defined(GP2X_BUILD)
|
||||||
|
clock_speed_number = (clock_speed - 150) / 10;
|
||||||
|
#endif
|
||||||
|
|
||||||
video_resolution_large();
|
video_resolution_large();
|
||||||
|
|
||||||
#ifndef GP2X_BUILD
|
#ifndef GP2X_BUILD
|
||||||
|
@ -1516,7 +1587,7 @@ u32 menu(u16 *original_screen)
|
||||||
}
|
}
|
||||||
|
|
||||||
print_string(current_option->help_string, COLOR_HELP_TEXT,
|
print_string(current_option->help_string, COLOR_HELP_TEXT,
|
||||||
COLOR_BG, 30, 210);
|
COLOR_BG, 8, 210);
|
||||||
|
|
||||||
flip_screen();
|
flip_screen();
|
||||||
|
|
||||||
|
@ -1593,10 +1664,17 @@ u32 menu(u16 *original_screen)
|
||||||
set_gba_resolution(screen_scale);
|
set_gba_resolution(screen_scale);
|
||||||
video_resolution_small();
|
video_resolution_small();
|
||||||
|
|
||||||
clock_speed = (clock_speed_number + 1) * 33;
|
|
||||||
|
|
||||||
#ifdef PSP_BUILD
|
#ifdef PSP_BUILD
|
||||||
|
clock_speed = (clock_speed_number + 1) * 33;
|
||||||
scePowerSetClockFrequency(clock_speed, clock_speed, clock_speed / 2);
|
scePowerSetClockFrequency(clock_speed, clock_speed, clock_speed / 2);
|
||||||
|
#elif defined(GP2X_BUILD)
|
||||||
|
clock_speed = 150 + clock_speed_number * 10;
|
||||||
|
if (clock_speed != clock_speed_old)
|
||||||
|
{
|
||||||
|
printf("about to set CPU clock to %iMHz\n", clock_speed);
|
||||||
|
set_FCLK(clock_speed);
|
||||||
|
clock_speed_old = clock_speed;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SDL_PauseAudio(0);
|
SDL_PauseAudio(0);
|
||||||
|
|
6
input.c
6
input.c
|
@ -513,7 +513,7 @@ u32 update_input()
|
||||||
{
|
{
|
||||||
static u32 rapidfire_flag = 1;
|
static u32 rapidfire_flag = 1;
|
||||||
static u32 last_buttons;
|
static u32 last_buttons;
|
||||||
u32 non_repeat_buttons;
|
u32 handled_buttons;
|
||||||
u32 button_id;
|
u32 button_id;
|
||||||
u32 new_key = 0;
|
u32 new_key = 0;
|
||||||
u32 buttons = gpsp_gp2x_joystick_read();
|
u32 buttons = gpsp_gp2x_joystick_read();
|
||||||
|
@ -525,12 +525,12 @@ u32 update_input()
|
||||||
buttons |= GP2X_VOL_MIDDLE;
|
buttons |= GP2X_VOL_MIDDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
non_repeat_buttons = (last_buttons ^ buttons) & buttons;
|
handled_buttons = ((last_buttons ^ buttons) | GP2X_VOL_DOWN | GP2X_VOL_UP) & buttons;
|
||||||
last_buttons = buttons;
|
last_buttons = buttons;
|
||||||
|
|
||||||
for(i = 0; i < 16; i++)
|
for(i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
if(non_repeat_buttons & button_gp2x_mask_to_config[i])
|
if(handled_buttons & button_gp2x_mask_to_config[i])
|
||||||
button_id = gamepad_config_map[i];
|
button_id = gamepad_config_map[i];
|
||||||
else
|
else
|
||||||
button_id = BUTTON_ID_NONE;
|
button_id = BUTTON_ID_NONE;
|
||||||
|
|
9
main.c
9
main.c
|
@ -84,7 +84,11 @@ u32 oam_update_count = 0;
|
||||||
u32 synchronize_flag = 1;
|
u32 synchronize_flag = 1;
|
||||||
|
|
||||||
u32 update_backup_flag = 1;
|
u32 update_backup_flag = 1;
|
||||||
|
#ifdef GP2X_BUILD
|
||||||
|
u32 clock_speed = 200;
|
||||||
|
#else
|
||||||
u32 clock_speed = 333;
|
u32 clock_speed = 333;
|
||||||
|
#endif
|
||||||
u8 main_path[512];
|
u8 main_path[512];
|
||||||
|
|
||||||
void trigger_ext_event();
|
void trigger_ext_event();
|
||||||
|
@ -351,7 +355,7 @@ int main(int argc, char *argv[])
|
||||||
current_savestate_filename);
|
current_savestate_filename);
|
||||||
load_state(current_savestate_filename); */
|
load_state(current_savestate_filename); */
|
||||||
|
|
||||||
debug_on();
|
// debug_on();
|
||||||
|
|
||||||
if(argc > 2)
|
if(argc > 2)
|
||||||
{
|
{
|
||||||
|
@ -1008,7 +1012,8 @@ void get_ticks_us(u64 *ticks_return)
|
||||||
|
|
||||||
void delay_us(u32 us_count)
|
void delay_us(u32 us_count)
|
||||||
{
|
{
|
||||||
usleep(us_count);
|
//usleep(us_count);
|
||||||
|
SDL_Delay(us_count / 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void get_ticks_us(u64 *ticks_return)
|
void get_ticks_us(u64 *ticks_return)
|
||||||
|
|
34
video.c
34
video.c
|
@ -3406,6 +3406,13 @@ void flip_screen()
|
||||||
SDL_Rect drect = {40, 40, 240, 160};
|
SDL_Rect drect = {40, 40, 240, 160};
|
||||||
SDL_BlitSurface(screen, &srect, hw_screen, &drect);
|
SDL_BlitSurface(screen, &srect, hw_screen, &drect);
|
||||||
}
|
}
|
||||||
|
else if((screen_scale == scaled_aspect) &&
|
||||||
|
(resolution_width == small_resolution_width) &&
|
||||||
|
(resolution_height == small_resolution_height))
|
||||||
|
{
|
||||||
|
SDL_Rect drect = {0, 10, 0, 0};
|
||||||
|
SDL_BlitSurface(screen, NULL, hw_screen, &drect);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SDL_BlitSurface(screen, NULL, hw_screen, NULL);
|
SDL_BlitSurface(screen, NULL, hw_screen, NULL);
|
||||||
|
@ -3673,11 +3680,18 @@ void video_resolution_small()
|
||||||
current_scale = screen_scale;
|
current_scale = screen_scale;
|
||||||
|
|
||||||
#ifdef GP2X_BUILD
|
#ifdef GP2X_BUILD
|
||||||
|
int w, h;
|
||||||
SDL_FreeSurface(screen);
|
SDL_FreeSurface(screen);
|
||||||
SDL_GP2X_AllowGfxMemory(NULL, 0);
|
SDL_GP2X_AllowGfxMemory(NULL, 0);
|
||||||
hw_screen = SDL_SetVideoMode((screen_scale == unscaled ? 320 :
|
|
||||||
small_resolution_width * video_scale), (screen_scale == unscaled ? 320 :
|
w = 320; h = 240;
|
||||||
small_resolution_height * video_scale), 16, SDL_HWSURFACE);
|
if (screen_scale != unscaled)
|
||||||
|
{
|
||||||
|
w = small_resolution_width * video_scale;
|
||||||
|
h = small_resolution_height * video_scale;
|
||||||
|
}
|
||||||
|
if (screen_scale == scaled_aspect) h += 20;
|
||||||
|
hw_screen = SDL_SetVideoMode(w, h, 16, SDL_HWSURFACE);
|
||||||
|
|
||||||
screen = SDL_CreateRGBSurface(SDL_HWSURFACE,
|
screen = SDL_CreateRGBSurface(SDL_HWSURFACE,
|
||||||
small_resolution_width * video_scale, small_resolution_height *
|
small_resolution_width * video_scale, small_resolution_height *
|
||||||
|
@ -3768,7 +3782,7 @@ void print_string_ext(const char *str, u16 fg_color, u16 bg_color,
|
||||||
|
|
||||||
|
|
||||||
/* EDIT */
|
/* EDIT */
|
||||||
if(y + FONT_HEIGHT >= resolution_height)
|
if(y + FONT_HEIGHT > resolution_height)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
while(current_char)
|
while(current_char)
|
||||||
|
@ -3812,8 +3826,13 @@ void print_string_ext(const char *str, u16 fg_color, u16 bg_color,
|
||||||
str_index++;
|
str_index++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(current_x + FONT_WIDTH >= resolution_width /* EDIT */)
|
if(current_x + FONT_WIDTH > resolution_width /* EDIT */)
|
||||||
break;
|
{
|
||||||
|
while (current_char && current_char != '\n')
|
||||||
|
{
|
||||||
|
current_char = str[str_index++];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3923,7 +3942,8 @@ void debug_screen_printl(const char *format, ...)
|
||||||
|
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
debug_screen_printf(format, ap);
|
debug_screen_printf(format, ap);
|
||||||
debug_screen_printf("\n");
|
debug_screen_newline(1);
|
||||||
|
// debug_screen_printf("\n");
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue