+added configurable screen width scaling in menu options

This commit is contained in:
ekeeke31 2009-05-14 16:13:19 +00:00
parent cead1c2364
commit 70af97e256
5 changed files with 32 additions and 20 deletions

View File

@ -89,6 +89,8 @@ void config_default(void)
config.bilinear = 1; config.bilinear = 1;
/* controllers options */ /* controllers options */
input.system[0] = SYSTEM_GAMEPAD;
input.system[1] = SYSTEM_GAMEPAD;
gx_input_SetDefault(); gx_input_SetDefault();
config.gun_cursor[0] = 1; config.gun_cursor[0] = 1;
config.gun_cursor[1] = 1; config.gun_cursor[1] = 1;
@ -104,12 +106,14 @@ void config_default(void)
config.bg_color = 0; config.bg_color = 0;
config.bgm_volume = 100.0; config.bgm_volume = 100.0;
config.sfx_volume = 100.0; config.sfx_volume = 100.0;
config.screen_w = 658;
#ifdef HW_RVL
if (CONF_GetAspectRatio() == CONF_ASPECT_16_9)
config.screen_w = 672;
#endif
/* restore saved configuration */ /* restore saved configuration */
config_load(); config_load();
input.system[0] = SYSTEM_GAMEPAD;
input.system[1] = SYSTEM_GAMEPAD;
io_reset(); io_reset();
} }

View File

@ -59,6 +59,7 @@ typedef struct
float sfx_volume; float sfx_volume;
int8 sram_auto; int8 sram_auto;
int8 state_auto; int8 state_auto;
uint16 screen_w;
} t_config; } t_config;
/* Global data */ /* Global data */

View File

@ -257,13 +257,14 @@ static gui_item items_video[8] =
}; };
/* Preferences menu */ /* Preferences menu */
static gui_item items_prefs[5] = static gui_item items_prefs[6] =
{ {
{NULL,NULL,"Auto SRAM: OFF", "Enable/disable automatic SRAM", 52,132,276,48}, {NULL,NULL,"Auto SRAM: OFF", "Enable/disable automatic SRAM", 52,132,276,48},
{NULL,NULL,"Auto STATE: OFF", "Enable/disable automatic Savestate", 52,132,276,48}, {NULL,NULL,"Auto STATE: OFF", "Enable/disable automatic Savestate", 52,132,276,48},
{NULL,NULL,"SFX Volume: 100", "Adjust sound effects volume", 52,132,276,48}, {NULL,NULL,"SFX Volume: 100", "Adjust sound effects volume", 52,132,276,48},
{NULL,NULL,"BGM Volume: 100", "Adjust background music volume", 52,132,276,48}, {NULL,NULL,"BGM Volume: 100", "Adjust background music volume", 52,132,276,48},
{NULL,NULL,"BG Color: DEFAULT", "Change background color", 52,132,276,48} {NULL,NULL,"BG Color: DEFAULT", "Change background color", 52,132,276,48},
{NULL,NULL,"Screen Width: 658", "Adjust Screen Width", 52,132,276,48}
}; };
/*****************************************************************************/ /*****************************************************************************/
@ -454,7 +455,7 @@ static gui_menu menu_prefs =
{ {
"Menu Settings", "Menu Settings",
0,0, 0,0,
5,4,6, 6,4,6,
items_prefs, items_prefs,
buttons_list, buttons_list,
bg_list, bg_list,
@ -608,6 +609,7 @@ static void prefmenu ()
sprintf (items[3].text, "BGM Volume: %1.1f", config.bgm_volume); sprintf (items[3].text, "BGM Volume: %1.1f", config.bgm_volume);
if (config.bg_color) sprintf (items[4].text, "BG Color: Type %d", config.bg_color); if (config.bg_color) sprintf (items[4].text, "BG Color: Type %d", config.bg_color);
else sprintf (items[4].text, "BG Color: DEFAULT"); else sprintf (items[4].text, "BG Color: DEFAULT");
sprintf (items[5].text, "Screen Width: %d", config.screen_w);
GUI_InitMenu(m); GUI_InitMenu(m);
GUI_SlideMenuTitle(m,strlen("Menu ")); GUI_SlideMenuTitle(m,strlen("Menu "));
@ -660,12 +662,24 @@ static void prefmenu ()
if (ret < 0) config.bg_color --; if (ret < 0) config.bg_color --;
else config.bg_color ++; else config.bg_color ++;
if (config.bg_color < 0) config.bg_color = BG_COLOR_MAX - 1; if (config.bg_color < 0) config.bg_color = BG_COLOR_MAX - 1;
if (config.bg_color >= BG_COLOR_MAX) config.bg_color = 0; else if (config.bg_color >= BG_COLOR_MAX) config.bg_color = 0;
if (config.bg_color) sprintf (items[4].text, "BG Color: Type %d", config.bg_color); if (config.bg_color) sprintf (items[4].text, "BG Color: Type %d", config.bg_color);
else sprintf (items[4].text, "BG Color: DEFAULT"); else sprintf (items[4].text, "BG Color: DEFAULT");
GUI_SetBgColor(bg_colors[config.bg_color]); GUI_SetBgColor(bg_colors[config.bg_color]);
break; break;
case 5:
case -7:
if (ret < 0) config.screen_w --;
else config.screen_w ++;
if (config.screen_w < 640) config.screen_w = VI_MAX_WIDTH_NTSC;
else if (config.screen_w > VI_MAX_WIDTH_NTSC) config.screen_w = 640;
vmode->viWidth = config.screen_w;
vmode->viXOrigin = (VI_MAX_WIDTH_NTSC - vmode->viWidth)/2;
VIDEO_Configure(vmode);
sprintf (items[5].text, "Screen Width: %d", config.screen_w);
break;
case -1: case -1:
quit = 1; quit = 1;
break; break;

View File

@ -1226,6 +1226,10 @@ void gx_video_Stop(void)
/* reset VI */ /* reset VI */
gxDrawScreenshot(0xff); gxDrawScreenshot(0xff);
/* adjust overscan */
vmode->viWidth = config.screen_w;
vmode->viXOrigin = (VI_MAX_WIDTH_NTSC - vmode->viWidth)/2;
VIDEO_Configure(vmode); VIDEO_Configure(vmode);
VIDEO_SetPreRetraceCallback(NULL); VIDEO_SetPreRetraceCallback(NULL);
VIDEO_SetPostRetraceCallback(gx_input_UpdateMenu); VIDEO_SetPostRetraceCallback(gx_input_UpdateMenu);
@ -1458,17 +1462,6 @@ void gx_video_Init(void)
break; break;
} }
/* adjust overscan */
vmode->viWidth = 658;
vmode->viXOrigin = (VI_MAX_WIDTH_NTSC - 658)/2;
#ifdef HW_RVL
if (CONF_GetAspectRatio())
{
vmode->viWidth = 672;
vmode->viXOrigin = (VI_MAX_WIDTH_NTSC - 672)/2;
}
#endif
/* Configure VI */ /* Configure VI */
VIDEO_Configure (vmode); VIDEO_Configure (vmode);

View File

@ -27,9 +27,9 @@
#define DEFAULT_PATH "/genplus" #define DEFAULT_PATH "/genplus"
#ifdef HW_RVL #ifdef HW_RVL
#define VERSION "version 1.3.2W" #define VERSION "version 1.3.xW"
#else #else
#define VERSION "version 1.3.2G" #define VERSION "version 1.3.XG"
#endif #endif
/* globals */ /* globals */