diff --git a/README.txt b/README.txt index c4297f5..68beea5 100644 --- a/README.txt +++ b/README.txt @@ -7,6 +7,13 @@ Snes9x TX is a fork of Snes9x GX: https://github.com/dborth/snes9xgx Update History -------------- +---Snes9x TX 1.0.9c--- +---May 20 2022--- + +- Added option to turn it on/off stereo inversion in audio settings + enabled by default to fix Wii inverted L/R audio channels +- Updated all language files + ---Snes9x TX 1.0.9b--- ---May 19 2022--- diff --git a/hbc/icon.png b/hbc/icon.png index 36ef2e7..b858832 100644 Binary files a/hbc/icon.png and b/hbc/icon.png differ diff --git a/hbc/meta.xml b/hbc/meta.xml index 2d08d74..b018abf 100644 --- a/hbc/meta.xml +++ b/hbc/meta.xml @@ -2,8 +2,8 @@ Snes9x TX Tanooki - 1.0.9 - 20220519 + 1.0.9c + 20220520 Super Nintendo Emulator Snes9x TX is a fork of Snes9x GX on Wii. diff --git a/source/images/battery.png b/source/images/battery.png index c0e5dc1..4a6a8a9 100644 Binary files a/source/images/battery.png and b/source/images/battery.png differ diff --git a/source/images/battery_bar.png b/source/images/battery_bar.png index ec82bdc..6670a4b 100644 Binary files a/source/images/battery_bar.png and b/source/images/battery_bar.png differ diff --git a/source/images/bg_bottom.png b/source/images/bg_bottom.png index 941d84e..5c293d6 100644 Binary files a/source/images/bg_bottom.png and b/source/images/bg_bottom.png differ diff --git a/source/images/bg_game_selection.png b/source/images/bg_game_selection.png index ece648c..ae220bc 100644 Binary files a/source/images/bg_game_selection.png and b/source/images/bg_game_selection.png differ diff --git a/source/images/bg_game_selection_entry.png b/source/images/bg_game_selection_entry.png index a329901..aeb6379 100644 Binary files a/source/images/bg_game_selection_entry.png and b/source/images/bg_game_selection_entry.png differ diff --git a/source/images/bg_options.png b/source/images/bg_options.png index 1c46b81..fbf7577 100644 Binary files a/source/images/bg_options.png and b/source/images/bg_options.png differ diff --git a/source/images/bg_options_entry.png b/source/images/bg_options_entry.png index c758a03..4253887 100644 Binary files a/source/images/bg_options_entry.png and b/source/images/bg_options_entry.png differ diff --git a/source/images/bg_preview.png b/source/images/bg_preview.png index 4a616a8..574cb62 100644 Binary files a/source/images/bg_preview.png and b/source/images/bg_preview.png differ diff --git a/source/images/bg_top.png b/source/images/bg_top.png index 7f8e392..415d396 100644 Binary files a/source/images/bg_top.png and b/source/images/bg_top.png differ diff --git a/source/images/button.png b/source/images/button.png index a8f4624..0388a0e 100644 Binary files a/source/images/button.png and b/source/images/button.png differ diff --git a/source/images/button_arrow_down.png b/source/images/button_arrow_down.png index 7f673b5..28ca455 100644 Binary files a/source/images/button_arrow_down.png and b/source/images/button_arrow_down.png differ diff --git a/source/images/button_arrow_left.png b/source/images/button_arrow_left.png index 5f7d4ba..65355e8 100644 Binary files a/source/images/button_arrow_left.png and b/source/images/button_arrow_left.png differ diff --git a/source/images/button_arrow_right.png b/source/images/button_arrow_right.png index e95ddc9..d538d63 100644 Binary files a/source/images/button_arrow_right.png and b/source/images/button_arrow_right.png differ diff --git a/source/images/button_arrow_up.png b/source/images/button_arrow_up.png index 3dcdcfb..bb2da97 100644 Binary files a/source/images/button_arrow_up.png and b/source/images/button_arrow_up.png differ diff --git a/source/images/button_gamesave.png b/source/images/button_gamesave.png index 1ba6976..b5a75a6 100644 Binary files a/source/images/button_gamesave.png and b/source/images/button_gamesave.png differ diff --git a/source/images/button_gamesave_blank.png b/source/images/button_gamesave_blank.png index 0b85864..58b9da5 100644 Binary files a/source/images/button_gamesave_blank.png and b/source/images/button_gamesave_blank.png differ diff --git a/source/images/button_gamesave_over.png b/source/images/button_gamesave_over.png index 956ec6b..ef17b2c 100644 Binary files a/source/images/button_gamesave_over.png and b/source/images/button_gamesave_over.png differ diff --git a/source/images/button_large.png b/source/images/button_large.png index 3bdfd5c..6880d05 100644 Binary files a/source/images/button_large.png and b/source/images/button_large.png differ diff --git a/source/images/button_large_over.png b/source/images/button_large_over.png index d1e01b4..714d625 100644 Binary files a/source/images/button_large_over.png and b/source/images/button_large_over.png differ diff --git a/source/images/button_long.png b/source/images/button_long.png index 6693a7b..046c7d5 100644 Binary files a/source/images/button_long.png and b/source/images/button_long.png differ diff --git a/source/images/button_long_over.png b/source/images/button_long_over.png index d069a14..bd216dc 100644 Binary files a/source/images/button_long_over.png and b/source/images/button_long_over.png differ diff --git a/source/images/button_over.png b/source/images/button_over.png index fc0abc3..3a1925d 100644 Binary files a/source/images/button_over.png and b/source/images/button_over.png differ diff --git a/source/images/button_prompt.png b/source/images/button_prompt.png index 737708c..fa32095 100644 Binary files a/source/images/button_prompt.png and b/source/images/button_prompt.png differ diff --git a/source/images/button_prompt_over.png b/source/images/button_prompt_over.png index c0762c2..3a1925d 100644 Binary files a/source/images/button_prompt_over.png and b/source/images/button_prompt_over.png differ diff --git a/source/images/button_short.png b/source/images/button_short.png index 3a661b3..ecedc4a 100644 Binary files a/source/images/button_short.png and b/source/images/button_short.png differ diff --git a/source/images/button_short_over.png b/source/images/button_short_over.png index 753cd4e..580cc66 100644 Binary files a/source/images/button_short_over.png and b/source/images/button_short_over.png differ diff --git a/source/images/button_small.png b/source/images/button_small.png index 1a06496..79e1273 100644 Binary files a/source/images/button_small.png and b/source/images/button_small.png differ diff --git a/source/images/button_small_over.png b/source/images/button_small_over.png index f608195..bd0ca23 100644 Binary files a/source/images/button_small_over.png and b/source/images/button_small_over.png differ diff --git a/source/images/credits_box.png b/source/images/credits_box.png index 4f87beb..6f5799b 100644 Binary files a/source/images/credits_box.png and b/source/images/credits_box.png differ diff --git a/source/images/dialogue_box.png b/source/images/dialogue_box.png index 67cbadd..33f47dd 100644 Binary files a/source/images/dialogue_box.png and b/source/images/dialogue_box.png differ diff --git a/source/images/icon_game_cheats.png b/source/images/icon_game_cheats.png index ab4f81c..ae35270 100644 Binary files a/source/images/icon_game_cheats.png and b/source/images/icon_game_cheats.png differ diff --git a/source/images/icon_game_controllers.png b/source/images/icon_game_controllers.png index 9c30788..94c64ac 100644 Binary files a/source/images/icon_game_controllers.png and b/source/images/icon_game_controllers.png differ diff --git a/source/images/icon_game_delete.png b/source/images/icon_game_delete.png index f52082b..af897a8 100644 Binary files a/source/images/icon_game_delete.png and b/source/images/icon_game_delete.png differ diff --git a/source/images/icon_game_load.png b/source/images/icon_game_load.png index bb2af65..b055c8b 100644 Binary files a/source/images/icon_game_load.png and b/source/images/icon_game_load.png differ diff --git a/source/images/icon_game_reset.png b/source/images/icon_game_reset.png index 1c67096..09c1dc1 100644 Binary files a/source/images/icon_game_reset.png and b/source/images/icon_game_reset.png differ diff --git a/source/images/icon_game_save.png b/source/images/icon_game_save.png index 338404a..1fe2bb2 100644 Binary files a/source/images/icon_game_save.png and b/source/images/icon_game_save.png differ diff --git a/source/images/icon_game_settings.png b/source/images/icon_game_settings.png index 6b34583..e91552b 100644 Binary files a/source/images/icon_game_settings.png and b/source/images/icon_game_settings.png differ diff --git a/source/images/icon_settings_audio.png b/source/images/icon_settings_audio.png index be9ef57..d9eb7a6 100644 Binary files a/source/images/icon_settings_audio.png and b/source/images/icon_settings_audio.png differ diff --git a/source/images/icon_settings_mappings.png b/source/images/icon_settings_mappings.png index b61b707..3e5e1cb 100644 Binary files a/source/images/icon_settings_mappings.png and b/source/images/icon_settings_mappings.png differ diff --git a/source/images/icon_settings_menu.png b/source/images/icon_settings_menu.png index e118aae..11aaef1 100644 Binary files a/source/images/icon_settings_menu.png and b/source/images/icon_settings_menu.png differ diff --git a/source/images/icon_settings_screenshot.png b/source/images/icon_settings_screenshot.png index b7af6ae..93196fb 100644 Binary files a/source/images/icon_settings_screenshot.png and b/source/images/icon_settings_screenshot.png differ diff --git a/source/images/icon_settings_snescontroller.png b/source/images/icon_settings_snescontroller.png index 2fbd603..a52e69b 100644 Binary files a/source/images/icon_settings_snescontroller.png and b/source/images/icon_settings_snescontroller.png differ diff --git a/source/images/icon_settings_turbo.png b/source/images/icon_settings_turbo.png index 5735425..e219ce8 100644 Binary files a/source/images/icon_settings_turbo.png and b/source/images/icon_settings_turbo.png differ diff --git a/source/images/icon_settings_video.png b/source/images/icon_settings_video.png index 20a1d35..4c6d1be 100644 Binary files a/source/images/icon_settings_video.png and b/source/images/icon_settings_video.png differ diff --git a/source/images/keyboard_key_over.png b/source/images/keyboard_key_over.png index c6ad5eb..8c620b1 100644 Binary files a/source/images/keyboard_key_over.png and b/source/images/keyboard_key_over.png differ diff --git a/source/images/keyboard_largekey.png b/source/images/keyboard_largekey.png index 0d6eb67..cbabee5 100644 Binary files a/source/images/keyboard_largekey.png and b/source/images/keyboard_largekey.png differ diff --git a/source/images/keyboard_largekey_over.png b/source/images/keyboard_largekey_over.png index f073e17..cfeab2c 100644 Binary files a/source/images/keyboard_largekey_over.png and b/source/images/keyboard_largekey_over.png differ diff --git a/source/images/keyboard_mediumkey.png b/source/images/keyboard_mediumkey.png index d2a556b..f5c9b1a 100644 Binary files a/source/images/keyboard_mediumkey.png and b/source/images/keyboard_mediumkey.png differ diff --git a/source/images/keyboard_mediumkey_over.png b/source/images/keyboard_mediumkey_over.png index 103d41d..7c6e131 100644 Binary files a/source/images/keyboard_mediumkey_over.png and b/source/images/keyboard_mediumkey_over.png differ diff --git a/source/images/keyboard_textbox.png b/source/images/keyboard_textbox.png index c4c2548..c5b7a7c 100644 Binary files a/source/images/keyboard_textbox.png and b/source/images/keyboard_textbox.png differ diff --git a/source/images/logo.png b/source/images/logo.png index c014a98..a837c71 100644 Binary files a/source/images/logo.png and b/source/images/logo.png differ diff --git a/source/images/logo_over.png b/source/images/logo_over.png index f311da9..010ef68 100644 Binary files a/source/images/logo_over.png and b/source/images/logo_over.png differ diff --git a/source/images/player1_point.png b/source/images/player1_point.png index d268475..71db35a 100644 Binary files a/source/images/player1_point.png and b/source/images/player1_point.png differ diff --git a/source/images/player2_point.png b/source/images/player2_point.png index acf7529..eb4180a 100644 Binary files a/source/images/player2_point.png and b/source/images/player2_point.png differ diff --git a/source/images/player3_point.png b/source/images/player3_point.png index 8fc8330..f0b8c27 100644 Binary files a/source/images/player3_point.png and b/source/images/player3_point.png differ diff --git a/source/images/player4_point.png b/source/images/player4_point.png index e015acf..4d19298 100644 Binary files a/source/images/player4_point.png and b/source/images/player4_point.png differ diff --git a/source/images/screen_position.png b/source/images/screen_position.png index 84e8777..c70a920 100644 Binary files a/source/images/screen_position.png and b/source/images/screen_position.png differ diff --git a/source/images/scrollbar.png b/source/images/scrollbar.png index c249dd8..bacfc31 100644 Binary files a/source/images/scrollbar.png and b/source/images/scrollbar.png differ diff --git a/source/images/scrollbar_arrowdown.png b/source/images/scrollbar_arrowdown.png index 83534d5..4a4f9a6 100644 Binary files a/source/images/scrollbar_arrowdown.png and b/source/images/scrollbar_arrowdown.png differ diff --git a/source/images/scrollbar_arrowup.png b/source/images/scrollbar_arrowup.png index f0ac496..4719bee 100644 Binary files a/source/images/scrollbar_arrowup.png and b/source/images/scrollbar_arrowup.png differ diff --git a/source/images/scrollbar_box.png b/source/images/scrollbar_box.png index e2cc4a2..9846300 100644 Binary files a/source/images/scrollbar_box.png and b/source/images/scrollbar_box.png differ diff --git a/source/lang/ca.lang b/source/lang/ca.lang index 88406e0..42892a3 100644 --- a/source/lang/ca.lang +++ b/source/lang/ca.lang @@ -562,6 +562,9 @@ msgstr "Estat (Auto)" msgid "State file not found" msgstr "No trobo fitxer d'estat" +msgid "Stereo Inversion" +msgstr "Estèreo invers" + msgid "Super Scope - GameCube Controller" msgstr "Super Scope - Comandament GameCube" diff --git a/source/lang/de.lang b/source/lang/de.lang index 1fdcd75..48f22dc 100644 --- a/source/lang/de.lang +++ b/source/lang/de.lang @@ -538,6 +538,9 @@ msgstr "Status (Auto)" msgid "State file not found" msgstr "Statusdatei nicht gefunden" +msgid "Stereo Inversion" +msgstr "Stereo-Invertierung" + msgid "Stretch to Fit" msgstr "Strecken zum Einpassen" diff --git a/source/lang/es.lang b/source/lang/es.lang index a737969..d4ab812 100644 --- a/source/lang/es.lang +++ b/source/lang/es.lang @@ -472,6 +472,9 @@ msgstr "Español" msgid "State" msgstr "Estado" +msgid "Stereo Inversion" +msgstr "Inversión Estéreo" + msgid "The current IOS has been altered (fake-signed). Functionality and/or stability may be adversely affected." msgstr "El IOS actual ha sido alterado (falso firmado). La funcionalidad y/o la estabilidad pueden verse afectadas negativamente." diff --git a/source/lang/fr.lang b/source/lang/fr.lang index cb0a638..46f1573 100644 --- a/source/lang/fr.lang +++ b/source/lang/fr.lang @@ -625,6 +625,9 @@ msgstr "Sauv. d'état (auto)" msgid "State file not found" msgstr "Pas de sauvegarde d'état trouvée" +msgid "Stereo Inversion" +msgstr "Inversion stéréo" + msgid "SuperFX Overclock" msgstr "Overclock SuperFX" diff --git a/source/lang/it.lang b/source/lang/it.lang index 5d5380d..b5fb23e 100644 --- a/source/lang/it.lang +++ b/source/lang/it.lang @@ -532,6 +532,9 @@ msgstr "Stato (Auto)" msgid "State file not found" msgstr "File di stato non trovato" +msgid "Stereo Inversion" +msgstr "Inversione Stereo" + msgid "Super Scope" msgstr "Nintendo Scope" diff --git a/source/lang/jp.lang b/source/lang/jp.lang index 142982c..446ba6d 100644 --- a/source/lang/jp.lang +++ b/source/lang/jp.lang @@ -622,6 +622,9 @@ msgstr "状態(自動)" msgid "State file not found" msgstr "状態ファイルが見つかりません" +msgid "Stereo Inversion" +msgstr "ステレオ反転" + msgid "Super Scope" msgstr "スーパースコープ" diff --git a/source/lang/ko.lang b/source/lang/ko.lang index 3f6e810..cc3d889 100644 --- a/source/lang/ko.lang +++ b/source/lang/ko.lang @@ -481,6 +481,9 @@ msgstr "시작" msgid "State" msgstr "상태" +msgid "Stereo Inversion" +msgstr "스테레오 반전" + msgid "The current IOS has been altered (fake-signed). Functionality and/or stability may be adversely affected." msgstr "현재 IOS는 (가짜 서명) 변경되었습니다. 기능 및 안정성에 부정적인 영향을 줄 수 있습니다" diff --git a/source/lang/nl.lang b/source/lang/nl.lang index 15c3eaf..8f0d321 100644 --- a/source/lang/nl.lang +++ b/source/lang/nl.lang @@ -508,6 +508,9 @@ msgstr "Status (Auto)" msgid "State file not found" msgstr "Status bestand niet gevonden" +msgid "Stereo Inversion" +msgstr "Stereo-inversie" + msgid "Super Scope" msgstr "Nintendo Scope" diff --git a/source/lang/pt.lang b/source/lang/pt.lang index 6dcd046..0671da8 100644 --- a/source/lang/pt.lang +++ b/source/lang/pt.lang @@ -586,6 +586,9 @@ msgstr "Estado (Auto)" msgid "State file not found" msgstr "Ficheiro de estado não encontrado" +msgid "Stereo Inversion" +msgstr "Inversão Estéreo" + msgid "Super Scope" msgstr "Nintendo Scope" diff --git a/source/lang/pt_br.lang b/source/lang/pt_br.lang index 6803ea6..3bdfad0 100644 --- a/source/lang/pt_br.lang +++ b/source/lang/pt_br.lang @@ -601,6 +601,9 @@ msgstr "Arquivo SRAM não foi encontrado" msgid "State file not found" msgstr "Arquivo de State não foi encontrado" +msgid "Stereo Inversion" +msgstr "Inversão Estéreo" + msgid "SuperFX Overclock" msgstr "Overclock SuperFX" diff --git a/source/lang/tr.lang b/source/lang/tr.lang index 7cae6ed..efcdec2 100644 --- a/source/lang/tr.lang +++ b/source/lang/tr.lang @@ -580,6 +580,9 @@ msgstr "Durum (Otomatik)" msgid "State file not found" msgstr "Durum dosyası bulunamadı" +msgid "Stereo Inversion" +msgstr "Stereo İnversiyon" + msgid "Super Scope" msgstr "Nintendo Scope" diff --git a/source/lang/zh.lang b/source/lang/zh.lang index e4caa8b..33d5956 100644 --- a/source/lang/zh.lang +++ b/source/lang/zh.lang @@ -589,6 +589,9 @@ msgstr "状态" msgid "State file not found" msgstr "未找到状态文件" +msgid "Stereo Inversion" +msgstr "立体声反转" + msgid "SuperFX Overclock" msgstr "SuperFX超频" diff --git a/source/menu.cpp b/source/menu.cpp index 4d12957..5a26119 100644 --- a/source/menu.cpp +++ b/source/menu.cpp @@ -964,7 +964,7 @@ static int MenuGameSelection() bool res; int i; - GuiText titleTxt("Choose Game", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Choose Game", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -1344,7 +1344,7 @@ static int MenuGame() { int menu = MENU_NONE; - GuiText titleTxt((char *)Memory.ROMFilename, 22, (GXColor){255, 255, 255, 255}); + GuiText titleTxt((char *)Memory.ROMFilename, 22, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,40); @@ -1504,7 +1504,7 @@ static int MenuGame() { sprintf(txt, "P%d", i+1); - batteryTxt[i] = new GuiText(txt, 20, (GXColor){255, 255, 255, 255}); + batteryTxt[i] = new GuiText(txt, 20, (GXColor){66, 66, 66, 255}); batteryTxt[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE); batteryImg[i] = new GuiImage(&battery); batteryImg[i]->SetAlignment(ALIGN_LEFT, ALIGN_MIDDLE); @@ -1681,7 +1681,7 @@ static int MenuGame() ExitApp(); } else { - gameScreenImg = new GuiImage(screenwidth, screenheight, (GXColor){205, 205, 205, 255}); + gameScreenImg = new GuiImage(screenwidth, screenheight, (GXColor){145, 139, 145, 255}); gameScreenImg->ColorStripe(10); mainWindow->Insert(gameScreenImg, 0); ResumeGui(); @@ -1788,7 +1788,7 @@ static int MenuGameSaves(int action) if(!ChangeInterface(device, NOTSILENT)) return MENU_GAME; - GuiText titleTxt(NULL, 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt(NULL, 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -2059,7 +2059,7 @@ static int MenuGameSettings() int menu = MENU_NONE; char filepath[1024]; - GuiText titleTxt("Game Settings", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -2320,7 +2320,7 @@ static int MenuGameCheats() options.length = i; - GuiText titleTxt("Game Settings - Cheats", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings - Cheats", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -2388,7 +2388,7 @@ static int MenuSettingsMappings() { int menu = MENU_NONE; - GuiText titleTxt("Game Settings - Button Mappings", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings - Button Mappings", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -2567,12 +2567,12 @@ static int MenuSettingsMappingsController() char menuSubtitle[100]; sprintf(menuTitle, "Game Settings - Button Mappings"); - GuiText titleTxt(menuTitle, 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt(menuTitle, 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,30); sprintf(menuSubtitle, "%s", ctrlName[mapMenuCtrlSNES]); - GuiText subtitleTxt(menuSubtitle, 20, (GXColor){255, 255, 255, 255}); + GuiText subtitleTxt(menuSubtitle, 20, (GXColor){66, 66, 66, 255}); subtitleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); subtitleTxt.SetPosition(50,60); @@ -2805,7 +2805,7 @@ ButtonMappingWindow() GuiImageData dialogBox(dialogue_box_png); GuiImage dialogBoxImg(&dialogBox); - GuiText titleTxt("Button Mapping", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Button Mapping", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_TOP); titleTxt.SetPosition(0,14); @@ -2939,12 +2939,12 @@ static int MenuSettingsMappingsMap() char menuSubtitle[100]; sprintf(menuTitle, "Game Settings - Button Mappings"); - GuiText titleTxt(menuTitle, 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt(menuTitle, 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,30); sprintf(menuSubtitle, "%s - %s", gettext(ctrlName[mapMenuCtrlSNES]), gettext(ctrlrName[mapMenuCtrl])); - GuiText subtitleTxt(menuSubtitle, 20, (GXColor){255, 255, 255, 255}); + GuiText subtitleTxt(menuSubtitle, 20, (GXColor){66, 66, 66, 255}); subtitleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); subtitleTxt.SetPosition(50,60); @@ -3395,11 +3395,11 @@ static int MenuSettingsTurboMode() for(i=0; i < options.length; i++) options.value[i][0] = 0; - GuiText titleTxt("Game Settings - Button Mappings", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings - Button Mappings", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,30); - GuiText subtitleTxt("Turbo Mode", 20, (GXColor){255, 255, 255, 255}); + GuiText subtitleTxt("Turbo Mode", 20, (GXColor){66, 66, 66, 255}); subtitleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); subtitleTxt.SetPosition(50,60); @@ -3537,7 +3537,7 @@ static int MenuSettingsVideo() for(i=0; i < options.length; i++) options.value[i][0] = 0; - GuiText titleTxt("Game Settings - Video", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings - Video", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -3613,9 +3613,9 @@ static int MenuSettingsVideo() break; case 6: - GCSettings.ShowFrameRate++; - if(GCSettings.ShowFrameRate > 1) - GCSettings.ShowFrameRate = 0; + GCSettings.ShowFPS++; + if(GCSettings.ShowFPS > 1) + GCSettings.ShowFPS = 0; break; case 7: @@ -3674,7 +3674,7 @@ static int MenuSettingsVideo() #ifdef HW_RVL sprintf (options.value[5], "%s", GetFilterName((RenderFilter)GCSettings.FilterMethod)); #endif - sprintf (options.value[6], "%s", GCSettings.ShowFrameRate == 1 ? "On" : "Off"); + sprintf (options.value[6], "%s", GCSettings.ShowFPS == 1 ? "On" : "Off"); sprintf (options.value[7], "%s", GCSettings.crosshair == 1 ? "On" : "Off"); switch(GCSettings.sfxOverclock) @@ -3714,13 +3714,14 @@ static int MenuSettingsAudio() bool firstRun = true; OptionList options; + sprintf(options.name[i++], "Stereo Inversion"); sprintf(options.name[i++], "Interpolation"); options.length = i; for(i=0; i < options.length; i++) options.value[i][0] = 0; - GuiText titleTxt("Game Settings - Audio", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Game Settings - Audio", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -3756,16 +3757,20 @@ static int MenuSettingsAudio() mainWindow->Append(&w); mainWindow->Append(&titleTxt); ResumeGui(); - + while(menu == MENU_NONE) { usleep(THREAD_SLEEP); ret = optionBrowser.GetClickedOption(); - + switch (ret) { case 0: + GCSettings.ReverseStereo ^= 1; + break; + + case 1: GCSettings.Interpolation++; if (GCSettings.Interpolation > 4) { GCSettings.Interpolation = 0; @@ -3781,23 +3786,25 @@ static int MenuSettingsAudio() break; S9xReset(); } - + if(ret >= 0 || firstRun) { firstRun = false; - + + sprintf (options.value[0], "%s", GCSettings.ReverseStereo == 1 ? "On" : "Off"); + switch(GCSettings.Interpolation) { case 0: - sprintf (options.value[0], "Gaussian (SNES Hardware)"); break; + sprintf (options.value[1], "Gaussian (SNES Hardware)"); break; case 1: - sprintf (options.value[0], "Linear"); break; + sprintf (options.value[1], "Linear"); break; case 2: - sprintf (options.value[0], "Cubic"); break; + sprintf (options.value[1], "Cubic"); break; case 3: - sprintf (options.value[0], "Sinc"); break; + sprintf (options.value[1], "Sinc"); break; case 4: - sprintf (options.value[0], "None"); break; + sprintf (options.value[1], "None"); break; } optionBrowser.TriggerUpdate(); } @@ -3821,7 +3828,7 @@ static int MenuSettings() { int menu = MENU_NONE; - GuiText titleTxt("Settings", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Settings", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -3978,7 +3985,7 @@ static int MenuSettingsFile() for(i=0; i < options.length; i++) options.value[i][0] = 0; - GuiText titleTxt("Settings - Saving & Loading", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Settings - Saving & Loading", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -4182,7 +4189,7 @@ static int MenuSettingsMenu() for(i=0; i < options.length; i++) options.value[i][0] = 0; - GuiText titleTxt("Settings - Menu", 26, (GXColor){255, 255, 255, 255}); + GuiText titleTxt("Settings - Menu", 26, (GXColor){66, 66, 66, 255}); titleTxt.SetAlignment(ALIGN_LEFT, ALIGN_TOP); titleTxt.SetPosition(50,50); @@ -4387,7 +4394,7 @@ MainMenu (int menu) } else { - gameScreenImg = new GuiImage(screenwidth, screenheight, (GXColor){205, 205, 205, 255}); + gameScreenImg = new GuiImage(screenwidth, screenheight, (GXColor){145, 139, 145, 255}); gameScreenImg->ColorStripe(10); } @@ -4404,9 +4411,9 @@ MainMenu (int menu) GuiImage logoImg(&logo); GuiImageData logoOver(logo_over_png); GuiImage logoImgOver(&logoOver); - GuiText logoTxt(APPVERSION, 18, (GXColor){255, 255, 255, 255}); + GuiText logoTxt(APPVERSION, 18, (GXColor){66, 66, 66, 255}); logoTxt.SetAlignment(ALIGN_RIGHT, ALIGN_TOP); - logoTxt.SetPosition(-7, 6); + logoTxt.SetPosition(-2, 5); btnLogo = new GuiButton(logoImg.GetWidth(), logoImg.GetHeight()); btnLogo->SetAlignment(ALIGN_RIGHT, ALIGN_TOP); btnLogo->SetPosition(-50, 24); diff --git a/source/preferences.cpp b/source/preferences.cpp index 6db6fd9..ad62464 100644 --- a/source/preferences.cpp +++ b/source/preferences.cpp @@ -141,7 +141,7 @@ preparePrefsData () createXMLSetting("render", "Video Filtering", toStr(GCSettings.render)); createXMLSetting("widescreen", "Aspect Ratio Correction", toStr(GCSettings.widescreen)); createXMLSetting("FilterMethod", "Filter Method", toStr(GCSettings.FilterMethod)); - createXMLSetting("ShowFrameRate", "Show Framerate", toStr(GCSettings.ShowFrameRate)); + createXMLSetting("ShowFPS", "Show Framerate", toStr(GCSettings.ShowFPS)); createXMLSetting("crosshair", "Crosshair", toStr(GCSettings.crosshair)); createXMLSetting("xshift", "Horizontal Video Shift", toStr(GCSettings.xshift)); createXMLSetting("yshift", "Vertical Video Shift", toStr(GCSettings.yshift)); @@ -149,6 +149,7 @@ preparePrefsData () createXMLSection("Audio", "Audio Settings"); + createXMLSetting("ReverseStereo", "Stereo Inversion", toStr(GCSettings.ReverseStereo)); createXMLSetting("Interpolation", "Interpolation", toStr(GCSettings.Interpolation)); createXMLSection("Menu", "Menu Settings"); @@ -276,7 +277,7 @@ decodePrefsData () { const char * version = mxmlElementGetAttr(item, "version"); - if(version && strlen(version) == 5) + if(version && strlen(version) == 6) { // this code assumes version in format X.X.X // XX.X.X, X.XX.X, or X.X.XX will NOT work @@ -320,13 +321,14 @@ decodePrefsData () loadXMLSetting(&GCSettings.render, "render"); loadXMLSetting(&GCSettings.widescreen, "widescreen"); loadXMLSetting(&GCSettings.FilterMethod, "FilterMethod"); - loadXMLSetting(&GCSettings.ShowFrameRate, "ShowFrameRate"); + loadXMLSetting(&GCSettings.ShowFPS, "ShowFPS"); loadXMLSetting(&GCSettings.crosshair, "crosshair"); loadXMLSetting(&GCSettings.xshift, "xshift"); loadXMLSetting(&GCSettings.yshift, "yshift"); - + // Audio Settings - + + loadXMLSetting(&GCSettings.ReverseStereo, "ReverseStereo"); loadXMLSetting(&GCSettings.Interpolation, "Interpolation"); // Emulation Settings @@ -428,10 +430,12 @@ DefaultSettings () GCSettings.TurboMode = 1; // turbo mode enabled GCSettings.TurboModeButton = 0; // right analog stick + GCSettings.ReverseStereo = 1; // enabled to fix inverted L/R audio channels + GCSettings.videomode = 0; // automatic video mode detection GCSettings.render = 1; // unfiltered rendering GCSettings.FilterMethod = FILTER_NONE; // no filtering - GCSettings.ShowFrameRate = 0; // show framerate disabled + GCSettings.ShowFPS = 0; // show framerate disabled GCSettings.crosshair = 1; // show crosshair enabled GCSettings.widescreen = 0; @@ -485,7 +489,6 @@ DefaultSettings () Settings.SoundSync = true; Settings.SixteenBitSound = true; Settings.Stereo = true; - Settings.ReverseStereo = true; Settings.SoundPlaybackRate = 48000; Settings.SoundInputRate = 31920; Settings.DynamicRateControl = true; diff --git a/source/snes9xtx.cpp b/source/snes9xtx.cpp index 00f21ce..8613207 100644 --- a/source/snes9xtx.cpp +++ b/source/snes9xtx.cpp @@ -516,13 +516,14 @@ int main(int argc, char *argv[]) case 4: Settings.InterpolationMethod = DSP_INTERPOLATION_NONE; break; } } - + autoboot = false; ConfigRequested = 0; ScreenshotRequested = 0; SwitchAudioMode(0); - Settings.DisplayFrameRate = (GCSettings.ShowFrameRate == 1); + Settings.ReverseStereo = (GCSettings.ReverseStereo == 1); + Settings.DisplayFrameRate = (GCSettings.ShowFPS == 1); Settings.AutoDisplayMessages = (Settings.DisplayFrameRate ? true : false); Settings.MultiPlayer5Master = (GCSettings.Controller == CTRL_PAD4 ? true : false); Settings.SuperScopeMaster = (GCSettings.Controller == CTRL_SCOPE ? true : false); diff --git a/source/snes9xtx.h b/source/snes9xtx.h index cba3c15..afe82af 100644 --- a/source/snes9xtx.h +++ b/source/snes9xtx.h @@ -21,7 +21,7 @@ #include "filelist.h" #define APPNAME "Snes9x TX" -#define APPVERSION "1.0.9" +#define APPVERSION "1.0.9c" #define APPFOLDER "snes9xtx" #define PREF_FILE_NAME "settings.xml" @@ -119,7 +119,7 @@ struct SGCSettings{ int render; // 0 - Original, 1 - Unfiltered, 2 - Filtered int FilterMethod; // convert to RenderFilter int Controller; - int ShowFrameRate; + int ShowFPS; int crosshair; int TurboMode; int TurboModeButton; @@ -134,7 +134,8 @@ struct SGCSettings{ int PreviewImage; int sfxOverclock; - + + int ReverseStereo; int Interpolation; };