tweaks from 2008 (gpsp09-2xb_3)
This commit is contained in:
		
							parent
							
								
									010878638d
								
							
						
					
					
						commit
						9020645032
					
				
					 6 changed files with 177 additions and 53 deletions
				
			
		| 
						 | 
					@ -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…
	
	Add table
		
		Reference in a new issue