Skip to content

Commit

Permalink
- Save system settings in configuration file.
Browse files Browse the repository at this point in the history
- Set English language for non-PAL games.
  • Loading branch information
Extrems committed Aug 17, 2024
1 parent b8e2342 commit c43bfd7
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 9 deletions.
18 changes: 18 additions & 0 deletions cube/swiss/source/config/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down Expand Up @@ -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)) {
Expand Down Expand Up @@ -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;
}
2 changes: 2 additions & 0 deletions cube/swiss/source/config/sram.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
2 changes: 1 addition & 1 deletion cube/swiss/source/gui/info.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down
7 changes: 2 additions & 5 deletions cube/swiss/source/gui/settings.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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:
{
Expand Down
2 changes: 1 addition & 1 deletion cube/swiss/source/gui/settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand Down
5 changes: 3 additions & 2 deletions cube/swiss/source/swiss.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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 */
Expand Down

0 comments on commit c43bfd7

Please sign in to comment.