diff --git a/cube/swiss/source/config/config.c b/cube/swiss/source/config/config.c index 0e1b5ef4..52b641a6 100644 --- a/cube/swiss/source/config/config.c +++ b/cube/swiss/source/config/config.c @@ -146,6 +146,9 @@ int config_update_global(bool checkConfigDevice) { // Write out Swiss settings fprintf(fp, "# Swiss Configuration File!\r\n# Anything written in here will be lost!\r\n\r\n#!!Swiss Settings Start!!\r\n"); fprintf(fp, "SD/IDE Speed=%s\r\n", swissSettings.exiSpeed ? "32MHz":"16MHz"); + fprintf(fp, "System Sound=%s\r\n", swissSettings.sramStereo ? "Stereo":"Mono"); + fprintf(fp, "Screen Position=%+hi\r\n", swissSettings.sramHOffset); + fprintf(fp, "System Language=%s\r\n", sramLang[swissSettings.sramLanguage]); fprintf(fp, "Swiss Video Mode=%s\r\n", uiVModeStr[swissSettings.uiVMode]); fprintf(fp, "Enable Debug=%s\r\n", swissSettings.debugUSB ? "Yes":"No"); fprintf(fp, "Hide Unknown file types=%s\r\n", swissSettings.hideUnknownFileTypes ? "Yes":"No"); @@ -729,6 +732,20 @@ void config_parse_global(char *configData) { else if(!strcmp("SD/IDE Speed", name)) { swissSettings.exiSpeed = !strcmp("32MHz", value); } + else if(!strcmp("System Sound", name)) { + swissSettings.sramStereo = !strcmp("Stereo", value); + } + else if(!strcmp("Screen Position", name)) { + swissSettings.sramHOffset = atoi(value); + } + else if(!strcmp("System Language", name)) { + for(int i = 0; i < SRAM_LANG_MAX; i++) { + if(!strcmp(sramLang[i], value)) { + swissSettings.sramLanguage = i; + break; + } + } + } else if(!strcmp("Swiss Video Mode", name)) { for(int i = 0; i < 5; i++) { if(!strcmp(uiVModeStr[i], value)) { @@ -1178,5 +1195,6 @@ void config_unload_current() { swissSettings.emulateReadSpeed = backup.emulateReadSpeed; swissSettings.emulateEthernet = backup.emulateEthernet; swissSettings.preferCleanBoot = backup.preferCleanBoot; + swissSettings.sramLanguage = backup.sramLanguage; swissSettings.sramVideo = backup.sramVideo; } diff --git a/cube/swiss/source/config/sram.c b/cube/swiss/source/config/sram.c index ededf1dc..64b748d3 100644 --- a/cube/swiss/source/config/sram.c +++ b/cube/swiss/source/config/sram.c @@ -57,6 +57,8 @@ void refreshSRAM(SwissSettings *settings) settings->sramHOffset = SYS_GetDisplayOffsetH(); settings->sram60Hz = SYS_GetEuRGB60(); settings->sramLanguage = SYS_GetLanguage(); + if (settings->sramLanguage > SYS_LANG_ENGLISH_US) + settings->sramLanguage = SYS_LANG_ENGLISH; settings->sramProgressive = SYS_GetProgressiveScan(); settings->sramStereo = SYS_GetSoundMode(); settings->sramVideo = SYS_GetVideoMode(); diff --git a/cube/swiss/source/gui/info.c b/cube/swiss/source/gui/info.c index aa584523..fef6a608 100644 --- a/cube/swiss/source/gui/info.c +++ b/cube/swiss/source/gui/info.c @@ -135,7 +135,7 @@ uiDrawObj_t * info_draw_page(int page_num) { DrawAddChild(container, DrawStyledLabel(640/2, 210, (char*)"AUDIO", 0.65f, true, defaultColor)); DrawAddChild(container, DrawStyledLabel(640/2, 226, (char*)(swissSettings.sramStereo ? "Stereo" : "Mono"), 0.75f, true, defaultColor)); DrawAddChild(container, DrawStyledLabel(640/2, 250, (char*)"LANGUAGE", 0.65f, true, defaultColor)); - DrawAddChild(container, DrawStyledLabel(640/2, 266, (char*)(swissSettings.sramLanguage > SRAM_LANG_MAX ? "Unknown" : sramLang[swissSettings.sramLanguage]), 0.75f, true, defaultColor)); + DrawAddChild(container, DrawStyledLabel(640/2, 266, (char*)(sramLang[swissSettings.sramLanguage]), 0.75f, true, defaultColor)); // GC 00083214, 00083410 DrawAddChild(container, DrawStyledLabel(640/2, 290, (char*)"CPU PVR", 0.65f, true, defaultColor)); diff --git a/cube/swiss/source/gui/settings.c b/cube/swiss/source/gui/settings.c index 7c0aa34d..19d4c0da 100644 --- a/cube/swiss/source/gui/settings.c +++ b/cube/swiss/source/gui/settings.c @@ -224,7 +224,7 @@ uiDrawObj_t* settings_draw_page(int page_num, int option, ConfigEntry *gameConfi drawSettingEntryString(page, &page_y_ofs, "System Sound:", swissSettings.sramStereo ? "Stereo":"Mono", option == SET_SYS_SOUND, true); sprintf(sramHOffsetStr, "%+hi", swissSettings.sramHOffset); drawSettingEntryString(page, &page_y_ofs, "Screen Position:", sramHOffsetStr, option == SET_SCREEN_POS, true); - drawSettingEntryString(page, &page_y_ofs, "System Language:", swissSettings.sramLanguage > SRAM_LANG_MAX ? "Unknown" : sramLang[swissSettings.sramLanguage], option == SET_SYS_LANG, true); + drawSettingEntryString(page, &page_y_ofs, "System Language:", sramLang[swissSettings.sramLanguage], option == SET_SYS_LANG, true); drawSettingEntryString(page, &page_y_ofs, "Configuration Device:", getConfigDeviceName(&swissSettings), option == SET_CONFIG_DEV, true); drawSettingEntryString(page, &page_y_ofs, "Swiss Video Mode:", uiVModeStr[swissSettings.uiVMode], option == SET_SWISS_VIDEOMODE, true); drawSettingEntryString(page, &page_y_ofs, "File Browser Type:", fileBrowserStr[swissSettings.fileBrowserType], option == SET_FILEBROWSER_TYPE, true); @@ -409,10 +409,7 @@ void settings_toggle(int page, int option, int direction, ConfigEntry *gameConfi break; case SET_SYS_LANG: swissSettings.sramLanguage += direction; - if(swissSettings.sramLanguage > SYS_LANG_DUTCH) - swissSettings.sramLanguage = SYS_LANG_ENGLISH; - if(swissSettings.sramLanguage < SYS_LANG_ENGLISH) - swissSettings.sramLanguage = SYS_LANG_DUTCH; + swissSettings.sramLanguage = ((s8)swissSettings.sramLanguage + SRAM_LANG_MAX) % SRAM_LANG_MAX; break; case SET_CONFIG_DEV: { diff --git a/cube/swiss/source/gui/settings.h b/cube/swiss/source/gui/settings.h index 92422e8e..a666d0d0 100644 --- a/cube/swiss/source/gui/settings.h +++ b/cube/swiss/source/gui/settings.h @@ -154,7 +154,7 @@ extern char *aveCompatStr[]; extern char *fileBrowserStr[]; extern char *bs2BootStr[]; extern char *recentListLevelStr[]; -#define SRAM_LANG_MAX 7 +#define SRAM_LANG_MAX 8 extern char *sramLang[]; int show_settings(int page, int option, ConfigEntry *config); diff --git a/cube/swiss/source/swiss.c b/cube/swiss/source/swiss.c index caad6171..b05f9fa4 100644 --- a/cube/swiss/source/swiss.c +++ b/cube/swiss/source/swiss.c @@ -83,7 +83,8 @@ void ogc_video__reset() int i; swissSettings.fontEncode = region == 'J'; - + if(region != 'P') + swissSettings.sramLanguage = SYS_LANG_ENGLISH; if(region == 'P') swissSettings.sramVideo = SYS_VIDEO_PAL; else if(swissSettings.sramVideo == SYS_VIDEO_PAL) @@ -114,7 +115,7 @@ void ogc_video__reset() } else swissSettings.gameVMode = 0; - if(!strncmp(gameID, "GB3E51", 6) || (!strncmp(gameID, "G2OE41", 6) && swissSettings.sramLanguage == SYS_LANG_SPANISH)) + if(!strncmp(gameID, "GB3E51", 6)) swissSettings.sramProgressive = 0; /* set TV mode for current game */