diff --git a/src/include/86box/resource.h b/src/include/86box/resource.h index cd4eb1f83..75d056ea1 100644 --- a/src/include/86box/resource.h +++ b/src/include/86box/resource.h @@ -18,6 +18,7 @@ * Copyright 2008-2019 Sarah Walker. * Copyright 2016-2019 Miran Grca. * Copyright 2018,2019 David Hrdlička. + * Copyright 2021-2022 Jasmine Iwanek. */ #ifndef WIN_RESOURCE_H @@ -184,6 +185,8 @@ #define IDC_CHECK_VOODOO 1022 #define IDC_BUTTON_VOODOO 1023 #define IDC_CHECK_IBM8514 1024 +#define IDC_CHECK_XGA 1025 +#define IDC_BUTTON_XGA 1026 #define IDC_INPUT 1030 /* input config */ #define IDC_COMBO_MOUSE 1031 diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc index 73d4effe1..a28b99a84 100644 --- a/src/win/languages/cs-CZ.rc +++ b/src/win/languages/cs-CZ.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Grafika:" #define STR_VOODOO "Použít grafický akcelerátor Voodoo" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Myš:" #define STR_JOYSTICK "Joystick:" diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index 72ad32e54..27644e4a7 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Videokarte:" #define STR_VOODOO "Voodoo-Grafik" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Maus:" #define STR_JOYSTICK "Joystick:" diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc index 9d01e4cdf..8de358c5e 100644 --- a/src/win/languages/dialogs.rc +++ b/src/win/languages/dialogs.rc @@ -269,6 +269,12 @@ BEGIN CONTROL STR_IBM8514, IDC_CHECK_IBM8514, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 46, 199, CFG_CHECKBOX_HEIGHT + + CONTROL STR_XGA, IDC_CHECK_XGA, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 7, 65, 199, CFG_CHECKBOX_HEIGHT + PUSHBUTTON STR_CONFIGURE, IDC_BUTTON_XGA, + CFG_COMBO_BTN_LEFT, 64, CFG_BTN_WIDTH, CFG_BTN_HEIGHT END DLG_CFG_INPUT DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT diff --git a/src/win/languages/en-GB.rc b/src/win/languages/en-GB.rc index 82cb16cc5..fbbb982cf 100644 --- a/src/win/languages/en-GB.rc +++ b/src/win/languages/en-GB.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Video:" #define STR_VOODOO "Voodoo Graphics" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Mouse:" #define STR_JOYSTICK "Joystick:" diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc index ac3682818..5a5839686 100644 --- a/src/win/languages/en-US.rc +++ b/src/win/languages/en-US.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Video:" #define STR_VOODOO "Voodoo Graphics" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Mouse:" #define STR_JOYSTICK "Joystick:" diff --git a/src/win/languages/es-ES.rc b/src/win/languages/es-ES.rc index b5161aad0..b7eb61d24 100644 --- a/src/win/languages/es-ES.rc +++ b/src/win/languages/es-ES.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Vídeo:" #define STR_VOODOO "Voodoo Graphics" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Ratón:" #define STR_JOYSTICK "Mando:" diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc index 8b394f550..a8dc55b72 100644 --- a/src/win/languages/fi-FI.rc +++ b/src/win/languages/fi-FI.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Näytönohjain:" #define STR_VOODOO "Voodoo-grafiikkasuoritin" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Hiiri:" #define STR_JOYSTICK "Peliohjain:" diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index e63bb831a..11fc3360e 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Vidéo:" #define STR_VOODOO "Graphique Voodoo" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Souris:" #define STR_JOYSTICK "Manette de commande:" diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index da3954cd1..60e6e28c4 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Video:" #define STR_VOODOO "Voodoo grafika" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Miš:" #define STR_JOYSTICK "Palica za igru:" diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc index 8ac86adff..6b4dae959 100644 --- a/src/win/languages/hu-HU.rc +++ b/src/win/languages/hu-HU.rc @@ -277,6 +277,7 @@ END #define STR_VIDEO "Videokártya:" #define STR_VOODOO "Voodoo-gyorsítókártya" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Egér:" #define STR_JOYSTICK "Játékvezérlő:" diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc index 254491072..20d301f47 100644 --- a/src/win/languages/it-IT.rc +++ b/src/win/languages/it-IT.rc @@ -273,6 +273,7 @@ END #define STR_VIDEO "Video:" #define STR_VOODOO "Grafica Voodoo" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Mouse:" #define STR_JOYSTICK "Joystick:" diff --git a/src/win/languages/ja-JP.rc b/src/win/languages/ja-JP.rc index 01f0d7a24..151e13e65 100644 --- a/src/win/languages/ja-JP.rc +++ b/src/win/languages/ja-JP.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "ビデオカード:" #define STR_VOODOO "Voodooグラフィック" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "マウス:" #define STR_JOYSTICK "ジョイスティック:" diff --git a/src/win/languages/ko-KR.rc b/src/win/languages/ko-KR.rc index c039e8129..831ca74bb 100644 --- a/src/win/languages/ko-KR.rc +++ b/src/win/languages/ko-KR.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "비디오 카드:" #define STR_VOODOO "Voodoo 그래픽" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "마우스:" #define STR_JOYSTICK "조이스틱:" diff --git a/src/win/languages/pl-PL.rc b/src/win/languages/pl-PL.rc index 3c99f963d..211eb3ed8 100644 --- a/src/win/languages/pl-PL.rc +++ b/src/win/languages/pl-PL.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Wideo:" #define STR_VOODOO "Grafika Voodoo" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Mysz:" #define STR_JOYSTICK "Joystick:" diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index ef75f2495..81b2e290a 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -275,6 +275,7 @@ END #define STR_VIDEO "Vídeo:" #define STR_VOODOO "3DFX Voodoo" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Mouse:" #define STR_JOYSTICK "Joystick:" diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index b2359b2e6..fafc21df4 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Vídeo:" #define STR_VOODOO "Gráficos Voodoo" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Rato:" #define STR_JOYSTICK "Joystick:" diff --git a/src/win/languages/ru-RU.rc b/src/win/languages/ru-RU.rc index c3c24575e..15bd1752d 100644 --- a/src/win/languages/ru-RU.rc +++ b/src/win/languages/ru-RU.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Видеокарта:" #define STR_VOODOO "Ускоритель Voodoo" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Мышь:" #define STR_JOYSTICK "Джойстик:" diff --git a/src/win/languages/sl-SI.rc b/src/win/languages/sl-SI.rc index b4fdba000..7d715c5ca 100644 --- a/src/win/languages/sl-SI.rc +++ b/src/win/languages/sl-SI.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Video:" #define STR_VOODOO "Voodoo grafika" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Miška:" #define STR_JOYSTICK "Igralna palica:" diff --git a/src/win/languages/tr-TR.rc b/src/win/languages/tr-TR.rc index 8368380bb..cc3a98406 100644 --- a/src/win/languages/tr-TR.rc +++ b/src/win/languages/tr-TR.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Ekran kartı:" #define STR_VOODOO "Voodoo Grafikleri" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Fare:" #define STR_JOYSTICK "Oyun kolu:" diff --git a/src/win/languages/uk-UA.rc b/src/win/languages/uk-UA.rc index b2a091cbe..dfb86cc8b 100644 --- a/src/win/languages/uk-UA.rc +++ b/src/win/languages/uk-UA.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "Відеокарта:" #define STR_VOODOO "Прискорювач Voodoo" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "Миша:" #define STR_JOYSTICK "Джойстик:" diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc index 14497df62..a3c324c6c 100644 --- a/src/win/languages/zh-CN.rc +++ b/src/win/languages/zh-CN.rc @@ -272,6 +272,7 @@ END #define STR_VIDEO "显卡:" #define STR_VOODOO "Voodoo Graphics" #define STR_IBM8514 "IBM 8514/a Graphics" +#define STR_XGA "XGA Graphics" #define STR_MOUSE "鼠标:" #define STR_JOYSTICK "操纵杆:" diff --git a/src/win/win_settings.c b/src/win/win_settings.c index 29cc23198..84ad26754 100644 --- a/src/win/win_settings.c +++ b/src/win/win_settings.c @@ -16,6 +16,7 @@ * Copyright 2016-2019 Miran Grca. * Copyright 2018,2019 David Hrdlička. * Copyright 2021 Laci bá' + * Copyright 2021-2022 Jasmine Iwanek. */ #define UNICODE #define BITMAP WINDOWS_BITMAP @@ -63,6 +64,7 @@ #include <86box/midi.h> #include <86box/snd_mpu401.h> #include <86box/video.h> +#include <86box/vid_xga_device.h> #include <86box/plat.h> #include <86box/ui.h> #include <86box/win.h> @@ -85,7 +87,7 @@ static int temp_dynarec; #endif /* Video category */ -static int temp_gfxcard, temp_ibm8514, temp_voodoo; +static int temp_gfxcard, temp_ibm8514, temp_voodoo, temp_xga; /* Input devices category */ static int temp_mouse, temp_joystick; @@ -333,6 +335,7 @@ win_settings_init(void) temp_gfxcard = gfxcard; temp_voodoo = voodoo_enabled; temp_ibm8514 = ibm8514_enabled; + temp_xga = xga_enabled; /* Input devices category */ temp_mouse = mouse_type; @@ -458,6 +461,7 @@ win_settings_changed(void) i = i || (gfxcard != temp_gfxcard); i = i || (voodoo_enabled != temp_voodoo); i = i || (ibm8514_enabled != temp_ibm8514); + i = i || (xga_enabled != temp_xga); /* Input devices category */ i = i || (mouse_type != temp_mouse); @@ -549,6 +553,7 @@ win_settings_save(void) gfxcard = temp_gfxcard; voodoo_enabled = temp_voodoo; ibm8514_enabled = temp_ibm8514; + xga_enabled = temp_xga; /* Input devices category */ mouse_type = temp_mouse; @@ -1116,6 +1121,11 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) settings_enable_window(hdlg, IDC_CHECK_IBM8514, machine_has_bus(temp_machine, MACHINE_BUS_ISA16) || machine_has_bus(temp_machine, MACHINE_BUS_MCA)); settings_set_check(hdlg, IDC_CHECK_IBM8514, temp_ibm8514); + + settings_enable_window(hdlg, IDC_CHECK_XGA, machine_has_bus(temp_machine, MACHINE_BUS_ISA16) || machine_has_bus(temp_machine, MACHINE_BUS_MCA)); + settings_set_check(hdlg, IDC_CHECK_XGA, temp_xga); + settings_enable_window(hdlg, IDC_BUTTON_XGA, (machine_has_bus(temp_machine, MACHINE_BUS_ISA16) || machine_has_bus(temp_machine, MACHINE_BUS_MCA)) && temp_xga); + return TRUE; case WM_COMMAND: @@ -1134,10 +1144,23 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) temp_ibm8514 = settings_get_check(hdlg, IDC_CHECK_IBM8514); break; + case IDC_CHECK_XGA: + temp_xga = settings_get_check(hdlg, IDC_CHECK_XGA); + settings_enable_window(hdlg, IDC_BUTTON_XGA, temp_xga); + break; + case IDC_BUTTON_VOODOO: temp_deviceconfig |= deviceconfig_open(hdlg, (void *)&voodoo_device); break; + case IDC_BUTTON_XGA: + if (machine_has_bus(temp_machine, MACHINE_BUS_MCA) > 0) { + temp_deviceconfig |= deviceconfig_open(hdlg, (void *)&xga_device); + } else { + temp_deviceconfig |= deviceconfig_open(hdlg, (void *)&xga_isa_device); + } + break; + case IDC_CONFIGURE_VID: temp_gfxcard = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)]; temp_deviceconfig |= deviceconfig_open(hdlg, (void *)video_card_getdevice(temp_gfxcard)); @@ -1149,6 +1172,7 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) temp_gfxcard = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)]; temp_voodoo = settings_get_check(hdlg, IDC_CHECK_VOODOO); temp_ibm8514 = settings_get_check(hdlg, IDC_CHECK_IBM8514); + temp_xga = settings_get_check(hdlg, IDC_CHECK_XGA); default: return FALSE;