From 7c3a7b18e29c4e9e62934026172855783bb9ddc2 Mon Sep 17 00:00:00 2001 From: GetDizzy Date: Tue, 2 Nov 2021 06:37:30 -0400 Subject: [PATCH 01/61] Update ASUS ISA-386C: Supports 64MB of RAM According to documentation obtained here: https://www.win3x.org/uh19/public/motherboard/manual/30218.pdf The ASUS ISA-386C in addition to supporting 32MB onboard, supports an additional 32MB through a proprietary RAM card using an extended ISA connector marked "S1" on the board. I have no idea on implementation details of this, but the manual seems to imply it just ends up mapped directly into RAM banks 2 and 3. So I'm not sure if raising the RAM limit here is the correct fix, but... yeah. Up to y'all. I won't be offended if you reject this PR out of hand :) --- src/machine/machine_table.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index a5c9732cf..26b0ddec8 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -304,7 +304,7 @@ const machine_t machines[] = { /* Has IBM AT KBC firmware. */ { "[ISA] Micronics 09-00021", "micronics386", MACHINE_TYPE_386DX, CPU_PKG_386DX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_micronics386_init, NULL }, /* Has AMIKey F KBC firmware. */ - { "[SiS 310] ASUS ISA-386C", "asus386", MACHINE_TYPE_386DX, CPU_PKG_386DX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 32768, 1024, 127, machine_at_asus386_init, NULL }, + { "[SiS 310] ASUS ISA-386C", "asus386", MACHINE_TYPE_386DX, CPU_PKG_386DX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 65536, 1024, 127, machine_at_asus386_init, NULL }, /* 386DX machines which utilize the MCA bus */ /* Has IBM PS/2 Type 1 KBC firmware. */ From a16e39bb629a5115168b3c18ae93efdcac4f0125 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Sun, 14 Nov 2021 19:50:05 +0100 Subject: [PATCH 02/61] Initial commit for changeable icon set --- src/include/86box/win.h | 7 +- src/win/CMakeLists.txt | 2 +- src/win/Makefile.mingw | 2 +- src/win/win_icon.c | 149 ++++++++++++++++++++++++++++++++++++++++ src/win/win_settings.c | 8 +-- src/win/win_stbar.c | 42 +---------- src/win/win_ui.c | 13 +--- 7 files changed, 160 insertions(+), 63 deletions(-) create mode 100644 src/win/win_icon.c diff --git a/src/include/86box/win.h b/src/include/86box/win.h index 33e55f1d4..f4d592756 100644 --- a/src/include/86box/win.h +++ b/src/include/86box/win.h @@ -107,6 +107,7 @@ extern HWND hwndMain, hwndRender; extern HANDLE ghMutex; extern HICON hIcon[256]; +extern int dpi; extern RECT oldclip; extern int sbar_height, user_resize; extern int acp_utf8; @@ -122,8 +123,6 @@ extern uint8_t filterindex; extern void ResizeWindowByClientArea(HWND hwnd, int width, int height); extern void InitCrashDump(void); -extern HICON LoadIconEx(PCTSTR pszIconName); - /* Emulator start/stop support functions. */ extern void do_start(void); extern void do_stop(void); @@ -150,6 +149,10 @@ extern int win_get_system_metrics(int i, int dpi); extern LPARAM win_get_string(int id); +extern void win_clear_icon_set(); +extern void win_system_icon_set(HINSTANCE hInst); +extern void win_load_icon_set(HINSTANCE hInst); + extern intptr_t fdd_type_to_icon(int type); #ifdef EMU_DEVICE_H diff --git a/src/win/CMakeLists.txt b/src/win/CMakeLists.txt index 727644f7b..d94485929 100644 --- a/src/win/CMakeLists.txt +++ b/src/win/CMakeLists.txt @@ -18,7 +18,7 @@ enable_language(RC) add_library(plat OBJECT win.c win_dynld.c win_cdrom.c win_thread.c win_keyboard.c win_crashdump.c win_midi.c win_mouse.c) -add_library(ui OBJECT win_ui.c win_stbar.c win_sdl.c win_dialog.c win_about.c +add_library(ui OBJECT win_ui.c win_icon.c win_stbar.c win_sdl.c win_dialog.c win_about.c win_settings.c win_devconf.c win_snd_gain.c win_specify_dim.c win_new_floppy.c win_jsconf.c win_media_menu.c win_lang.c 86Box.rc) diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index 8414f538f..ceb31a75a 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -423,7 +423,7 @@ ifeq ($(WX), y) LIBS += $(WX_LIBS) UIOBJ := wx_main.o wx_ui.o wx_stbar.o wx_render.o else - UIOBJ := win_ui.o win_stbar.o \ + UIOBJ := win_ui.o win_icon.o win_stbar.o \ win_sdl.o \ win_dialog.o win_about.o \ win_settings.o win_devconf.o win_snd_gain.o win_specify_dim.o win_lang.o \ diff --git a/src/win/win_icon.c b/src/win/win_icon.c new file mode 100644 index 000000000..14ac454e6 --- /dev/null +++ b/src/win/win_icon.c @@ -0,0 +1,149 @@ +/* + * 86Box A hypervisor and IBM PC system emulator that specializes in + * running old operating systems and software designed for IBM + * PC systems and compatibles from 1981 through fairly recent + * system designs based on the PCI bus. + * + * This file is part of the 86Box distribution. + * + * Implement the application's icon changing system. + * + * + * Authors: Laci bá' + * + * Copyright 2021 Laci bá'. + */ + +#include +#include +#include +#include +#include +#include +#include +#include <86box/86box.h> +#include <86box/config.h> +#include <86box/plat.h> +#include <86box/ui.h> +#include <86box/win.h> + +HICON hIcon[256]; /* icon data loaded from resources */ +char icon_set[256] = "winbox"; /* name of the iconset to be used */ + +void win_clear_icon_set() +{ + int i; + + for (i = 0; i < 256; i++) + if (hIcon[i] != 0) + { + DestroyIcon(hIcon[i]); + hIcon[i] = 0; + } +} + +void win_system_icon_set(HINSTANCE hInst) +{ + int i, x = win_get_system_metrics(SM_CXSMICON, dpi), y = win_get_system_metrics(SM_CYSMICON, dpi); + + for (i = 0; i < 256; i++) + hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, y, LR_DEFAULTCOLOR); +} + +typedef struct +{ + int id; + char* filename; +} _ICON_DATA; + +const _ICON_DATA icon_files[] = + { + {16, "floppy_525.ico"}, + {17, "floppy_525_active.ico"}, + {24, "floppy_35.ico"}, + {25, "floppy_35_active.ico"}, + {32, "cdrom.ico"}, + {33, "cdrom_active.ico"}, + {48, "zip.ico"}, + {49, "zip_active.ico"}, + {56, "mo.ico"}, + {57, "mo_active.ico"}, + {64, "cassette.ico"}, + {65, "cassette_active.ico"}, + {80, "hard_disk.ico"}, + {81, "hard_disk_active.ico"}, + {96, "network.ico"}, + {97, "network_active.ico"}, + {104, "cartridge.ico"}, + {144, "floppy_525_empty.ico"}, + {145, "floppy_525_empty_active.ico"}, + {152, "floppy_35_empty.ico"}, + {153, "floppy_35_empty_active.ico"}, + {160, "cdrom_empty.ico"}, + {161, "cdrom_empty_active.ico"}, + {176, "zip_empty.ico"}, + {177, "zip_empty_active.ico"}, + {184, "mo_empty.ico"}, + {185, "mo_empty_active.ico"}, + {192, "cassette_empty.ico"}, + {193, "cassette_empty_active.ico"}, + {232, "cartridge_empty.ico"}, + {240, "machine.ico"}, + {241, "display.ico"}, + {242, "input_devices.ico"}, + {243, "sound.ico"}, + {244, "ports.ico"}, + {245, "other_peripherals.ico"}, + {246, "floppy_and_cdrom_drives.ico"}, + {247, "other_removable_devices.ico"}, + {248, "floppy_disabled.ico"}, + {249, "cdrom_disabled.ico"}, + {250, "zip_disabled.ico"}, + {251, "mo_disabled.ico"}, + {252, "storage_controllers.ico"} + }; + +void win_load_icon_set(HINSTANCE hInst) +{ + win_clear_icon_set(); + win_system_icon_set(hInst); + + if (strlen(icon_set) == 0) + return; + + char path_root[2048] = {0}, temp[2048] = {0}; + wchar_t wtemp[2048] = {0}; + + char roms_root[1024] = {0}; + if (rom_path[0]) + strcpy(roms_root, rom_path); + else + plat_append_filename(roms_root, exe_path, "roms"); + + plat_append_filename(path_root, roms_root, "icons"); + plat_path_slash(path_root); + strcat(path_root, icon_set); + plat_path_slash(path_root); + + int i, count = sizeof(icon_files) / sizeof(_ICON_DATA), + x = win_get_system_metrics(SM_CXSMICON, dpi), y = win_get_system_metrics(SM_CYSMICON, dpi); + for (i = 0; i < count; i++) + { + plat_append_filename(temp, path_root, icon_files[i].filename); + mbstowcs(wtemp, temp, strlen(temp) + 1); + + HICON ictemp; + ictemp = LoadImageW(NULL, (LPWSTR)wtemp, IMAGE_ICON, x, y, LR_LOADFROMFILE | LR_DEFAULTCOLOR); + if (ictemp) + { + HICON* helper = &hIcon[icon_files[i].id]; + if (*helper) + DestroyIcon(*helper); + *helper = ictemp; + } + } + + uint32_t curr_lang = lang_id; + lang_id = 0; + set_language(curr_lang); +} \ No newline at end of file diff --git a/src/win/win_settings.c b/src/win/win_settings.c index d7fdb3816..4d253d8f7 100644 --- a/src/win/win_settings.c +++ b/src/win/win_settings.c @@ -76,7 +76,6 @@ static int first_cat = 0; -static int dpi = 96; /* Machine category */ static int temp_machine_type, temp_machine, temp_cpu, temp_wait_states, temp_fpu, temp_sync; @@ -265,13 +264,8 @@ image_list_init(HWND hdlg, int id, const uint8_t *icon_ids) if (icon_ids[i] == 0) break; -#if defined(__amd64__) || defined(__aarch64__) - hiconItem = LoadIcon(hinstance, (LPCWSTR) ((uint64_t) icon_ids[i])); -#else - hiconItem = LoadIcon(hinstance, (LPCWSTR) ((uint32_t) icon_ids[i])); -#endif + hiconItem = hIcon[icon_ids[i]]; ImageList_AddIcon(hSmall, hiconItem); - DestroyIcon(hiconItem); i++; } diff --git a/src/win/win_stbar.c b/src/win/win_stbar.c index b89bcafed..df82d15e5 100644 --- a/src/win/win_stbar.c +++ b/src/win/win_stbar.c @@ -71,7 +71,6 @@ static uint8_t *sb_part_icons; static int sb_parts = 0; static int sb_ready = 0; static uint8_t sb_map[256]; -static int dpi = 96; static int icon_width = 24; static wchar_t sb_text[512] = L"\0"; static wchar_t sb_bugtext[512] = L"\0"; @@ -878,46 +877,7 @@ StatusBarPopupMenu(HWND hwnd, POINT pt, int id) /* API: Load status bar icons */ void StatusBarLoadIcon(HINSTANCE hInst) { - int i; - int x = win_get_system_metrics(SM_CXSMICON, dpi); - - for (i=0; i<256; i++) { - if (hIcon[i] != 0) - DestroyIcon(hIcon[i]); - } - - for (i = 16; i < 18; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 24; i < 26; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 32; i < 34; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 48; i < 50; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 56; i < 58; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 64; i < 66; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 80; i < 82; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 96; i < 98; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - hIcon[104] = LoadImage(hInst, MAKEINTRESOURCE(104), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 144; i < 146; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 152; i < 154; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 160; i < 162; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 176; i < 178; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 184; i < 186; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 192; i < 194; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - hIcon[232] = LoadImage(hInst, MAKEINTRESOURCE(232), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); - for (i = 243; i < 244; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, x, LR_DEFAULTCOLOR); + win_load_icon_set(hInst); } /* Handle messages for the Status Bar window. */ diff --git a/src/win/win_ui.c b/src/win/win_ui.c index 57ef417a2..ca089eabd 100644 --- a/src/win/win_ui.c +++ b/src/win/win_ui.c @@ -59,7 +59,6 @@ HWND hwndMain, /* application main window */ hwndRender; /* machine render window */ HMENU menuMain; /* application main menu */ -HICON hIcon[256]; /* icon data loaded from resources */ RECT oldclip; /* mouse rect */ int sbar_height = 23; /* statusbar height */ int minimized = 0; @@ -78,7 +77,7 @@ extern WCHAR wopenfilestring[512]; static wchar_t wTitle[512]; static int manager_wm = 0; static int save_window_pos = 0, pause_state = 0; -static int dpi = 96; +int dpi = 96; static int padded_frame = 0; static int vis = -1; @@ -153,15 +152,6 @@ show_cursor(int val) vis = val; } - -HICON -LoadIconEx(PCTSTR pszIconName) -{ - return((HICON)LoadImage(hinstance, pszIconName, IMAGE_ICON, - 16, 16, LR_SHARED)); -} - - static void video_toggle_option(HMENU h, int *val, int id) { @@ -1074,6 +1064,7 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) break; case WM_DESTROY: + win_clear_icon_set(); KillTimer(hwnd, TIMER_1SEC); PostQuitMessage(0); break; From 441ac9171db30ba25cb8b4da230ad06606d90a84 Mon Sep 17 00:00:00 2001 From: altiereslima Date: Sun, 14 Nov 2021 21:21:12 -0300 Subject: [PATCH 03/61] Update pt-BR.rc --- src/win/languages/pt-BR.rc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index 41ef506aa..623bced89 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -65,7 +65,6 @@ BEGIN MENUITEM "&Linear", IDM_VID_FILTER_LINEAR END MENUITEM "Escala Hi&DPI", IDM_VID_HIDPI - MENUITEM "&Idioma de exibição...", IDM_VID_PROG_SETT MENUITEM SEPARATOR MENUITEM "&Tela cheia\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN POPUP "Modo de &redimensionamento da tela cheia" @@ -147,7 +146,7 @@ BEGIN MENUITEM SEPARATOR # endif # ifdef ENABLE_LOG_BREAKPOINT - MENUITEM "&Registro de ponto de parada\tCtrl+F10", IDM_LOG_BREAKPOINT + MENUITEM "&Ponto de parada no registo\tCtrl+F10", IDM_LOG_BREAKPOINT # endif # ifdef ENABLE_VRAM_DUMP MENUITEM "Despejo da RAM de &vídeo\tCtrl+F1", IDM_DUMP_VRAM @@ -296,7 +295,7 @@ END #define STR_WIDTH "Largura:" #define STR_HEIGHT "Altura:" -#define STR_LOCK_TO_SIZE "Trava nesse tamanho" +#define STR_LOCK_TO_SIZE "Travar nesse tamanho" #define STR_MACHINE_TYPE "Tipo de máquina:" #define STR_MACHINE "Máquina:" @@ -307,7 +306,7 @@ END #define STR_WAIT_STATES "Estados de espera:" #define STR_MB "MB" #define STR_MEMORY "Memória:" -#define STR_TIME_SYNC "Sincronização de tempo" +#define STR_TIME_SYNC "Sincronização da hora" #define STR_DISABLED "Desativada" #define STR_ENABLED_LOCAL "Ativada (hora local)" #define STR_ENABLED_UTC "Ativada (UTC)" @@ -362,7 +361,7 @@ END #define STR_NEW "&Novo..." #define STR_EXISTING "&Existente..." #define STR_REMOVE "&Remover" -#define STR_BUS "Barram.:" +#define STR_BUS "Bar.:" #define STR_CHANNEL "Canal:" #define STR_ID "ID:" @@ -406,7 +405,7 @@ BEGIN IDS_2049 "Erro" IDS_2050 "Erro fatal" IDS_2051 "" - IDS_2052 "Use CTRL+ALT+PAGE DOWN para retornar ao janela" + IDS_2052 "Use CTRL+ALT+PAGE DOWN para retornar para o modo janela" IDS_2053 "Velocidade" IDS_2054 "ZIP %03i %i (%s): %ls" IDS_2055 "Imagens ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" @@ -451,7 +450,7 @@ BEGIN IDS_2086 "MB" IDS_2087 "Verificar BPB" IDS_2088 "KB" - IDS_2089 "Não conseguiu inicializar o renderizador de vídeo." + IDS_2089 "Não foi possível inicializar o renderizador de vídeo." IDS_2090 "Padrão" IDS_2091 "%i estado(s) de espera" IDS_2092 "Tipo" @@ -488,6 +487,7 @@ BEGIN IDS_2123 "Salvar" IDS_2124 "Sobre o 86Box" IDS_2125 "86Box versão" EMU_VERSION + IDS_2126 "Um emulador de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU versão 2 ou posterior. Veja o arquivo LICENSE para mais informações." IDS_2127 "OK" IDS_2128 "Hardware não disponível" From 672557546f76c97263f66c27460d804445602db1 Mon Sep 17 00:00:00 2001 From: dob205 Date: Mon, 15 Nov 2021 12:36:17 +0100 Subject: [PATCH 04/61] Adding the Croatian localization for Win32 This commit adds the Croatian (hr-HR) localization to the Win32 interface. --- src/win/languages/hr-HR.rc | 640 +++++++++++++++++++++++++++++++++++++ 1 file changed, 640 insertions(+) create mode 100644 src/win/languages/hr-HR.rc diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc new file mode 100644 index 000000000..09ca74158 --- /dev/null +++ b/src/win/languages/hr-HR.rc @@ -0,0 +1,640 @@ +//////////////////////////////////////////////////////////////////////////// +// Croatian (hr-HR) resources + +#ifdef _WIN32 +LANGUAGE LANG_CROATIAN, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Action" + BEGIN + MENUITEM "&Tipkovnica zahtijeva snimanje miša", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Desni CTRL je lijevi ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Hard Reset...", IDM_ACTION_HRESET + MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD + MENUITEM SEPARATOR + MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC + MENUITEM SEPARATOR + MENUITEM "&Pauza", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "&Izlaz...", IDM_ACTION_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Sakrij statusnu traku", IDM_VID_HIDE_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Prozor s promjenjivim veličinama", IDM_VID_RESIZE + MENUITEM "&Zapamtite veličinu && poziciju", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Renderer" + BEGIN + MENUITEM "&SDL (Softver)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardver)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL +#if defined(DEV_BRANCH) && defined(USE_OPENGL) + MENUITEM "Open&GL (3.3 jezgra)", IDM_VID_OPENGL_CORE +#endif +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Odrediti dimenzije...", IDM_VID_SPECIFY_DIM + MENUITEM "&4:3 omjer prikaza", IDM_VID_FORCE43 + POPUP "&Faktor skaliranje prozora" + BEGIN + MENUITEM "&0,5x", IDM_VID_SCALE_1X + MENUITEM "&1x", IDM_VID_SCALE_2X + MENUITEM "1,&5x", IDM_VID_SCALE_3X + MENUITEM "&2x", IDM_VID_SCALE_4X + END + POPUP "Metoda filtriranja" + BEGIN + MENUITEM "&Nearest", IDM_VID_FILTER_NEAREST + MENUITEM "&Linear", IDM_VID_FILTER_LINEAR + END + MENUITEM "&HiDPI skaliranje", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Cijeli zaslon\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + POPUP "&Način rastezanja preko cijelog zaslona" + BEGIN + MENUITEM "&Razvlačenje preko cijelog zaslona", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Kvadratni pikseli (zadrži omjer)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Integer skala", IDM_VID_FS_INT + END + POPUP "E&GA/(S)VGA postavke" + BEGIN + MENUITEM "&Invertirani VGA monitor", IDM_VID_INVERT + POPUP "&Tip VGA monitora" + BEGIN + MENUITEM "RGB &Boja", IDM_VID_GRAY_RGB + MENUITEM "&RGB s sivih tonova", IDM_VID_GRAY_MONO + MENUITEM "&Jantarni monitor", IDM_VID_GRAY_AMBER + MENUITEM "&Zeleni monitor", IDM_VID_GRAY_GREEN + MENUITEM "&Bijeli monitor", IDM_VID_GRAY_WHITE + END + POPUP "&Vrsta konverzije sivih tonova" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Prosječno", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "CGA/PCjr/Tandy/E&GA/(S)VGA overscan", IDM_VID_OVERSCAN + MENUITEM "Promjena kontrasta za &monokromatski ekran", IDM_VID_CGACON + END + MENUITEM "&Media", IDM_MEDIA + POPUP "&Alati" + BEGIN + MENUITEM "&Postavke...", IDM_CONFIG + MENUITEM "&Ažuriranje ikone statusne trake", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "&Promijeni jezik prikaza...", IDM_VID_PROG_SETT +# ifdef USE_DISCORD + MENUITEM SEPARATOR + MENUITEM "Omogući integraciju &Discord-a", IDM_DISCORD +# endif + MENUITEM SEPARATOR + MENUITEM "Napravite &snimku zaslona\Ctrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Pojačanje zvuka...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Započni tracing\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Prestani tracing\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END +#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) + POPUP "&Logging" + BEGIN +# ifdef ENABLE_BUSLOGIC_LOG + MENUITEM "Omogući BusLogic logging\tCtrl+F4", IDM_LOG_BUSLOGIC +# endif +# ifdef ENABLE_CDROM_LOG + MENUITEM "Omogući logging CD-ROM-a\tCtrl+F5", IDM_LOG_CDROM +# endif +# ifdef ENABLE_D86F_LOG + MENUITEM "Omogući logging disketa (86F)\tCtrl+F6", IDM_LOG_D86F +# endif +# ifdef ENABLE_FDC_LOG + MENUITEM "Omogući logging floppy kontrolera\tCtrl+F7", IDM_LOG_FDC +# endif +# ifdef ENABLE_IDE_LOG + MENUITEM "Omogući IDE logging\tCtrl+F8", IDM_LOG_IDE +# endif +# ifdef ENABLE_SERIAL_LOG + MENUITEM "Omogući logging serijskog porta\tCtrl+F3", IDM_LOG_SERIAL +# endif +# ifdef ENABLE_NIC_LOG + MENUITEM "Omogući mrežni logging\tCtrl+F9", IDM_LOG_NIC +# endif +# ifdef ENABLE_LOG_COMMANDS +# ifdef ENABLE_LOG_TOGGLES + MENUITEM SEPARATOR +# endif +# ifdef ENABLE_LOG_BREAKPOINT + MENUITEM "&Breakpoint za logging\tCtrl+F10", IDM_LOG_BREAKPOINT +# endif +# ifdef ENABLE_VRAM_DUMP + MENUITEM "Dump od &video RAM-a\tCtrl+F1", IDM_DUMP_VRAM +# endif +# endif + END +#endif + POPUP "&Help" + BEGIN + MENUITEM "&Dokumentacija...", IDM_DOCS + MENUITEM "&O 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova image daoteka...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Postojeća image daoteka...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Postojeća image daoteka (&zaštićena od pisanja)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Snimi", IDM_CASSETTE_RECORD + MENUITEM "&Pusti", IDM_CASSETTE_PLAY + MENUITEM "&Premotanje na početak", IDM_CASSETTE_REWIND + MENUITEM "&Brzi naprijed do kraja", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Image daoteka...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova image daoteka...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Postojeća image daoteka...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Postojeća image daoteka (&zaštićena od pisanja)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Exportiraj u 86F format...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Isključi zvuk", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&Prazno", IDM_CDROM_EMPTY + MENUITEM "&Ponovo učitaj prethodnu image daoteku", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Image daoteka", IDM_CDROM_IMAGE + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova image daoteka...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Postojeća image daoteka...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Postojeća image daoteka (&zaštićena od pisanja)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_ZIP_EJECT + MENUITEM "&Ponovo učitaj prethodnu image daoteku", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova image daoteka...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Postojeća image daoteka...", IDM_MO_IMAGE_EXISTING + MENUITEM "Postojeća image daoteka (&zaštićena od pisanja)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_MO_EJECT + MENUITEM "&Ponovo učitaj prethodnu image daoteku", IDM_MO_RELOAD + END +END + +#if defined(DEV_BRANCH) && defined(USE_OPENGL) +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Target &framerate" + BEGIN + MENUITEM "&Sinkronizacija s videom", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 fps", IDM_VID_GL_FPS_25 + MENUITEM "&30 fps", IDM_VID_GL_FPS_30 + MENUITEM "&50 fps", IDM_VID_GL_FPS_50 + MENUITEM "&60 fps", IDM_VID_GL_FPS_60 + MENUITEM "&75 fps", IDM_VID_GL_FPS_75 + END + MENUITEM "&VSync", IDM_VID_GL_VSYNC + MENUITEM "&Odaberi shader...", IDM_VID_GL_SHADER + MENUITEM "&Ukloni shader", IDM_VID_GL_NOSHADER +END +#endif + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PROG_SETT "Promjena jezika prikaza" +#define STR_SND_GAIN "Pojačavanje zvuka" +#define STR_NEW_FLOPPY "Nova image daoteka" +#define STR_CONFIG "86Box postavke" +#define STR_SPECIFY_DIM "Odredite glavne dimenzije prozora" + +#define STR_OK "OK" +#define STR_CANCEL "Odustani" +#define STR_GLOBAL "Spremite ove postavke kao &globalne zadane postavke" +#define STR_DEFAULT "&Standard" +#define STR_LANGUAGE "Jezik:" + +#define STR_GAIN "Pojačavanje" + +#define STR_FILE_NAME "Ime daoteke:" +#define STR_DISK_SIZE "Veličina diska:" +#define STR_RPM_MODE "Način rotacije:" +#define STR_PROGRESS "Napredak:" + +#define STR_WIDTH "Širina:" +#define STR_HEIGHT "Visina:" +#define STR_LOCK_TO_SIZE "Zaključajte na ovu veličinu" + +#define STR_MACHINE_TYPE "Tip računala:" +#define STR_MACHINE "Računalo:" +#define STR_CONFIGURE "Konfigurirajte" +#define STR_CPU_TYPE "CPU tip:" +#define STR_SPEED "Brzina:" +#define STR_FPU "FPU uređaj:" +#define STR_WAIT_STATES "Stanja čekanje:" +#define STR_MB "MB" +#define STR_MEMORY "Memorija:" +#define STR_TIME_SYNC "Vremenska sinkronizacija" +#define STR_DISABLED "Deaktivirano" +#define STR_ENABLED_LOCAL "Uključeno (lokalno vrijeme)" +#define STR_ENABLED_UTC "Uključeno (UTC)" +#define STR_DYNAREC "Dinamički rekompilator" + +#define STR_VIDEO "Video kartica:" +#define STR_VOODOO "Voodoo Graphics" + +#define STR_MOUSE "Miš:" +#define STR_JOYSTICK "Joystick:" +#define STR_JOY1 "Joystick 1..." +#define STR_JOY2 "Joystick 2..." +#define STR_JOY3 "Joystick 3..." +#define STR_JOY4 "Joystick 4..." + +#define STR_SOUND "Sound kartica:" +#define STR_MIDI "MIDI Out uređaj:" +#define STR_MIDI_IN "MIDI In uređaj:" +#define STR_MPU401 "Samostalni MPU-401 uređaj" +#define STR_SSI "Innovation SSI-2001" +#define STR_CMS "CMS / Game Blaster" +#define STR_GUS "Gravis Ultrasound" +#define STR_FLOAT "Koristi FLOAT32 zvuk" + +#define STR_NET_TYPE "Tip mreže:" +#define STR_PCAP "PCap uređaj:" +#define STR_NET "Mrežni adapter:" + +#define STR_LPT1 "LPT1 uređaj:" +#define STR_LPT2 "LPT2 uređaj:" +#define STR_LPT3 "LPT3 uređaj:" +#define STR_SERIAL1 "Serijski port 1" +#define STR_SERIAL2 "Serijski port 2" +#define STR_SERIAL3 "Serijski port 3" +#define STR_SERIAL4 "Serijski port 4" +#define STR_PARALLEL1 "Paralelni priključak 1" +#define STR_PARALLEL2 "Paralelni priključak 2" +#define STR_PARALLEL3 "Paralelni priključak 3" + +#define STR_HDC "Kontroler tvrdog diska:" +#define STR_FDC "Kontroler diskete:" +#define STR_IDE_TER "Tercijarni IDE kontroler" +#define STR_IDE_QUA "Kvaternarni IDE kontroler" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Kontroler 1:" +#define STR_SCSI_2 "Kontroler 2:" +#define STR_SCSI_3 "Kontroler 3:" +#define STR_SCSI_4 "Kontroler 4:" +#define STR_CASSETTE "Audio kaseta" + +#define STR_HDD "Tvrdi diskovi:" +#define STR_NEW "&Novo..." +#define STR_EXISTING "&Postojeći..." +#define STR_REMOVE "&Ukloniti" +#define STR_BUS "Bus:" +#define STR_CHANNEL "Kanal:" +#define STR_ID "ID:" + +#define STR_SPECIFY "&Izaberi..." +#define STR_SECTORS "Sektori:" +#define STR_HEADS "Glave:" +#define STR_CYLS "Cilindri:" +#define STR_SIZE_MB "Veličina (MB):" +#define STR_TYPE "Tip:" +#define STR_IMG_FORMAT "Format image daoteke:" +#define STR_BLOCK_SIZE "Veličina image daoteke:" + +#define STR_FLOPPY_DRIVES "Floppy drives:" +#define STR_TURBO "Turbo timingovi" +#define STR_CHECKBPB "Provjerite BPB" +#define STR_CDROM_DRIVES "CD-ROM pogoni:" + +#define STR_MO_DRIVES "MO pogoni:" +#define STR_ZIP_DRIVES "ZIP pogoni:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA RTC:" +#define STR_ISAMEM "ISA proširenje memorije" +#define STR_ISAMEM_1 "Kartica 1:" +#define STR_ISAMEM_2 "Kartica 2:" +#define STR_ISAMEM_3 "Kartica 3:" +#define STR_ISAMEM_4 "Kartica 4:" +#define STR_BUGGER "ISABugger uređaj" +#define STR_POSTCARD "POST kartica" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Greška" + IDS_2050 "Fatalna greška" + IDS_2051 "" + IDS_2052 "Pritisnite CTRL+ALT+PAGE DOWN za povratak u prozorski način rada." + IDS_2053 "Brzina" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP image daoteke (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the ""roms"" directory." + IDS_2057 "(prazno)" + IDS_2058 "ZIP image daoteke (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Svi daoteke (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Uključeno" + IDS_2061 "Isključeno" + IDS_2062 "Svi image daoteke (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Bazni sektorni image daoteke (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Površne image daoteke (*.86F)\0*.86F\0" + IDS_2063 "Računalo ""%hs"" nije dostupan jer nedostaju ROM-ovi u mapu roms/machines. Prebacivanje na raspoloživi računalo." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Video kartica ""%hs"" nije dostupna jer nedostaju ROM-ovi u mapu roms/video. Prebacivanje na dostupnu video karticu." + IDS_2065 "Računalo" + IDS_2066 "Video" + IDS_2067 "Ulazni uređaji" + IDS_2068 "Zvuk" + IDS_2069 "Mreža" + IDS_2070 "Priključci (COM & LPT)" + IDS_2071 "Kontroleri za diskovi" + IDS_2072 "Tvrdi diskovi" + IDS_2073 "Floppy & CD-ROM pogoni" + IDS_2074 "Ostali uklonjivi uređaji" + IDS_2075 "Ostali periferni uređaji" + IDS_2076 "Površne image daoteke (*.86F)\0*.86F\0" + IDS_2077 "Kliknite za snimanje miša" + IDS_2078 "Pritisnite F8+F12 za otpuštanje miša" + IDS_2079 "Pritisnite F8+F12 ili srednji gumb za otpuštanje miša" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2080 "Nije moguće inicijalizirati FluidSynth" + IDS_2081 "Bus" + IDS_2082 "Daoteka" + IDS_2083 "C" + IDS_2084 "G" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Provjeri BPB" + IDS_2088 "KB" + IDS_2089 "Nije moguće inicijalizirati videorenderer." + IDS_2090 "Standard" + IDS_2091 "%i stanja čekanja" + IDS_2092 "Tip" + IDS_2093 "Postavljanje PCap-a nije uspjelo" + IDS_2094 "Nema PCap uređaja" + IDS_2095 "Nevažeći PCap uređaj" + IDS_2096 "Standardni joystick(e) s 2 tipke" + IDS_2097 "Standardni joystick s 4 tipke" + IDS_2098 "Standardni joystick s 6 tipke" + IDS_2099 "Standardni joystick s 6 tipke" + IDS_2100 "CH Flightstick Pro" + IDS_2101 "Microsoft SideWinder Pad" + IDS_2102 "Thrustmaster Flight Control System" + IDS_2103 "Nikakve" + IDS_2104 "Nije moguće učitati akceleratore tipkovnice." + IDS_2105 "Nije moguće registrirati neobrađeni unos." + IDS_2106 "%u" + IDS_2107 "%u MB (CHS: %i, %i, %i)" + IDS_2108 "Disketa %i (%s): %ls" + IDS_2109 "Svi image daoteke (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Napredne sektorske image daoteke (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Bazni sektorni image daoteke (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Flux image daoteke (*.FDI)\0*.FDI\0Površne image daoteke (*.86F;*.MFM)\0*.86F;*.MFM\0Svi daoteke (*.*)\0*.*\0" + IDS_2110 "Nije moguće inicijalizirati FreeType" + IDS_2111 "Nije moguće inicijalizirati SDL, SDL2.dll je potrebno" + IDS_2112 "Jeste li sigurni da želite hard resetirati emulirano računalo?" + IDS_2113 "Jeste li sigurni da želite izaći iz 86Boxa?" + IDS_2114 "Nije moguće inicijalizirati Ghostscript" + IDS_2115 "MO %i (%ls): %ls" + IDS_2116 "Image daoteke za MO diskovi (*.IM?;*.MDI)\0*.IM?;*.MDI\0Svi daoteke (*.*)\0*.*\0" + IDS_2117 "Dobrodošli u 86Box!" + IDS_2118 "Interni kontroler" + IDS_2119 "Izlazi" + IDS_2120 "Nisu pronađeni ROM daoteke" + IDS_2121 "Želite li spremiti postavke?" + IDS_2122 "Ovo će napraviti hard resetiranje emuliranog računala." + IDS_2123 "Spremi" + IDS_2124 "O 86Box" + IDS_2125 "86Box verzija " EMU_VERSION + + IDS_2126 "Emulator starih računala\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, i drugi.\n\Preveo: dob205\n\nObjavljeno pod GNU Općom javnom licencom, verzija 2 ili kasnije. Vidi LICENSE za više informacije." + IDS_2127 "OK" + IDS_2128 "Hardver nije dostupan" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2129 "Provjerite je li " LIB_NAME_PCAP " instaliran i jeste li na " LIB_NAME_PCAP "-kompatibilnoj mrežnoj vezi." + IDS_2130 "Nevažeća konfiguracija" +#ifdef _WIN32 +#define LIB_NAME_FREETYPE "freetype.dll" +#else +#define LIB_NAME_FREETYPE "libfreetype" +#endif + IDS_2131 LIB_NAME_FREETYPE " je potrebno za emuliranje ESC/P pisača." +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2132 LIB_NAME_GS " je potrebno za automatsku konverziju PostScript daoteke u PDF daoteke.\n\nSvi dokumenti poslani na generički PostScript pisač bit će spremljeni kao PostScript (.ps) datoteke." +#ifdef _WIN32 +#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" +#else +#define LIB_NAME_FLUIDSYNTH "libfluidsynth" +#endif + IDS_2133 LIB_NAME_FLUIDSYNTH " je potrebno za FluidSynth MIDI izlaz." + IDS_2134 "Ulazak u način cijelog zaslona" + IDS_2135 "Ne pokazi više ovu poruku" + IDS_2136 "Ne izlazi" + IDS_2137 "Resetiraj" + IDS_2138 "Ne resetiraj" + IDS_2139 "Image daoteke za MO diskovi (*.IM?;*.MDI)\0*.IM?;*.MDI\0Svi daoteke (*.*)\0*.*\0" + IDS_2140 "Image daoteke za CD-ROM diskovi (*.ISO;*.CUE)\0*.ISO;*.CUE\0Svi daoteke (*.*)\0*.*\0" + IDS_2141 "%hs Konfiguracija Uređaja" + IDS_2142 "Monitor u stanju mirovanja" + IDS_2143 "OpenGL shaderi (*.GLSL)\0*.GLSL\0Svi daoteke (*.*)\0*.*\0" + IDS_2144 "OpenGL opcije" + IDS_2145 "Učitavate nepodržanu konfiguraciju" + IDS_2146 "Filtriranje tipa CPU-a na temelju odabranog stroja onemogućeno je za ovaj emuliranog računalo.\n\nOvo omogućuje odabir CPU-a koji inače nije kompatibilan s odabranog računalom. Međutim, možete naići na nekompatibilnosti s BIOS-om uređaja ili drugim softverom.\n\nOmogućavanje ove postavke nije službeno podržano i sva prijava o greškama mogu biti zatvorena kao ""invalid""." + IDS_2147 "Nastavi" + IDS_2148 "Audio kasete: %s" + IDS_2149 "Image daoteke za audio kasete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Svi daoteke (*.*)\0*.*\0" + IDS_2150 "Kaseta %i: %ls" + IDS_2151 "Image daoteke za kasete (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Svi daoteke (*.*)\0*.*\0" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Tvrdi disk (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLL ili ESDI CD-ROM drives nisu nikada postojali" + IDS_4100 "Prilagođeno..." + IDS_4101 "Prilagođeno (veliko)..." + IDS_4102 "Dodajte novi tvrdi disk" + IDS_4103 "Dodajte postojeći tvrdi disk" + IDS_4104 "HDI disk image daoteke ne mogu biti veće od 4 GB." + IDS_4105 "Image daoteke tvrdog diska ne mogu biti veće od 127 GB." + IDS_4106 "Image daoteke za tvrde diskove (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Svi daoteke (*.*)\0*.*\0" + IDS_4107 "Nije moguće pročitati datoteku" + IDS_4108 "Nije moguće napisati datoteku" + IDS_4109 "HDI ili HDX image daoteke s veličinom sektora koja nije 512 kB nisu podržane." + IDS_4110 "USB nije još podržano" + IDS_4111 "Image daoteka diska već postoji" + IDS_4112 "Molimo unesite važeći naziv datoteke." + IDS_4113 "Image diska je stvorena" + IDS_4114 "Provjerite je li postoji datoteka i je li je čitljiva." + IDS_4115 "Provjerite je li se datoteka sprema u mapu s dopuštenjima za pisanje." + IDS_4116 "Image diska je prevelika" + IDS_4117 "Ne zaboravite particionirati i formatirati novostvoreni tvrdi disk." + IDS_4118 "Odabrana datoteka bit će prebrisana. Jeste li sigurni da želite koristiti ovu daoteku?" + IDS_4119 "Nepodržana image daoteka diska" + IDS_4120 "Prepiši" + IDS_4121 "Ne prepiši" + IDS_4122 "Image daoteka neobrađenih podataka (.img)" + IDS_4123 "HDI image daoteka (.hdi)" + IDS_4124 "HDX image daoteka (.hdx)" + IDS_4125 "VHD fiksne veličine (.vhd)" + IDS_4126 "VHD dinamičke veličine (.vhd)" + IDS_4127 "Različiti VHD (.vhd)" + IDS_4128 "Veliki blokovi (2 MB)" + IDS_4129 "Mali blokovi (512 KB)" + IDS_4130 "VHD image daoteke (*.VHD)\0*.VHD\0Svi daoteke (*.*)\0*.*\0" + IDS_4131 "Izaberi matični VHD" + IDS_4132 "To bi moglo značiti da je matična image daoteka promijenjena nakon što je stvorena različita image daoteka.\n\nTo se također može dogoditi ako su image datoteke premještene ili kopirane, ili greška u programu koji je stvorio ovaj disk.\n\nŽelite li popraviti vremenske oznake?" + IDS_4133 "Vremenske ozanke matične i poređenog diska ne odgovaraju." + IDS_4134 "Nisam mogao popraviti vremensku oznaku VHDa." + IDS_4135 "%01i:%02i" + + IDS_4352 "MFM/RLL" + IDS_4353 "XTA" + IDS_4354 "ESDI" + IDS_4355 "IDE" + IDS_4356 "ATAPI" + IDS_4357 "SCSI" + + IDS_4608 "MFM/RLL (%01i:%01i)" + IDS_4609 "XTA (%01i:%01i)" + IDS_4610 "ESDI (%01i:%01i)" + IDS_4611 "IDE (%01i:%01i)" + IDS_4612 "ATAPI (%01i:%01i)" + IDS_4613 "SCSI (%01i:%02i)" + + IDS_5120 "CD-ROM %i (%s): %s" + + IDS_5376 "Deaktivirano" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Deaktivirano" + IDS_5637 "ATAPI (%01i:%01i)" + IDS_5638 "SCSI (%01i:%02i)" + + IDS_5888 "160 kB" + IDS_5889 "180 kB" + IDS_5890 "320 kB" + IDS_5891 "360 kB" + IDS_5892 "640 kB" + IDS_5893 "720 kB" + IDS_5894 "1,2 MB" + IDS_5895 "1,25 MB" + IDS_5896 "1,44 MB" + IDS_5897 "DMF (1024 clusteri)" + IDS_5898 "DMF (2048 clusteri)" + IDS_5899 "2,88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3,5"" 128Mb M.O. (ISO 10090)" + IDS_5903 "3,5"" 230Mb M.O. (ISO 13963)" + IDS_5904 "3,5"" 540Mb M.O. (ISO 15498)" + IDS_5905 "3,5"" 640Mb M.O. (ISO 15498)" + IDS_5906 "3,5"" 1.3Gb M.O. (GigaMO)" + IDS_5907 "3,5"" 2.3Gb M.O. (GigaMO 2)" + IDS_5908 "5,25"" 600Mb M.O." + IDS_5909 "5,25"" 650Mb M.O." + IDS_5910 "5,25"" 1Gb M.O." + IDS_5911 "5,25"" 1.3Gb M.O." + + IDS_6144 "Savršen broj okretanja" + IDS_6145 "1%% ispod savršenog broja okretaja" + IDS_6146 "1,5%% ispod savršenog broja okretaja" + IDS_6147 "2%% ispod savršenog broja okretaja" + + IDS_7168 "(Standard operativnog sustava)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Croatian (hr-HR) resources +///////////////////////////////////////////////////////////////////////////// From 08075ff29f79ead03a349f43954a2b8a994532bf Mon Sep 17 00:00:00 2001 From: dob205 Date: Mon, 15 Nov 2021 12:37:42 +0100 Subject: [PATCH 05/61] Loading the Croatian localization into the program --- src/win/86Box.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/win/86Box.rc b/src/win/86Box.rc index 7fd422702..ffa88d48c 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -366,3 +366,4 @@ END #include "languages/hu-HU.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" +#include "languages/hr-HR.rc" From df6f638a21686bbb0dfccf20017c375e53b15095 Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 15 Nov 2021 12:48:38 +0100 Subject: [PATCH 06/61] Fixed two bugs with the Croatian translation. --- src/win/languages/hr-HR.rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index 09ca74158..015e00da6 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -107,7 +107,7 @@ BEGIN MENUITEM "Omogući integraciju &Discord-a", IDM_DISCORD # endif MENUITEM SEPARATOR - MENUITEM "Napravite &snimku zaslona\Ctrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM "Napravite &snimku zaslona\tCtrl+F11", IDM_ACTION_SCREENSHOT MENUITEM SEPARATOR MENUITEM "&Pojačanje zvuka...", IDM_SND_GAIN #ifdef MTR_ENABLED @@ -487,7 +487,7 @@ BEGIN IDS_2124 "O 86Box" IDS_2125 "86Box verzija " EMU_VERSION - IDS_2126 "Emulator starih računala\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, i drugi.\n\Preveo: dob205\n\nObjavljeno pod GNU Općom javnom licencom, verzija 2 ili kasnije. Vidi LICENSE za više informacije." + IDS_2126 "Emulator starih računala\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, i drugi.\n\nPreveo: dob205\n\nObjavljeno pod GNU Općom javnom licencom, verzija 2 ili kasnije. Vidi LICENSE za više informacije." IDS_2127 "OK" IDS_2128 "Hardver nije dostupan" #ifdef _WIN32 From 0111c83828145a5e20fc9975e7ace62191b5590d Mon Sep 17 00:00:00 2001 From: altiereslima Date: Mon, 15 Nov 2021 11:19:36 -0300 Subject: [PATCH 07/61] Update pt-BR.rc --- src/win/languages/pt-BR.rc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index 623bced89..4e6b97981 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -282,7 +282,7 @@ END #define STR_OK "OK" #define STR_CANCEL "Cancelar" -#define STR_GLOBAL "Use estas configurações como &padrões globais" +#define STR_GLOBAL "Usar estas configurações como &padrões globais" #define STR_DEFAULT "&Padrão" #define STR_LANGUAGE "Idioma:" @@ -312,19 +312,19 @@ END #define STR_ENABLED_UTC "Ativada (UTC)" #define STR_DYNAREC "Recompilador dinâmico" -#define STR_VIDEO "Video:" +#define STR_VIDEO "Vídeo:" #define STR_VOODOO "3DFX Voodoo" -#define STR_MOUSE "Mouse" +#define STR_MOUSE "Mouse:" #define STR_JOYSTICK "Joystick:" #define STR_JOY1 "Joystick 1..." #define STR_JOY2 "Joystick 2..." #define STR_JOY3 "Joystick 3..." #define STR_JOY4 "Joystick 4..." -#define STR_SOUND "Place de som:" +#define STR_SOUND "Placa de som:" #define STR_MIDI "Disp. saída MIDI:" -#define STR_MIDI_IN "Disp. enrada MIDI:" +#define STR_MIDI_IN "Disp. entrada MIDI:" #define STR_MPU401 "MPU-401 autônomo" #define STR_SSI "Innovation SSI-2001" #define STR_CMS "CMS / Game Blaster" @@ -405,7 +405,7 @@ BEGIN IDS_2049 "Erro" IDS_2050 "Erro fatal" IDS_2051 "" - IDS_2052 "Use CTRL+ALT+PAGE DOWN para retornar para o modo janela" + IDS_2052 "Use CTRL+ALT+PAGE DOWN para retornar ao modo janela" IDS_2053 "Velocidade" IDS_2054 "ZIP %03i %i (%s): %ls" IDS_2055 "Imagens ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" @@ -476,7 +476,7 @@ BEGIN IDS_2112 "Tem certeza de que deseja reiniciar completamente a máquina emulada?" IDS_2113 "Tem certeza de que deseja sair do 86Box?" IDS_2114 "Não é possível inicializar o Ghostscript" - IDS_2115 "MO %i (%ls): %ls" + IDS_2115 "Magneto-óptico %i (%ls): %ls" IDS_2116 "Imagens magneto-ópticas (*.IM?;*.MDI)\0*.IM?;*.MDI\0Todos os arquivos (*.*)\0*.*\0" IDS_2117 "Bem-vindo ao 86Box!" IDS_2118 "Controle interno" @@ -496,7 +496,7 @@ BEGIN #else #define LIB_NAME_PCAP "libpcap" #endif - IDS_2129 "Certifique-se de que " LIB_NAME_PCAP " esteja instalado e que você tenha uma " LIB_NAME_PCAP " -conexão de rede compatível." + IDS_2129 "Certifique-se de que " LIB_NAME_PCAP " esteja instalado e que você tenha uma conexão de rede compatível com " LIB_NAME_PCAP "." IDS_2130 "Configuração inválida" #ifdef _WIN32 #define LIB_NAME_FREETYPE "freetype.dll" From 6297823fb40c91b4c57d94726034157f8dfc3aa3 Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 15 Nov 2021 16:35:34 +0100 Subject: [PATCH 08/61] Fixed by DoutorHouse to the pt-PT translation. --- src/win/languages/pt-PT.rc | 176 ++++++++++++++++++------------------- 1 file changed, 88 insertions(+), 88 deletions(-) diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index a79644b09..b7e291621 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -15,7 +15,7 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE MainMenu MENU DISCARDABLE BEGIN - POPUP "&Acção" + POPUP "&Ação" BEGIN MENUITEM "&Teclado requere captura", IDM_ACTION_KBD_REQ_CAPTURE MENUITEM "&CTRL direito é ALT esquerdo",IDM_ACTION_RCTRL_IS_LALT @@ -51,7 +51,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Especificar dimensões...", IDM_VID_SPECIFY_DIM MENUITEM "&Forçar rácio de visualização 4:3", IDM_VID_FORCE43 - POPUP "F&actor de escala de janela" + POPUP "&Factor de escala de janela" BEGIN MENUITEM "&0.5x", IDM_VID_SCALE_1X MENUITEM "&1x", IDM_VID_SCALE_2X @@ -65,10 +65,10 @@ BEGIN END MENUITEM "Escala Hi&DPI", IDM_VID_HIDPI MENUITEM SEPARATOR - MENUITEM "&Tela cheia\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN - POPUP "Mode &de estiramento em tela cheia" + MENUITEM "&Ecrã cheio\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + POPUP "Modo &de estiramento em ecrã cheio" BEGIN - MENUITEM "&Estiramento em tela cheia", IDM_VID_FS_FULL + MENUITEM "&Estiramento em ecrã cheio", IDM_VID_FS_FULL MENUITEM "&4:3", IDM_VID_FS_43 MENUITEM "Pixels &quadrados (Manter rácio)", IDM_VID_FS_KEEPRATIO MENUITEM "Escala &inteira", IDM_VID_FS_INT @@ -88,64 +88,64 @@ BEGIN BEGIN MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 - MENUITEM "&Média", IDM_VID_GRAYCT_AVE + MENUITEM "&Media", IDM_VID_GRAYCT_AVE END END MENUITEM SEPARATOR MENUITEM "Overscan de CGA/PCjr/Tandy/E&GA/(S)VGA", IDM_VID_OVERSCAN - MENUITEM "Mudar &contraste para ecrão monocromático", IDM_VID_CGACON + MENUITEM "Mudar &contraste para ecrã monocromático", IDM_VID_CGACON END - MENUITEM "&Mídia", IDM_MEDIA + MENUITEM "&Media", IDM_MEDIA POPUP "&Ferramentas" BEGIN MENUITEM "&Definições...", IDM_CONFIG - MENUITEM "&Actualizar ícones da barra de estado", IDM_UPDATE_ICONS + MENUITEM "&Atualizar ícones da barra de estado", IDM_UPDATE_ICONS MENUITEM SEPARATOR MENUITEM "Mudar idioma de a&presentação...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR - MENUITEM "Activar integração de &Discord", IDM_DISCORD + MENUITEM "Ativar integração com &Discord", IDM_DISCORD # endif MENUITEM SEPARATOR - MENUITEM "Tirar i&magem de tela\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM "Gravar imagem de ecrã\tCtrl+F11", IDM_ACTION_SCREENSHOT MENUITEM SEPARATOR MENUITEM "&Ganho de som...", IDM_SND_GAIN #ifdef MTR_ENABLED MENUITEM SEPARATOR - MENUITEM "Iniciar o rasterio\tCtrl+T", IDM_ACTION_BEGIN_TRACE - MENUITEM "Terminar o rasterio\tCtrl+T", IDM_ACTION_END_TRACE + MENUITEM "Iniciar o rastreio\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Terminar o rastreio\tCtrl+T", IDM_ACTION_END_TRACE #endif END #if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) POPUP "&Registo" BEGIN # ifdef ENABLE_BUSLOGIC_LOG - MENUITEM "Activar registo BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC + MENUITEM "Ativar registo BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC # endif # ifdef ENABLE_CDROM_LOG - MENUITEM "Activar registo CD-ROM\tCtrl+F5", IDM_LOG_CDROM + MENUITEM "Ativar registo do CD-ROM\tCtrl+F5", IDM_LOG_CDROM # endif # ifdef ENABLE_D86F_LOG - MENUITEM "Activar registo de disquetes (86F)\tCtrl+F6", IDM_LOG_D86F + MENUITEM "Ativar registo de disquetes (86F)\tCtrl+F6", IDM_LOG_D86F # endif # ifdef ENABLE_FDC_LOG - MENUITEM "Activar registo do controlar de disquetes\tCtrl+F7", IDM_LOG_FDC + MENUITEM "Ativar registo do controlador de disquetes\tCtrl+F7", IDM_LOG_FDC # endif # ifdef ENABLE_IDE_LOG - MENUITEM "Activar registo IDE\tCtrl+F8", IDM_LOG_IDE + MENUITEM "Ativar registo IDE\tCtrl+F8", IDM_LOG_IDE # endif # ifdef ENABLE_SERIAL_LOG - MENUITEM "Activar registo da porta de série\tCtrl+F3", IDM_LOG_SERIAL + MENUITEM "Ativar registo da porta série\tCtrl+F3", IDM_LOG_SERIAL # endif # ifdef ENABLE_NIC_LOG - MENUITEM "Activar registo de rede\tCtrl+F9", IDM_LOG_NIC + MENUITEM "Ativar registo de rede\tCtrl+F9", IDM_LOG_NIC # endif # ifdef ENABLE_LOG_COMMANDS # ifdef ENABLE_LOG_TOGGLES MENUITEM SEPARATOR # endif # ifdef ENABLE_LOG_BREAKPOINT - MENUITEM "&Ponto de parada no registo\tCtrl+F10", IDM_LOG_BREAKPOINT + MENUITEM "&Ponto de paragem no registo\tCtrl+F10", IDM_LOG_BREAKPOINT # endif # ifdef ENABLE_VRAM_DUMP MENUITEM "Despejo de RAM &vídeo\tCtrl+F1", IDM_DUMP_VRAM @@ -156,7 +156,7 @@ BEGIN POPUP "&Ajuda" BEGIN MENUITEM "&Documentação...", IDM_DOCS - MENUITEM "&Acerca de 86Box...", IDM_ABOUT + MENUITEM "&Acerca do 86Box...", IDM_ABOUT END END @@ -172,14 +172,14 @@ BEGIN MENUITEM "&Nova imagem...", IDM_CASSETTE_IMAGE_NEW MENUITEM SEPARATOR MENUITEM "Imagem &existente...", IDM_CASSETTE_IMAGE_EXISTING - MENUITEM "Imagem existente (&Protecção contra a escritura)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM "Imagem existente (&Proteção contra escrita)...", IDM_CASSETTE_IMAGE_EXISTING_WP MENUITEM SEPARATOR MENUITEM "&Gravar", IDM_CASSETTE_RECORD MENUITEM "&Reproduzir", IDM_CASSETTE_PLAY MENUITEM "Re&bobinar para o início", IDM_CASSETTE_REWIND - MENUITEM "&Avanço rápido para a fim", IDM_CASSETTE_FAST_FORWARD + MENUITEM "&Avanço rápido para o fim", IDM_CASSETTE_FAST_FORWARD MENUITEM SEPARATOR - MENUITEM "E&jectar", IDM_CASSETTE_EJECT + MENUITEM "E&jetar", IDM_CASSETTE_EJECT END END @@ -189,7 +189,7 @@ BEGIN BEGIN MENUITEM "&Imagem...", IDM_CARTRIDGE_IMAGE MENUITEM SEPARATOR - MENUITEM "E&jectar", IDM_CARTRIDGE_EJECT + MENUITEM "E&jetar", IDM_CARTRIDGE_EJECT END END @@ -200,11 +200,11 @@ BEGIN MENUITEM "&Nova imagem...", IDM_FLOPPY_IMAGE_NEW MENUITEM SEPARATOR MENUITEM "Imagem &existente...", IDM_FLOPPY_IMAGE_EXISTING - MENUITEM "Imagem existente (&Protecção contra a escritura)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM "Imagem existente (&Proteção contra escrita)...", IDM_FLOPPY_IMAGE_EXISTING_WP MENUITEM SEPARATOR MENUITEM "E&xportar para 86F...", IDM_FLOPPY_EXPORT_TO_86F MENUITEM SEPARATOR - MENUITEM "E&jectar", IDM_FLOPPY_EJECT + MENUITEM "E&jetar", IDM_FLOPPY_EJECT END END @@ -214,7 +214,7 @@ BEGIN BEGIN MENUITEM "&Mute", IDM_CDROM_MUTE MENUITEM SEPARATOR - MENUITEM "E&mpty", IDM_CDROM_EMPTY + MENUITEM "&CDROM vazio", IDM_CDROM_EMPTY MENUITEM "&Recarregar imagem anterior", IDM_CDROM_RELOAD MENUITEM SEPARATOR MENUITEM "&Imagem", IDM_CDROM_IMAGE @@ -228,9 +228,9 @@ BEGIN MENUITEM "&Nova imagem...", IDM_ZIP_IMAGE_NEW MENUITEM SEPARATOR MENUITEM "Imagem &existente...", IDM_ZIP_IMAGE_EXISTING - MENUITEM "Imagem existente (&Protecção contra a escritura)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM "Imagem existente (&Proteção contra escrita)...", IDM_ZIP_IMAGE_EXISTING_WP MENUITEM SEPARATOR - MENUITEM "E&jectar", IDM_ZIP_EJECT + MENUITEM "E&jetar", IDM_ZIP_EJECT MENUITEM "&Recarregar imagem anterior", IDM_ZIP_RELOAD END END @@ -242,9 +242,9 @@ BEGIN MENUITEM "&Nova imagem...", IDM_MO_IMAGE_NEW MENUITEM SEPARATOR MENUITEM "Imagem &existente...", IDM_MO_IMAGE_EXISTING - MENUITEM "Imagem existente (&Protecção contra a escritura)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM "Imagem existente (&Proteção contra escrita)...", IDM_MO_IMAGE_EXISTING_WP MENUITEM SEPARATOR - MENUITEM "E&jectar", IDM_MO_EJECT + MENUITEM "E&jetar", IDM_MO_EJECT MENUITEM "&Recarregar imagem anterior", IDM_MO_RELOAD END END @@ -262,7 +262,7 @@ BEGIN MENUITEM "&75 q/s", IDM_VID_GL_FPS_75 END MENUITEM "&VSync", IDM_VID_GL_VSYNC - MENUITEM "&Seleccionar shader...", IDM_VID_GL_SHADER + MENUITEM "&Selecionar shader...", IDM_VID_GL_SHADER MENUITEM "&Remover shader", IDM_VID_GL_NOSHADER END #endif @@ -274,10 +274,10 @@ END // #define STR_PROG_SETT "Mudar idioma de apresentação" -#define STR_SND_GAIN "Ganha de som" +#define STR_SND_GAIN "Ganho de som" #define STR_NEW_FLOPPY "Nova imagem" -#define STR_CONFIG "Definições de 86Box" -#define STR_SPECIFY_DIM "Especifiar dimensões da janela principal" +#define STR_CONFIG "Definições do 86Box" +#define STR_SPECIFY_DIM "Especificar dimensões da janela principal" #define STR_OK "OK" #define STR_CANCEL "Cancelar" @@ -294,7 +294,7 @@ END #define STR_WIDTH "Largura:" #define STR_HEIGHT "Altura:" -#define STR_LOCK_TO_SIZE "Fechar para este tamanho" +#define STR_LOCK_TO_SIZE "Fixar neste tamanho" #define STR_MACHINE_TYPE "Tipo de máquina:" #define STR_MACHINE "Máquina:" @@ -306,9 +306,9 @@ END #define STR_MB "MB" #define STR_MEMORY "Memória:" #define STR_TIME_SYNC "Sincronização da hora" -#define STR_DISABLED "Desactivada" -#define STR_ENABLED_LOCAL "Activada (ora local)" -#define STR_ENABLED_UTC "Activada (UTC)" +#define STR_DISABLED "Desativada" +#define STR_ENABLED_LOCAL "Ativada (hora local)" +#define STR_ENABLED_UTC "Ativada (UTC)" #define STR_DYNAREC "Recompilador dinâmico" #define STR_VIDEO "Vídeo:" @@ -404,23 +404,23 @@ BEGIN IDS_2049 "Erro" IDS_2050 "Erro fatal" IDS_2051 "" - IDS_2052 "Pressione CTRL+ALT+PAGE DOWN para voltar no modo de janela." + IDS_2052 "Pressione CTRL+ALT+PAGE DOWN para voltar ao modo de janela." IDS_2053 "Velocidade" IDS_2054 "ZIP %03i %i (%s): %ls" IDS_2055 "Imagens ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" - IDS_2056 "86Box não conseguiu encotnrar nenhuma imagem ROM utilizável.\n\nPor favor, descarregue um pacote ROM e extraí-lo na pasta ""roms""." + IDS_2056 "O 86Box não conseguiu encontrar nenhuma imagem ROM utilizável.\n\nPor favor, vá a href=""https://github.com/86Box/roms/releases/latest"">descarregue um pacote ROM e instale-o na pasta ""roms""." IDS_2057 "(empty)" IDS_2058 "Imagens ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Todos os ficheiros (*.*)\0*.*\0" IDS_2059 "Turbo" - IDS_2060 "Activado" - IDS_2061 "Desactivado" + IDS_2060 "Ativado" + IDS_2061 "Desativado" IDS_2062 "Todas as imagens (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Imagens básicas de sector (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Imagens de superfície (*.86F)\0*.86F\0" - IDS_2063 "A máquina ""%hs"" não é disponível devido à falta de ROMs na pasta roms/machines. A mudar para uma máquina disponível." + IDS_2063 "A máquina ""%hs"" não está disponível devido à falta de ROMs na pasta roms/machines. A mudar para uma máquina disponível." END STRINGTABLE DISCARDABLE BEGIN - IDS_2064 "A placa vídeo ""%hs"" não é disponível devido à falta de ROMs na pasta roms/video. A mudar para uma placa vídeo disponível." + IDS_2064 "A placa vídeo ""%hs"" não está disponível devido à falta de ROMs na pasta roms/video. A mudar para uma placa vídeo disponível." IDS_2065 "Máquina" IDS_2066 "Apresentação" IDS_2067 "Dispositivos de entrada" @@ -454,40 +454,40 @@ BEGIN IDS_2091 "%i estado(s) de espera" IDS_2092 "Tipo" IDS_2093 "Falha na configuração de PCap" - IDS_2094 "Não foi encontrado algum dispositivo PCap" + IDS_2094 "Não foi encontrado um dispositivo PCap" IDS_2095 "Dispositivo PCap inválido" - IDS_2096 "Joystick(s) estándar a 2 botões" - IDS_2097 "Joystick(s) estándar a 4 botões" - IDS_2098 "Joystick(s) estándar a 6 botões" - IDS_2099 "Joystick(s) estándar a 8 botões" + IDS_2096 "Joystick(s) standard de 2 botões" + IDS_2097 "Joystick(s) standard de 4 botões" + IDS_2098 "Joystick(s) standard de 6 botões" + IDS_2099 "Joystick(s) standard de 8 botões" IDS_2100 "CH Flightstick Pro" IDS_2101 "Microsoft SideWinder Pad" IDS_2102 "Thrustmaster Flight Control System" IDS_2103 "Nenhum" - IDS_2104 "Não foi possível inicializar os acceleradores de teclado." + IDS_2104 "Não foi possível inicializar os aceleradores de teclado." IDS_2105 "Não foi possível registar a entrada bruta." IDS_2106 "%u" IDS_2107 "%u MB (CCS: %i, %i, %i)" IDS_2108 "Disquete %i (%s): %ls" IDS_2109 "Todas as imagens (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Imagens avançadas de sector (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Imagens básicas de sector (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Imagens de fluxo (*.FDI)\0*.FDI\0Imagens de superfície (*.86F;*.MFM)\0*.86F;*.MFM\0Todos os ficheiros (*.*)\0*.*\0" IDS_2110 "Não foi possível inicializar o FreeType" - IDS_2111 "Não foi possível inicializar o SDL, SDL2.dll é necessário" - IDS_2112 "Tem certaza de que quer um reinicio completeo da máquina emulada?" - IDS_2113 "Tem certeza de que quer sair de 86Box?" + IDS_2111 "Não foi possível inicializar o SDL. O ficheiro SDL2.dll é necessário!" + IDS_2112 "Tem a certeza de que quer um reinício completo da máquina emulada?" + IDS_2113 "Tem a certeza de que quer sair do 86Box?" IDS_2114 "Não foi possível inicializar o Ghostscript" IDS_2115 "Magneto-óptico %i (%ls): %ls" IDS_2116 "Imagens magneto-ópticas (*.IM?;*.MDI)\0*.IM?;*.MDI\0Todas as imagens (*.*)\0*.*\0" - IDS_2117 "Bem-vindoes em 86Box!" + IDS_2117 "Bem-vindos ao 86Box!" IDS_2118 "Controlador interno" IDS_2119 "Sair" - IDS_2120 "Não foi encontrado nenhum ROMs" + IDS_2120 "Não foi encontrada nenhuma ROM" IDS_2121 "Deseja guardar as definições?" - IDS_2122 "Esto irá a causar um reinicio completo da máquina emulada." + IDS_2122 "Isto irá causar um reinício completo da máquina emulada." IDS_2123 "Guardar" - IDS_2124 "Acerca de 86Box" + IDS_2124 "Acerca do 86Box" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "Em emulator de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nLibertado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações." + IDS_2126 "Em emulator de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nUsado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações." IDS_2127 "OK" IDS_2128 "Hardware não disponível" #ifdef _WIN32 @@ -495,27 +495,27 @@ BEGIN #else #define LIB_NAME_PCAP "libpcap" #endif - IDS_2129 "Certifique-se de que a biblioteca " LIB_NAME_PCAP " è instalada e que está a utilizar uma ligação de rede compatível com a biblioteca " LIB_NAME_PCAP "." + IDS_2129 "Certifique-se de que a biblioteca " LIB_NAME_PCAP " está instalada e de que está a utilizar uma ligação de rede compatível com a biblioteca " LIB_NAME_PCAP "." IDS_2130 "Configuração inválida" #ifdef _WIN32 #define LIB_NAME_FREETYPE "freetype.dll" #else #define LIB_NAME_FREETYPE "libfreetype" #endif - IDS_2131 LIB_NAME_FREETYPE " is required for ESC/P printer emulation." + IDS_2131 LIB_NAME_FREETYPE " é requerida para a emulação de impressora ESC/P." #ifdef _WIN32 #define LIB_NAME_GS "gsdll32.dll" #else #define LIB_NAME_GS "libgs" #endif - IDS_2132 LIB_NAME_GS " is required for automatic conversion of PostScript files to PDF.\n\nAny documents sent to the generic PostScript printer will be saved as PostScript (.ps) files." + IDS_2132 LIB_NAME_GS " é requerido para a conversão automática de ficheiros PostScript para ficheiros PDF.\n\nQualquer documento enviado para a impressora PostScript genérica será gravado como um ficheiro PostScript (.ps)." #ifdef _WIN32 #define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" #else #define LIB_NAME_FLUIDSYNTH "libfluidsynth" #endif - IDS_2133 LIB_NAME_FLUIDSYNTH " è necessário para a saída MIDI FluidSynth MIDI." - IDS_2134 "A entrar no modo da tela cheia" + IDS_2133 LIB_NAME_FLUIDSYNTH " é necessário para a saída MIDI FluidSynth MIDI." + IDS_2134 "A entrar no modo de ecrã cheio" IDS_2135 "Não mostrar mais esta mensagem" IDS_2136 "Não sair" IDS_2137 "Reiniciar" @@ -526,8 +526,8 @@ BEGIN IDS_2142 "Ecrã em modo de sono" IDS_2143 "Shaders OpenGL (*.GLSL)\0*.GLSL\0Todos os ficheiros (*.*)\0*.*\0" IDS_2144 "Opções de OpenGL" - IDS_2145 "Está a carregar uma configuração sem suporte" - IDS_2146 "A filtragem do tipo de CPU baseada na máquina escolhida está desactivada para esta máquina emulada.\n\nIsto torna possíve escolher um CPU que de outra formar não é compatível com a máquina escolhida. No entanto, pode não ser compatível com o BIOS da máquina ou outros programas.\n\nA activação desta definição não tem suporte oficial e qualquer relatório de errors pode ser fechado como inválido." + IDS_2145 "Está a carregar uma configuração sem suporte!" + IDS_2146 "A filtragem do tipo de CPU baseada na máquina escolhida está desativada para esta máquina emulada.\n\nIsto torna possível escolher um CPU que, de outra forma, não seria compatível com a máquina escolhida. No entanto, pode não ser compatível com a BIOS da máquina ou outros programas.\n\nA activação desta definição não tem suporte oficial e qualquer relatório de erros pode ser fechado como inválido." IDS_2147 "Continuar" IDS_2148 "Cassete: %s" IDS_2149 "Imagens de cassete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Todos os ficheiros (*.*)\0*.*\0" @@ -540,29 +540,29 @@ BEGIN IDS_4096 "Disco rígido (%s)" IDS_4097 "%01i:%01i" IDS_4098 "%01i" - IDS_4099 "As unidades CD-ROM com barramento MFM/RLL ou ESDI nunca existiram" + IDS_4099 "Unidades CD-ROM com barramento MFM/RLL ou ESDI nunca existiram!" IDS_4100 "Personalizado..." - IDS_4101 "Persoanlizado (grande)..." + IDS_4101 "Personalizado (grande)..." IDS_4102 "Adicionar novo disco rígido" IDS_4103 "Adicionar disco rígido existente" - IDS_4104 "As imagens de disco HDI não podem ser mais grandes de 4 GB." - IDS_4105 "As imagens de disco não podem ser mais grandes de 127 GB." + IDS_4104 "As imagens de disco HDI não podem ter mais de 4 GB." + IDS_4105 "As imagens de disco não podem ter mais de 127 GB." IDS_4106 "Imagens de disco rígido (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Todos os ficheiros (*.*)\0*.*\0" IDS_4107 "Não foi possível ler o ficheiro" - IDS_4108 "Nào foi possível escrever o ficheiro" - IDS_4109 "As imagens HDI ou HDX com um tamanho de sector não 512 não têm suporte." + IDS_4108 "Não foi possível escrever o ficheiro" + IDS_4109 "Imagens HDI ou HDX com um tamanho de sector diferente de 512 não são suportadas." IDS_4110 "O barramento USB ainda não tem suporte" IDS_4111 "A imagem de disco já existe" - IDS_4112 "Por favor, especifique um nome de ficheiro inválido." + IDS_4112 "Por favor, especifique um nome de ficheiro válido." IDS_4113 "Imagem de disco criada" IDS_4114 "Certifique-se de que o ficheiro existe e é legível." - IDS_4115 "Certifique-se de que o ficheiro está a ser guarado numa pasta escrevível." + IDS_4115 "Certifique-se de que o ficheiro está a ser guardado numa pasta editável." IDS_4116 "Imagem de disco muito grande" - IDS_4117 "Lembre de particionar e formatar o novo disco criado." - IDS_4118 "O ficheiro seleccionado será sobrescrevido. Tem certeza de que quiser utilizá-lo?" + IDS_4117 "Lembre-se de particionar e formatar o novo disco criado." + IDS_4118 "O ficheiro selecionado será sobrescrito. Tem a certeza de que quer utilizá-lo?" IDS_4119 "Imagem de disco sem suporte" IDS_4120 "Sobrescrever" - IDS_4121 "Não sobrescerever" + IDS_4121 "Não sobrescrever" IDS_4122 "Imagem bruta (.img)" IDS_4123 "Imagem HDI (.hdi)" IDS_4124 "Imagem HDX (.hdx)" @@ -573,8 +573,8 @@ BEGIN IDS_4129 "Blocos pequenos (512 KB)" IDS_4130 "Ficheiros VHD (*.VHD)\0*.VHD\0Todos os ficheiros (*.*)\0*.*\0" IDS_4131 "Seleccione o VHD pai" - IDS_4132 "Esto pode significar que a imagem pai foi modificada depois da criação da imagem diferenciadora.\n\nTambém pode acontecer se os ficheiros da imagem foram movidos ou copiados, ou por cause de um erro no programa que criou este disco.\n\nQuer corrigir os carimbos de data/hora?" - IDS_4133 "Os carimbos de data/hora de pai e criança não correspondem" + IDS_4132 "Isto pode significar que a imagem pai foi modificada depois da criação da imagem diferenciadora.\n\nTambém pode acontecer se os ficheiros da imagem foram movidos ou copiados ou por causa de um erro no programa que criou este disco.\n\nQuer corrigir os carimbos de data/hora?" + IDS_4133 "Os carimbos de data/hora dos discos pai e filho não correspondem!" IDS_4134 "Não foi possível corrigir o carimbo de data/hora do VHD." IDS_4135 "%01i:%02i" @@ -594,11 +594,11 @@ BEGIN IDS_5120 "CD-ROM %i (%s): %s" - IDS_5376 "Desactivado" + IDS_5376 "Desativado" IDS_5381 "ATAPI" IDS_5382 "SCSI" - IDS_5632 "Desactivado" + IDS_5632 "Desativado" IDS_5637 "ATAPI (%01i:%01i)" IDS_5638 "SCSI (%01i:%02i)" @@ -627,12 +627,12 @@ BEGIN IDS_5910 "5.25"" 1Gb M.O." IDS_5911 "5.25"" 1.3Gb M.O." - IDS_6144 "RPM perfecto" - IDS_6145 "RPM 1%% sob a perfecção" - IDS_6146 "RPM 1.5%% sob a perfecção" - IDS_6147 "RPM 2%% sob a perfecção" + IDS_6144 "RPM perfeito" + IDS_6145 "RPM 1%% abaixo do RPM perfeito" + IDS_6146 "RPM 1.5%% abaixo do RPM perfeito" + IDS_6147 "RPM 2%% abaixo do RPM perfeito" - IDS_7168 "(Padrão de sistema)" + IDS_7168 "(Padrão do sistema)" END #define IDS_LANG_ENUS IDS_7168 From 7d90bb7018cb93ff04c509f49cb855b8bba81f7d Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 15 Nov 2021 16:38:51 +0100 Subject: [PATCH 09/61] Fixed some highlights in the pt-PT translation. --- src/win/languages/pt-PT.rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index b7e291621..8efc1aa29 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -51,7 +51,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Especificar dimensões...", IDM_VID_SPECIFY_DIM MENUITEM "&Forçar rácio de visualização 4:3", IDM_VID_FORCE43 - POPUP "&Factor de escala de janela" + POPUP "F&actor de escala de janela" BEGIN MENUITEM "&0.5x", IDM_VID_SCALE_1X MENUITEM "&1x", IDM_VID_SCALE_2X @@ -65,7 +65,7 @@ BEGIN END MENUITEM "Escala Hi&DPI", IDM_VID_HIDPI MENUITEM SEPARATOR - MENUITEM "&Ecrã cheio\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + MENUITEM "E&crã cheio\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN POPUP "Modo &de estiramento em ecrã cheio" BEGIN MENUITEM "&Estiramento em ecrã cheio", IDM_VID_FS_FULL From fb21dc842fd0f6110b0ea3e0fa0e8fa7fffdbbac Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 15 Nov 2021 16:42:16 +0100 Subject: [PATCH 10/61] Some slight reordering. --- src/win/86Box.rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/win/86Box.rc b/src/win/86Box.rc index ffa88d48c..67de35bdc 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -361,9 +361,9 @@ END #include "languages/cs-CZ.rc" -#include "languages/de-DE.rc" +#include "languages/hr-HR.rc" #include "languages/en-US.rc" +#include "languages/de-DE.rc" #include "languages/hu-HU.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" -#include "languages/hr-HR.rc" From 3c8183e631eaae8ad8c8c75a2d869fb09089306d Mon Sep 17 00:00:00 2001 From: dob205 Date: Mon, 15 Nov 2021 16:46:53 +0100 Subject: [PATCH 11/61] Fixes some missing Croatian translations --- src/win/languages/hr-HR.rc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index 015e00da6..e71a3b10b 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -15,7 +15,7 @@ LANGUAGE LANG_CROATIAN, SUBLANG_DEFAULT MainMenu MENU DISCARDABLE BEGIN - POPUP "&Action" + POPUP "&Akcija" BEGIN MENUITEM "&Tipkovnica zahtijeva snimanje miša", IDM_ACTION_KBD_REQ_CAPTURE MENUITEM "&Desni CTRL je lijevi ALT", IDM_ACTION_RCTRL_IS_LALT @@ -29,7 +29,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Izlaz...", IDM_ACTION_EXIT END - POPUP "&View" + POPUP "&Pogled" BEGIN MENUITEM "&Sakrij statusnu traku", IDM_VID_HIDE_STATUS_BAR MENUITEM SEPARATOR @@ -95,7 +95,7 @@ BEGIN MENUITEM "CGA/PCjr/Tandy/E&GA/(S)VGA overscan", IDM_VID_OVERSCAN MENUITEM "Promjena kontrasta za &monokromatski ekran", IDM_VID_CGACON END - MENUITEM "&Media", IDM_MEDIA + MENUITEM "&Mediji", IDM_MEDIA POPUP "&Alati" BEGIN MENUITEM "&Postavke...", IDM_CONFIG @@ -153,7 +153,7 @@ BEGIN # endif END #endif - POPUP "&Help" + POPUP "&Pomoć" BEGIN MENUITEM "&Dokumentacija...", IDM_DOCS MENUITEM "&O 86Box...", IDM_ABOUT From 64fa8f8898c9d120138d22a99af925c1d59b7771 Mon Sep 17 00:00:00 2001 From: dob205 Date: Mon, 15 Nov 2021 17:50:40 +0100 Subject: [PATCH 12/61] Doing some updates to the German translation --- src/win/languages/de-DE.rc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index 8621e70b5..ef737c2e3 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -69,7 +69,7 @@ BEGIN POPUP "&Stretching-Modus im Vollbildmodus" BEGIN MENUITEM "&Vollbild-Stretching", IDM_VID_FS_FULL - MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&4:3-Seitenverhältnis erzwingen", IDM_VID_FS_43 MENUITEM "&Quadratische Pixel (Seitenverhältnis beibehalten)", IDM_VID_FS_KEEPRATIO MENUITEM "&Integer-Skalierung", IDM_VID_FS_INT END @@ -328,7 +328,7 @@ END #define STR_SSI "Innovation SSI-2001" #define STR_CMS "CMS / Game Blaster" #define STR_GUS "Gravis Ultrasound" -#define STR_FLOAT "Use FLOAT32 sound" +#define STR_FLOAT "FLOAT32-Wiedergabe benutzen" #define STR_NET_TYPE "Netzwerktyp:" #define STR_PCAP "PCap-Gerät:" @@ -402,7 +402,7 @@ STRINGTABLE DISCARDABLE BEGIN 2048 "86Box" IDS_2049 "Fehler" - IDS_2050 "Kritischer Fehler" + IDS_2050 "Fataler Fehler" IDS_2051 "" IDS_2052 "Bitte Strg+Alt+Bild ab zur Rückkehr in den Fenstermodus drücken." IDS_2053 "Geschwindigkeit" @@ -520,8 +520,8 @@ BEGIN IDS_2136 "Nicht beenden" IDS_2137 "Resetten" IDS_2138 "Nicht Resetten" - IDS_2139 "MO-Images (*.IM?;*.MDI)\0*.IM?;*.MDI\0Alle Dateien (*.*)\0*.*\0" - IDS_2140 "CD-ROM-Images (*.ISO;*.CUE)\0*.ISO;*.CUE\0Alle Dateien (*.*)\0*.*\0" + IDS_2139 "MO-Imagedateien (*.IM?;*.MDI)\0*.IM?;*.MDI\0Alle Dateien (*.*)\0*.*\0" + IDS_2140 "CD-ROM-Imagedateien (*.ISO;*.CUE)\0*.ISO;*.CUE\0Alle Dateien (*.*)\0*.*\0" IDS_2141 "%hs-Gerätekonfiguration" IDS_2142 "Monitor im Standby" IDS_2143 "OpenGL-Shader (*.GLSL)\0*.GLSL\0Alle Dateien (*.*)\0*.*\0" @@ -563,9 +563,9 @@ BEGIN IDS_4119 "Nicht unterstütztes Disk-Image" IDS_4120 "Überschreiben" IDS_4121 "Nicht überschreiben" - IDS_4122 "Rohdatenimage (.img)" - IDS_4123 "HDI-Image (.hdi)" - IDS_4124 "HDX-Image (.hdx)" + IDS_4122 "Rohdatenimagedateien (.img)" + IDS_4123 "HDI-Imagedateien (.hdi)" + IDS_4124 "HDX-Imagedateien (.hdx)" IDS_4125 "VHD mit fester Größe (.vhd)" IDS_4126 "VHD mit dynamischer Größe (.vhd)" IDS_4127 "Differenzierende VHD (.vhd)" From 47d742b65e76fceec30f184fbcffe3920f56f090 Mon Sep 17 00:00:00 2001 From: OBattler Date: Mon, 15 Nov 2021 23:58:12 +0100 Subject: [PATCH 13/61] Removed the last vestiges of IBM PS/2 model 70 type 4. --- src/machine/m_ps2_mca.c | 24 ------------------------ src/win/Makefile.mingw | 10 ---------- 2 files changed, 34 deletions(-) diff --git a/src/machine/m_ps2_mca.c b/src/machine/m_ps2_mca.c index b1b611d94..db53f8047 100644 --- a/src/machine/m_ps2_mca.c +++ b/src/machine/m_ps2_mca.c @@ -1361,30 +1361,6 @@ machine_ps2_model_70_type3_init(const machine_t *model) } -#if defined(DEV_BRANCH) && defined(USE_PS2M70T4) -int -machine_ps2_model_70_type4_init(const machine_t *model) -{ - int ret; - - ret = bios_load_interleaved("roms/machines/ibmps2_m70_type4/70-b_even.bin", - "roms/machines/ibmps2_m70_type4/70-b_odd.bin", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_ps2_common_init(model); - - ps2.planar_id = 0xfcff; - - ps2_mca_board_model_70_type34_init(1, 4); - - return ret; -} -#endif - - int machine_ps2_model_80_init(const machine_t *model) { diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index d4022ee3a..9d3dab886 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -63,9 +63,6 @@ ifeq ($(DEV_BUILD), y) ifndef PAS16 PAS16 := n endif - ifndef PS2M70T4 - PS2M70T4 := y - endif ifndef SIO_DETECT SIO_DETECT := y endif @@ -124,9 +121,6 @@ else ifndef PAS16 PAS16 := n endif - ifndef PS2M70T4 - PS2M70T4 := n - endif ifndef SIO_DETECT SIO_DETECT := n endif @@ -524,10 +518,6 @@ OPTS += -DUSE_PAS16 DEVBROBJ += snd_pas16.o endif -ifeq ($(PS2M70T4), y) -OPTS += -DUSE_PS2M70T4 -endif - ifeq ($(SIO_DETECT), y) OPTS += -DUSE_SIO_DETECT DEVBROBJ += sio_detect.o From 98794cfe76d01c57bd955df3de52b9608e204923 Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 16 Nov 2021 00:00:58 +0100 Subject: [PATCH 14/61] Removed vestiges of the Hedaka. --- src/machine/CMakeLists.txt | 4 ---- src/win/Makefile.mingw | 10 ---------- 2 files changed, 14 deletions(-) diff --git a/src/machine/CMakeLists.txt b/src/machine/CMakeLists.txt index c20d21a75..d2500561a 100644 --- a/src/machine/CMakeLists.txt +++ b/src/machine/CMakeLists.txt @@ -24,10 +24,6 @@ add_library(mch OBJECT machine.c machine_table.c m_xt.c m_xt_compaq.c m_at_sockets7.c m_at_socket8.c m_at_slot1.c m_at_slot2.c m_at_socket370.c m_at_misc.c) -if(HEDAKA) - target_compile_definitions(mch PRIVATE USE_HEDAKA) -endif() - if(LASERXT) target_sources(mch PRIVATE m_xt_laserxt.c) target_compile_definitions(mch PRIVATE USE_LASERXT) diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index 9d3dab886..eee3e63a4 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -42,9 +42,6 @@ ifeq ($(DEV_BUILD), y) ifndef GUSMAX GUSMAX := y endif - ifndef HEDAKA - HEDAKA := y - endif ifndef LASERXT LASERXT := y endif @@ -100,9 +97,6 @@ else ifndef GUSMAX GUSMAX := n endif - ifndef HEDAKA - HEDAKA := n - endif ifndef LASERXT LASERXT := n endif @@ -485,10 +479,6 @@ ifeq ($(GUSMAX), y) OPTS += -DUSE_GUSMAX endif -ifeq ($(HEDAKA), y) -OPTS += -DUSE_HEDAKA -endif - ifeq ($(LASERXT), y) OPTS += -DUSE_LASERXT DEVBROBJ += m_xt_laserxt.o From 5674fe188fa3ccf7d7a879f598e9ff9cb2588edb Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 16 Nov 2021 00:02:05 +0100 Subject: [PATCH 15/61] VECT486VL vestiges. --- src/win/Makefile.mingw | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index eee3e63a4..1dc7426f0 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -72,9 +72,6 @@ ifeq ($(DEV_BUILD), y) ifndef XL24 XL24 := y endif - ifndef VECT486VL - VECT486VL := y - endif ifndef OLIVETTI OLIVETTI := y endif @@ -127,9 +124,6 @@ else ifndef XL24 XL24 := n endif - ifndef VECT486VL - VECT486VL := n - endif ifndef OLIVETTI OLIVETTI := n endif From e41389b7f2ab23fb4ed5a9706530bf84ff64900f Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 16 Nov 2021 00:18:19 +0100 Subject: [PATCH 16/61] Italian translation by explorerexe. --- src/win/86Box.rc | 1 + src/win/languages/it-IT.rc | 988 +++++++++++++++++++++++++++++++++++++ 2 files changed, 989 insertions(+) create mode 100644 src/win/languages/it-IT.rc diff --git a/src/win/86Box.rc b/src/win/86Box.rc index 67de35bdc..aa5048877 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -365,5 +365,6 @@ END #include "languages/en-US.rc" #include "languages/de-DE.rc" #include "languages/hu-HU.rc" +#include "languages/it-IT.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc new file mode 100644 index 000000000..5cb44e989 --- /dev/null +++ b/src/win/languages/it-IT.rc @@ -0,0 +1,988 @@ +//////////////////////////////////////////////////////////////////////////// +// Italian (IT-it) resources + +#ifdef _WIN32 +LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN +#pragma code_page(65001) +#endif //_WIN32 + +#define explorerdotexe + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Azione" + BEGIN + MENUITEM "&Tastiera richiede la cattura", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&CTRL destro è ALT sinistro", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Riavvia...", IDM_ACTION_HRESET + MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD + MENUITEM SEPARATOR + MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC + MENUITEM SEPARATOR + MENUITEM "&Pausa", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "E&sci...", IDM_ACTION_EXIT + END + POPUP "&Visualizza" + BEGIN + MENUITEM "&Nascondi barra di stato", IDM_VID_HIDE_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Finestra ridimensionabile", IDM_VID_RESIZE + MENUITEM "R&icorda dimensioni e posizione", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "Re&nderer" + BEGIN + MENUITEM "&SDL (Software)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL +#if defined(DEV_BRANCH) && defined(USE_OPENGL) + MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE +#endif +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Specifica dimensioni...", IDM_VID_SPECIFY_DIM + MENUITEM "F&orza display 4:3", IDM_VID_FORCE43 + POPUP "&Fattore scalare della finestra" + BEGIN + MENUITEM "&0.5x", IDM_VID_SCALE_1X + MENUITEM "&1x", IDM_VID_SCALE_2X + MENUITEM "1.&5x", IDM_VID_SCALE_3X + MENUITEM "&2x", IDM_VID_SCALE_4X + END + POPUP "Metodo filtro" + BEGIN + MENUITEM "&Dal più vicino", IDM_VID_FILTER_NEAREST + MENUITEM "&Lineare", IDM_VID_FILTER_LINEAR + END + MENUITEM "Scala Hi&DPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Schermo intero\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + POPUP "Modalità adattamento &schermo intero" + BEGIN + MENUITEM "&Adatta a schermo intero", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Pixel quadrati (Mantiene l'aspetto)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Scala Integer", IDM_VID_FS_INT + END + POPUP "Impostazioni E&GA/(S)VGA" + BEGIN + MENUITEM "&Invertire monitor VGA", IDM_VID_INVERT + POPUP "Schermi VGA &" + BEGIN + MENUITEM "RGB &Color", IDM_VID_GRAY_RGB + MENUITEM "&RGB Monocroma", IDM_VID_GRAY_MONO + MENUITEM "&Monitor ambra", IDM_VID_GRAY_AMBER + MENUITEM "&Monitor verde", IDM_VID_GRAY_GREEN + MENUITEM "&Monitor bianco", IDM_VID_GRAY_WHITE + END + POPUP "Conversione &scala grigia" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&AMedia", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "Sovrascansione CGA/PCjr/Tandy/E&GA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "Cambia il contrasto per &display monocromatici", IDM_VID_CGACON + END + MENUITEM "&Dispositivi", IDM_MEDIA + POPUP "&Strumenti" + BEGIN + MENUITEM "&Impostazioni...", IDM_CONFIG + MENUITEM "&Aggiorna icone della barra di stato", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Cambia li&ngua...", IDM_VID_PROG_SETT +# ifdef USE_DISCORD + MENUITEM SEPARATOR + MENUITEM "Abilita &integrazione Discord", IDM_DISCORD +# endif + MENUITEM SEPARATOR + MENUITEM "Cattura schermata\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "Guadagno &suono...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Inizia traccia\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Ferma traccia\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END +#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) + POPUP "&Registra" + BEGIN +# ifdef ENABLE_BUSLOGIC_LOG + MENUITEM "Attiva registrazione da BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC +# endif +# ifdef ENABLE_CDROM_LOG + MENUITEM "Attiva registrazione da CD-ROM\tCtrl+F5", IDM_LOG_CDROM +# endif +# ifdef ENABLE_D86F_LOG + MENUITEM "Attiva registrazione del floppy (86F)\tCtrl+F6", IDM_LOG_D86F +# endif +# ifdef ENABLE_FDC_LOG + MENUITEM "Attiva registrazione del controller floppy\tCtrl+F7", IDM_LOG_FDC +# endif +# ifdef ENABLE_IDE_LOG + MENUITEM "Attiva registrazione da IDE\tCtrl+F8", IDM_LOG_IDE +# endif +# ifdef ENABLE_SERIAL_LOG + MENUITEM "Attiva registrazione della porta seriale\tCtrl+F3", IDM_LOG_SERIAL +# endif +# ifdef ENABLE_NIC_LOG + MENUITEM "Attiva registrazione della rete\tCtrl+F9", IDM_LOG_NIC +# endif +# ifdef ENABLE_LOG_COMMANDS +# ifdef ENABLE_LOG_TOGGLES + MENUITEM SEPARATOR +# endif +# ifdef ENABLE_LOG_BREAKPOINT + MENUITEM "&Punto di interruzione del registro\tCtrl+F10", IDM_LOG_BREAKPOINT +# endif +# ifdef ENABLE_VRAM_DUMP + MENUITEM "Scarica &la RAM video\tCtrl+F1", IDM_DUMP_VRAM +# endif +# endif + END +#endif + POPUP "&Aiuto" + BEGIN + MENUITEM "&Documentazione...", IDM_DOCS + MENUITEM "&Informazioni su 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nuova immagine...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Immagine esistente...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Immagine esistente (&Protezione scrittura)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Registra", IDM_CASSETTE_RECORD + MENUITEM "&Riproduci", IDM_CASSETTE_PLAY + MENUITEM "&Riavvolgi all'inizio", IDM_CASSETTE_REWIND + MENUITEM "&Velocizza alla fine", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "E&spelli", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Immagine...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "E&spelli", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nuova immagine...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Immagine esistente...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Immagine esistente (&Protezione scrittura)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&sporta in 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "E&spelli", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Muto", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "E&spelli", IDM_CDROM_EMPTY + MENUITEM "&Ricarica l'immagine precedente", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Immagine", IDM_CDROM_IMAGE + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nuova immagine...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Immagine esistente...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Immagine esistente (&Protezione scrittura)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&spelli", IDM_ZIP_EJECT + MENUITEM "&Ricarica l'immagine precedente", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nuova immagine...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Immagine esistente...", IDM_MO_IMAGE_EXISTING + MENUITEM "Immagine esistente (&Protezione scrittura)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&spelli", IDM_MO_EJECT + MENUITEM "&Ricarica l'immagine precedente", IDM_MO_RELOAD + END +END + +#if defined(DEV_BRANCH) && defined(USE_OPENGL) +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Imposta obiettivo &fotogrammi" + BEGIN + MENUITEM "&Sincronizza col video", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 FPS", IDM_VID_GL_FPS_25 + MENUITEM "&30 FPS", IDM_VID_GL_FPS_30 + MENUITEM "&50 FPS", IDM_VID_GL_FPS_50 + MENUITEM "&60 FPS", IDM_VID_GL_FPS_60 + MENUITEM "&75 FPS", IDM_VID_GL_FPS_75 + END + MENUITEM "&VSync", IDM_VID_GL_VSYNC + MENUITEM "&Seleziona shader...", IDM_VID_GL_SHADER + MENUITEM "&Rimuovi shader", IDM_VID_GL_NOSHADER +END +#endif + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +DLG_PROG_SETT DIALOG DISCARDABLE 0, 0, 240, 86 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Cambia Lingua Display" +FONT 9, "Segoe UI" +BEGIN + DEFPUSHBUTTON "OK", IDOK, 123, 65, 50, 14 + PUSHBUTTON "Cancella", IDCANCEL, 179, 65, 50, 14 + COMBOBOX IDC_COMBO_LANG, 13, 18, 213, 22, CBS_DROPDOWNLIST | CBS_HASSTRINGS + AUTOCHECKBOX "Salva queste impostazioni come &predefinite globali", IDC_CHECKBOX_GLOBAL, 13, 50, 217, 8 , WS_DISABLED + PUSHBUTTON "&Predefinito", IDC_BUTTON_DEFAULT, 162, 32, 60, 14 + LTEXT "Lingua:", 0, 13, 8, 34, 8 +END + +DLG_STATUS DIALOG DISCARDABLE 0, 0, 186, 386 +STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Stato" +FONT 9, "Segoe UI" +BEGIN + LTEXT "1",IDT_SDEVICE,16,16,180,1000 + LTEXT "1",IDT_STEXT,16,186,180,1000 +END + +DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Guadagno del Suono" +FONT 9, "Segoe UI" +BEGIN + DEFPUSHBUTTON "OK",IDOK,57,7,50,14 + PUSHBUTTON "Cancella",IDCANCEL,57,24,50,14 + CONTROL "Guadagno",IDC_SLIDER_GAIN,"msctls_trackbar32",TBS_VERT | + TBS_BOTH | TBS_AUTOTICKS | WS_TABSTOP,15,20,20,109 + CTEXT "Guadagno",IDT_1746,10,7,32,9,SS_CENTERIMAGE +END + +DLG_NEW_FLOPPY DIALOG DISCARDABLE 0, 0, 226, 86 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Nuova Immagine" +FONT 9, "Segoe UI" +BEGIN + DEFPUSHBUTTON "OK",IDOK,104,65,50,14 + PUSHBUTTON "Cancella",IDCANCEL,162,65,50,14 + LTEXT "Nome file:",IDT_1749,7,6,44,12,SS_CENTERIMAGE + LTEXT "Dimensioni disco:",IDT_1750,7,25,44,12,SS_CENTERIMAGE + LTEXT "Modalità RPM:",IDT_1751,7,45,44,12,SS_CENTERIMAGE + EDITTEXT IDC_EDIT_FILE_NAME,53,5,150,14,ES_AUTOHSCROLL | ES_READONLY + COMBOBOX IDC_COMBO_DISK_SIZE,53,25,166,14,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO_RPM_MODE,53,45,166,14,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "...",IDC_CFILE,206,5,13,14 + LTEXT "Progresso:",IDT_1757,7,45,44,12,SS_CENTERIMAGE + CONTROL "IMGCreateProgress",IDC_PBAR_IMG_CREATE,"msctls_progress32",PBS_SMOOTH | + WS_BORDER,53,45,166,14 +END + +DLG_CONFIG DIALOG DISCARDABLE 0, 0, 376, 256 +STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Impostazioni 86Box" +FONT 9, "Segoe UI" +BEGIN + DEFPUSHBUTTON "OK",IDOK,246,235,50,14 + PUSHBUTTON "Cancella",IDCANCEL,307,235,50,14 + CONTROL "List2",IDC_SETTINGSCATLIST,"SysListView32",LVS_REPORT | LVS_NOCOLUMNHEADER | + LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,7,7,100,212 + CONTROL "",-1,"Static",SS_BLACKFRAME | SS_SUNKEN,1,226,373,1 +END + +DLG_SPECIFY_DIM DIALOG DISCARDABLE 0, 0, 175, 66 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Specifica dimensioni della finestra principale" +FONT 9, "Segoe UI" +BEGIN + LTEXT "Larghezza:",IDT_1709,7,9,24,12 + EDITTEXT IDC_EDIT_WIDTH,33,7,45,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_WIDTHSPIN,"msctls_updown32",UDS_SETBUDDYINT | + UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,76,6, + 12,12 + LTEXT "Altezza:",IDT_1710,97,9,24,12 + EDITTEXT IDC_EDIT_HEIGHT,123,7,45,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_HEIGHTSPIN,"msctls_updown32",UDS_SETBUDDYINT | + UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,166,6, + 12,12 + CONTROL "Blocca in questa dimensione",IDC_CHECK_LOCK_SIZE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,26,94,10 + DEFPUSHBUTTON "OK",IDOK,30,45,50,14 + PUSHBUTTON "Cancella",IDCANCEL,99,45,50,14 +END + +DLG_CFG_MACHINE DIALOG DISCARDABLE 107, 0, 305, 200 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + COMBOBOX IDC_COMBO_MACHINE_TYPE,71,7,189,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Tipo di macchina:",IDT_1708,7,9,60,10 + COMBOBOX IDC_COMBO_MACHINE,71,26,138,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Macchina:",IDT_1701,7,28,60,10 + PUSHBUTTON "Configura",IDC_CONFIGURE_MACHINE,214,26,46,12 + COMBOBOX IDC_COMBO_CPU_TYPE,71,45,110,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Tipo del CPU:",IDT_1702,7,47,59,10 + COMBOBOX IDC_COMBO_CPU,215,45,45,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Veloc.:",IDT_1704,189,47,24,10 + COMBOBOX IDC_COMBO_FPU,71,64,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + LTEXT "FPU:",IDT_1707,7,66,59,10 + COMBOBOX IDC_COMBO_WS,71,83,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + LTEXT "Stati di attesa :",IDT_1703,7,85,60,10 + EDITTEXT IDC_MEMTEXT,70,102,45,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_MEMSPIN,"msctls_updown32",UDS_SETBUDDYINT | + UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,113,101, + 12,12 + LTEXT "MB",IDT_1705,123,104,10,10 + LTEXT "Memoria:",IDT_1706,7,104,30,10 + GROUPBOX "sincronizzazione del tempo",IDC_TIME_SYNC,7,135,100,56 + CONTROL "Disattiva",IDC_RADIO_TS_DISABLED,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,147,84,10 + CONTROL "Attiva (tempo locale)", IDC_RADIO_TS_LOCAL,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,14,161,84,10 + CONTROL "Attiva (UTC)", IDC_RADIO_TS_UTC,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,14,175,84,10 +#ifdef USE_DYNAREC + CONTROL "Ricompilatore dinamico",IDC_CHECK_DYNAREC,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,120,94,10 +#endif +END + +DLG_CFG_VIDEO DIALOG DISCARDABLE 107, 0, 267, 45 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + LTEXT "Video:",IDT_1707,7,9,48,10 + COMBOBOX IDC_COMBO_VIDEO,64,7,155,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_VID,222,7,38,12 + CONTROL "Grafica Voodoo",IDC_CHECK_VOODOO,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,27,199,10 + PUSHBUTTON "Configura",IDC_BUTTON_VOODOO,222,26,38,12 +END + +DLG_CFG_INPUT DIALOG DISCARDABLE 107, 0, 267, 65 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + LTEXT "Mouse:",IDT_1709,7,9,57,10 + COMBOBOX IDC_COMBO_MOUSE,71,7,140,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_MOUSE,214,7,46,12 + LTEXT "Joystick:",IDT_1710,7,27,58,10 + COMBOBOX IDC_COMBO_JOYSTICK,71,25,189,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Joystick 1...",IDC_JOY1,7,44,50,14 + PUSHBUTTON "Joystick 2...",IDC_JOY2,74,44,50,14 + PUSHBUTTON "Joystick 3...",IDC_JOY3,141,44,50,14 + PUSHBUTTON "Joystick 4...",IDC_JOY4,209,44,50,14 +END + +DLG_CFG_SOUND DIALOG DISCARDABLE 107, 0, 267, 201 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + COMBOBOX IDC_COMBO_SOUND,71,7,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + LTEXT "Scheda audio:",IDT_1711,7,9,59,10 + PUSHBUTTON "Configura",IDC_CONFIGURE_SND,214,7,46,12 + + COMBOBOX IDC_COMBO_MIDI,71,26,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + LTEXT "Dispositivo uscita MIDI:",IDT_1712,7,28,59,10 + PUSHBUTTON "Configura",IDC_CONFIGURE_MIDI,214,26,46,12 + + COMBOBOX IDC_COMBO_MIDI_IN,71,45,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + LTEXT "Dispositivo entrata MIDI:",IDT_1713,7,47,59,10 + PUSHBUTTON "Configura",IDC_CONFIGURE_MIDI_IN,214,45,46,12 + + CONTROL "MPU-401 autonomo",IDC_CHECK_MPU401,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,66,199,10 + PUSHBUTTON "Configura",IDC_CONFIGURE_MPU401,214,64,46,12 + + CONTROL "Innovation SSI-2001",IDC_CHECK_SSI,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,84,95,10 + PUSHBUTTON "Configure",IDC_CONFIGURE_SSI,214,82,46,12 + + CONTROL "CMS / Game Blaster",IDC_CHECK_CMS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,102,95,10 + PUSHBUTTON "Configure",IDC_CONFIGURE_CMS,214,100,46,12 + + CONTROL "Gravis Ultrasound",IDC_CHECK_GUS,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,120,94,10 + PUSHBUTTON "Configure",IDC_CONFIGURE_GUS,214,118,46,12 + + CONTROL "Usare suono FLOAT32",IDC_CHECK_FLOAT,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,138,94,10 +END + +DLG_CFG_NETWORK DIALOG DISCARDABLE 107, 0, 267, 65 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + LTEXT "Tipo di Rete:",IDT_1714,7,9,59,10 + COMBOBOX IDC_COMBO_NET_TYPE,71,7,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + + LTEXT "Dispositivo PCap:",IDT_1715,7,28,59,10 + COMBOBOX IDC_COMBO_PCAP,71,26,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + + LTEXT "Scheda di rete:",IDT_1716,7,47,59,10 + COMBOBOX IDC_COMBO_NET,71,45,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + PUSHBUTTON "Configure",IDC_CONFIGURE_NET,214,44,46,12 +END + +DLG_CFG_PORTS DIALOG DISCARDABLE 107, 0, 267, 135 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + LTEXT "Dispositivo LPT1:",IDT_1717,7,9,61,10 + COMBOBOX IDC_COMBO_LPT1,71,7,189,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + + LTEXT "Dispositivo LPT2:",IDT_1718,7,28,61,10 + COMBOBOX IDC_COMBO_LPT2,71,26,189,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + + LTEXT "Dispositivo LPT3:",IDT_1719,7,47,61,10 + COMBOBOX IDC_COMBO_LPT3,71,45,189,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + + CONTROL "Porta seriale 1",IDC_CHECK_SERIAL1,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,64,94,10 + CONTROL "Porta seriale 2",IDC_CHECK_SERIAL2,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,147,64,94,10 + CONTROL "Porta seriale 3",IDC_CHECK_SERIAL3,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,82,94,10 + CONTROL "Porta seriale 4",IDC_CHECK_SERIAL4,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,147,82,94,10 + + CONTROL "Porta parallela 1",IDC_CHECK_PARALLEL1,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,100,94,10 + CONTROL "Porta parallela 2",IDC_CHECK_PARALLEL2,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,147,100,94,10 + CONTROL "Porta parallela 3",IDC_CHECK_PARALLEL3,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,118,94,10 +END + +DLG_CFG_STORAGE DIALOG DISCARDABLE 107, 0, 267, 203 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + LTEXT "Controllore HDD:",IDT_1718,7,9,64,10 + COMBOBOX IDC_COMBO_HDC,64,7,155,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_HDC,222,7,38,12 + + LTEXT "Controllore FD:",IDT_1768,7,28,64,10 + COMBOBOX IDC_COMBO_FDC,64,26,155,120,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_FDC,222,26,38,12 + + CONTROL "Controllore IDE terziario",IDC_CHECK_IDE_TER,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,47,199,10 + PUSHBUTTON "Configura",IDC_BUTTON_IDE_TER,222,45,38,12 + + CONTROL "Controllore IDE quaternario",IDC_CHECK_IDE_QUA,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,66,199,10 + PUSHBUTTON "Configura",IDC_BUTTON_IDE_QUA,222,64,38,12 + + GROUPBOX "SCSI",IDC_GROUP_SCSI,7,85,253,93 + LTEXT "Controllore 1:",IDT_1763,16,102,48,10 + COMBOBOX IDC_COMBO_SCSI_1,73,100,137,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_SCSI_1,213,100,38,12 + LTEXT "Controllore 2:",IDT_1764,16,121,48,10 + COMBOBOX IDC_COMBO_SCSI_2,73,119,137,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_SCSI_2,213,119,38,12 + LTEXT "Controllore 3:",IDT_1765,16,140,48,10 + COMBOBOX IDC_COMBO_SCSI_3,73,138,137,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_SCSI_3,213,138,38,12 + LTEXT "Controllore 4:",IDT_1766,16,159,48,10 + COMBOBOX IDC_COMBO_SCSI_4,73,157,137,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_SCSI_4,213,157,38,12 + + CONTROL "Cassetta",IDC_CHECK_CASSETTE,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,185,94,10 +END + +DLG_CFG_HARD_DISKS DIALOG DISCARDABLE 107, 0, 267, 154 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + CONTROL "List1",IDC_LIST_HARD_DISKS,"SysListView32",LVS_REPORT | + LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | + WS_TABSTOP,7,18,253,92 + LTEXT "Disco rigido:",IDT_1720,7,7,253,8 + PUSHBUTTON "&Nuovo...",IDC_BUTTON_HDD_ADD_NEW,60,137,62,10 + PUSHBUTTON "&Esistente...",IDC_BUTTON_HDD_ADD,129,137,62,10 + PUSHBUTTON "&Rimuovi",IDC_BUTTON_HDD_REMOVE,198,137,62,10 + COMBOBOX IDC_COMBO_HD_BUS,33,117,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Bus:",IDT_1721,7,119,24,8 + COMBOBOX IDC_COMBO_HD_CHANNEL,170,117,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Canale:",IDT_1722,131,119,38,8 + COMBOBOX IDC_COMBO_HD_ID,170,117,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "ID:",IDT_1723,131,119,38,8 + COMBOBOX IDC_COMBO_HD_CHANNEL_IDE,170,117,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP +END + +DLG_CFG_HARD_DISKS_ADD DIALOG DISCARDABLE 0, 0, 219, 149 +STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Aggiungi disco rigido" +FONT 9, "Segoe UI" +BEGIN + DEFPUSHBUTTON "OK",IDOK,55,127,50,14 + PUSHBUTTON "Cancella",IDCANCEL,112,127,50,14 + EDITTEXT IDC_EDIT_HD_FILE_NAME,7,16,153,12 + PUSHBUTTON "&Specifica...",IDC_CFILE,167,16,44,12 + EDITTEXT IDC_EDIT_HD_SPT,183,34,28,12 + EDITTEXT IDC_EDIT_HD_HPC,112,34,28,12 + EDITTEXT IDC_EDIT_HD_CYL,42,34,28,12 + EDITTEXT IDC_EDIT_HD_SIZE,42,52,28,12 + COMBOBOX IDC_COMBO_HD_TYPE,113,52,98,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Settori:",IDT_1726,154,35,27,10 + LTEXT "Teste:",IDT_1727,81,35,29,8 + LTEXT "Cilindri:",IDT_1728,7,35,32,12 + LTEXT "Dimensioni (MB):",IDT_1729,7,54,33,8 + LTEXT "Tipo:",IDT_1730,86,54,24,8 + LTEXT "Nome file:",IDT_1731,7,7,204,9 + COMBOBOX IDC_COMBO_HD_BUS,33,71,58,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Bus:",IDT_1721,7,73,24,8 + COMBOBOX IDC_COMBO_HD_CHANNEL,134,71,77,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Canale:",IDT_1722,99,73,34,8 + COMBOBOX IDC_COMBO_HD_ID,134,71,77,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "ID:",IDT_1723,99,73,34,8 + COMBOBOX IDC_COMBO_HD_CHANNEL_IDE,134,71,77,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Formato Immag.:",IDT_1774,7,92,50,12 + COMBOBOX IDC_COMBO_HD_IMG_FORMAT,58,90,153,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Dimensioni blocchi:",IDT_1775,7,111,50,12 + COMBOBOX IDC_COMBO_HD_BLOCK_SIZE,58,109,153,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Progresso:",IDT_1752,7,7,204,9 + CONTROL "IMGCreateProgress",IDC_PBAR_IMG_CREATE,"msctls_progress32",PBS_SMOOTH | + WS_BORDER,7,16,204,12 +END + +DLG_CFG_FLOPPY_AND_CDROM_DRIVES DIALOG DISCARDABLE 107, 0, 267, 222 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + CONTROL "List1",IDC_LIST_FLOPPY_DRIVES,"SysListView32", + LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | + WS_TABSTOP,7,18,253,60 + LTEXT "Unità floppy:",IDT_1737,7,7,253,8 + COMBOBOX IDC_COMBO_FD_TYPE,33,85,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Tipo:",IDT_1738,7,87,24,8 + CONTROL "Turbo",IDC_CHECKTURBO,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,131,86,64,10 + CONTROL "Verifica BPB",IDC_CHECKBPB,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,196,86,64,10 + + CONTROL "List1",IDC_LIST_CDROM_DRIVES,"SysListView32",LVS_REPORT | + LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | + WS_TABSTOP,7,117,253,60 + LTEXT "Unità CD-ROM:",IDT_1739,7,107,253,8 + COMBOBOX IDC_COMBO_CD_BUS,33,185,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Bus:",IDT_1740,7,187,24,8 + COMBOBOX IDC_COMBO_CD_ID,170,185,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "ID:",IDT_1741,131,187,38,8 + COMBOBOX IDC_COMBO_CD_CHANNEL_IDE,170,185,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Canale:",IDT_1742,131,187,38,8 + COMBOBOX IDC_COMBO_CD_SPEED,33,205,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Velocità:",IDT_1758,7,207,24,8 +END + +DLG_CFG_OTHER_REMOVABLE_DEVICES DIALOG DISCARDABLE 107, 0, 267, 222 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + + CONTROL "List1",IDC_LIST_MO_DRIVES,"SysListView32",LVS_REPORT | + LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | + WS_TABSTOP,7,17,253,60 + LTEXT "Unità MO:",IDT_1769,7,7,253,8 + COMBOBOX IDC_COMBO_MO_BUS,33,85,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Bus:",IDT_1770,7,87,24,8 + COMBOBOX IDC_COMBO_MO_ID,170,85,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "ID:",IDT_1771,131,87,38,8 + COMBOBOX IDC_COMBO_MO_CHANNEL_IDE,170,85,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Canale:",IDT_1772,131,87,38,8 + COMBOBOX IDC_COMBO_MO_TYPE,33,105,120,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Tipo:",IDT_1773,7,107,24,8 + + CONTROL "List1",IDC_LIST_ZIP_DRIVES,"SysListView32",LVS_REPORT | + LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | + WS_TABSTOP,7,137,253,60 + LTEXT "Unità ZIP:",IDT_1759,7,127,253,8 + COMBOBOX IDC_COMBO_ZIP_BUS,23,205,90,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Bus:",IDT_1753,7,207,14,8 + COMBOBOX IDC_COMBO_ZIP_ID,149,205,61,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "ID:",IDT_1754,120,207,28,8 + COMBOBOX IDC_COMBO_ZIP_CHANNEL_IDE,149,205,61,12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + LTEXT "Canale:",IDT_1755,120,207,28,8 + CONTROL "ZIP 250",IDC_CHECK250,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,218,205,44,10 +END + +DLG_CFG_PERIPHERALS DIALOG DISCARDABLE 107, 0, 267, 154 +STYLE DS_CONTROL | WS_CHILD +FONT 9, "Segoe UI" +BEGIN + LTEXT "ISA RTC:",IDT_1767,7,9,48,10 + COMBOBOX IDC_COMBO_ISARTC,64,7,155,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_ISARTC,222,7,38,12 + + GROUPBOX "Espansione memoria ISA",IDC_GROUP_ISAMEM,7,28,253,93 + LTEXT "Scheda 1:",IDT_1763,16,45,48,10 + COMBOBOX IDC_COMBO_ISAMEM_1,73,43,137,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_ISAMEM_1,213,43,38,12 + LTEXT "Scheda 2:",IDT_1764,16,64,48,10 + COMBOBOX IDC_COMBO_ISAMEM_2,73,62,137,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_ISAMEM_2,213,62,38,12 + LTEXT "Scheda 3:",IDT_1765,16,83,48,10 + COMBOBOX IDC_COMBO_ISAMEM_3,73,81,137,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_ISAMEM_3,213,81,38,12 + LTEXT "Scheda 4:",IDT_1766,16,102,48,10 + COMBOBOX IDC_COMBO_ISAMEM_4,73,100,137,120, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Configura",IDC_CONFIGURE_ISAMEM_4,213,100,38,12 + + CONTROL "Dispositivo ISABugger",IDC_CHECK_BUGGER,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,7,128,94,10 + + CONTROL "Scheda POST",IDC_CHECK_POSTCARD,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,147,128,94,10 +END + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Errore" + IDS_2050 "Errore fatale" + IDS_2051 "" + IDS_2052 "Usa CTRL+ALT+PAGE DOWN per tornare alla modalità finestra." + IDS_2053 "Velocità" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "Immagini ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box non può trovare immagini ROM utilizzabili.\n\nPlease download a ROM set and extract it into the ""roms"" directory." + IDS_2057 "(empty)" + IDS_2058 "Immagini ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Tutti i file (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Acceso" + IDS_2061 "Spento" + IDS_2062 "Tutte le immagini (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Immagini di settori base (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Immagini di superfice (*.86F)\0*.86F\0" + IDS_2063 "La macchina ""%hs"" non è disponibile a causa di immagini ROM mancanti nel percorso roms/machines. Cambiando ad una macchina disponibile." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "La scheda video ""%hs"" non è disponibile a causa di immagini ROM mancanti nel percorso roms/video. Cambiando ad una scheda video disponibile." + IDS_2065 "Macchina" + IDS_2066 "Schermo" + IDS_2067 "Dispositivi di input" + IDS_2068 "Audio" + IDS_2069 "Rete" + IDS_2070 "Porte (COM & LPT)" + IDS_2071 "Controllori di memor." + IDS_2072 "Dischi rigidi" + IDS_2073 "Unitaà CD-ROM e Floppy" + IDS_2074 "Altri dispositivi rimuov." + IDS_2075 "Altre periferiche" + IDS_2076 "Immagini di superfice (*.86F)\0*.86F\0" + IDS_2077 "Clicca per catturare mouse" + IDS_2078 "Premi F8+F12 per liberare il mouse" + IDS_2079 "Premi F8+F12 o pulsante centrale per liberare il mouse" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2080 "Impossibile inizializzare FluidSynth" + IDS_2081 "Bus" + IDS_2082 "File" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Verifica BPB" + IDS_2088 "KB" + IDS_2089 "Impossibile inizializzare il renderer video." + IDS_2090 "Predefinito" + IDS_2091 "%i Stati d'attesa" + IDS_2092 "Tipo" + IDS_2093 "Impossibile impostare PCap" + IDS_2094 "Nessun dispositivo PCap trovato" + IDS_2095 "Dispositivo PCap invalido" + IDS_2096 "Joystick comune da 2 pulsanti" + IDS_2097 "Joystick comune da 4 pulsanti" + IDS_2098 "Joystick comune da 6 pulsanti" + IDS_2099 "Joystick comune da 8 pulsanti" + IDS_2100 "CH Flightstick Pro" + IDS_2101 "Microsoft SideWinder Pad" + IDS_2102 "Thrustmaster Flight Control System" + IDS_2103 "Niente" + IDS_2104 "Impossibile caricare gli acceleratori da tastiera." + IDS_2105 "Impossibile registrare input raw." + IDS_2106 "%u" + IDS_2107 "%u MB (CHS: %i, %i, %i)" + IDS_2108 "Floppy %i (%s): %ls" + IDS_2109 "Tutte le immagini (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Immagini da settori avanzati (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Imagini da settori basilari (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Immagini flusso (*.FDI)\0*.FDI\0Immagini da superfice (*.86F;*.MFM)\0*.86F;*.MFM\0Tutti i file (*.*)\0*.*\0" + IDS_2110 "Impossibile inizializzare FreeType" + IDS_2111 "Impossibile inizializzare SDL, SDL2.dll è necessario" + IDS_2112 "Sei sicuro di voler riavviare la macchina emulata?" + IDS_2113 "Sei sicuro di voler uscire da 86Box?" + IDS_2114 "Impossibile inizializzare Ghostscript" + IDS_2115 "MO %i (%ls): %ls" + IDS_2116 "Immagini MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tutti i file (*.*)\0*.*\0" + IDS_2117 "Benvenuti in 86Box!" + IDS_2118 "Controllore interno" + IDS_2119 "Esci" + IDS_2120 "Nessune immagini ROM trovate" + IDS_2121 "Vuoi salvare queste impostazioni?" + IDS_2122 "Questo riavviera la macchina emulata." + IDS_2123 "Salva" + IDS_2124 "Informazioni su 86Box" + IDS_2125 "86Box v" EMU_VERSION + + IDS_2126 "Un emulatore di computer vecchi\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nTradotto da: explorerdotexe\n\nRilasciato sotto la Licenza Pubblica GNU versione 2 o dopo. Vedi LICENSE per maggior informazioni." + IDS_2127 "OK" + IDS_2128 "Hardware non disponibile" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2129 "Controlla se " LIB_NAME_PCAP " è installato e che tu sia connesso ad una connessione " LIB_NAME_PCAP " compatibile." + IDS_2130 "Configurazione invalida" +#ifdef _WIN32 +#define LIB_NAME_FREETYPE "freetype.dll" +#else +#define LIB_NAME_FREETYPE "libfreetype" +#endif + IDS_2131 LIB_NAME_FREETYPE " è richesto per l'emuazione di stampanti ESC/P." +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2132 LIB_NAME_GS " è richiesto per la conversione automatica di file PostScript a file PDF.\n\nQualsiasi documento mandato alla stampante generica PostScript sarà salvato come file PostScript. (.ps)" +#ifdef _WIN32 +#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" +#else +#define LIB_NAME_FLUIDSYNTH "libfluidsynth" +#endif + IDS_2133 LIB_NAME_FLUIDSYNTH " è richiesto per l'output FluidSynth MIDI." + IDS_2134 "Entrando modalità schermo intero" + IDS_2135 "Non mostrare più questo messaggio" + IDS_2136 "Non uscire" + IDS_2137 "Riavvia" + IDS_2138 "Non riavviare" + IDS_2139 "Immagini MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tutti i file (*.*)\0*.*\0" + IDS_2140 "Immagini CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Tutti i file (*.*)\0*.*\0" + IDS_2141 "Configurazione del dispositivo %hs" + IDS_2142 "Monitor in modalità riposo" + IDS_2143 "Shader OpenGL (*.GLSL)\0*.GLSL\0Tutti i file (*.*)\0*.*\0" + IDS_2144 "Impostazioni OpenGL" + IDS_2145 "Stai caricando una configurazione non supportata" + IDS_2146 "Il filtraggio della tipologia di CPU è disabilitato per la macchina selezionata.\n\nQuesto lo rende possibile scegliere un CPU che è altrimenti incompatibile con la macchina selezionata. Tuttavia, portresti incorrere in incompatibilità con il BIOS della macchina o altri programmi. \n\nL'abilitare di questa impostazione non è ufficialmente supportato e tutte le segnalazioni di errori saranno considerate invalide." + IDS_2147 "Continua" + IDS_2148 "Cassetta: %s" + IDS_2149 "Immagini cassetta (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tutti i file (*.*)\0*.*\0" + IDS_2150 "Cartuccia %i: %ls" + IDS_2151 "Immagini cartuccia (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Tutti i file (*.*)\0*.*\0" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Disco rigido (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "Le unità CD-ROM per MFM/RLL o ESDI non sono mai esistite." + IDS_4100 "Personalizzata..." + IDS_4101 "Personalizzata (grande)..." + IDS_4102 "Aggiungi un nuovo disco rigido" + IDS_4103 "Aggiungi un disco rigido esistente" + IDS_4104 "Le immagini HDI non possono essere più grandi di 4 GB." + IDS_4105 "Le immmagini disco non possono essere più grandi di 127 GB." + IDS_4106 "Immagini disco rigido (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Tutti i file (*.*)\0*.*\0" + IDS_4107 "Impossibile leggere il file" + IDS_4108 "Impossibile scrivere al file" + IDS_4109 "Le immagini HDI o HDX con settori di dimensioni diverse da 512 non sono supportati." + IDS_4110 "USB non è ancora supportato" + IDS_4111 "Immagine disco già esiste" + IDS_4112 "Specifica un nome file valido." + IDS_4113 "Immagine disco creata" + IDS_4114 "Controlla che il file esiste e che sia leggibile." + IDS_4115 "Controlla che il file viene salvato ad un percorso con diritti di scrittura" + IDS_4116 "Immagine disco troppo grande" + IDS_4117 "Ricordati di partizionare e formattare il disco appena creato." + IDS_4118 "Il file selezionato sarà sovrascritto, sei sicuro di volerlo usare?" + IDS_4119 "Immagine disco non supportata" + IDS_4120 "Sovrascrivi" + IDS_4121 "Non sovrascrivere" + IDS_4122 "Immagine raw (.img)" + IDS_4123 "Immagine HDI (.hdi)" + IDS_4124 "Immagine HDX (.hdx)" + IDS_4125 "VHD di dimensioni fisse (.vhd)" + IDS_4126 "VHD di dimensioni dinamiche (.vhd)" + IDS_4127 "VHD di differenziazione (.vhd)" + IDS_4128 "Blocchi larghi (2 MB)" + IDS_4129 "Blocchi piccoli (512 KB)" + IDS_4130 "File VHD (*.VHD)\0*.VHD\0Tutti i file (*.*)\0*.*\0" + IDS_4131 "Seleziona il VHD padre." + IDS_4132 "Questo potrebbe significare che l'immagine padre sia stata modificata dopo la creazione dell'immagine di differenziazione.\n\nPuò anche succedere se i file immagini sono stati spostati o copiati, o da un errore nel programma che ha creato questo disco.\n\nVuoi aggiustare le marcature di tempo?" + IDS_4133 "Le marcature di tempo padre e figlio non corrispondono" + IDS_4134 "Impossibile aggiustare marcature di tempo VHD." + IDS_4135 "%01i:%02i" + + IDS_4352 "MFM/RLL" + IDS_4353 "XTA" + IDS_4354 "ESDI" + IDS_4355 "IDE" + IDS_4356 "ATAPI" + IDS_4357 "SCSI" + + IDS_4608 "MFM/RLL (%01i:%01i)" + IDS_4609 "XTA (%01i:%01i)" + IDS_4610 "ESDI (%01i:%01i)" + IDS_4611 "IDE (%01i:%01i)" + IDS_4612 "ATAPI (%01i:%01i)" + IDS_4613 "SCSI (%01i:%02i)" + + IDS_5120 "CD-ROM %i (%s): %s" + + IDS_5376 "Disabilitato" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Disabilitato" + IDS_5637 "ATAPI (%01i:%01i)" + IDS_5638 "SCSI (%01i:%02i)" + + IDS_5888 "160 kB" + IDS_5889 "180 kB" + IDS_5890 "320 kB" + IDS_5891 "360 kB" + IDS_5892 "640 kB" + IDS_5893 "720 kB" + IDS_5894 "1.2 MB" + IDS_5895 "1.25 MB" + IDS_5896 "1.44 MB" + IDS_5897 "DMF (cluster 1024)" + IDS_5898 "DMF (cluster 2048)" + IDS_5899 "2.88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128Mb M.O. (ISO 10090)" + IDS_5903 "3.5"" 230Mb M.O. (ISO 13963)" + IDS_5904 "3.5"" 540Mb M.O. (ISO 15498)" + IDS_5905 "3.5"" 640Mb M.O. (ISO 15498)" + IDS_5906 "3.5"" 1.3Gb M.O. (GigaMO)" + IDS_5907 "3.5"" 2.3Gb M.O. (GigaMO 2)" + IDS_5908 "5.25"" 600Mb M.O." + IDS_5909 "5.25"" 650Mb M.O." + IDS_5910 "5.25"" 1Gb M.O." + IDS_5911 "5.25"" 1.3Gb M.O." + + IDS_6144 "RPM Perfette" + IDS_6145 "RPM 1%% sotto perfezione" + IDS_6146 "RPM 1.5%% sotto perfezione" + IDS_6147 "RPM 2%% sotto perfezione" + + IDS_7168 "(Predefinito del sistema)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Italian (IT-it) resources +///////////////////////////////////////////////////////////////////////////// From b24f54b922d197a84a6ffaebac80df6c8b17f813 Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 16 Nov 2021 00:57:04 +0100 Subject: [PATCH 17/61] Fixed to the Italian translation and ported its dialogs to the common format. --- src/win/languages/it-IT.rc | 634 +++++++++---------------------------- 1 file changed, 143 insertions(+), 491 deletions(-) diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc index 5cb44e989..b988a40c5 100644 --- a/src/win/languages/it-IT.rc +++ b/src/win/languages/it-IT.rc @@ -70,8 +70,8 @@ BEGIN BEGIN MENUITEM "&Adatta a schermo intero", IDM_VID_FS_FULL MENUITEM "&4:3", IDM_VID_FS_43 - MENUITEM "&Pixel quadrati (Mantiene l'aspetto)", IDM_VID_FS_KEEPRATIO - MENUITEM "&Scala Integer", IDM_VID_FS_INT + MENUITEM "&Pixel quadrati (mantiene l'aspetto)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Scala intera", IDM_VID_FS_INT END POPUP "Impostazioni E&GA/(S)VGA" BEGIN @@ -120,10 +120,10 @@ BEGIN POPUP "&Registra" BEGIN # ifdef ENABLE_BUSLOGIC_LOG - MENUITEM "Attiva registrazione da BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC + MENUITEM "Attiva registrazione di BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC # endif # ifdef ENABLE_CDROM_LOG - MENUITEM "Attiva registrazione da CD-ROM\tCtrl+F5", IDM_LOG_CDROM + MENUITEM "Attiva registrazione del CD-ROM\tCtrl+F5", IDM_LOG_CDROM # endif # ifdef ENABLE_D86F_LOG MENUITEM "Attiva registrazione del floppy (86F)\tCtrl+F6", IDM_LOG_D86F @@ -132,7 +132,7 @@ BEGIN MENUITEM "Attiva registrazione del controller floppy\tCtrl+F7", IDM_LOG_FDC # endif # ifdef ENABLE_IDE_LOG - MENUITEM "Attiva registrazione da IDE\tCtrl+F8", IDM_LOG_IDE + MENUITEM "Attiva registrazione di IDE\tCtrl+F8", IDM_LOG_IDE # endif # ifdef ENABLE_SERIAL_LOG MENUITEM "Attiva registrazione della porta seriale\tCtrl+F3", IDM_LOG_SERIAL @@ -172,14 +172,14 @@ BEGIN MENUITEM "&Nuova immagine...", IDM_CASSETTE_IMAGE_NEW MENUITEM SEPARATOR MENUITEM "&Immagine esistente...", IDM_CASSETTE_IMAGE_EXISTING - MENUITEM "Immagine esistente (&Protezione scrittura)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM "Immagine esistente (&protezione contro scrittura)...", IDM_CASSETTE_IMAGE_EXISTING_WP MENUITEM SEPARATOR MENUITEM "&Registra", IDM_CASSETTE_RECORD - MENUITEM "&Riproduci", IDM_CASSETTE_PLAY - MENUITEM "&Riavvolgi all'inizio", IDM_CASSETTE_REWIND - MENUITEM "&Velocizza alla fine", IDM_CASSETTE_FAST_FORWARD + MENUITEM "R&iproduci", IDM_CASSETTE_PLAY + MENUITEM "Ri&avvolgi all'inizio", IDM_CASSETTE_REWIND + MENUITEM "A&vanti veloce alla fine", IDM_CASSETTE_FAST_FORWARD MENUITEM SEPARATOR - MENUITEM "E&spelli", IDM_CASSETTE_EJECT + MENUITEM "&Espelli", IDM_CASSETTE_EJECT END END @@ -189,7 +189,7 @@ BEGIN BEGIN MENUITEM "&Immagine...", IDM_CARTRIDGE_IMAGE MENUITEM SEPARATOR - MENUITEM "E&spelli", IDM_CARTRIDGE_EJECT + MENUITEM "&Espelli", IDM_CARTRIDGE_EJECT END END @@ -200,11 +200,11 @@ BEGIN MENUITEM "&Nuova immagine...", IDM_FLOPPY_IMAGE_NEW MENUITEM SEPARATOR MENUITEM "&Immagine esistente...", IDM_FLOPPY_IMAGE_EXISTING - MENUITEM "Immagine esistente (&Protezione scrittura)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM "Immagine esistente (&protezione contro scrittura)...", IDM_FLOPPY_IMAGE_EXISTING_WP MENUITEM SEPARATOR MENUITEM "E&sporta in 86F...", IDM_FLOPPY_EXPORT_TO_86F MENUITEM SEPARATOR - MENUITEM "E&spelli", IDM_FLOPPY_EJECT + MENUITEM "&Espelli", IDM_FLOPPY_EJECT END END @@ -214,7 +214,7 @@ BEGIN BEGIN MENUITEM "&Muto", IDM_CDROM_MUTE MENUITEM SEPARATOR - MENUITEM "E&spelli", IDM_CDROM_EMPTY + MENUITEM "&Espelli", IDM_CDROM_EMPTY MENUITEM "&Ricarica l'immagine precedente", IDM_CDROM_RELOAD MENUITEM SEPARATOR MENUITEM "&Immagine", IDM_CDROM_IMAGE @@ -228,9 +228,9 @@ BEGIN MENUITEM "&Nuova immagine...", IDM_ZIP_IMAGE_NEW MENUITEM SEPARATOR MENUITEM "&Immagine esistente...", IDM_ZIP_IMAGE_EXISTING - MENUITEM "Immagine esistente (&Protezione scrittura)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM "Immagine esistente (&protezione contro scrittura)...", IDM_ZIP_IMAGE_EXISTING_WP MENUITEM SEPARATOR - MENUITEM "E&spelli", IDM_ZIP_EJECT + MENUITEM "&Espelli", IDM_ZIP_EJECT MENUITEM "&Ricarica l'immagine precedente", IDM_ZIP_RELOAD END END @@ -242,9 +242,9 @@ BEGIN MENUITEM "&Nuova immagine...", IDM_MO_IMAGE_NEW MENUITEM SEPARATOR MENUITEM "&Immagine esistente...", IDM_MO_IMAGE_EXISTING - MENUITEM "Immagine esistente (&Protezione scrittura)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM "Immagine esistente (&protezione contro scrittura)...", IDM_MO_IMAGE_EXISTING_WP MENUITEM SEPARATOR - MENUITEM "E&spelli", IDM_MO_EJECT + MENUITEM "&Espelli", IDM_MO_EJECT MENUITEM "&Ricarica l'immagine precedente", IDM_MO_RELOAD END END @@ -273,473 +273,125 @@ END // Dialog // -DLG_PROG_SETT DIALOG DISCARDABLE 0, 0, 240, 86 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Cambia Lingua Display" -FONT 9, "Segoe UI" -BEGIN - DEFPUSHBUTTON "OK", IDOK, 123, 65, 50, 14 - PUSHBUTTON "Cancella", IDCANCEL, 179, 65, 50, 14 - COMBOBOX IDC_COMBO_LANG, 13, 18, 213, 22, CBS_DROPDOWNLIST | CBS_HASSTRINGS - AUTOCHECKBOX "Salva queste impostazioni come &predefinite globali", IDC_CHECKBOX_GLOBAL, 13, 50, 217, 8 , WS_DISABLED - PUSHBUTTON "&Predefinito", IDC_BUTTON_DEFAULT, 162, 32, 60, 14 - LTEXT "Lingua:", 0, 13, 8, 34, 8 -END +#define STR_PROG_SETT "Cambia lingua dell'interfaccia" +#define STR_SND_GAIN "Guadagno del suono" +#define STR_NEW_FLOPPY "Nuova immagine" +#define STR_CONFIG "Impostazioni di 86Box" +#define STR_SPECIFY_DIM "Specifica dimensioni della finestra principale" -DLG_STATUS DIALOG DISCARDABLE 0, 0, 186, 386 -STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Stato" -FONT 9, "Segoe UI" -BEGIN - LTEXT "1",IDT_SDEVICE,16,16,180,1000 - LTEXT "1",IDT_STEXT,16,186,180,1000 -END +#define STR_OK "OK" +#define STR_CANCEL "Annulla" +#define STR_GLOBAL "Salva queste impostazioni come &predefinite globali" +#define STR_DEFAULT "&Predefinito" +#define STR_LANGUAGE "Lingua:" -DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Guadagno del Suono" -FONT 9, "Segoe UI" -BEGIN - DEFPUSHBUTTON "OK",IDOK,57,7,50,14 - PUSHBUTTON "Cancella",IDCANCEL,57,24,50,14 - CONTROL "Guadagno",IDC_SLIDER_GAIN,"msctls_trackbar32",TBS_VERT | - TBS_BOTH | TBS_AUTOTICKS | WS_TABSTOP,15,20,20,109 - CTEXT "Guadagno",IDT_1746,10,7,32,9,SS_CENTERIMAGE -END +#define STR_GAIN "Guadagno" -DLG_NEW_FLOPPY DIALOG DISCARDABLE 0, 0, 226, 86 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Nuova Immagine" -FONT 9, "Segoe UI" -BEGIN - DEFPUSHBUTTON "OK",IDOK,104,65,50,14 - PUSHBUTTON "Cancella",IDCANCEL,162,65,50,14 - LTEXT "Nome file:",IDT_1749,7,6,44,12,SS_CENTERIMAGE - LTEXT "Dimensioni disco:",IDT_1750,7,25,44,12,SS_CENTERIMAGE - LTEXT "Modalità RPM:",IDT_1751,7,45,44,12,SS_CENTERIMAGE - EDITTEXT IDC_EDIT_FILE_NAME,53,5,150,14,ES_AUTOHSCROLL | ES_READONLY - COMBOBOX IDC_COMBO_DISK_SIZE,53,25,166,14,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_COMBO_RPM_MODE,53,45,166,14,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "...",IDC_CFILE,206,5,13,14 - LTEXT "Progresso:",IDT_1757,7,45,44,12,SS_CENTERIMAGE - CONTROL "IMGCreateProgress",IDC_PBAR_IMG_CREATE,"msctls_progress32",PBS_SMOOTH | - WS_BORDER,53,45,166,14 -END +#define STR_FILE_NAME "Nome file:" +#define STR_DISK_SIZE "Dimensioni disco:" +#define STR_RPM_MODE "Modalità RPM:" +#define STR_PROGRESS "Progresso:" -DLG_CONFIG DIALOG DISCARDABLE 0, 0, 376, 256 -STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Impostazioni 86Box" -FONT 9, "Segoe UI" -BEGIN - DEFPUSHBUTTON "OK",IDOK,246,235,50,14 - PUSHBUTTON "Cancella",IDCANCEL,307,235,50,14 - CONTROL "List2",IDC_SETTINGSCATLIST,"SysListView32",LVS_REPORT | LVS_NOCOLUMNHEADER | - LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,7,7,100,212 - CONTROL "",-1,"Static",SS_BLACKFRAME | SS_SUNKEN,1,226,373,1 -END +#define STR_WIDTH "Larghezza:" +#define STR_HEIGHT "Altezza:" +#define STR_LOCK_TO_SIZE "Blocca in queste dimensioni" -DLG_SPECIFY_DIM DIALOG DISCARDABLE 0, 0, 175, 66 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Specifica dimensioni della finestra principale" -FONT 9, "Segoe UI" -BEGIN - LTEXT "Larghezza:",IDT_1709,7,9,24,12 - EDITTEXT IDC_EDIT_WIDTH,33,7,45,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_WIDTHSPIN,"msctls_updown32",UDS_SETBUDDYINT | - UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,76,6, - 12,12 - LTEXT "Altezza:",IDT_1710,97,9,24,12 - EDITTEXT IDC_EDIT_HEIGHT,123,7,45,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_HEIGHTSPIN,"msctls_updown32",UDS_SETBUDDYINT | - UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,166,6, - 12,12 - CONTROL "Blocca in questa dimensione",IDC_CHECK_LOCK_SIZE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,26,94,10 - DEFPUSHBUTTON "OK",IDOK,30,45,50,14 - PUSHBUTTON "Cancella",IDCANCEL,99,45,50,14 -END +#define STR_MACHINE_TYPE "Tipo di macchina:" +#define STR_MACHINE "Macchina:" +#define STR_CONFIGURE "Configura" +#define STR_CPU_TYPE "Tipo del CPU:" +#define STR_SPEED "Veloc.:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "Stati di attesa:" +#define STR_MB "MB" +#define STR_MEMORY "Memoria:" +#define STR_TIME_SYNC "Sincronizzazione dell'ora" +#define STR_DISABLED "Disabilitata" +#define STR_ENABLED_LOCAL "Abilitata (ora locale)" +#define STR_ENABLED_UTC "Abilitata (UTC)" +#define STR_DYNAREC "Ricompilatore dinamico" -DLG_CFG_MACHINE DIALOG DISCARDABLE 107, 0, 305, 200 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - COMBOBOX IDC_COMBO_MACHINE_TYPE,71,7,189,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Tipo di macchina:",IDT_1708,7,9,60,10 - COMBOBOX IDC_COMBO_MACHINE,71,26,138,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Macchina:",IDT_1701,7,28,60,10 - PUSHBUTTON "Configura",IDC_CONFIGURE_MACHINE,214,26,46,12 - COMBOBOX IDC_COMBO_CPU_TYPE,71,45,110,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Tipo del CPU:",IDT_1702,7,47,59,10 - COMBOBOX IDC_COMBO_CPU,215,45,45,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Veloc.:",IDT_1704,189,47,24,10 - COMBOBOX IDC_COMBO_FPU,71,64,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - LTEXT "FPU:",IDT_1707,7,66,59,10 - COMBOBOX IDC_COMBO_WS,71,83,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - LTEXT "Stati di attesa :",IDT_1703,7,85,60,10 - EDITTEXT IDC_MEMTEXT,70,102,45,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_MEMSPIN,"msctls_updown32",UDS_SETBUDDYINT | - UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS,113,101, - 12,12 - LTEXT "MB",IDT_1705,123,104,10,10 - LTEXT "Memoria:",IDT_1706,7,104,30,10 - GROUPBOX "sincronizzazione del tempo",IDC_TIME_SYNC,7,135,100,56 - CONTROL "Disattiva",IDC_RADIO_TS_DISABLED,"Button", - BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,147,84,10 - CONTROL "Attiva (tempo locale)", IDC_RADIO_TS_LOCAL,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,14,161,84,10 - CONTROL "Attiva (UTC)", IDC_RADIO_TS_UTC,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,14,175,84,10 -#ifdef USE_DYNAREC - CONTROL "Ricompilatore dinamico",IDC_CHECK_DYNAREC,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,120,94,10 -#endif -END +#define STR_VIDEO "Video:" +#define STR_VOODOO "Grafica Voodoo" -DLG_CFG_VIDEO DIALOG DISCARDABLE 107, 0, 267, 45 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - LTEXT "Video:",IDT_1707,7,9,48,10 - COMBOBOX IDC_COMBO_VIDEO,64,7,155,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_VID,222,7,38,12 - CONTROL "Grafica Voodoo",IDC_CHECK_VOODOO,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,27,199,10 - PUSHBUTTON "Configura",IDC_BUTTON_VOODOO,222,26,38,12 -END +#define STR_MOUSE "Mouse:" +#define STR_JOYSTICK "Joystick:" +#define STR_JOY1 "Joystick 1..." +#define STR_JOY2 "Joystick 2..." +#define STR_JOY3 "Joystick 3..." +#define STR_JOY4 "Joystick 4..." -DLG_CFG_INPUT DIALOG DISCARDABLE 107, 0, 267, 65 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - LTEXT "Mouse:",IDT_1709,7,9,57,10 - COMBOBOX IDC_COMBO_MOUSE,71,7,140,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_MOUSE,214,7,46,12 - LTEXT "Joystick:",IDT_1710,7,27,58,10 - COMBOBOX IDC_COMBO_JOYSTICK,71,25,189,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Joystick 1...",IDC_JOY1,7,44,50,14 - PUSHBUTTON "Joystick 2...",IDC_JOY2,74,44,50,14 - PUSHBUTTON "Joystick 3...",IDC_JOY3,141,44,50,14 - PUSHBUTTON "Joystick 4...",IDC_JOY4,209,44,50,14 -END +#define STR_SOUND "Scheda audio:" +#define STR_MIDI "Uscita MIDI:" +#define STR_MIDI_IN "Entrata MIDI:" +#define STR_MPU401 "MPU-401 autonomo" +#define STR_SSI "Innovation SSI-2001" +#define STR_CMS "CMS / Game Blaster" +#define STR_GUS "Gravis Ultrasound" +#define STR_FLOAT "Usa suono FLOAT32" -DLG_CFG_SOUND DIALOG DISCARDABLE 107, 0, 267, 201 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - COMBOBOX IDC_COMBO_SOUND,71,7,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - LTEXT "Scheda audio:",IDT_1711,7,9,59,10 - PUSHBUTTON "Configura",IDC_CONFIGURE_SND,214,7,46,12 +#define STR_NET_TYPE "Tipo di rete:" +#define STR_PCAP "Dispositivo PCap:" +#define STR_NET "Scheda di rete:" - COMBOBOX IDC_COMBO_MIDI,71,26,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - LTEXT "Dispositivo uscita MIDI:",IDT_1712,7,28,59,10 - PUSHBUTTON "Configura",IDC_CONFIGURE_MIDI,214,26,46,12 +#define STR_LPT1 "Dispositivo LPT1:" +#define STR_LPT2 "Dispositivo LPT2:" +#define STR_LPT3 "Dispositivo LPT3:" +#define STR_SERIAL1 "Porta seriale 1" +#define STR_SERIAL2 "Porta seriale 2" +#define STR_SERIAL3 "Porta seriale 3" +#define STR_SERIAL4 "Porta seriale 4" +#define STR_PARALLEL1 "Porta parallela 1" +#define STR_PARALLEL2 "Porta parallela 2" +#define STR_PARALLEL3 "Porta parallela 3" - COMBOBOX IDC_COMBO_MIDI_IN,71,45,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - LTEXT "Dispositivo entrata MIDI:",IDT_1713,7,47,59,10 - PUSHBUTTON "Configura",IDC_CONFIGURE_MIDI_IN,214,45,46,12 +#define STR_HDC "Controller HD:" +#define STR_FDC "Controller FD:" +#define STR_IDE_TER "Controller IDE terziario" +#define STR_IDE_QUA "Controller IDE quaternario" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Controller 1:" +#define STR_SCSI_2 "Controller 2:" +#define STR_SCSI_3 "Controller 3:" +#define STR_SCSI_4 "Controller 4:" +#define STR_CASSETTE "Cassetta" - CONTROL "MPU-401 autonomo",IDC_CHECK_MPU401,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,66,199,10 - PUSHBUTTON "Configura",IDC_CONFIGURE_MPU401,214,64,46,12 +#define STR_HDD "Hard disk:" +#define STR_NEW "&Nuovo..." +#define STR_EXISTING "&Esistente..." +#define STR_REMOVE "&Rimouvi" +#define STR_BUS "Bus:" +#define STR_CHANNEL "Canale:" +#define STR_ID "ID:" - CONTROL "Innovation SSI-2001",IDC_CHECK_SSI,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,84,95,10 - PUSHBUTTON "Configure",IDC_CONFIGURE_SSI,214,82,46,12 +#define STR_SPECIFY "&Specifica..." +#define STR_SECTORS "Settori:" +#define STR_HEADS "Testine:" +#define STR_CYLS "Cilindri:" +#define STR_SIZE_MB "Dimensioni (MB):" +#define STR_TYPE "Tipo:" +#define STR_IMG_FORMAT "Formato immagine:" +#define STR_BLOCK_SIZE "Dimensioni blocco:" - CONTROL "CMS / Game Blaster",IDC_CHECK_CMS,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,102,95,10 - PUSHBUTTON "Configure",IDC_CONFIGURE_CMS,214,100,46,12 +#define STR_FLOPPY_DRIVES "Unità floppy:" +#define STR_TURBO "Turbo" +#define STR_CHECKBPB "Verifica BPB" +#define STR_CDROM_DRIVES "Unità CD-ROM:" - CONTROL "Gravis Ultrasound",IDC_CHECK_GUS,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,120,94,10 - PUSHBUTTON "Configure",IDC_CONFIGURE_GUS,214,118,46,12 - - CONTROL "Usare suono FLOAT32",IDC_CHECK_FLOAT,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,138,94,10 -END +#define STR_MO_DRIVES "Unità magneto-ottiche:" +#define STR_ZIP_DRIVES "Unità ZIP:" +#define STR_250 "ZIP 250" -DLG_CFG_NETWORK DIALOG DISCARDABLE 107, 0, 267, 65 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - LTEXT "Tipo di Rete:",IDT_1714,7,9,59,10 - COMBOBOX IDC_COMBO_NET_TYPE,71,7,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP +#define STR_ISARTC "RTC ISA:" +#define STR_ISAMEM "Espansione memoria ISA" +#define STR_ISAMEM_1 "Scheda 1:" +#define STR_ISAMEM_2 "Scheda 2:" +#define STR_ISAMEM_3 "Scheda 3:" +#define STR_ISAMEM_4 "Scheda 4:" +#define STR_BUGGER "Dispositivo ISABugger" +#define STR_POSTCARD "Scheda POST" - LTEXT "Dispositivo PCap:",IDT_1715,7,28,59,10 - COMBOBOX IDC_COMBO_PCAP,71,26,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - - LTEXT "Scheda di rete:",IDT_1716,7,47,59,10 - COMBOBOX IDC_COMBO_NET,71,45,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "Configure",IDC_CONFIGURE_NET,214,44,46,12 -END - -DLG_CFG_PORTS DIALOG DISCARDABLE 107, 0, 267, 135 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - LTEXT "Dispositivo LPT1:",IDT_1717,7,9,61,10 - COMBOBOX IDC_COMBO_LPT1,71,7,189,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - - LTEXT "Dispositivo LPT2:",IDT_1718,7,28,61,10 - COMBOBOX IDC_COMBO_LPT2,71,26,189,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - - LTEXT "Dispositivo LPT3:",IDT_1719,7,47,61,10 - COMBOBOX IDC_COMBO_LPT3,71,45,189,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - - CONTROL "Porta seriale 1",IDC_CHECK_SERIAL1,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,64,94,10 - CONTROL "Porta seriale 2",IDC_CHECK_SERIAL2,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,147,64,94,10 - CONTROL "Porta seriale 3",IDC_CHECK_SERIAL3,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,82,94,10 - CONTROL "Porta seriale 4",IDC_CHECK_SERIAL4,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,147,82,94,10 - - CONTROL "Porta parallela 1",IDC_CHECK_PARALLEL1,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,100,94,10 - CONTROL "Porta parallela 2",IDC_CHECK_PARALLEL2,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,147,100,94,10 - CONTROL "Porta parallela 3",IDC_CHECK_PARALLEL3,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,118,94,10 -END - -DLG_CFG_STORAGE DIALOG DISCARDABLE 107, 0, 267, 203 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - LTEXT "Controllore HDD:",IDT_1718,7,9,64,10 - COMBOBOX IDC_COMBO_HDC,64,7,155,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_HDC,222,7,38,12 - - LTEXT "Controllore FD:",IDT_1768,7,28,64,10 - COMBOBOX IDC_COMBO_FDC,64,26,155,120,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_FDC,222,26,38,12 - - CONTROL "Controllore IDE terziario",IDC_CHECK_IDE_TER,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,47,199,10 - PUSHBUTTON "Configura",IDC_BUTTON_IDE_TER,222,45,38,12 - - CONTROL "Controllore IDE quaternario",IDC_CHECK_IDE_QUA,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,66,199,10 - PUSHBUTTON "Configura",IDC_BUTTON_IDE_QUA,222,64,38,12 - - GROUPBOX "SCSI",IDC_GROUP_SCSI,7,85,253,93 - LTEXT "Controllore 1:",IDT_1763,16,102,48,10 - COMBOBOX IDC_COMBO_SCSI_1,73,100,137,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_SCSI_1,213,100,38,12 - LTEXT "Controllore 2:",IDT_1764,16,121,48,10 - COMBOBOX IDC_COMBO_SCSI_2,73,119,137,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_SCSI_2,213,119,38,12 - LTEXT "Controllore 3:",IDT_1765,16,140,48,10 - COMBOBOX IDC_COMBO_SCSI_3,73,138,137,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_SCSI_3,213,138,38,12 - LTEXT "Controllore 4:",IDT_1766,16,159,48,10 - COMBOBOX IDC_COMBO_SCSI_4,73,157,137,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_SCSI_4,213,157,38,12 - - CONTROL "Cassetta",IDC_CHECK_CASSETTE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,185,94,10 -END - -DLG_CFG_HARD_DISKS DIALOG DISCARDABLE 107, 0, 267, 154 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - CONTROL "List1",IDC_LIST_HARD_DISKS,"SysListView32",LVS_REPORT | - LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | - WS_TABSTOP,7,18,253,92 - LTEXT "Disco rigido:",IDT_1720,7,7,253,8 - PUSHBUTTON "&Nuovo...",IDC_BUTTON_HDD_ADD_NEW,60,137,62,10 - PUSHBUTTON "&Esistente...",IDC_BUTTON_HDD_ADD,129,137,62,10 - PUSHBUTTON "&Rimuovi",IDC_BUTTON_HDD_REMOVE,198,137,62,10 - COMBOBOX IDC_COMBO_HD_BUS,33,117,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Bus:",IDT_1721,7,119,24,8 - COMBOBOX IDC_COMBO_HD_CHANNEL,170,117,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Canale:",IDT_1722,131,119,38,8 - COMBOBOX IDC_COMBO_HD_ID,170,117,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "ID:",IDT_1723,131,119,38,8 - COMBOBOX IDC_COMBO_HD_CHANNEL_IDE,170,117,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP -END - -DLG_CFG_HARD_DISKS_ADD DIALOG DISCARDABLE 0, 0, 219, 149 -STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Aggiungi disco rigido" -FONT 9, "Segoe UI" -BEGIN - DEFPUSHBUTTON "OK",IDOK,55,127,50,14 - PUSHBUTTON "Cancella",IDCANCEL,112,127,50,14 - EDITTEXT IDC_EDIT_HD_FILE_NAME,7,16,153,12 - PUSHBUTTON "&Specifica...",IDC_CFILE,167,16,44,12 - EDITTEXT IDC_EDIT_HD_SPT,183,34,28,12 - EDITTEXT IDC_EDIT_HD_HPC,112,34,28,12 - EDITTEXT IDC_EDIT_HD_CYL,42,34,28,12 - EDITTEXT IDC_EDIT_HD_SIZE,42,52,28,12 - COMBOBOX IDC_COMBO_HD_TYPE,113,52,98,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Settori:",IDT_1726,154,35,27,10 - LTEXT "Teste:",IDT_1727,81,35,29,8 - LTEXT "Cilindri:",IDT_1728,7,35,32,12 - LTEXT "Dimensioni (MB):",IDT_1729,7,54,33,8 - LTEXT "Tipo:",IDT_1730,86,54,24,8 - LTEXT "Nome file:",IDT_1731,7,7,204,9 - COMBOBOX IDC_COMBO_HD_BUS,33,71,58,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Bus:",IDT_1721,7,73,24,8 - COMBOBOX IDC_COMBO_HD_CHANNEL,134,71,77,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Canale:",IDT_1722,99,73,34,8 - COMBOBOX IDC_COMBO_HD_ID,134,71,77,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "ID:",IDT_1723,99,73,34,8 - COMBOBOX IDC_COMBO_HD_CHANNEL_IDE,134,71,77,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Formato Immag.:",IDT_1774,7,92,50,12 - COMBOBOX IDC_COMBO_HD_IMG_FORMAT,58,90,153,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Dimensioni blocchi:",IDT_1775,7,111,50,12 - COMBOBOX IDC_COMBO_HD_BLOCK_SIZE,58,109,153,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Progresso:",IDT_1752,7,7,204,9 - CONTROL "IMGCreateProgress",IDC_PBAR_IMG_CREATE,"msctls_progress32",PBS_SMOOTH | - WS_BORDER,7,16,204,12 -END - -DLG_CFG_FLOPPY_AND_CDROM_DRIVES DIALOG DISCARDABLE 107, 0, 267, 222 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - CONTROL "List1",IDC_LIST_FLOPPY_DRIVES,"SysListView32", - LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | - WS_TABSTOP,7,18,253,60 - LTEXT "Unità floppy:",IDT_1737,7,7,253,8 - COMBOBOX IDC_COMBO_FD_TYPE,33,85,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Tipo:",IDT_1738,7,87,24,8 - CONTROL "Turbo",IDC_CHECKTURBO,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,131,86,64,10 - CONTROL "Verifica BPB",IDC_CHECKBPB,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,196,86,64,10 - - CONTROL "List1",IDC_LIST_CDROM_DRIVES,"SysListView32",LVS_REPORT | - LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | - WS_TABSTOP,7,117,253,60 - LTEXT "Unità CD-ROM:",IDT_1739,7,107,253,8 - COMBOBOX IDC_COMBO_CD_BUS,33,185,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Bus:",IDT_1740,7,187,24,8 - COMBOBOX IDC_COMBO_CD_ID,170,185,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "ID:",IDT_1741,131,187,38,8 - COMBOBOX IDC_COMBO_CD_CHANNEL_IDE,170,185,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Canale:",IDT_1742,131,187,38,8 - COMBOBOX IDC_COMBO_CD_SPEED,33,205,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Velocità:",IDT_1758,7,207,24,8 -END - -DLG_CFG_OTHER_REMOVABLE_DEVICES DIALOG DISCARDABLE 107, 0, 267, 222 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - - CONTROL "List1",IDC_LIST_MO_DRIVES,"SysListView32",LVS_REPORT | - LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | - WS_TABSTOP,7,17,253,60 - LTEXT "Unità MO:",IDT_1769,7,7,253,8 - COMBOBOX IDC_COMBO_MO_BUS,33,85,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Bus:",IDT_1770,7,87,24,8 - COMBOBOX IDC_COMBO_MO_ID,170,85,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "ID:",IDT_1771,131,87,38,8 - COMBOBOX IDC_COMBO_MO_CHANNEL_IDE,170,85,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Canale:",IDT_1772,131,87,38,8 - COMBOBOX IDC_COMBO_MO_TYPE,33,105,120,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Tipo:",IDT_1773,7,107,24,8 - - CONTROL "List1",IDC_LIST_ZIP_DRIVES,"SysListView32",LVS_REPORT | - LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | - WS_TABSTOP,7,137,253,60 - LTEXT "Unità ZIP:",IDT_1759,7,127,253,8 - COMBOBOX IDC_COMBO_ZIP_BUS,23,205,90,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Bus:",IDT_1753,7,207,14,8 - COMBOBOX IDC_COMBO_ZIP_ID,149,205,61,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "ID:",IDT_1754,120,207,28,8 - COMBOBOX IDC_COMBO_ZIP_CHANNEL_IDE,149,205,61,12,CBS_DROPDOWNLIST | - WS_VSCROLL | WS_TABSTOP - LTEXT "Canale:",IDT_1755,120,207,28,8 - CONTROL "ZIP 250",IDC_CHECK250,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,218,205,44,10 -END - -DLG_CFG_PERIPHERALS DIALOG DISCARDABLE 107, 0, 267, 154 -STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" -BEGIN - LTEXT "ISA RTC:",IDT_1767,7,9,48,10 - COMBOBOX IDC_COMBO_ISARTC,64,7,155,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_ISARTC,222,7,38,12 - - GROUPBOX "Espansione memoria ISA",IDC_GROUP_ISAMEM,7,28,253,93 - LTEXT "Scheda 1:",IDT_1763,16,45,48,10 - COMBOBOX IDC_COMBO_ISAMEM_1,73,43,137,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_ISAMEM_1,213,43,38,12 - LTEXT "Scheda 2:",IDT_1764,16,64,48,10 - COMBOBOX IDC_COMBO_ISAMEM_2,73,62,137,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_ISAMEM_2,213,62,38,12 - LTEXT "Scheda 3:",IDT_1765,16,83,48,10 - COMBOBOX IDC_COMBO_ISAMEM_3,73,81,137,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_ISAMEM_3,213,81,38,12 - LTEXT "Scheda 4:",IDT_1766,16,102,48,10 - COMBOBOX IDC_COMBO_ISAMEM_4,73,100,137,120, - CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Configura",IDC_CONFIGURE_ISAMEM_4,213,100,38,12 - - CONTROL "Dispositivo ISABugger",IDC_CHECK_BUGGER,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,128,94,10 - - CONTROL "Scheda POST",IDC_CHECK_POSTCARD,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,147,128,94,10 -END +#include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// // @@ -762,28 +414,28 @@ BEGIN IDS_2059 "Turbo" IDS_2060 "Acceso" IDS_2061 "Spento" - IDS_2062 "Tutte le immagini (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Immagini di settori base (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Immagini di superfice (*.86F)\0*.86F\0" - IDS_2063 "La macchina ""%hs"" non è disponibile a causa di immagini ROM mancanti nel percorso roms/machines. Cambiando ad una macchina disponibile." + IDS_2062 "Tutte le immagini (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Immagini di settori base (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Immagini di superficie (*.86F)\0*.86F\0" + IDS_2063 "La macchina ""%hs"" non è disponibile a causa di immagini ROM mancanti nella directory roms/machines. Cambiando ad una macchina disponibile." END STRINGTABLE DISCARDABLE BEGIN - IDS_2064 "La scheda video ""%hs"" non è disponibile a causa di immagini ROM mancanti nel percorso roms/video. Cambiando ad una scheda video disponibile." + IDS_2064 "La scheda video ""%hs"" non è disponibile a causa di immagini ROM mancanti nella directory roms/video. Cambiando ad una scheda video disponibile." IDS_2065 "Macchina" IDS_2066 "Schermo" - IDS_2067 "Dispositivi di input" + IDS_2067 "Dispositivi di entrata" IDS_2068 "Audio" IDS_2069 "Rete" IDS_2070 "Porte (COM & LPT)" - IDS_2071 "Controllori di memor." - IDS_2072 "Dischi rigidi" - IDS_2073 "Unitaà CD-ROM e Floppy" - IDS_2074 "Altri dispositivi rimuov." + IDS_2071 "Controller memoria" + IDS_2072 "Hard disk" + IDS_2073 "Unità CD-ROM e Floppy" + IDS_2074 "Altri dispositivi rimuovibili" IDS_2075 "Altre periferiche" - IDS_2076 "Immagini di superfice (*.86F)\0*.86F\0" - IDS_2077 "Clicca per catturare mouse" - IDS_2078 "Premi F8+F12 per liberare il mouse" - IDS_2079 "Premi F8+F12 o pulsante centrale per liberare il mouse" + IDS_2076 "Immagini di superficie (*.86F)\0*.86F\0" + IDS_2077 "Fare clic per catturare mouse" + IDS_2078 "Premi F8+F12 per rilasciare il mouse" + IDS_2079 "Premi F8+F12 o pulsante centrale per rilasciare il mouse" END STRINGTABLE DISCARDABLE @@ -799,7 +451,7 @@ BEGIN IDS_2088 "KB" IDS_2089 "Impossibile inizializzare il renderer video." IDS_2090 "Predefinito" - IDS_2091 "%i Stati d'attesa" + IDS_2091 "%i stati d'attesa" IDS_2092 "Tipo" IDS_2093 "Impossibile impostare PCap" IDS_2094 "Nessun dispositivo PCap trovato" @@ -811,13 +463,13 @@ BEGIN IDS_2100 "CH Flightstick Pro" IDS_2101 "Microsoft SideWinder Pad" IDS_2102 "Thrustmaster Flight Control System" - IDS_2103 "Niente" + IDS_2103 "Nessuno" IDS_2104 "Impossibile caricare gli acceleratori da tastiera." IDS_2105 "Impossibile registrare input raw." IDS_2106 "%u" IDS_2107 "%u MB (CHS: %i, %i, %i)" IDS_2108 "Floppy %i (%s): %ls" - IDS_2109 "Tutte le immagini (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Immagini da settori avanzati (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Imagini da settori basilari (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Immagini flusso (*.FDI)\0*.FDI\0Immagini da superfice (*.86F;*.MFM)\0*.86F;*.MFM\0Tutti i file (*.*)\0*.*\0" + IDS_2109 "Tutte le immagini (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Immagini da settori avanzati (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Imagini da settori basilari (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Immagini flusso (*.FDI)\0*.FDI\0Immagini da superficie (*.86F;*.MFM)\0*.86F;*.MFM\0Tutti i file (*.*)\0*.*\0" IDS_2110 "Impossibile inizializzare FreeType" IDS_2111 "Impossibile inizializzare SDL, SDL2.dll è necessario" IDS_2112 "Sei sicuro di voler riavviare la macchina emulata?" @@ -826,11 +478,11 @@ BEGIN IDS_2115 "MO %i (%ls): %ls" IDS_2116 "Immagini MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tutti i file (*.*)\0*.*\0" IDS_2117 "Benvenuti in 86Box!" - IDS_2118 "Controllore interno" + IDS_2118 "Controller interno" IDS_2119 "Esci" IDS_2120 "Nessune immagini ROM trovate" - IDS_2121 "Vuoi salvare queste impostazioni?" - IDS_2122 "Questo riavviera la macchina emulata." + IDS_2121 "Vuole salvare queste impostazioni?" + IDS_2122 "Questo riavvierà la macchina emulata." IDS_2123 "Salva" IDS_2124 "Informazioni su 86Box" IDS_2125 "86Box v" EMU_VERSION @@ -863,7 +515,7 @@ BEGIN #define LIB_NAME_FLUIDSYNTH "libfluidsynth" #endif IDS_2133 LIB_NAME_FLUIDSYNTH " è richiesto per l'output FluidSynth MIDI." - IDS_2134 "Entrando modalità schermo intero" + IDS_2134 "Entrando nella modalità schermo intero" IDS_2135 "Non mostrare più questo messaggio" IDS_2136 "Non uscire" IDS_2137 "Riavvia" @@ -885,10 +537,10 @@ END STRINGTABLE DISCARDABLE BEGIN - IDS_4096 "Disco rigido (%s)" + IDS_4096 "Hard disk (%s)" IDS_4097 "%01i:%01i" IDS_4098 "%01i" - IDS_4099 "Le unità CD-ROM per MFM/RLL o ESDI non sono mai esistite." + IDS_4099 "Le unità CD-ROM MFM/RLL o ESDI non sono mai esistite." IDS_4100 "Personalizzata..." IDS_4101 "Personalizzata (grande)..." IDS_4102 "Aggiungi un nuovo disco rigido" @@ -916,7 +568,7 @@ BEGIN IDS_4124 "Immagine HDX (.hdx)" IDS_4125 "VHD di dimensioni fisse (.vhd)" IDS_4126 "VHD di dimensioni dinamiche (.vhd)" - IDS_4127 "VHD di differenziazione (.vhd)" + IDS_4127 "VHD differenziato (.vhd)" IDS_4128 "Blocchi larghi (2 MB)" IDS_4129 "Blocchi piccoli (512 KB)" IDS_4130 "File VHD (*.VHD)\0*.VHD\0Tutti i file (*.*)\0*.*\0" @@ -975,7 +627,7 @@ BEGIN IDS_5910 "5.25"" 1Gb M.O." IDS_5911 "5.25"" 1.3Gb M.O." - IDS_6144 "RPM Perfette" + IDS_6144 "RPM perfette" IDS_6145 "RPM 1%% sotto perfezione" IDS_6146 "RPM 1.5%% sotto perfezione" IDS_6147 "RPM 2%% sotto perfezione" From 9b14f52e0a30aba26e3b6d7502b0f25057d12d33 Mon Sep 17 00:00:00 2001 From: "U-MEGAPC\\Jerome" Date: Tue, 16 Nov 2021 18:58:01 +0100 Subject: [PATCH 18/61] Create fr-FR.rc --- src/win/languages/fr-FR.rc | 640 +++++++++++++++++++++++++++++++++++++ 1 file changed, 640 insertions(+) create mode 100644 src/win/languages/fr-FR.rc diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc new file mode 100644 index 000000000..443d0debc --- /dev/null +++ b/src/win/languages/fr-FR.rc @@ -0,0 +1,640 @@ +//////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Action" + BEGIN + MENUITEM "&Keyboard requires capture", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Right CTRL is left ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Hard Reset...", IDM_ACTION_HRESET + MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD + MENUITEM SEPARATOR + MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC + MENUITEM SEPARATOR + MENUITEM "&Pause", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "E&xit...", IDM_ACTION_EXIT + END + POPUP "&View" + BEGIN + MENUITEM "&Hide status bar", IDM_VID_HIDE_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Resizeable window", IDM_VID_RESIZE + MENUITEM "R&emember size && position", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "Re&nderer" + BEGIN + MENUITEM "&SDL (Software)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL +#if defined(DEV_BRANCH) && defined(USE_OPENGL) + MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE +#endif +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Specify dimensions...", IDM_VID_SPECIFY_DIM + MENUITEM "F&orce 4:3 display ratio", IDM_VID_FORCE43 + POPUP "&Window scale factor" + BEGIN + MENUITEM "&0.5x", IDM_VID_SCALE_1X + MENUITEM "&1x", IDM_VID_SCALE_2X + MENUITEM "1.&5x", IDM_VID_SCALE_3X + MENUITEM "&2x", IDM_VID_SCALE_4X + END + POPUP "Filter method" + BEGIN + MENUITEM "&Nearest", IDM_VID_FILTER_NEAREST + MENUITEM "&Linear", IDM_VID_FILTER_LINEAR + END + MENUITEM "Hi&DPI scaling", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Fullscreen\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + POPUP "Fullscreen &stretch mode" + BEGIN + MENUITEM "&Full screen stretch", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Square pixels (Keep ratio)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Integer scale", IDM_VID_FS_INT + END + POPUP "E&GA/(S)VGA settings" + BEGIN + MENUITEM "&Inverted VGA monitor", IDM_VID_INVERT + POPUP "VGA screen &type" + BEGIN + MENUITEM "RGB &Color", IDM_VID_GRAY_RGB + MENUITEM "&RGB Grayscale", IDM_VID_GRAY_MONO + MENUITEM "&Amber monitor", IDM_VID_GRAY_AMBER + MENUITEM "&Green monitor", IDM_VID_GRAY_GREEN + MENUITEM "&White monitor", IDM_VID_GRAY_WHITE + END + POPUP "Grayscale &conversion type" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Average", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "CGA/PCjr/Tandy/E&GA/(S)VGA overscan", IDM_VID_OVERSCAN + MENUITEM "Change contrast for &monochrome display", IDM_VID_CGACON + END + MENUITEM "&Media", IDM_MEDIA + POPUP "&Tools" + BEGIN + MENUITEM "&Settings...", IDM_CONFIG + MENUITEM "&Update status bar icons", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Change dis&play language...", IDM_VID_PROG_SETT +# ifdef USE_DISCORD + MENUITEM SEPARATOR + MENUITEM "Enable &Discord integration", IDM_DISCORD +# endif + MENUITEM SEPARATOR + MENUITEM "Take s&creenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "Sound &gain...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Begin trace\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "End trace\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END +#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) + POPUP "&Logging" + BEGIN +# ifdef ENABLE_BUSLOGIC_LOG + MENUITEM "Enable BusLogic logs\tCtrl+F4", IDM_LOG_BUSLOGIC +# endif +# ifdef ENABLE_CDROM_LOG + MENUITEM "Enable CD-ROM logs\tCtrl+F5", IDM_LOG_CDROM +# endif +# ifdef ENABLE_D86F_LOG + MENUITEM "Enable floppy (86F) logs\tCtrl+F6", IDM_LOG_D86F +# endif +# ifdef ENABLE_FDC_LOG + MENUITEM "Enable floppy controller logs\tCtrl+F7", IDM_LOG_FDC +# endif +# ifdef ENABLE_IDE_LOG + MENUITEM "Enable IDE logs\tCtrl+F8", IDM_LOG_IDE +# endif +# ifdef ENABLE_SERIAL_LOG + MENUITEM "Enable Serial Port logs\tCtrl+F3", IDM_LOG_SERIAL +# endif +# ifdef ENABLE_NIC_LOG + MENUITEM "Enable Network logs\tCtrl+F9", IDM_LOG_NIC +# endif +# ifdef ENABLE_LOG_COMMANDS +# ifdef ENABLE_LOG_TOGGLES + MENUITEM SEPARATOR +# endif +# ifdef ENABLE_LOG_BREAKPOINT + MENUITEM "&Log breakpoint\tCtrl+F10", IDM_LOG_BREAKPOINT +# endif +# ifdef ENABLE_VRAM_DUMP + MENUITEM "Dump &video RAM\tCtrl+F1", IDM_DUMP_VRAM +# endif +# endif + END +#endif + POPUP "&Help" + BEGIN + MENUITEM "&Documentation...", IDM_DOCS + MENUITEM "&About 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&New image...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Existing image...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Existing image (&Write-protected)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Record", IDM_CASSETTE_RECORD + MENUITEM "&Play", IDM_CASSETTE_PLAY + MENUITEM "&Rewind to the beginning", IDM_CASSETTE_REWIND + MENUITEM "&Fast forward to the end", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "E&ject", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Image...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "E&ject", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&New image...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Existing image...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Existing image (&Write-protected)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&xport to 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "E&ject", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Mute", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "E&mpty", IDM_CDROM_EMPTY + MENUITEM "&Reload previous image", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Image", IDM_CDROM_IMAGE + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&New image...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Existing image...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Existing image (&Write-protected)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&ject", IDM_ZIP_EJECT + MENUITEM "&Reload previous image", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&New image...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Existing image...", IDM_MO_IMAGE_EXISTING + MENUITEM "Existing image (&Write-protected)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&ject", IDM_MO_EJECT + MENUITEM "&Reload previous image", IDM_MO_RELOAD + END +END + +#if defined(DEV_BRANCH) && defined(USE_OPENGL) +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Target &framerate" + BEGIN + MENUITEM "&Sync with video", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 fps", IDM_VID_GL_FPS_25 + MENUITEM "&30 fps", IDM_VID_GL_FPS_30 + MENUITEM "&50 fps", IDM_VID_GL_FPS_50 + MENUITEM "&60 fps", IDM_VID_GL_FPS_60 + MENUITEM "&75 fps", IDM_VID_GL_FPS_75 + END + MENUITEM "&VSync", IDM_VID_GL_VSYNC + MENUITEM "&Select shader...", IDM_VID_GL_SHADER + MENUITEM "&Remove shader", IDM_VID_GL_NOSHADER +END +#endif + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PROG_SETT "Change Display Language" +#define STR_SND_GAIN "Sound Gain" +#define STR_NEW_FLOPPY "New Image" +#define STR_CONFIG "86Box Settings" +#define STR_SPECIFY_DIM "Specify Main Window Dimensions" + +#define STR_OK "OK" +#define STR_CANCEL "Cancel" +#define STR_GLOBAL "Save these settings as &global defaults" +#define STR_DEFAULT "&Default" +#define STR_LANGUAGE "Language:" + +#define STR_GAIN "Gain" + +#define STR_FILE_NAME "File name:" +#define STR_DISK_SIZE "Disk size:" +#define STR_RPM_MODE "RPM mode:" +#define STR_PROGRESS "Progress:" + +#define STR_WIDTH "Width:" +#define STR_HEIGHT "Height:" +#define STR_LOCK_TO_SIZE "Lock to this size" + +#define STR_MACHINE_TYPE "Machine type:" +#define STR_MACHINE "Machine:" +#define STR_CONFIGURE "Configure" +#define STR_CPU_TYPE "CPU type:" +#define STR_SPEED "Speed:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "Wait states:" +#define STR_MB "MB" +#define STR_MEMORY "Memory:" +#define STR_TIME_SYNC "Time synchronization" +#define STR_DISABLED "Disabled" +#define STR_ENABLED_LOCAL "Enabled (local time)" +#define STR_ENABLED_UTC "Enabled (UTC)" +#define STR_DYNAREC "Dynamic Recompiler" + +#define STR_VIDEO "Video:" +#define STR_VOODOO "Voodoo Graphics" + +#define STR_MOUSE "Mouse:" +#define STR_JOYSTICK "Joystick:" +#define STR_JOY1 "Joystick 1..." +#define STR_JOY2 "Joystick 2..." +#define STR_JOY3 "Joystick 3..." +#define STR_JOY4 "Joystick 4..." + +#define STR_SOUND "Sound card:" +#define STR_MIDI "MIDI Out Device:" +#define STR_MIDI_IN "MIDI In Device:" +#define STR_MPU401 "Standalone MPU-401" +#define STR_SSI "Innovation SSI-2001" +#define STR_CMS "CMS / Game Blaster" +#define STR_GUS "Gravis Ultrasound" +#define STR_FLOAT "Use FLOAT32 sound" + +#define STR_NET_TYPE "Network type:" +#define STR_PCAP "PCap device:" +#define STR_NET "Network adapter:" + +#define STR_LPT1 "LPT1 Device:" +#define STR_LPT2 "LPT2 Device:" +#define STR_LPT3 "LPT3 Device:" +#define STR_SERIAL1 "Serial port 1" +#define STR_SERIAL2 "Serial port 2" +#define STR_SERIAL3 "Serial port 3" +#define STR_SERIAL4 "Serial port 4" +#define STR_PARALLEL1 "Parallel port 1" +#define STR_PARALLEL2 "Parallel port 2" +#define STR_PARALLEL3 "Parallel port 3" + +#define STR_HDC "HD Controller:" +#define STR_FDC "FD Controller:" +#define STR_IDE_TER "Tertiary IDE Controller" +#define STR_IDE_QUA "Quaternary IDE Controller" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Controller 1:" +#define STR_SCSI_2 "Controller 2:" +#define STR_SCSI_3 "Controller 3:" +#define STR_SCSI_4 "Controller 4:" +#define STR_CASSETTE "Cassette" + +#define STR_HDD "Hard disks:" +#define STR_NEW "&New..." +#define STR_EXISTING "&Existing..." +#define STR_REMOVE "&Remove" +#define STR_BUS "Bus:" +#define STR_CHANNEL "Channel:" +#define STR_ID "ID:" + +#define STR_SPECIFY "&Specify..." +#define STR_SECTORS "Sectors:" +#define STR_HEADS "Heads:" +#define STR_CYLS "Cylinders:" +#define STR_SIZE_MB "Size (MB):" +#define STR_TYPE "Type:" +#define STR_IMG_FORMAT "Image Format:" +#define STR_BLOCK_SIZE "Block Size:" + +#define STR_FLOPPY_DRIVES "Floppy drives:" +#define STR_TURBO "Turbo timings" +#define STR_CHECKBPB "Check BPB" +#define STR_CDROM_DRIVES "CD-ROM drives:" + +#define STR_MO_DRIVES "MO drives:" +#define STR_ZIP_DRIVES "ZIP drives:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA RTC:" +#define STR_ISAMEM "ISA Memory Expansion" +#define STR_ISAMEM_1 "Card 1:" +#define STR_ISAMEM_2 "Card 2:" +#define STR_ISAMEM_3 "Card 3:" +#define STR_ISAMEM_4 "Card 4:" +#define STR_BUGGER "ISABugger device" +#define STR_POSTCARD "POST card" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Error" + IDS_2050 "Fatal error" + IDS_2051 "" + IDS_2052 "Press CTRL+ALT+PAGE DOWN to return to windowed mode." + IDS_2053 "Speed" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP images (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the ""roms"" directory." + IDS_2057 "(empty)" + IDS_2058 "ZIP images (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0All files (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "On" + IDS_2061 "Off" + IDS_2062 "All images (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Basic sector images (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Surface images (*.86F)\0*.86F\0" + IDS_2063 "Machine ""%hs"" is not available due to missing ROMs in the roms/machines directory. Switching to an available machine." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Video card ""%hs"" is not available due to missing ROMs in the roms/video directory. Switching to an available video card." + IDS_2065 "Machine" + IDS_2066 "Display" + IDS_2067 "Input devices" + IDS_2068 "Sound" + IDS_2069 "Network" + IDS_2070 "Ports (COM & LPT)" + IDS_2071 "Storage controllers" + IDS_2072 "Hard disks" + IDS_2073 "Floppy & CD-ROM drives" + IDS_2074 "Other removable devices" + IDS_2075 "Other peripherals" + IDS_2076 "Surface images (*.86F)\0*.86F\0" + IDS_2077 "Click to capture mouse" + IDS_2078 "Press F8+F12 to release mouse" + IDS_2079 "Press F8+F12 or middle button to release mouse" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2080 "Unable to initialize FluidSynth" + IDS_2081 "Bus" + IDS_2082 "File" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Check BPB" + IDS_2088 "KB" + IDS_2089 "Could not initialize the video renderer." + IDS_2090 "Default" + IDS_2091 "%i Wait state(s)" + IDS_2092 "Type" + IDS_2093 "Failed to set up PCap" + IDS_2094 "No PCap devices found" + IDS_2095 "Invalid PCap device" + IDS_2096 "Standard 2-button joystick(s)" + IDS_2097 "Standard 4-button joystick" + IDS_2098 "Standard 6-button joystick" + IDS_2099 "Standard 8-button joystick" + IDS_2100 "CH Flightstick Pro" + IDS_2101 "Microsoft SideWinder Pad" + IDS_2102 "Thrustmaster Flight Control System" + IDS_2103 "None" + IDS_2104 "Unable to load keyboard accelerators." + IDS_2105 "Unable to register raw input." + IDS_2106 "%u" + IDS_2107 "%u MB (CHS: %i, %i, %i)" + IDS_2108 "Floppy %i (%s): %ls" + IDS_2109 "All images (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Advanced sector images (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Basic sector images (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Flux images (*.FDI)\0*.FDI\0Surface images (*.86F;*.MFM)\0*.86F;*.MFM\0All files (*.*)\0*.*\0" + IDS_2110 "Unable to initialize FreeType" + IDS_2111 "Unable to initialize SDL, SDL2.dll is required" + IDS_2112 "Are you sure you want to hard reset the emulated machine?" + IDS_2113 "Are you sure you want to exit 86Box?" + IDS_2114 "Unable to initialize Ghostscript" + IDS_2115 "MO %i (%ls): %ls" + IDS_2116 "MO images (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2117 "Welcome to 86Box!" + IDS_2118 "Internal controller" + IDS_2119 "Exit" + IDS_2120 "No ROMs found" + IDS_2121 "Do you want to save the settings?" + IDS_2122 "This will hard reset the emulated machine." + IDS_2123 "Save" + IDS_2124 "About 86Box" + IDS_2125 "86Box v" EMU_VERSION + + IDS_2126 "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." + IDS_2127 "OK" + IDS_2128 "Hardware not available" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2129 "Make sure " LIB_NAME_PCAP " is installed and that you are on a " LIB_NAME_PCAP "-compatible network connection." + IDS_2130 "Invalid configuration" +#ifdef _WIN32 +#define LIB_NAME_FREETYPE "freetype.dll" +#else +#define LIB_NAME_FREETYPE "libfreetype" +#endif + IDS_2131 LIB_NAME_FREETYPE " is required for ESC/P printer emulation." +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2132 LIB_NAME_GS " is required for automatic conversion of PostScript files to PDF.\n\nAny documents sent to the generic PostScript printer will be saved as PostScript (.ps) files." +#ifdef _WIN32 +#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" +#else +#define LIB_NAME_FLUIDSYNTH "libfluidsynth" +#endif + IDS_2133 LIB_NAME_FLUIDSYNTH " is required for FluidSynth MIDI output." + IDS_2134 "Entering fullscreen mode" + IDS_2135 "Don't show this message again" + IDS_2136 "Don't exit" + IDS_2137 "Reset" + IDS_2138 "Don't reset" + IDS_2139 "MO images (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2140 "CD-ROM images (*.ISO;*.CUE)\0*.ISO;*.CUE\0All files (*.*)\0*.*\0" + IDS_2141 "%hs Device Configuration" + IDS_2142 "Monitor in sleep mode" + IDS_2143 "OpenGL Shaders (*.GLSL)\0*.GLSL\0All files (*.*)\0*.*\0" + IDS_2144 "OpenGL options" + IDS_2145 "You are loading an unsupported configuration" + IDS_2146 "CPU type filtering based on selected machine is disabled for this emulated machine.\n\nThis makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n\nEnabling this setting is not officially supported and any bug reports filed may be closed as invalid." + IDS_2147 "Continue" + IDS_2148 "Cassette: %s" + IDS_2149 "Cassette images (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0All files (*.*)\0*.*\0" + IDS_2150 "Cartridge %i: %ls" + IDS_2151 "Cartridge images (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0All files (*.*)\0*.*\0" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Hard disk (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLL or ESDI CD-ROM drives never existed" + IDS_4100 "Custom..." + IDS_4101 "Custom (large)..." + IDS_4102 "Add New Hard Disk" + IDS_4103 "Add Existing Hard Disk" + IDS_4104 "HDI disk images cannot be larger than 4 GB." + IDS_4105 "Disk images cannot be larger than 127 GB." + IDS_4106 "Hard disk images (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0All files (*.*)\0*.*\0" + IDS_4107 "Unable to read file" + IDS_4108 "Unable to write file" + IDS_4109 "HDI or HDX images with a sector size other than 512 are not supported." + IDS_4110 "USB is not yet supported" + IDS_4111 "Disk image file already exists" + IDS_4112 "Please specify a valid file name." + IDS_4113 "Disk image created" + IDS_4114 "Make sure the file exists and is readable." + IDS_4115 "Make sure the file is being saved to a writable directory." + IDS_4116 "Disk image too large" + IDS_4117 "Remember to partition and format the newly-created drive." + IDS_4118 "The selected file will be overwritten. Are you sure you want to use it?" + IDS_4119 "Unsupported disk image" + IDS_4120 "Overwrite" + IDS_4121 "Don't overwrite" + IDS_4122 "Raw image (.img)" + IDS_4123 "HDI image (.hdi)" + IDS_4124 "HDX image (.hdx)" + IDS_4125 "Fixed-size VHD (.vhd)" + IDS_4126 "Dynamic-size VHD (.vhd)" + IDS_4127 "Differencing VHD (.vhd)" + IDS_4128 "Large blocks (2 MB)" + IDS_4129 "Small blocks (512 KB)" + IDS_4130 "VHD files (*.VHD)\0*.VHD\0All files (*.*)\0*.*\0" + IDS_4131 "Select the parent VHD" + IDS_4132 "This could mean that the parent image was modified after the differencing image was created.\n\nIt can also happen if the image files were moved or copied, or by a bug in the program that created this disk.\n\nDo you want to fix the timestamps?" + IDS_4133 "Parent and child disk timestamps do not match" + IDS_4134 "Could not fix VHD timestamp." + IDS_4135 "%01i:%02i" + + IDS_4352 "MFM/RLL" + IDS_4353 "XTA" + IDS_4354 "ESDI" + IDS_4355 "IDE" + IDS_4356 "ATAPI" + IDS_4357 "SCSI" + + IDS_4608 "MFM/RLL (%01i:%01i)" + IDS_4609 "XTA (%01i:%01i)" + IDS_4610 "ESDI (%01i:%01i)" + IDS_4611 "IDE (%01i:%01i)" + IDS_4612 "ATAPI (%01i:%01i)" + IDS_4613 "SCSI (%01i:%02i)" + + IDS_5120 "CD-ROM %i (%s): %s" + + IDS_5376 "Disabled" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Disabled" + IDS_5637 "ATAPI (%01i:%01i)" + IDS_5638 "SCSI (%01i:%02i)" + + IDS_5888 "160 kB" + IDS_5889 "180 kB" + IDS_5890 "320 kB" + IDS_5891 "360 kB" + IDS_5892 "640 kB" + IDS_5893 "720 kB" + IDS_5894 "1.2 MB" + IDS_5895 "1.25 MB" + IDS_5896 "1.44 MB" + IDS_5897 "DMF (cluster 1024)" + IDS_5898 "DMF (cluster 2048)" + IDS_5899 "2.88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128Mb M.O. (ISO 10090)" + IDS_5903 "3.5"" 230Mb M.O. (ISO 13963)" + IDS_5904 "3.5"" 540Mb M.O. (ISO 15498)" + IDS_5905 "3.5"" 640Mb M.O. (ISO 15498)" + IDS_5906 "3.5"" 1.3Gb M.O. (GigaMO)" + IDS_5907 "3.5"" 2.3Gb M.O. (GigaMO 2)" + IDS_5908 "5.25"" 600Mb M.O." + IDS_5909 "5.25"" 650Mb M.O." + IDS_5910 "5.25"" 1Gb M.O." + IDS_5911 "5.25"" 1.3Gb M.O." + + IDS_6144 "Perfect RPM" + IDS_6145 "1%% below perfect RPM" + IDS_6146 "1.5%% below perfect RPM" + IDS_6147 "2%% below perfect RPM" + + IDS_7168 "(System Default)" +END +#define IDS_LANG_ENUS IDS_7168 + +// English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// From c3dc9c4b5b9f57f2dfcc08531f7ce76f35739b23 Mon Sep 17 00:00:00 2001 From: jvernet Date: Tue, 16 Nov 2021 19:05:58 +0100 Subject: [PATCH 19/61] Update fr-FR.rc --- src/win/languages/fr-FR.rc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index 443d0debc..1a092ee4e 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -1,8 +1,8 @@ //////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources +// EnglishFrench (U.S.) resources #ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +LANGUAGE LANG_FRENCJ, SUBLANG_ENGLISH_US #pragma code_page(65001) #endif //_WIN32 @@ -153,10 +153,10 @@ BEGIN # endif END #endif - POPUP "&Help" + POPUP "&Aide" BEGIN MENUITEM "&Documentation...", IDM_DOCS - MENUITEM "&About 86Box...", IDM_ABOUT + MENUITEM "&A Propos de 86Box...", IDM_ABOUT END END From 0aa6e9c8a64e8b65f546ed89673f538b4d303386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Tue, 16 Nov 2021 19:38:31 +0100 Subject: [PATCH 20/61] Finish the changeable iconset --- src/86box.c | 3 + src/config.c | 11 +++ src/include/86box/86box.h | 1 + src/include/86box/plat.h | 5 ++ src/include/86box/resource.h | 2 + src/include/86box/win.h | 4 -- src/unix/unix.c | 25 +++++++ src/win/languages/cs-CZ.rc | 1 + src/win/languages/de-DE.rc | 1 + src/win/languages/dialogs.rc | 14 ++-- src/win/languages/en-US.rc | 1 + src/win/languages/hr-HR.rc | 1 + src/win/languages/hu-HU.rc | 1 + src/win/languages/it-IT.rc | 1 + src/win/languages/pt-BR.rc | 1 + src/win/languages/pt-PT.rc | 1 + src/win/win_icon.c | 33 +++++---- src/win/win_lang.c | 125 +++++++++++++++++++++++++++++++++++ src/win/win_stbar.c | 2 +- src/win/win_ui.c | 2 +- 20 files changed, 210 insertions(+), 25 deletions(-) diff --git a/src/86box.c b/src/86box.c index 8f9338920..964e885bc 100644 --- a/src/86box.c +++ b/src/86box.c @@ -715,6 +715,9 @@ usage: if (lang_init) set_language(lang_init); + /* Load the desired iconset */ + plat_load_icon_set(); + /* All good! */ return(1); } diff --git a/src/config.c b/src/config.c index 57bdf5508..e302b0b48 100644 --- a/src/config.c +++ b/src/config.c @@ -573,6 +573,12 @@ load_general(void) lang_id = plat_language_code(p); } + p = config_get_string(cat, "iconset", NULL); + if (p != NULL) + strcpy(icon_set, p); + else + strcpy(icon_set, ""); + #if USE_DISCORD enable_discord = !!config_get_int(cat, "enable_discord", 0); #endif @@ -2230,6 +2236,11 @@ save_general(void) plat_language_code_r(lang_id, buffer, 511); config_set_string(cat, "language", buffer); } + + if (!strcmp(icon_set, "")) + config_delete_var(cat, "iconset"); + else + config_set_string(cat, "iconset", icon_set); #if USE_DISCORD if (enable_discord) diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h index c27f1d93e..f56757f38 100644 --- a/src/include/86box/86box.h +++ b/src/include/86box/86box.h @@ -97,6 +97,7 @@ extern int window_w, window_h, /* (C) window size and */ invert_display, /* (C) invert the display */ suppress_overscan; /* (C) suppress overscans */ extern uint32_t lang_id; /* (C) language code identifier */ +extern char icon_set[256]; /* (C) iconset identifier */ extern int scale; /* (C) screen scale factor */ extern int dpi_scale; /* (C) DPI scaling of the emulated screen */ extern int vid_api; /* (C) video renderer */ diff --git a/src/include/86box/plat.h b/src/include/86box/plat.h index ca116a684..8d0d4c4ef 100644 --- a/src/include/86box/plat.h +++ b/src/include/86box/plat.h @@ -125,6 +125,11 @@ extern void plat_vid_reload_options(void); extern uint32_t plat_language_code(char* langcode); extern void plat_language_code_r(uint32_t lcid, char* outbuf, int len); +extern void plat_clear_icon_set(); +extern void plat_system_icon_set(); +extern void plat_load_icon_set(); +extern void plat_get_icons_path(char* path_root); + /* Resource management. */ extern void set_language(uint32_t id); extern wchar_t *plat_get_string(int id); diff --git a/src/include/86box/resource.h b/src/include/86box/resource.h index 2a13b01f1..d05409e0d 100644 --- a/src/include/86box/resource.h +++ b/src/include/86box/resource.h @@ -265,8 +265,10 @@ #define IDC_COMBO_RPM_MODE 1202 #define IDC_COMBO_LANG 1009 /* change language dialog */ +#define IDC_COMBO_ICON 1010 #define IDC_CHECKBOX_GLOBAL 1300 #define IDC_BUTTON_DEFAULT 1302 +#define IDC_BUTTON_DEFICON 1304 /* For the DeviceConfig code, re-do later. */ #define IDC_CONFIG_BASE 1300 diff --git a/src/include/86box/win.h b/src/include/86box/win.h index f4d592756..3a287a11b 100644 --- a/src/include/86box/win.h +++ b/src/include/86box/win.h @@ -149,10 +149,6 @@ extern int win_get_system_metrics(int i, int dpi); extern LPARAM win_get_string(int id); -extern void win_clear_icon_set(); -extern void win_system_icon_set(HINSTANCE hInst); -extern void win_load_icon_set(HINSTANCE hInst); - extern intptr_t fdd_type_to_icon(int type); #ifdef EMU_DEVICE_H diff --git a/src/unix/unix.c b/src/unix/unix.c index ae786f8ad..0c4696d56 100644 --- a/src/unix/unix.c +++ b/src/unix/unix.c @@ -51,6 +51,7 @@ SDL_threadID eventthread; static int exit_event = 0; static int fullscreen_pending = 0; uint32_t lang_id = 0x0409, lang_sys = 0x0409; // Multilangual UI variables, for now all set to LCID of en-US +char icon_set[256] = ""; /* name of the iconset to be used */ static const uint16_t sdl_to_xt[0x200] = { @@ -1244,6 +1245,30 @@ plat_language_code_r(uint32_t lcid, char* outbuf, int len) return; } +void +plat_clear_icon_set() +{ + return; +} + +void +plat_system_icon_set() +{ + return; +} + +void +plat_load_icon_set() +{ + return; +} + +void +plat_get_icons_path(char* path_root) +{ + return; +} + void joystick_init(void) {} void joystick_close(void) {} diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc index 24f41ba6a..60a234827 100644 --- a/src/win/languages/cs-CZ.rc +++ b/src/win/languages/cs-CZ.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Uložit toto nastavení jako &globální výchozí stav" #define STR_DEFAULT "&Výchozí" #define STR_LANGUAGE "Jazyk:" +#define STR_ICONSET "Sada ikon:" #define STR_GAIN "Zesílení" diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index ef737c2e3..3e50191a6 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Einstellungen als &globalen Standard speichern" #define STR_DEFAULT "&Standard" #define STR_LANGUAGE "Sprache:" +#define STR_ICONSET "Ikonensatz:" #define STR_GAIN "Verstärkung" diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc index 6645c462d..9862a5080 100644 --- a/src/win/languages/dialogs.rc +++ b/src/win/languages/dialogs.rc @@ -1,14 +1,17 @@ -DLG_PROG_SETT DIALOG DISCARDABLE 0, 0, 240, 86 +DLG_PROG_SETT DIALOG DISCARDABLE 0, 0, 240, 118 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION STR_PROG_SETT FONT 9, "Segoe UI" BEGIN - DEFPUSHBUTTON STR_OK, IDOK, 123, 65, 50, 14 - PUSHBUTTON STR_CANCEL, IDCANCEL, 179, 65, 50, 14 + DEFPUSHBUTTON STR_OK, IDOK, 123, 97, 50, 14 + PUSHBUTTON STR_CANCEL, IDCANCEL, 179, 97, 50, 14 COMBOBOX IDC_COMBO_LANG, 13, 18, 213, 22, CBS_DROPDOWNLIST | CBS_HASSTRINGS - AUTOCHECKBOX STR_GLOBAL, IDC_CHECKBOX_GLOBAL, 13, 50, 217, 8 , WS_DISABLED PUSHBUTTON STR_DEFAULT, IDC_BUTTON_DEFAULT, 162, 32, 60, 14 - LTEXT STR_LANGUAGE, 0, 13, 8, 34, 8 + COMBOBOX IDC_COMBO_ICON, 13, 50, 213, 22, CBS_DROPDOWNLIST | CBS_HASSTRINGS + PUSHBUTTON STR_DEFAULT, IDC_BUTTON_DEFICON, 162, 64, 60, 14 + AUTOCHECKBOX STR_GLOBAL, IDC_CHECKBOX_GLOBAL, 13, 82, 217, 8 , WS_DISABLED + LTEXT STR_LANGUAGE, 0, 13, 8, 100, 8 + LTEXT STR_ICONSET, 0, 13, 40, 100, 8 END DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 @@ -468,6 +471,7 @@ END #undef STR_GLOBAL #undef STR_DEFAULT #undef STR_LANGUAGE +#undef STR_ICONSET #undef STR_GAIN diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc index 443d0debc..2b3ad1e94 100644 --- a/src/win/languages/en-US.rc +++ b/src/win/languages/en-US.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Save these settings as &global defaults" #define STR_DEFAULT "&Default" #define STR_LANGUAGE "Language:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Gain" diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index e71a3b10b..699c353e8 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Spremite ove postavke kao &globalne zadane postavke" #define STR_DEFAULT "&Standard" #define STR_LANGUAGE "Jezik:" +#define STR_ICONSET "Skup ikona:" #define STR_GAIN "Pojačavanje" diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc index fdda601a6..569f3b616 100644 --- a/src/win/languages/hu-HU.rc +++ b/src/win/languages/hu-HU.rc @@ -287,6 +287,7 @@ END #define STR_GLOBAL "Beállítások mentése &globális alapértékként" #define STR_DEFAULT "&Alapértelmezett" #define STR_LANGUAGE "Nyelv:" +#define STR_ICONSET "Ikonkészlet:" #define STR_GAIN "Hangerő" diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc index b988a40c5..8feaeccf7 100644 --- a/src/win/languages/it-IT.rc +++ b/src/win/languages/it-IT.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Salva queste impostazioni come &predefinite globali" #define STR_DEFAULT "&Predefinito" #define STR_LANGUAGE "Lingua:" +#define STR_ICONSET "Set di Icone:" #define STR_GAIN "Guadagno" diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index 4e6b97981..a9024321b 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -285,6 +285,7 @@ END #define STR_GLOBAL "Usar estas configurações como &padrões globais" #define STR_DEFAULT "&Padrão" #define STR_LANGUAGE "Idioma:" +#define STR_ICONSET "Conjunto de ícones:" #define STR_GAIN "Ganho" diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index 8efc1aa29..aaeed8dc5 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Guardar estas definições como padrões &globais" #define STR_DEFAULT "&Padrão" #define STR_LANGUAGE "Idioma:" +#define STR_ICONSET "Conjunto de ícones:" #define STR_GAIN "Ganho" diff --git a/src/win/win_icon.c b/src/win/win_icon.c index 14ac454e6..345d028af 100644 --- a/src/win/win_icon.c +++ b/src/win/win_icon.c @@ -28,9 +28,9 @@ #include <86box/win.h> HICON hIcon[256]; /* icon data loaded from resources */ -char icon_set[256] = "winbox"; /* name of the iconset to be used */ +char icon_set[256] = ""; /* name of the iconset to be used */ -void win_clear_icon_set() +void plat_clear_icon_set() { int i; @@ -42,12 +42,12 @@ void win_clear_icon_set() } } -void win_system_icon_set(HINSTANCE hInst) +void plat_system_icon_set() { int i, x = win_get_system_metrics(SM_CXSMICON, dpi), y = win_get_system_metrics(SM_CYSMICON, dpi); for (i = 0; i < 256; i++) - hIcon[i] = LoadImage(hInst, MAKEINTRESOURCE(i), IMAGE_ICON, x, y, LR_DEFAULTCOLOR); + hIcon[i] = LoadImage(hinstance, MAKEINTRESOURCE(i), IMAGE_ICON, x, y, LR_DEFAULTCOLOR); } typedef struct @@ -103,17 +103,8 @@ const _ICON_DATA icon_files[] = {252, "storage_controllers.ico"} }; -void win_load_icon_set(HINSTANCE hInst) +void plat_get_icons_path(char* path_root) { - win_clear_icon_set(); - win_system_icon_set(hInst); - - if (strlen(icon_set) == 0) - return; - - char path_root[2048] = {0}, temp[2048] = {0}; - wchar_t wtemp[2048] = {0}; - char roms_root[1024] = {0}; if (rom_path[0]) strcpy(roms_root, rom_path); @@ -122,6 +113,20 @@ void win_load_icon_set(HINSTANCE hInst) plat_append_filename(path_root, roms_root, "icons"); plat_path_slash(path_root); +} + +void plat_load_icon_set() +{ + plat_clear_icon_set(); + plat_system_icon_set(); + + if (strlen(icon_set) == 0) + return; + + char path_root[2048] = {0}, temp[2048] = {0}; + wchar_t wtemp[2048] = {0}; + + plat_get_icons_path(path_root); strcat(path_root, icon_set); plat_path_slash(path_root); diff --git a/src/win/win_lang.c b/src/win/win_lang.c index 5f79e8c61..f67c6144f 100644 --- a/src/win/win_lang.c +++ b/src/win/win_lang.c @@ -36,6 +36,8 @@ /* Language */ static LCID temp_language; +static char temp_icon_set[256] = {0}; + int enum_helper, c; HWND hwndProgSett; @@ -76,6 +78,86 @@ progsett_fill_languages(HWND hdlg) SendMessage(lang_combo, CB_SETCURSEL, enum_helper, 0); } +/* Load available iconsets */ +static void +progsett_fill_iconsets(HWND hdlg) +{ + HWND icon_combo = GetDlgItem(hdlg, IDC_COMBO_ICON); + + /* Add the default one */ + wchar_t buffer[512] = L"("; + wcscat(buffer, plat_get_string(IDS_2090)); + wcscat(buffer, L")"); + + SendMessage(icon_combo, CB_RESETCONTENT, 0, 0); + SendMessage(icon_combo, CB_ADDSTRING, 0, (LPARAM)buffer); + SendMessage(icon_combo, CB_SETITEMDATA, 0, (LPARAM)strdup("")); + + int combo_index = -1; + + /* Find for extra ones */ + HANDLE hFind; + WIN32_FIND_DATA data; + + char icon_path_root[512]; + plat_get_icons_path(icon_path_root); + + wchar_t search[512]; + pclog("icon_path_root: %s\n", icon_path_root); + mbstowcs(search, icon_path_root, strlen(icon_path_root) + 1); + wcscat(search, L"*.*"); + pclog("search: %ls\n", search); + + hFind = FindFirstFile((LPCWSTR)search, &data); + + if (hFind != INVALID_HANDLE_VALUE) { + do { + if (wcscmp(data.cFileName, L".") && wcscmp(data.cFileName, L"..") && + (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) + { + wchar_t temp[512] = {0}, dispname[512] = {0}; + mbstowcs(temp, icon_path_root, strlen(icon_path_root) + 1); + wcscat(temp, data.cFileName); + wcscat(temp, L"\\iconinfo.txt"); + + pclog("temp: %ls\n", temp); + + wcscpy(dispname, data.cFileName); + FILE *fp = _wfopen(temp, L"r"); + if (fp) + { + char line[512]; + if (fgets(line, 511, fp)) + { + pclog("found! %s\n", line); + mbstowcs(dispname, line, strlen(line) + 1); + } + + fclose(fp); + } + + char filename[512]; + wcstombs(filename, data.cFileName, 511); + + int index = SendMessage(icon_combo, CB_ADDSTRING, 0, (LPARAM)dispname); + SendMessage(icon_combo, CB_SETITEMDATA, index, (LPARAM)(strdup(filename))); + + if (!strcmp(filename, icon_set)) + combo_index = index; + } + } while (FindNextFile(hFind, &data)); + FindClose(hFind); + } + + if (combo_index == -1) + { + combo_index = 0; + strcpy(temp_icon_set, ""); + } + + SendMessage(icon_combo, CB_SETCURSEL, combo_index, 0); +} + /* This returns 1 if any variable has changed, 0 if not. */ static int progsett_settings_changed(void) @@ -84,6 +166,7 @@ progsett_settings_changed(void) /* Language */ i = i || has_language_changed(temp_language); + i = i || strcmp(temp_icon_set, icon_set); return i; } @@ -107,6 +190,10 @@ progsett_settings_save(void) /* Language */ set_language(temp_language); + /* Iconset */ + strcpy(icon_set, temp_icon_set); + plat_load_icon_set(hinstance); + /* Update title bar */ update_mouse_msg(); @@ -131,7 +218,10 @@ ProgSettDlgProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) hwndProgSett = hdlg; /* Language */ temp_language = lang_id; + strcpy(temp_icon_set, icon_set); + pclog("temp_icon_set: %s\n", temp_icon_set); progsett_fill_languages(hdlg); + progsett_fill_iconsets(hdlg); break; case WM_COMMAND: @@ -154,6 +244,16 @@ ProgSettDlgProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) } break; + case IDC_COMBO_ICON: + if (HIWORD(wParam) == CBN_SELCHANGE) { + pclog("dosth\n"); + HWND combo = GetDlgItem(hdlg, IDC_COMBO_ICON); + int index = SendMessage(combo, CB_GETCURSEL, 0, 0); + strcpy(temp_icon_set, (char*)SendMessage(combo, CB_GETITEMDATA, index, 0)); + pclog("temp_icon_set: %s\n", temp_icon_set); + } + break; + case IDC_BUTTON_DEFAULT: { HWND combo = GetDlgItem(hdlg, IDC_COMBO_LANG); int index = progsett_indexof(combo, DEFAULT_LANGUAGE); @@ -161,10 +261,35 @@ ProgSettDlgProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) temp_language = DEFAULT_LANGUAGE; break; } + + case IDC_BUTTON_DEFICON: { + pclog("dosth\n"); + SendMessage(GetDlgItem(hdlg, IDC_COMBO_ICON), CB_SETCURSEL, 0, 0); + strcpy(temp_icon_set, ""); + pclog("temp_icon_set: %s\n", temp_icon_set); + break; + } default: break; } break; + + case WM_DESTROY: { + int i; + LRESULT temp; + HWND combo = GetDlgItem(hdlg, IDC_COMBO_ICON); + for (i = 0; i < SendMessage(combo, CB_GETCOUNT, 0, 0); i++) + { + temp = SendMessage(combo, CB_GETITEMDATA, i, 0); + if (temp) + { + free((void*)temp); + SendMessage(combo, CB_SETITEMDATA, i, 0); + } + } + } + break; + } return(FALSE); diff --git a/src/win/win_stbar.c b/src/win/win_stbar.c index df82d15e5..d8e079e14 100644 --- a/src/win/win_stbar.c +++ b/src/win/win_stbar.c @@ -877,7 +877,7 @@ StatusBarPopupMenu(HWND hwnd, POINT pt, int id) /* API: Load status bar icons */ void StatusBarLoadIcon(HINSTANCE hInst) { - win_load_icon_set(hInst); + plat_load_icon_set(hInst); } /* Handle messages for the Status Bar window. */ diff --git a/src/win/win_ui.c b/src/win/win_ui.c index ca089eabd..84bde8e64 100644 --- a/src/win/win_ui.c +++ b/src/win/win_ui.c @@ -1064,7 +1064,7 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) break; case WM_DESTROY: - win_clear_icon_set(); + plat_clear_icon_set(); KillTimer(hwnd, TIMER_1SEC); PostQuitMessage(0); break; From 05f4596f49d5030693090a0a8310a5238b87e94c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Tue, 16 Nov 2021 19:39:48 +0100 Subject: [PATCH 21/61] Final cleanup --- src/win/win_lang.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/win/win_lang.c b/src/win/win_lang.c index f67c6144f..fb2bc46b5 100644 --- a/src/win/win_lang.c +++ b/src/win/win_lang.c @@ -103,10 +103,8 @@ progsett_fill_iconsets(HWND hdlg) plat_get_icons_path(icon_path_root); wchar_t search[512]; - pclog("icon_path_root: %s\n", icon_path_root); mbstowcs(search, icon_path_root, strlen(icon_path_root) + 1); wcscat(search, L"*.*"); - pclog("search: %ls\n", search); hFind = FindFirstFile((LPCWSTR)search, &data); @@ -119,9 +117,7 @@ progsett_fill_iconsets(HWND hdlg) mbstowcs(temp, icon_path_root, strlen(icon_path_root) + 1); wcscat(temp, data.cFileName); wcscat(temp, L"\\iconinfo.txt"); - - pclog("temp: %ls\n", temp); - + wcscpy(dispname, data.cFileName); FILE *fp = _wfopen(temp, L"r"); if (fp) @@ -129,7 +125,6 @@ progsett_fill_iconsets(HWND hdlg) char line[512]; if (fgets(line, 511, fp)) { - pclog("found! %s\n", line); mbstowcs(dispname, line, strlen(line) + 1); } @@ -219,7 +214,6 @@ ProgSettDlgProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) /* Language */ temp_language = lang_id; strcpy(temp_icon_set, icon_set); - pclog("temp_icon_set: %s\n", temp_icon_set); progsett_fill_languages(hdlg); progsett_fill_iconsets(hdlg); break; @@ -246,11 +240,9 @@ ProgSettDlgProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) case IDC_COMBO_ICON: if (HIWORD(wParam) == CBN_SELCHANGE) { - pclog("dosth\n"); HWND combo = GetDlgItem(hdlg, IDC_COMBO_ICON); int index = SendMessage(combo, CB_GETCURSEL, 0, 0); strcpy(temp_icon_set, (char*)SendMessage(combo, CB_GETITEMDATA, index, 0)); - pclog("temp_icon_set: %s\n", temp_icon_set); } break; @@ -263,10 +255,8 @@ ProgSettDlgProcedure(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) } case IDC_BUTTON_DEFICON: { - pclog("dosth\n"); SendMessage(GetDlgItem(hdlg, IDC_COMBO_ICON), CB_SETCURSEL, 0, 0); strcpy(temp_icon_set, ""); - pclog("temp_icon_set: %s\n", temp_icon_set); break; } default: From 8e44c8dc21ef4648d505fc7afd78d967c7eefed2 Mon Sep 17 00:00:00 2001 From: jvernet Date: Tue, 16 Nov 2021 20:02:11 +0100 Subject: [PATCH 22/61] Update fr-FR --- src/win/86Box.rc | 2 ++ src/win/languages/fr-FR.rc | 58 +++++++++++++++++++------------------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/src/win/86Box.rc b/src/win/86Box.rc index aa5048877..a19fc04dc 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -368,3 +368,5 @@ END #include "languages/it-IT.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" +#include "languages/fr-FR.rc" + diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index 1a092ee4e..3dd097959 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -2,7 +2,7 @@ // EnglishFrench (U.S.) resources #ifdef _WIN32 -LANGUAGE LANG_FRENCJ, SUBLANG_ENGLISH_US +LANGUAGE LANG_FRENCH, SUBLANG_ENGLISH_US #pragma code_page(65001) #endif //_WIN32 @@ -27,19 +27,19 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Pause", IDM_ACTION_PAUSE MENUITEM SEPARATOR - MENUITEM "E&xit...", IDM_ACTION_EXIT + MENUITEM "&Quitter...", IDM_ACTION_EXIT END - POPUP "&View" + POPUP "&Vue" BEGIN - MENUITEM "&Hide status bar", IDM_VID_HIDE_STATUS_BAR + MENUITEM "&Masquer la barre de status", IDM_VID_HIDE_STATUS_BAR MENUITEM SEPARATOR - MENUITEM "&Resizeable window", IDM_VID_RESIZE - MENUITEM "R&emember size && position", IDM_VID_REMEMBER + MENUITEM "Fenètre &Retaillable", IDM_VID_RESIZE + MENUITEM "S&auvegarder taille && position", IDM_VID_REMEMBER MENUITEM SEPARATOR POPUP "Re&nderer" BEGIN - MENUITEM "&SDL (Software)", IDM_VID_SDL_SW - MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "&SDL (Logiciel)", IDM_VID_SDL_SW + MENUITEM "SDL (&Materiel)", IDM_VID_SDL_HW MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL #if defined(DEV_BRANCH) && defined(USE_OPENGL) MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE @@ -50,23 +50,23 @@ BEGIN END MENUITEM SEPARATOR MENUITEM "Specify dimensions...", IDM_VID_SPECIFY_DIM - MENUITEM "F&orce 4:3 display ratio", IDM_VID_FORCE43 - POPUP "&Window scale factor" + MENUITEM "F&orcer 4:3", IDM_VID_FORCE43 + POPUP "&Echelle factor" BEGIN MENUITEM "&0.5x", IDM_VID_SCALE_1X MENUITEM "&1x", IDM_VID_SCALE_2X MENUITEM "1.&5x", IDM_VID_SCALE_3X MENUITEM "&2x", IDM_VID_SCALE_4X END - POPUP "Filter method" + POPUP "Filtre method" BEGIN - MENUITEM "&Nearest", IDM_VID_FILTER_NEAREST - MENUITEM "&Linear", IDM_VID_FILTER_LINEAR + MENUITEM "& Date: Tue, 16 Nov 2021 22:02:17 +0100 Subject: [PATCH 23/61] Small safety fix --- src/win/win_lang.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/win/win_lang.c b/src/win/win_lang.c index fb2bc46b5..229c81cb2 100644 --- a/src/win/win_lang.c +++ b/src/win/win_lang.c @@ -122,7 +122,7 @@ progsett_fill_iconsets(HWND hdlg) FILE *fp = _wfopen(temp, L"r"); if (fp) { - char line[512]; + char line[512] = {0}; if (fgets(line, 511, fp)) { mbstowcs(dispname, line, strlen(line) + 1); From 0b0f44be6f0f4be13e3a248ff976b6dd40fd569e Mon Sep 17 00:00:00 2001 From: startmenu <3387747+startmenu@users.noreply.github.com> Date: Wed, 17 Nov 2021 14:07:07 +0800 Subject: [PATCH 24/61] Add Simplified Chinese (zh-CN) translation (#1819) * Simplified Chinese translation * Update zh-CN.rc * Update zh-CN.rc * Update zh-CN.rc --- src/win/languages/zh-CN.rc | 640 +++++++++++++++++++++++++++++++++++++ 1 file changed, 640 insertions(+) create mode 100644 src/win/languages/zh-CN.rc diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc new file mode 100644 index 000000000..2682268cb --- /dev/null +++ b/src/win/languages/zh-CN.rc @@ -0,0 +1,640 @@ +//////////////////////////////////////////////////////////////////////////// +// Simplified Chinese resources + +#ifdef _WIN32 +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "操作(&A)" + BEGIN + MENUITEM "键盘需要捕捉(&K)", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "右CTRL作为左ALT(&R)", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "硬重置(&H)...", IDM_ACTION_HRESET + MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD + MENUITEM SEPARATOR + MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC + MENUITEM SEPARATOR + MENUITEM "暂停(&P)", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "退出(&x)...", IDM_ACTION_EXIT + END + POPUP "视图(&V)" + BEGIN + MENUITEM "隐藏状态栏(&H)", IDM_VID_HIDE_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "窗口可调整大小(&R)", IDM_VID_RESIZE + MENUITEM "记住窗口大小和未知(&e)", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "渲染器(&n)" + BEGIN + MENUITEM "&SDL (软件)", IDM_VID_SDL_SW + MENUITEM "SDL (硬件 &H)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL +#if defined(DEV_BRANCH) && defined(USE_OPENGL) + MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE +#endif +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "指定窗口大小...", IDM_VID_SPECIFY_DIM + MENUITEM "强制 4:3 显示比例(&o)", IDM_VID_FORCE43 + POPUP "窗口缩放比例(&W)" + BEGIN + MENUITEM "&0.5x", IDM_VID_SCALE_1X + MENUITEM "&1x", IDM_VID_SCALE_2X + MENUITEM "1.&5x", IDM_VID_SCALE_3X + MENUITEM "&2x", IDM_VID_SCALE_4X + END + POPUP "过滤方式" + BEGIN + MENUITEM "邻近(&N)", IDM_VID_FILTER_NEAREST + MENUITEM "线性(&L)", IDM_VID_FILTER_LINEAR + END + MENUITEM "Hi&DPI 缩放", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "全屏(&F)\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + POPUP "全屏拉伸模式(&s)" + BEGIN + MENUITEM "全屏拉伸(&F)", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "保持比例(&S)", IDM_VID_FS_KEEPRATIO + MENUITEM "整数倍放大&I", IDM_VID_FS_INT + END + POPUP "E&GA/(S)VGA 设置" + BEGIN + MENUITEM "反转 VGA 显示器(&I)", IDM_VID_INVERT + POPUP "VGA 屏幕类型(&t)" + BEGIN + MENUITEM "RGB 彩色(&C)", IDM_VID_GRAY_RGB + MENUITEM "RGB 灰度(&R)", IDM_VID_GRAY_MONO + MENUITEM "琥珀色单色显示器(&A)", IDM_VID_GRAY_AMBER + MENUITEM "绿色单色显示器(&G)", IDM_VID_GRAY_GREEN + MENUITEM "白色单色显示器(&W)", IDM_VID_GRAY_WHITE + END + POPUP "灰度转换类型(&c)" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "平均(&A)", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "CGA/PCjr/Tandy/EGA/(S)VGA 过扫描(&G)", IDM_VID_OVERSCAN + MENUITEM "更改灰度显示器对比度(&m)", IDM_VID_CGACON + END + MENUITEM "介质(&M)", IDM_MEDIA + POPUP "工具(&T)" + BEGIN + MENUITEM "设置(&S)...", IDM_CONFIG + MENUITEM "更新状态栏图标(&U)", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "更改显示语言(&p)...", IDM_VID_PROG_SETT +# ifdef USE_DISCORD + MENUITEM SEPARATOR + MENUITEM "启用 Discord 集成(&D)", IDM_DISCORD +# endif + MENUITEM SEPARATOR + MENUITEM "截图(&c)\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "音量增益(&g)...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "开始追踪\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "结束追踪\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END +#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) + POPUP "记录日志(&L)" + BEGIN +# ifdef ENABLE_BUSLOGIC_LOG + MENUITEM "启用 总线Logic 日志\tCtrl+F4", IDM_LOG_BUSLOGIC +# endif +# ifdef ENABLE_CDROM_LOG + MENUITEM "启用 CD-ROM 日志\tCtrl+F5", IDM_LOG_CDROM +# endif +# ifdef ENABLE_D86F_LOG + MENUITEM "启用 软盘(86F) 日志\tCtrl+F6", IDM_LOG_D86F +# endif +# ifdef ENABLE_FDC_LOG + MENUITEM "启用软驱控制器日志\tCtrl+F7", IDM_LOG_FDC +# endif +# ifdef ENABLE_IDE_LOG + MENUITEM "启用 IDE 日志\tCtrl+F8", IDM_LOG_IDE +# endif +# ifdef ENABLE_SERIAL_LOG + MENUITEM "启用串口日志\tCtrl+F3", IDM_LOG_SERIAL +# endif +# ifdef ENABLE_NIC_LOG + MENUITEM "启用网络日志\tCtrl+F9", IDM_LOG_NIC +# endif +# ifdef ENABLE_LOG_COMMANDS +# ifdef ENABLE_LOG_TOGGLES + MENUITEM SEPARATOR +# endif +# ifdef ENABLE_LOG_BREAKPOINT + MENUITEM "日志断点(&L)\tCtrl+F10", IDM_LOG_BREAKPOINT +# endif +# ifdef ENABLE_VRAM_DUMP + MENUITEM "创建显示内存转储(&v)\tCtrl+F1", IDM_DUMP_VRAM +# endif +# endif + END +#endif + POPUP "帮助(&H)" + BEGIN + MENUITEM "文档(&D)...", IDM_DOCS + MENUITEM "关于(&A)...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "新建镜像(&N)...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "打开已存在的镜像(&E)...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "写保护打开已存在的镜像(&W)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "录制(&R)", IDM_CASSETTE_RECORD + MENUITEM "播放(&P)", IDM_CASSETTE_PLAY + MENUITEM "倒带至起点(&R)", IDM_CASSETTE_REWIND + MENUITEM "快进至终点(&F)", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "弹出(&j)", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "镜像(&I)...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "弹出(&j)", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "新建镜像(&N)...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "打开已存在的镜像(&E)...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "写保护打开已存在的镜像(&W)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "导出为86F格式(&x)...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "弹出(&j)", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "静音(&M)", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "空置驱动器(&m)", IDM_CDROM_EMPTY + MENUITEM "载入上一个镜像(&R)", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "镜像(&I)", IDM_CDROM_IMAGE + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "新建镜像(&N)...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "打开已存在的镜像(&E)...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "写保护打开已存在的镜像(&W)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "弹出(&j)", IDM_ZIP_EJECT + MENUITEM "载入上一个镜像(&R)", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "新建镜像(&N)...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "打开已存在的镜像(&E)...", IDM_MO_IMAGE_EXISTING + MENUITEM "写保护打开已存在的镜像(&W)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "弹出(&j)", IDM_MO_EJECT + MENUITEM "载入上一个镜像(&R)", IDM_MO_RELOAD + END +END + +#if defined(DEV_BRANCH) && defined(USE_OPENGL) +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "目标帧率(&f)" + BEGIN + MENUITEM "与视频同步(&S)", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 fps", IDM_VID_GL_FPS_25 + MENUITEM "&30 fps", IDM_VID_GL_FPS_30 + MENUITEM "&50 fps", IDM_VID_GL_FPS_50 + MENUITEM "&60 fps", IDM_VID_GL_FPS_60 + MENUITEM "&75 fps", IDM_VID_GL_FPS_75 + END + MENUITEM "VSync 垂直同步(&V)", IDM_VID_GL_VSYNC + MENUITEM "选择着色器(&S)...", IDM_VID_GL_SHADER + MENUITEM "移除着色器(&R)", IDM_VID_GL_NOSHADER +END +#endif + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PROG_SETT "更改显示语言" +#define STR_SND_GAIN "音量增益" +#define STR_NEW_FLOPPY "新建镜像" +#define STR_CONFIG "86Box 设置" +#define STR_SPECIFY_DIM "指定主窗口大小" + +#define STR_OK "确定" +#define STR_CANCEL "取消" +#define STR_GLOBAL "将以上设定存储为全局默认值(&g)" +#define STR_DEFAULT "默认(&D)" +#define STR_LANGUAGE "语言:" + +#define STR_GAIN "增益" + +#define STR_FILE_NAME "文件名:" +#define STR_DISK_SIZE "磁盘大小:" +#define STR_RPM_MODE "转速(RPM)模式:" +#define STR_PROGRESS "进度:" + +#define STR_WIDTH "宽度:" +#define STR_HEIGHT "高度:" +#define STR_LOCK_TO_SIZE "锁定此大小" + +#define STR_MACHINE_TYPE "机器种类:" +#define STR_MACHINE "机型:" +#define STR_CONFIGURE "配置" +#define STR_CPU_TYPE "CPU 类型:" +#define STR_SPEED "速度:" +#define STR_FPU "浮点处理器(FPU):" +#define STR_WAIT_STATES "等待状态(WS):" +#define STR_MB "MB" +#define STR_MEMORY "内存:" +#define STR_TIME_SYNC "时间同步" +#define STR_DISABLED "禁用" +#define STR_ENABLED_LOCAL "启用(本地时间)" +#define STR_ENABLED_UTC "启用(UTC)" +#define STR_DYNAREC "动态重编译器" + +#define STR_VIDEO "显卡:" +#define STR_VOODOO "Voodoo 显卡" + +#define STR_MOUSE "鼠标:" +#define STR_JOYSTICK "操纵杆:" +#define STR_JOY1 "操纵杆 1..." +#define STR_JOY2 "操纵杆 2..." +#define STR_JOY3 "操纵杆 3..." +#define STR_JOY4 "操纵杆 4..." + +#define STR_SOUND "声卡:" +#define STR_MIDI "MIDI 输出设备:" +#define STR_MIDI_IN "MIDI 输入设备:" +#define STR_MPU401 "独立 MPU-401" +#define STR_SSI "Innovation SSI-2001" +#define STR_CMS "CMS / Game Blaster" +#define STR_GUS "Gravis Ultrasound" +#define STR_FLOAT "使用 FLOAT32 音频" + +#define STR_NET_TYPE "网络类型:" +#define STR_PCAP "PCap 设备:" +#define STR_NET "网卡类型:" + +#define STR_LPT1 "LPT1 设备:" +#define STR_LPT2 "LPT2 设备:" +#define STR_LPT3 "LPT3 设备:" +#define STR_SERIAL1 "串口 1" +#define STR_SERIAL2 "串口 2" +#define STR_SERIAL3 "串口 3" +#define STR_SERIAL4 "串口 4" +#define STR_PARALLEL1 "并口 1" +#define STR_PARALLEL2 "并口 2" +#define STR_PARALLEL3 "并口 3" + +#define STR_HDC "硬盘控制器:" +#define STR_FDC "软驱控制器:" +#define STR_IDE_TER "第三 IDE 控制器" +#define STR_IDE_QUA "第四 IDE 控制器" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "控制器 1:" +#define STR_SCSI_2 "控制器 2:" +#define STR_SCSI_3 "控制器 3:" +#define STR_SCSI_4 "控制器 4:" +#define STR_CASSETTE "磁带" + +#define STR_HDD "硬盘:" +#define STR_NEW "新建(&N)..." +#define STR_EXISTING "已有镜像(&E)..." +#define STR_REMOVE "移除(&R)" +#define STR_BUS "总线:" +#define STR_CHANNEL "通道:" +#define STR_ID "ID:" + +#define STR_SPECIFY "指定(&S)..." +#define STR_SECTORS "扇区(S):" +#define STR_HEADS "磁头(H):" +#define STR_CYLS "柱面(C):" +#define STR_SIZE_MB "大小(MB):" +#define STR_TYPE "类型:" +#define STR_IMG_FORMAT "镜像格式:" +#define STR_BLOCK_SIZE "块大小:" + +#define STR_FLOPPY_DRIVES "软驱设备:" +#define STR_TURBO "加速时序" +#define STR_CHECKBPB "检查 BPB" +#define STR_CDROM_DRIVES "CD-ROM 设备:" + +#define STR_MO_DRIVES "MO 设备:" +#define STR_ZIP_DRIVES "ZIP 设备:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA RTC:" +#define STR_ISAMEM "ISA 内存扩充" +#define STR_ISAMEM_1 "扩展卡 1:" +#define STR_ISAMEM_2 "扩展卡 2:" +#define STR_ISAMEM_3 "扩展卡 3:" +#define STR_ISAMEM_4 "扩展卡 4:" +#define STR_BUGGER "ISABugger device" +#define STR_POSTCARD "自检卡(POST)" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "错误" + IDS_2050 "关键错误" + IDS_2051 "<保留>" + IDS_2052 "按 CTRL+ALT+PAGE DOWN 组合键返回窗口模式." + IDS_2053 "速度" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP 镜像 (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box 找不到支持的 ROM 镜像.\n\n请下载ROM包并解压到 ""roms"" 文件夹." + IDS_2057 "(空)" + IDS_2058 "ZIP 镜像 (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0所有文件 (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "开" + IDS_2061 "关" + IDS_2062 "所以镜像 (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0基本扇区镜像 (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0表面镜像 (*.86F)\0*.86F\0" + IDS_2063 "由于 roms/machines 文件夹中缺少合适的ROM, ""%hs"" 机型不可用. 将切换到其他可用机型." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "由于 roms/video 文件夹中缺少合适的ROM, ""%hs"" 机型不可用. 将切换到其他可用的显卡." + IDS_2065 "机型" + IDS_2066 "显示" + IDS_2067 "输入设备" + IDS_2068 "声音" + IDS_2069 "网络" + IDS_2070 "端口 (COM 与 LPT)" + IDS_2071 "存储控制器" + IDS_2072 "硬盘" + IDS_2073 "软驱和光驱" + IDS_2074 "其他可移动存储设备" + IDS_2075 "其他附件" + IDS_2076 "表面镜像 (*.86F)\0*.86F\0" + IDS_2077 "单击窗口捕捉鼠标" + IDS_2078 "按 F8+F12 释放鼠标" + IDS_2079 "按 F8+F12 或中键释放鼠标" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2080 "无法初始化 FluidSynth" + IDS_2081 "总线" + IDS_2082 "文件" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "检查 BPB" + IDS_2088 "KB" + IDS_2089 "无法初始化视频渲染器." + IDS_2090 "默认" + IDS_2091 "%i 等待状态(WS)" + IDS_2092 "类型" + IDS_2093 "设置 PCap 失败" + IDS_2094 "未找到 PCap 设备" + IDS_2095 "无效 PCap 设备" + IDS_2096 "标准 2键操纵杆" + IDS_2097 "标准 4键操纵杆" + IDS_2098 "标准 6键操纵杆" + IDS_2099 "标准 8键操纵杆" + IDS_2100 "CH Flightstick Pro" + IDS_2101 "Microsoft SideWinder Pad" + IDS_2102 "Thrustmaster Flight Control System" + IDS_2103 "无" + IDS_2104 "无法加载键盘加速器." + IDS_2105 "无法注册原始(raw)输入." + IDS_2106 "%u" + IDS_2107 "%u MB (CHS: %i, %i, %i)" + IDS_2108 "软盘 %i (%s): %ls" + IDS_2109 "所有镜像 (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0高级扇区镜像 (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0基本扇区镜像 (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Flux images (*.FDI)\0*.FDI\0表面镜像 (*.86F;*.MFM)\0*.86F;*.MFM\0所有文件 (*.*)\0*.*\0" + IDS_2110 "无法初始化 FreeType" + IDS_2111 "无法初始化 SDL, 需要 SDL2.dll" + IDS_2112 "您确定要硬重置模拟器吗?" + IDS_2113 "您确定要退出 86Box 吗?" + IDS_2114 "无法初始化 Ghostscript" + IDS_2115 "MO %i (%ls): %ls" + IDS_2116 "MO 镜像 (*.IM?;*.MDI)\0*.IM?;*.MDI\0所有文件 (*.*)\0*.*\0" + IDS_2117 "欢迎使用 86Box!" + IDS_2118 "内部控制器" + IDS_2119 "退出" + IDS_2120 "未找到ROM" + IDS_2121 "您要保存设置吗?" + IDS_2122 "此操作将硬重置模拟器." + IDS_2123 "保存" + IDS_2124 "关于 86Box" + IDS_2125 "86Box v" EMU_VERSION + + IDS_2126 "一个旧计算机模拟器\n\n作者: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布. 详情见 LICENSE 文件." + IDS_2127 "确定" + IDS_2128 "硬件不可用" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2129 "请确认 " LIB_NAME_PCAP " 已安装且使用兼容 " LIB_NAME_PCAP " 的网络连接." + IDS_2130 "无效配置" +#ifdef _WIN32 +#define LIB_NAME_FREETYPE "freetype.dll" +#else +#define LIB_NAME_FREETYPE "libfreetype" +#endif + IDS_2131 "ESC/P 打印机模拟需要." LIB_NAME_FREETYPE +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2132 LIB_NAME_GS "是将 PostScript 文件转换为 PDF所需要的库.\n\n所有通用PostScript打印机打印的文件将被保存为 PostScript (.ps) 文件." +#ifdef _WIN32 +#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" +#else +#define LIB_NAME_FLUIDSYNTH "libfluidsynth" +#endif + IDS_2133 "FluidSynth MIDI 输出需要" LIB_NAME_FLUIDSYNTH + IDS_2134 "即将进入全屏模式" + IDS_2135 "请勿在显示此提示" + IDS_2136 "不退出" + IDS_2137 "重置" + IDS_2138 "不重置" + IDS_2139 "MO 镜像 (*.IM?;*.MDI)\0*.IM?;*.MDI\0所有文件 (*.*)\0*.*\0" + IDS_2140 "CD-ROM 镜像 (*.ISO;*.CUE)\0*.ISO;*.CUE\0所有文件 (*.*)\0*.*\0" + IDS_2141 "%hs 设备配置" + IDS_2142 "显示器处在睡眠状态" + IDS_2143 "OpenGL 着色器 (*.GLSL)\0*.GLSL\0所有文件 (*.*)\0*.*\0" + IDS_2144 "OpenGL 选项" + IDS_2145 "您正在载入一个不受支持的配置" + IDS_2146 "此模拟计算机禁用了基于选定计算机的 CPU 类型过滤. \n\n这使得选择与选定计算机不兼容的 CPU 成为可能. 但是, 您可能会遇到与机器 BIOS 或其他软件不兼容的问题. \n\n官方不支持启用此设置, 并且提交的任何错误报告可能会因无效而关闭." + IDS_2147 "继续" + IDS_2148 "磁带: %s" + IDS_2149 "磁带镜像 (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0所有文件 (*.*)\0*.*\0" + IDS_2150 "卡带 %i: %ls" + IDS_2151 "卡带镜像 (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0所有文件 (*.*)\0*.*\0" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "硬盘 (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "没有 MFM/RLL 或 ESDI CD-ROM 驱动器" + IDS_4100 "自定义..." + IDS_4101 "自定义 (large)..." + IDS_4102 "添加新硬盘" + IDS_4103 "添加已存在的硬盘" + IDS_4104 "HDI 磁盘镜像不能超过 4 GB." + IDS_4105 "磁盘镜像不能超过 127 GB." + IDS_4106 "硬盘镜像 (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0所有文件 (*.*)\0*.*\0" + IDS_4107 "无法读取文件" + IDS_4108 "无法写入文件" + IDS_4109 "不支持非 512 字节扇区的 HDI 或 HDX 镜像." + IDS_4110 "USB 目前还不支持" + IDS_4111 "磁盘镜像文件已存在" + IDS_4112 "请指定有效的文件名." + IDS_4113 "磁盘镜像创建完成" + IDS_4114 "请确定此文件已存在并可读取" + IDS_4115 "请确定此文件保存在可写的文件夹中." + IDS_4116 "磁盘镜像太大" + IDS_4117 "请记得为新创建的镜像分区并格式化." + IDS_4118 "选定的文件将被覆盖. 您确定继续使用此文件吗?" + IDS_4119 "不支持的磁盘镜像" + IDS_4120 "覆盖" + IDS_4121 "不覆盖" + IDS_4122 "原始镜像 (.img)" + IDS_4123 "HDI 镜像 (.hdi)" + IDS_4124 "HDX 镜像 (.hdx)" + IDS_4125 "固定大小 VHD (.vhd)" + IDS_4126 "动态大小 VHD (.vhd)" + IDS_4127 "差分 VHD (.vhd)" + IDS_4128 "大块 (2 MB)" + IDS_4129 "小块 (512 KB)" + IDS_4130 "VHD 文件 (*.VHD)\0*.VHD\0所有文件 (*.*)\0*.*\0" + IDS_4131 "选择父 VHD 文件" + IDS_4132 "这可能因为在创建差异镜像后修改了父映像. \n\n如果镜像文件被移动或复制, 或由于创建此磁盘的程序中的错误, 也可能发生这种情况. \n\n是否需要修复时间戳?" + IDS_4133 "父盘与子盘的时间戳不匹配." + IDS_4134 "无法固定 VHD 时间戳." + IDS_4135 "%01i:%02i" + + IDS_4352 "MFM/RLL" + IDS_4353 "XTA" + IDS_4354 "ESDI" + IDS_4355 "IDE" + IDS_4356 "ATAPI" + IDS_4357 "SCSI" + + IDS_4608 "MFM/RLL (%01i:%01i)" + IDS_4609 "XTA (%01i:%01i)" + IDS_4610 "ESDI (%01i:%01i)" + IDS_4611 "IDE (%01i:%01i)" + IDS_4612 "ATAPI (%01i:%01i)" + IDS_4613 "SCSI (%01i:%02i)" + + IDS_5120 "CD-ROM %i (%s): %s" + + IDS_5376 "禁用" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "禁用" + IDS_5637 "ATAPI (%01i:%01i)" + IDS_5638 "SCSI (%01i:%02i)" + + IDS_5888 "160 kB" + IDS_5889 "180 kB" + IDS_5890 "320 kB" + IDS_5891 "360 kB" + IDS_5892 "640 kB" + IDS_5893 "720 kB" + IDS_5894 "1.2 MB" + IDS_5895 "1.25 MB" + IDS_5896 "1.44 MB" + IDS_5897 "DMF (1024 簇)" + IDS_5898 "DMF (2048 簇)" + IDS_5899 "2.88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128Mb M.O. (ISO 10090)" + IDS_5903 "3.5"" 230Mb M.O. (ISO 13963)" + IDS_5904 "3.5"" 540Mb M.O. (ISO 15498)" + IDS_5905 "3.5"" 640Mb M.O. (ISO 15498)" + IDS_5906 "3.5"" 1.3Gb M.O. (GigaMO)" + IDS_5907 "3.5"" 2.3Gb M.O. (GigaMO 2)" + IDS_5908 "5.25"" 600Mb M.O." + IDS_5909 "5.25"" 650Mb M.O." + IDS_5910 "5.25"" 1Gb M.O." + IDS_5911 "5.25"" 1.3Gb M.O." + + IDS_6144 "完美转速(RPM)" + IDS_6145 "低于完美转速 1%%" + IDS_6146 "低于完美转速 1.5%%" + IDS_6147 "低于完美转速 2%%" + + IDS_7168 "(系统默认)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Simplified Chinese resources +///////////////////////////////////////////////////////////////////////////// From b0bd0339d30c31f7b5e53b815c9d855cb806d5f9 Mon Sep 17 00:00:00 2001 From: ts-korhonen Date: Tue, 16 Nov 2021 23:21:40 +0200 Subject: [PATCH 25/61] Added Finnish (fi-FI) translation --- src/win/86Box.rc | 1 + src/win/languages/dialogs.rc | 8 +- src/win/languages/fi-FI.rc | 640 +++++++++++++++++++++++++++++++++++ 3 files changed, 645 insertions(+), 4 deletions(-) create mode 100644 src/win/languages/fi-FI.rc diff --git a/src/win/86Box.rc b/src/win/86Box.rc index aa5048877..861cad563 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -368,3 +368,4 @@ END #include "languages/it-IT.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" +#include "languages/fi-FI.rc" diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc index 6645c462d..88ae8f54f 100644 --- a/src/win/languages/dialogs.rc +++ b/src/win/languages/dialogs.rc @@ -115,7 +115,7 @@ BEGIN BS_AUTORADIOBUTTON | WS_TABSTOP,14,175,84,10 #ifdef USE_DYNAREC CONTROL STR_DYNAREC,IDC_CHECK_DYNAREC,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,7,120,94,10 + BS_AUTOCHECKBOX | WS_TABSTOP,7,120,120,10 #endif END @@ -393,7 +393,7 @@ BEGIN LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,7,17,253,60 LTEXT STR_MO_DRIVES,IDT_1769,7,7,253,8 - COMBOBOX IDC_COMBO_MO_BUS,33,85,90,12,CBS_DROPDOWNLIST | + COMBOBOX IDC_COMBO_MO_BUS,33,85,80,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP LTEXT STR_BUS,IDT_1770,7,87,24,8 COMBOBOX IDC_COMBO_MO_ID,170,85,90,12,CBS_DROPDOWNLIST | @@ -410,9 +410,9 @@ BEGIN LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,7,137,253,60 LTEXT STR_ZIP_DRIVES,IDT_1759,7,127,253,8 - COMBOBOX IDC_COMBO_ZIP_BUS,23,205,90,12,CBS_DROPDOWNLIST | + COMBOBOX IDC_COMBO_ZIP_BUS,33,205,80,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT STR_BUS,IDT_1753,7,207,14,8 + LTEXT STR_BUS,IDT_1753,7,207,24,8 COMBOBOX IDC_COMBO_ZIP_ID,149,205,61,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP LTEXT STR_ID,IDT_1754,120,207,28,8 diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc new file mode 100644 index 000000000..7d152a588 --- /dev/null +++ b/src/win/languages/fi-FI.rc @@ -0,0 +1,640 @@ +//////////////////////////////////////////////////////////////////////////// +// Finnish resources + +#ifdef _WIN32 +LANGUAGE LANG_FINNISH, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Toiminto" + BEGIN + MENUITEM "&Vaadi näppäimistön kaappaus", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Oikea CTRL on vasen ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Uudelleenkäynnistys (kylmä)...", IDM_ACTION_HRESET + MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD + MENUITEM SEPARATOR + MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC + MENUITEM SEPARATOR + MENUITEM "&Tauko", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "&Poistu...", IDM_ACTION_EXIT + END + POPUP "&Näytä" + BEGIN + MENUITEM "&Piilota tilapalkki", IDM_VID_HIDE_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "&Salli koon muuttaminen", IDM_VID_RESIZE + MENUITEM "&Muista koko ja sijainti", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Renderöijä" + BEGIN + MENUITEM "&SDL (ohjelmistopohjainen)", IDM_VID_SDL_SW + MENUITEM "SDL (&laitteistokiihdytetty)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL +#if defined(DEV_BRANCH) && defined(USE_OPENGL) + MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE +#endif +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "&Määritä koko...", IDM_VID_SPECIFY_DIM + MENUITEM "Pakota 4:3 näyttösuhde", IDM_VID_FORCE43 + POPUP "&Ikkunan kokokerroin" + BEGIN + MENUITEM "&0.5x", IDM_VID_SCALE_1X + MENUITEM "&1x", IDM_VID_SCALE_2X + MENUITEM "1.&5x", IDM_VID_SCALE_3X + MENUITEM "&2x", IDM_VID_SCALE_4X + END + POPUP "&Suodatusmetodi" + BEGIN + MENUITEM "&Lähin naapuri", IDM_VID_FILTER_NEAREST + MENUITEM "Li&neaarinen interpolaatio", IDM_VID_FILTER_LINEAR + END + MENUITEM "&Suuri DPI-skaalaus", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Koko näytön tila\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + POPUP "Koko näytön &skaalaustila" + BEGIN + MENUITEM "&Venytä koko näyttöön", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Tasasivuiset kuvapisteet (säilytä kuvasuhde)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Kokonaislukuskaalaus", IDM_VID_FS_INT + END + POPUP "&EGA/(S)VGA asetukset" + BEGIN + MENUITEM "&VGA näyttö käänteisillä väreillä", IDM_VID_INVERT + POPUP "VGA näytön &tyyppi" + BEGIN + MENUITEM "RGB &värit", IDM_VID_GRAY_RGB + MENUITEM "&RGB harmaasävyinen", IDM_VID_GRAY_MONO + MENUITEM "&Meripihkanvärinen", IDM_VID_GRAY_AMBER + MENUITEM "V&ihreä", IDM_VID_GRAY_GREEN + MENUITEM "V&alkoinen", IDM_VID_GRAY_WHITE + END + POPUP "&Harmaasävymuunnoksen tyyppi" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Keskiarvo", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "CGA/PCjr/Tandy/E&GA/(S)VGA &yliskannaus", IDM_VID_OVERSCAN + MENUITEM "&Muuta harmaavärinäytön kontrastia", IDM_VID_CGACON + END + MENUITEM "&Media", IDM_MEDIA + POPUP "&Työkalut" + BEGIN + MENUITEM "&Asetukset...", IDM_CONFIG + MENUITEM "&Päivitä tilapalkin kuvakkeita", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "&Vaihda näyttökieltä...", IDM_VID_PROG_SETT +# ifdef USE_DISCORD + MENUITEM SEPARATOR + MENUITEM "Käytä &Discord integraatiota", IDM_DISCORD +# endif + MENUITEM SEPARATOR + MENUITEM "Ota &kuvakaappaus\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Äänen tulotaso...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Aloita jäljitys\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Lopeta jäljitys\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END +#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) + POPUP "&Lokitus" + BEGIN +# ifdef ENABLE_BUSLOGIC_LOG + MENUITEM "BusLogic-lokitus päällä\tCtrl+F4", IDM_LOG_BUSLOGIC +# endif +# ifdef ENABLE_CDROM_LOG + MENUITEM "CD-ROM-lokitus päällä\tCtrl+F5", IDM_LOG_CDROM +# endif +# ifdef ENABLE_D86F_LOG + MENUITEM "Levykelokitus (86F) päällä\tCtrl+F6", IDM_LOG_D86F +# endif +# ifdef ENABLE_FDC_LOG + MENUITEM "Levykekontrollerin lokitus päällä\tCtrl+F7", IDM_LOG_FDC +# endif +# ifdef ENABLE_IDE_LOG + MENUITEM "IDE-lokitus päällä\tCtrl+F8", IDM_LOG_IDE +# endif +# ifdef ENABLE_SERIAL_LOG + MENUITEM "Sarjaporttilokitus päällä\tCtrl+F3", IDM_LOG_SERIAL +# endif +# ifdef ENABLE_NIC_LOG + MENUITEM "Verkkolokitus päällä\tCtrl+F9", IDM_LOG_NIC +# endif +# ifdef ENABLE_LOG_COMMANDS +# ifdef ENABLE_LOG_TOGGLES + MENUITEM SEPARATOR +# endif +# ifdef ENABLE_LOG_BREAKPOINT + MENUITEM "&Kirjaa keskeytyskohdat\tCtrl+F10", IDM_LOG_BREAKPOINT +# endif +# ifdef ENABLE_VRAM_DUMP + MENUITEM "Tallenna &videomuistin vedos\tCtrl+F1", IDM_DUMP_VRAM +# endif +# endif + END +#endif + POPUP "&Ohje" + BEGIN + MENUITEM "&Dokumentaatio...", IDM_DOCS + MENUITEM "&Tietoja 86Box:sta...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Uusi kasettikuva...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Olemassaoleva kasettikuva...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Olemassaoleva kasettikuva (&kirjoitussuojattu)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Nauhoita", IDM_CASSETTE_RECORD + MENUITEM "&Toista", IDM_CASSETTE_PLAY + MENUITEM "Kelaa &alkuun", IDM_CASSETTE_REWIND + MENUITEM "Kelaa &loppuun", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "&Poista kasettipesästä", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&ROM-moduulikuva...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "&Irrota", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Uusi levykekuva...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Olemassaoleva levykekuva...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Olemassaoleva levykekuva (&kirjoitussuojattu)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Vie 86F-tiedostoon...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "&Poista asemasta", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Mykistä", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&Tyhjä", IDM_CDROM_EMPTY + MENUITEM "&Lataa edellinen levykuva uudelleen", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "L&evykuva", IDM_CDROM_IMAGE + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Uusi levykuva...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Olemassaoleva levykuva...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Olemassaoleva levykuva (&kirjoitussuojattu)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Poista asemasta", IDM_ZIP_EJECT + MENUITEM "&Lataa edellinen levykuva uudelleen", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Uusi levykuva...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Olemassaoleva levykuva...", IDM_MO_IMAGE_EXISTING + MENUITEM "Olemassaoleva levykuva (&kirjoitussuojattu)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Poista asemasta", IDM_MO_EJECT + MENUITEM "&Lataa edellinen levykuva uudelleen", IDM_MO_RELOAD + END +END + +#if defined(DEV_BRANCH) && defined(USE_OPENGL) +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "&Kuvataajuustavoite" + BEGIN + MENUITEM "&Synkronisoi videoon", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 ruutua/s", IDM_VID_GL_FPS_25 + MENUITEM "&30 ruutua/s", IDM_VID_GL_FPS_30 + MENUITEM "&50 ruutua/s", IDM_VID_GL_FPS_50 + MENUITEM "&60 ruutua/s", IDM_VID_GL_FPS_60 + MENUITEM "&75 ruutua/s", IDM_VID_GL_FPS_75 + END + MENUITEM "&VSync", IDM_VID_GL_VSYNC + MENUITEM "Valitse varjostin&ohjelma...", IDM_VID_GL_SHADER + MENUITEM "&Poista varjostinohjelma", IDM_VID_GL_NOSHADER +END +#endif + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PROG_SETT "Vaihda näyttökieltä" +#define STR_SND_GAIN "Äänen tulotaso" +#define STR_NEW_FLOPPY "Uusi levykuva" +#define STR_CONFIG "86Box Asetukset" +#define STR_SPECIFY_DIM "Määritä pääikkunan koko" + +#define STR_OK "OK" +#define STR_CANCEL "Peruuta" +#define STR_GLOBAL "Tallenna nämä asetukset &globaaleiksi oletuksiksi" +#define STR_DEFAULT "&Oletus" +#define STR_LANGUAGE "Kieli:" + +#define STR_GAIN "Taso" + +#define STR_FILE_NAME "Tiedostonimi:" +#define STR_DISK_SIZE "Levyn koko:" +#define STR_RPM_MODE "RPM tila:" +#define STR_PROGRESS "Edistyminen:" + +#define STR_WIDTH "Leveys:" +#define STR_HEIGHT "Korkeus:" +#define STR_LOCK_TO_SIZE "Lukitse tähän kokoon" + +#define STR_MACHINE_TYPE "Tietokoneen tyyppi:" +#define STR_MACHINE "Tietokone:" +#define STR_CONFIGURE "Määritys" +#define STR_CPU_TYPE "Suorittimen tyyppi:" +#define STR_SPEED "Nopeus:" +#define STR_FPU "Apusuoritin:" +#define STR_WAIT_STATES "Odotustilat:" +#define STR_MB "Mt" +#define STR_MEMORY "Muisti:" +#define STR_TIME_SYNC "Kellon synkronointi" +#define STR_DISABLED "Poistettu käytöstä" +#define STR_ENABLED_LOCAL "Käytössä (paikallinen)" +#define STR_ENABLED_UTC "Käytössä (UTC)" +#define STR_DYNAREC "Dynaaminen uudelleenkääntäjä" + +#define STR_VIDEO "Näytönohjain:" +#define STR_VOODOO "Voodoo-grafiikkasuoritin" + +#define STR_MOUSE "Hiiri:" +#define STR_JOYSTICK "Peliohjain:" +#define STR_JOY1 "Peliohjain 1..." +#define STR_JOY2 "Peliohjain 2..." +#define STR_JOY3 "Peliohjain 3..." +#define STR_JOY4 "Peliohjain 4..." + +#define STR_SOUND "Äänikortti:" +#define STR_MIDI "MIDI-ulostulo:" +#define STR_MIDI_IN "MIDI-sisääntulo:" +#define STR_MPU401 "Erillinen MPU-401" +#define STR_SSI "Innovation SSI-2001" +#define STR_CMS "CMS / Game Blaster" +#define STR_GUS "Gravis Ultrasound" +#define STR_FLOAT "Käytä FLOAT32-ääntä" + +#define STR_NET_TYPE "Verkon tyyppi:" +#define STR_PCAP "PCap-laite:" +#define STR_NET "Verkkokortti:" + +#define STR_LPT1 "LPT1-laite:" +#define STR_LPT2 "LPT2-laite:" +#define STR_LPT3 "LPT3-laite:" +#define STR_SERIAL1 "Sarjaportti 1" +#define STR_SERIAL2 "Sarjaportti 2" +#define STR_SERIAL3 "Sarjaportti 3" +#define STR_SERIAL4 "Sarjaportti 4" +#define STR_PARALLEL1 "Rinnakkaisportti 1" +#define STR_PARALLEL2 "Rinnakkaisportti 2" +#define STR_PARALLEL3 "Rinnakkaisportti 3" + +#define STR_HDC "Kiintolevyohjain:" +#define STR_FDC "Levykeohjain:" +#define STR_IDE_TER "Tertinäärinen IDE-ohjain" +#define STR_IDE_QUA "Kvaternaarinen IDE-ohjain" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Ohjain 1:" +#define STR_SCSI_2 "Ohjain 2:" +#define STR_SCSI_3 "Ohjain 3:" +#define STR_SCSI_4 "Ohjain 4:" +#define STR_CASSETTE "Kasettiasema" + +#define STR_HDD "Kiintolevyt:" +#define STR_NEW "&Uusi..." +#define STR_EXISTING "&Olemassaoleva..." +#define STR_REMOVE "&Poista" +#define STR_BUS "Väylä:" +#define STR_CHANNEL "Kanava:" +#define STR_ID "ID:" + +#define STR_SPECIFY "&Määritä..." +#define STR_SECTORS "Sektorit:" +#define STR_HEADS "Päät:" +#define STR_CYLS "Sylinterit:" +#define STR_SIZE_MB "Koko (Mt):" +#define STR_TYPE "Tyyppi:" +#define STR_IMG_FORMAT "Tiedostomuoto:" +#define STR_BLOCK_SIZE "Lohkon koko:" + +#define STR_FLOPPY_DRIVES "Levykeasemat:" +#define STR_TURBO "Turbo-ajoitukset" +#define STR_CHECKBPB "Tarkista BPB" +#define STR_CDROM_DRIVES "CD-ROM-asemat:" + +#define STR_MO_DRIVES "Magneettisoptiset asemat (MO):" +#define STR_ZIP_DRIVES "ZIP-asemat:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA-reaaliaikakello:" +#define STR_ISAMEM "ISA-muistilaajennus" +#define STR_ISAMEM_1 "Kortti 1:" +#define STR_ISAMEM_2 "Kortti 2:" +#define STR_ISAMEM_3 "Kortti 3:" +#define STR_ISAMEM_4 "Kortti 4:" +#define STR_BUGGER "ISABugger-laite" +#define STR_POSTCARD "POST-kortti" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Virhe" + IDS_2050 "Vakava virhe" + IDS_2051 "" + IDS_2052 "Paina CTRL+ALT+PAGE DOWN palataksesi ikkunoituun tilaan." + IDS_2053 "Nopeus" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP-levykuvat (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box ei löytänyt käyttökelpoisia ROM-tiedostoja.\n\Voit ladata ROM-paketin ja purkaa sen ""roms"" hakemistoon." + IDS_2057 "(tyhjä)" + IDS_2058 "ZIP-levykuvat (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Päällä" + IDS_2061 "Pois" + IDS_2062 "Kaikki levykuvat (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Perussektorilevykuvat (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Pintalevykuvat (*.86F)\0*.86F\0" + IDS_2063 "Konetta ""%hs"" ei voi käyttää puuttuvien ROM-tiedostojen vuoksi. Vaihdetaan käyttökelpoiseen koneeseen." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Näytönohjainta ""%hs"" ei voi käyttää puuttuvien ROM-tiedostojen vuoksi. Vaihdetaan käyttökelpoiseen näytönohjaimeen." + IDS_2065 "Tietokone" + IDS_2066 "Näyttö" + IDS_2067 "Syöttölaitteet" + IDS_2068 "Ääni" + IDS_2069 "Verkko" + IDS_2070 "Portit (COM & LPT)" + IDS_2071 "Tallennusohjaimet" + IDS_2072 "Kiintolevyt" + IDS_2073 "Levyke ja CD-ROM" + IDS_2074 "Muut tallennuslaitteet" + IDS_2075 "Muut oheislaitteet" + IDS_2076 "Pintalevykuvat (*.86F)\0*.86F\0" + IDS_2077 "Kaappaa hiiri klikkaamalla" + IDS_2078 "Paina F8+F12 vapauttaaksesi hiiren" + IDS_2079 "Paina F8+F12 tai keskipainiketta vapauttaaksesi hiiren" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2080 "FluidSynth:in alustus epäonnistui" + IDS_2081 "Väylä" + IDS_2082 "Tiedosto" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "Mt" + IDS_2087 "Tarkista BPB" + IDS_2088 "kt" + IDS_2089 "Video-renderöijän alustus epäonnistui" + IDS_2090 "Oletus" + IDS_2091 "%i odotustilaa" + IDS_2092 "Tyyppi" + IDS_2093 "PCap-asennus epäonnistui" + IDS_2094 "PCap-laitteita ei löytynyt" + IDS_2095 "Virheellinen PCap-laite" + IDS_2096 "Standardi 2-painikkeinen peliohjain/-ohjaimet" + IDS_2097 "Standardi 4-painikkeinen peliohjain" + IDS_2098 "Standardi 6-painikkeinen peliohjain" + IDS_2099 "Standardi 8-painikkeinen peliohjain" + IDS_2100 "CH Flightstick Pro" + IDS_2101 "Microsoft SideWinder Pad" + IDS_2102 "Thrustmaster Flight Control System" + IDS_2103 "Ei mikään" + IDS_2104 "Näppäinkiihdyttimien lataus epäonnistui" + IDS_2105 "Raakasyötteen rekisteröinti epäonnistui" + IDS_2106 "%u" + IDS_2107 "%u Mt (CHS: %i, %i, %i)" + IDS_2108 "Levyke %i (%s): %ls" + IDS_2109 "Kaikki levykuvat (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Kehittyneet sektorilevykuvat (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Perussektorilevykuvat (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Flux-levykuvat (*.FDI)\0*.FDI\0Pintalevykuvat (*.86F;*.MFM)\0*.86F;*.MFM\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2110 "FreeType:n alustus epäonnistui" + IDS_2111 "SDL:n alustus epäonnistui. Tarvitaan SDL2.dll" + IDS_2112 "Oletko varma, että haluat käynnistää emuloidun tietokoneen uudelleen?" + IDS_2113 "Haluatko varmasti sulkea 86Box:in?" + IDS_2114 "Ghostscript:in alustus epäonnistui" + IDS_2115 "MO %i (%ls): %ls" + IDS_2116 "MO-levykuvat (*.IM?;*.MDI)\0*.IM?;*.MDI\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2117 "Tervetuloa 86Box:iin!" + IDS_2118 "Sisäinen ohjain" + IDS_2119 "Poistu" + IDS_2120 "ROM-tiedostoja ei löytynyt" + IDS_2121 "Tallennetaanko asetukset?" + IDS_2122 "Tämä käynnistää emuloidun tietokoneen uudelleen." + IDS_2123 "Tallenna" + IDS_2124 "Tietoja 86Box:sta" + IDS_2125 "86Box v" EMU_VERSION + + IDS_2126 "Vanhojen tietokoneiden emulaattori\n\nTekijät: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho ja muut.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa." + IDS_2127 "OK" + IDS_2128 "Laitteisto ei ole saatavilla" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2129 "Varmista, että " LIB_NAME_PCAP " on asennettu ja että verkkoyhteytesi on " LIB_NAME_PCAP "-yhteensopiva." + IDS_2130 "Virheelliset määritykset" +#ifdef _WIN32 +#define LIB_NAME_FREETYPE "freetype.dll" +#else +#define LIB_NAME_FREETYPE "libfreetype" +#endif + IDS_2131 LIB_NAME_FREETYPE " vaaditaan ESC/P-tulostimen emuloimiseksi." +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2132 LIB_NAME_GS " vaaditaan PostScript-tiedostojen automaattiseen muuntamiseen PDF-tiedostoiksi.\n\nKaikki geneeriselle PostScript-tulostimelle lähetetyt asiakirjat tallennetaan PostScript (.ps) -tiedostoina." +#ifdef _WIN32 +#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" +#else +#define LIB_NAME_FLUIDSYNTH "libfluidsynth" +#endif + IDS_2133 LIB_NAME_FLUIDSYNTH " vaaditaan FluidSynth MIDI-ulostuloa varten." + IDS_2134 "Siirrytään koko näytön tilaan" + IDS_2135 "Älä näytä tätä viestiä uudelleen" + IDS_2136 "Älä poistu" + IDS_2137 "Käynnistä uudelleen" + IDS_2138 "Älä käynnistä uudelleen" + IDS_2139 "MO-levykuvat (*.IM?;*.MDI)\0*.IM?;*.MDI\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2140 "CD-ROM-levykuvat (*.ISO;*.CUE)\0*.ISO;*.CUE\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2141 "%hs - Laitteen määritykset" + IDS_2142 "Näyttö lepotilassa" + IDS_2143 "OpenGL-varjostinohjelmat (*.GLSL)\0*.GLSL\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2144 "OpenGL-asetukset" + IDS_2145 "Olet lataamassa ei-tuettuja määrittelyjä" + IDS_2146 "Valittuun tietokoneeseen perustuva suoritintyypin suodatus ei ole käytössä tällä emuloidulla koneella.\n\nTämä mahdollistaa muutoin yhteensopimattoman suorittimen valinnan kyseisen tietokoneen kanssa. Voit kuitenkin kohdata ongelmia tietokoneen BIOS:in tai muun ohjelmiston kanssa.\n\nTämän asetuksen käyttö ei ole virallisesti tuettua ja kaikki tehdyt virheraportit voidaan sulkea epäpätevinä." + IDS_2147 "Jatka" + IDS_2148 "Kasetti: %s" + IDS_2149 "Kasetti-tiedostot (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2150 "ROM-moduuli %i: %ls" + IDS_2151 "ROM-moduulikuvat (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Kaikki tiedostot (*.*)\0*.*\0" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Kiintolevy (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLL tai ESDI CD-ROM asemia ei ole koskaan ollut olemassa" + IDS_4100 "Mukautettu..." + IDS_4101 "Mukautettu (suuri)..." + IDS_4102 "Lisää uusi kiintolevy" + IDS_4103 "Lisää olemassaoleva kiintolevy" + IDS_4104 "HDI levykuvan suurin mahdollinen koko on 4 Gt." + IDS_4105 "Levykuvien suurin mahdollinen koko on 127 Gt." + IDS_4106 "Kiintolevykuvat (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_4107 "Tiedostoa ei voi lukea" + IDS_4108 "Tiedostoon ei voi kirjoittaa" + IDS_4109 "HDI- ja HDX-levykuvien ainoa tuettu sektorikoko on 512" + IDS_4110 "USB-tukea ei vielä ole" + IDS_4111 "Levykuva on jo olemassa" + IDS_4112 "Anna kelvollinen tiedostonimi." + IDS_4113 "Levykuva luotu" + IDS_4114 "Varmista, että tiedosto on olemassa ja lukukelpoinen" + IDS_4115 "Varmista, että tiedoston tallennuskansioon on kirjoitusoikeus" + IDS_4116 "Liian suuri levykuva" + IDS_4117 "Muista osioida ja alustaa juuri luomasi asema." + IDS_4118 "Valittu tiedosto ylikirjoitetaan. Oletko varma, että haluat käyttää sitä?" + IDS_4119 "Levynkuvaa ei tueta" + IDS_4120 "Ylikirjoita" + IDS_4121 "Älä ylikirjoita" + IDS_4122 "Raaka levykuva (.img)" + IDS_4123 "HDI-levykuva (.hdi)" + IDS_4124 "HDX-levykuva (.hdx)" + IDS_4125 "Kiinteä VHD (.vhd)" + IDS_4126 "Dynaaminen VHD (.vhd)" + IDS_4127 "Differentiaalinen VHD (.vhd)" + IDS_4128 "Suuret lohkot (2 Mt)" + IDS_4129 "Pienet lohkot (512 kt)" + IDS_4130 "VHD-tiedostot (*.VHD)\0*.VHD\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_4131 "Valitse ylätason VHD" + IDS_4132 "Tämä saattaa tarkoittaa, että ylätason levykuvaa on muokattu differentiaalisen levykuvan luonnin jälkeen.\n\nNäin voi käydä myös, jos levykuvatiedostoja on siirretty tai kopioitu. Lisäksi syynä voi olla levyn luoneessa sovelluksessa oleva ohjelmistovirhe.\n\nKorjataanko aikaleimat?" + IDS_4133 "Ylä- ja alatason levyjen aikaleimat eivät täsmää" + IDS_4134 "VHD aikaleimaa ei pystytty korjaamaan." + IDS_4135 "%01i:%02i" + + IDS_4352 "MFM/RLL" + IDS_4353 "XTA" + IDS_4354 "ESDI" + IDS_4355 "IDE" + IDS_4356 "ATAPI" + IDS_4357 "SCSI" + + IDS_4608 "MFM/RLL (%01i:%01i)" + IDS_4609 "XTA (%01i:%01i)" + IDS_4610 "ESDI (%01i:%01i)" + IDS_4611 "IDE (%01i:%01i)" + IDS_4612 "ATAPI (%01i:%01i)" + IDS_4613 "SCSI (%01i:%02i)" + + IDS_5120 "CD-ROM %i (%s): %s" + + IDS_5376 "Poistettu käytöstä" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Poistettu käytöstä" + IDS_5637 "ATAPI (%01i:%01i)" + IDS_5638 "SCSI (%01i:%02i)" + + IDS_5888 "160 kt" + IDS_5889 "180 kt" + IDS_5890 "320 kt" + IDS_5891 "360 kt" + IDS_5892 "640 kt" + IDS_5893 "720 kt" + IDS_5894 "1.2 Mt" + IDS_5895 "1.25 Mt" + IDS_5896 "1.44 Mt" + IDS_5897 "DMF (lohko 1024)" + IDS_5898 "DMF (lohko 2048)" + IDS_5899 "2.88 Mt" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128Mt M.O. (ISO 10090)" + IDS_5903 "3.5"" 230Mt M.O. (ISO 13963)" + IDS_5904 "3.5"" 540Mt M.O. (ISO 15498)" + IDS_5905 "3.5"" 640Mt M.O. (ISO 15498)" + IDS_5906 "3.5"" 1.3Gt M.O. (GigaMO)" + IDS_5907 "3.5"" 2.3Gt M.O. (GigaMO 2)" + IDS_5908 "5.25"" 600Mt M.O." + IDS_5909 "5.25"" 650Mt M.O." + IDS_5910 "5.25"" 1Gt M.O." + IDS_5911 "5.25"" 1.3Gt M.O." + + IDS_6144 "Täydellinen RPM" + IDS_6145 "1%% alle täydellisen RPM:n" + IDS_6146 "1.5%% alle täydellisen RPM:n" + IDS_6147 "2%% alle täydellisen RPM:n" + + IDS_7168 "(Järjestelmän oletus)" +END +#define IDS_LANG_ENUS IDS_7168 + +// English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// From 032fc514169aff91febb2f1018f539120151a09b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Hrdli=C4=8Dka?= Date: Wed, 17 Nov 2021 07:14:25 +0100 Subject: [PATCH 26/61] Add zh-CN to the main resource script --- src/win/86Box.rc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/win/86Box.rc b/src/win/86Box.rc index 861cad563..678993eb5 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -361,11 +361,12 @@ END #include "languages/cs-CZ.rc" -#include "languages/hr-HR.rc" -#include "languages/en-US.rc" #include "languages/de-DE.rc" +#include "languages/en-US.rc" +#include "languages/hr-HR.rc" +#include "languages/fi-FI.rc" #include "languages/hu-HU.rc" #include "languages/it-IT.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" -#include "languages/fi-FI.rc" +#include "languages/zh-CN.rc" From f935d9b1054cf3bc09be70c90824591b7cfa0ef2 Mon Sep 17 00:00:00 2001 From: "Andreas J. Reichel" Date: Wed, 17 Nov 2021 14:35:22 +0100 Subject: [PATCH 27/61] Unix: Make fullscreen command really toggle Help says that fullscreen TOGGLES fullscreen. Fix this. Signed-off-by: Andreas J. Reichel --- src/unix/unix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unix/unix.c b/src/unix/unix.c index ae786f8ad..3d20b3adf 100644 --- a/src/unix/unix.c +++ b/src/unix/unix.c @@ -833,7 +833,7 @@ void monitor_thread(void* param) } else if (strncasecmp(xargv[0], "fullscreen", 10) == 0) { - video_fullscreen = 1; + video_fullscreen = video_fullscreen ? 0 : 1; fullscreen_pending = 1; } else if (strncasecmp(xargv[0], "pause", 5) == 0) From b14e04b92609ffe9affc7e173d060d0f4e3ebcfd Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 17 Nov 2021 17:05:05 +0100 Subject: [PATCH 28/61] Mae the dialog font and font size redefinable and fixed ROMs path on Mac. --- src/86box.c | 4 ++++ src/win/languages/cs-CZ.rc | 3 +++ src/win/languages/de-DE.rc | 3 +++ src/win/languages/dialogs.rc | 37 +++++++++++++++++++----------------- src/win/languages/en-US.rc | 3 +++ src/win/languages/fi-FI.rc | 5 ++++- src/win/languages/hr-HR.rc | 3 +++ src/win/languages/hu-HU.rc | 3 +++ src/win/languages/it-IT.rc | 3 +++ src/win/languages/pt-BR.rc | 3 +++ src/win/languages/pt-PT.rc | 3 +++ src/win/languages/zh-CN.rc | 3 +++ 12 files changed, 55 insertions(+), 18 deletions(-) diff --git a/src/86box.c b/src/86box.c index 8f9338920..9db0ecdb8 100644 --- a/src/86box.c +++ b/src/86box.c @@ -583,9 +583,13 @@ usage: } if (vmrp && (path2[0] == '\0')) { +#ifdef __APPLE__ + strcpy(rom_path, "~/Library/Application Support/86Box/roms"); +#else strcpy(path2, usr_path); plat_path_slash(path2); strcat(path2, "roms"); +#endif plat_path_slash(path2); } diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc index 24f41ba6a..e07a91f2e 100644 --- a/src/win/languages/cs-CZ.rc +++ b/src/win/languages/cs-CZ.rc @@ -391,6 +391,9 @@ END #define STR_BUGGER "Zařízení ISABugger" #define STR_POSTCARD "Karta pro kódy POST" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index ef737c2e3..c8b9f13d0 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -391,6 +391,9 @@ END #define STR_BUGGER "ISABugger-Gerät" #define STR_POSTCARD "POST-Code-Karte" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc index 88ae8f54f..7b3de5fc5 100644 --- a/src/win/languages/dialogs.rc +++ b/src/win/languages/dialogs.rc @@ -1,7 +1,7 @@ DLG_PROG_SETT DIALOG DISCARDABLE 0, 0, 240, 86 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION STR_PROG_SETT -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN DEFPUSHBUTTON STR_OK, IDOK, 123, 65, 50, 14 PUSHBUTTON STR_CANCEL, IDCANCEL, 179, 65, 50, 14 @@ -14,7 +14,7 @@ END DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION STR_SND_GAIN -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN DEFPUSHBUTTON STR_OK,IDOK,57,7,50,14 PUSHBUTTON STR_CANCEL,IDCANCEL,57,24,50,14 @@ -26,7 +26,7 @@ END DLG_NEW_FLOPPY DIALOG DISCARDABLE 0, 0, 226, 86 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION STR_NEW_FLOPPY -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN DEFPUSHBUTTON STR_OK,IDOK,104,65,50,14 PUSHBUTTON STR_CANCEL,IDCANCEL,162,65,50,14 @@ -47,7 +47,7 @@ END DLG_CONFIG DIALOG DISCARDABLE 0, 0, 376, 256 STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION STR_CONFIG -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN DEFPUSHBUTTON STR_OK,IDOK,246,235,50,14 PUSHBUTTON STR_CANCEL,IDCANCEL,307,235,50,14 @@ -59,7 +59,7 @@ END DLG_SPECIFY_DIM DIALOG DISCARDABLE 0, 0, 175, 66 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION STR_SPECIFY_DIM -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN LTEXT STR_WIDTH,IDT_1709,7,9,24,12 EDITTEXT IDC_EDIT_WIDTH,33,7,45,12,ES_AUTOHSCROLL | ES_NUMBER @@ -79,7 +79,7 @@ END DLG_CFG_MACHINE DIALOG DISCARDABLE 107, 0, 305, 200 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN COMBOBOX IDC_COMBO_MACHINE_TYPE,71,7,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP @@ -121,7 +121,7 @@ END DLG_CFG_VIDEO DIALOG DISCARDABLE 107, 0, 267, 45 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN LTEXT STR_VIDEO,IDT_1707,7,9,48,10 COMBOBOX IDC_COMBO_VIDEO,64,7,155,120,CBS_DROPDOWNLIST | @@ -134,7 +134,7 @@ END DLG_CFG_INPUT DIALOG DISCARDABLE 107, 0, 267, 65 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN LTEXT STR_MOUSE,IDT_1709,7,9,57,10 COMBOBOX IDC_COMBO_MOUSE,71,7,140,120,CBS_DROPDOWNLIST | @@ -151,7 +151,7 @@ END DLG_CFG_SOUND DIALOG DISCARDABLE 107, 0, 267, 201 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN COMBOBOX IDC_COMBO_SOUND,71,7,140,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP @@ -190,7 +190,7 @@ END DLG_CFG_NETWORK DIALOG DISCARDABLE 107, 0, 267, 65 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN LTEXT STR_NET_TYPE,IDT_1714,7,9,59,10 COMBOBOX IDC_COMBO_NET_TYPE,71,7,189,120,CBS_DROPDOWNLIST | WS_VSCROLL | @@ -208,7 +208,7 @@ END DLG_CFG_PORTS DIALOG DISCARDABLE 107, 0, 267, 135 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN LTEXT STR_LPT1,IDT_1717,7,9,61,10 COMBOBOX IDC_COMBO_LPT1,71,7,189,120,CBS_DROPDOWNLIST | @@ -241,7 +241,7 @@ END DLG_CFG_STORAGE DIALOG DISCARDABLE 107, 0, 267, 203 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN LTEXT STR_HDC,IDT_1718,7,9,64,10 COMBOBOX IDC_COMBO_HDC,64,7,155,120,CBS_DROPDOWNLIST | @@ -285,7 +285,7 @@ END DLG_CFG_HARD_DISKS DIALOG DISCARDABLE 107, 0, 267, 154 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN CONTROL "List1",IDC_LIST_HARD_DISKS,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | @@ -310,7 +310,7 @@ END DLG_CFG_HARD_DISKS_ADD DIALOG DISCARDABLE 0, 0, 219, 149 STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Add Hard Disk" -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN DEFPUSHBUTTON STR_OK,IDOK,55,127,50,14 PUSHBUTTON STR_CANCEL,IDCANCEL,112,127,50,14 @@ -352,7 +352,7 @@ END DLG_CFG_FLOPPY_AND_CDROM_DRIVES DIALOG DISCARDABLE 107, 0, 267, 222 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN CONTROL "List1",IDC_LIST_FLOPPY_DRIVES,"SysListView32", LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | WS_BORDER | @@ -386,7 +386,7 @@ END DLG_CFG_OTHER_REMOVABLE_DEVICES DIALOG DISCARDABLE 107, 0, 267, 222 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN CONTROL "List1",IDC_LIST_MO_DRIVES,"SysListView32",LVS_REPORT | @@ -425,7 +425,7 @@ END DLG_CFG_PERIPHERALS DIALOG DISCARDABLE 107, 0, 267, 154 STYLE DS_CONTROL | WS_CHILD -FONT 9, "Segoe UI" +FONT FONT_SIZE, FONT_NAME BEGIN LTEXT STR_ISARTC,IDT_1767,7,9,48,10 COMBOBOX IDC_COMBO_ISARTC,64,7,155,120, @@ -574,3 +574,6 @@ END #undef STR_ISAMEM_4 #undef STR_BUGGER #undef STR_POSTCARD + +#undef FONT_SIZE +#undef FONT_NAME diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc index 443d0debc..5e9dc9103 100644 --- a/src/win/languages/en-US.rc +++ b/src/win/languages/en-US.rc @@ -391,6 +391,9 @@ END #define STR_BUGGER "ISABugger device" #define STR_POSTCARD "POST card" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc index 7d152a588..92e1187d5 100644 --- a/src/win/languages/fi-FI.rc +++ b/src/win/languages/fi-FI.rc @@ -391,6 +391,9 @@ END #define STR_BUGGER "ISABugger-laite" #define STR_POSTCARD "POST-kortti" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// @@ -408,7 +411,7 @@ BEGIN IDS_2053 "Nopeus" IDS_2054 "ZIP %03i %i (%s): %ls" IDS_2055 "ZIP-levykuvat (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" - IDS_2056 "86Box ei löytänyt käyttökelpoisia ROM-tiedostoja.\n\Voit ladata ROM-paketin ja purkaa sen ""roms"" hakemistoon." + IDS_2056 "86Box ei löytänyt käyttökelpoisia ROM-tiedostoja.\n\nVoit ladata ROM-paketin ja purkaa sen ""roms"" hakemistoon." IDS_2057 "(tyhjä)" IDS_2058 "ZIP-levykuvat (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Kaikki tiedostot (*.*)\0*.*\0" IDS_2059 "Turbo" diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index e71a3b10b..096b36f23 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -391,6 +391,9 @@ END #define STR_BUGGER "ISABugger uređaj" #define STR_POSTCARD "POST kartica" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc index fdda601a6..6b10514fc 100644 --- a/src/win/languages/hu-HU.rc +++ b/src/win/languages/hu-HU.rc @@ -394,6 +394,9 @@ END #define STR_BUGGER "ISABugger eszköz" #define STR_POSTCARD "POST kártya" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc index b988a40c5..81da4ef80 100644 --- a/src/win/languages/it-IT.rc +++ b/src/win/languages/it-IT.rc @@ -391,6 +391,9 @@ END #define STR_BUGGER "Dispositivo ISABugger" #define STR_POSTCARD "Scheda POST" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index 4e6b97981..feb6ec02a 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -392,6 +392,9 @@ END #define STR_BUGGER "Dispositivo ISABugger" #define STR_POSTCARD "Placa de diagnóstico" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index 8efc1aa29..4204c5677 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -391,6 +391,9 @@ END #define STR_BUGGER "Dispositivo ISABugger" #define STR_POSTCARD "Placa POST" +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc index 2682268cb..e625f53bc 100644 --- a/src/win/languages/zh-CN.rc +++ b/src/win/languages/zh-CN.rc @@ -391,6 +391,9 @@ END #define STR_BUGGER "ISABugger device" #define STR_POSTCARD "自检卡(POST)" +#define FONT_SIZE 9 +#define FONT_NAME "Microsoft YaHei" + #include "dialogs.rc" ///////////////////////////////////////////////////////////////////////////// From faa1750c92005032a580fdb4dc5f2ebe16085722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Wed, 17 Nov 2021 18:28:00 +0100 Subject: [PATCH 29/61] Menu reloading fixes for Multilanguage UI --- src/86box.c | 7 +------ src/include/86box/win.h | 3 +++ src/win/win.c | 6 ++++-- src/win/win_ui.c | 22 +++++++++++++--------- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/86box.c b/src/86box.c index 9db0ecdb8..abd3fd8ef 100644 --- a/src/86box.c +++ b/src/86box.c @@ -713,12 +713,7 @@ usage: /* Load the desired language */ if (lang_init) lang_id = lang_init; - - lang_init = lang_id; - lang_id = 0; - if (lang_init) - set_language(lang_init); - + /* All good! */ return(1); } diff --git a/src/include/86box/win.h b/src/include/86box/win.h index 33e55f1d4..2fdddb56e 100644 --- a/src/include/86box/win.h +++ b/src/include/86box/win.h @@ -239,6 +239,9 @@ extern void media_menu_update_cdrom(int id); extern void media_menu_update_zip(int id); extern void media_menu_update_mo(int id); +/* Functions in win_ui.c */ +extern HMENU menuMain; +extern void ResetAllMenus(); #ifdef __cplusplus } diff --git a/src/win/win.c b/src/win/win.c index 1f6ab15af..2a1f1a714 100644 --- a/src/win/win.c +++ b/src/win/win.c @@ -269,9 +269,11 @@ set_language(uint32_t id) LoadCommonStrings(); /* Reload main menu */ - SetMenu(hwndMain, LoadMenu(hinstance, L"MainMenu")); + menuMain = LoadMenu(hinstance, L"MainMenu"); + SetMenu(hwndMain, menuMain); - /* Re-init media menu */ + /* Re-init all the menus */ + ResetAllMenus(); media_menu_init(); } } diff --git a/src/win/win_ui.c b/src/win/win_ui.c index 57ef417a2..b25ed5df1 100644 --- a/src/win/win_ui.c +++ b/src/win/win_ui.c @@ -203,22 +203,22 @@ delete_submenu(HMENU parent, HMENU target) } #endif +static int menu_vidapi = -1; +static HMENU cur_menu = NULL; + static void show_render_options_menu() { #if defined(DEV_BRANCH) && defined(USE_OPENGL) - static int menu_vidapi = -1; - static HMENU cur_menu = NULL; - if (vid_api == menu_vidapi) return; - + if (cur_menu != NULL) { if (delete_submenu(menuMain, cur_menu)) cur_menu = NULL; } - + if (cur_menu == NULL) { switch (IDM_VID_SDL_SW + vid_api) @@ -251,7 +251,7 @@ video_set_filter_menu(HMENU menu) EnableMenuItem(menu, IDM_VID_FILTER_LINEAR, vid_api == 0 ? MF_GRAYED : MF_ENABLED); } -static void +void ResetAllMenus(void) { CheckMenuItem(menuMain, IDM_ACTION_RCTRL_IS_LALT, MF_UNCHECKED); @@ -294,6 +294,9 @@ ResetAllMenus(void) CheckMenuItem(menuMain, IDM_VID_SDL_OPENGL, MF_UNCHECKED); #if defined(DEV_BRANCH) && defined(USE_OPENGL) CheckMenuItem(menuMain, IDM_VID_OPENGL_CORE, MF_UNCHECKED); + + menu_vidapi = -1; + cur_menu = NULL; show_render_options_menu(); #endif #ifdef USE_VNC @@ -1401,9 +1404,10 @@ ui_init(int nCmdShow) ResizeWindowByClientArea(hwndMain, scrnsz_x, scrnsz_y + sbar_height); } - /* Reset all menus to their defaults. */ - ResetAllMenus(); - media_menu_init(); + /* Load the desired language, and reset all menus to their defaults */ + uint32_t helper_lang = lang_id; + lang_id = 0; + set_language(helper_lang); /* Make the window visible on the screen. */ ShowWindow(hwnd, nCmdShow); From 03a72476300ef46604b726d9567f84eecb21694f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Wed, 17 Nov 2021 19:02:19 +0100 Subject: [PATCH 30/61] Apply requested changes - Remove icon functions from plat.h. - Fix some indentation problems. - Remove unused parameter from win_stbar.c - Rename win_lang.c to win_progsett.c - Remove stub functions from unix.c - Move win_load_icon_set() to ui_init() - Replace the translated texts to English, and let the translators translate them - Fix the control IDs in dialogs.rc. - Use the requested solution in win_icon.c for setting the array variables. --- src/86box.c | 3 --- src/include/86box/plat.h | 5 ----- src/include/86box/win.h | 7 ++++++- src/unix/unix.c | 25 ------------------------- src/win/CMakeLists.txt | 2 +- src/win/Makefile.mingw | 2 +- src/win/languages/cs-CZ.rc | 6 +++--- src/win/languages/de-DE.rc | 6 +++--- src/win/languages/dialogs.rc | 4 ++-- src/win/languages/en-US.rc | 6 +++--- src/win/languages/hr-HR.rc | 6 +++--- src/win/languages/hu-HU.rc | 6 +++--- src/win/languages/it-IT.rc | 6 +++--- src/win/languages/pt-BR.rc | 6 +++--- src/win/languages/pt-PT.rc | 6 +++--- src/win/win_icon.c | 21 ++++++++++----------- src/win/{win_lang.c => win_progsett.c} | 7 +++---- src/win/win_stbar.c | 2 +- src/win/win_ui.c | 7 +++++-- 19 files changed, 53 insertions(+), 80 deletions(-) rename src/win/{win_lang.c => win_progsett.c} (97%) diff --git a/src/86box.c b/src/86box.c index 964e885bc..8f9338920 100644 --- a/src/86box.c +++ b/src/86box.c @@ -715,9 +715,6 @@ usage: if (lang_init) set_language(lang_init); - /* Load the desired iconset */ - plat_load_icon_set(); - /* All good! */ return(1); } diff --git a/src/include/86box/plat.h b/src/include/86box/plat.h index 8d0d4c4ef..ca116a684 100644 --- a/src/include/86box/plat.h +++ b/src/include/86box/plat.h @@ -125,11 +125,6 @@ extern void plat_vid_reload_options(void); extern uint32_t plat_language_code(char* langcode); extern void plat_language_code_r(uint32_t lcid, char* outbuf, int len); -extern void plat_clear_icon_set(); -extern void plat_system_icon_set(); -extern void plat_load_icon_set(); -extern void plat_get_icons_path(char* path_root); - /* Resource management. */ extern void set_language(uint32_t id); extern wchar_t *plat_get_string(int id); diff --git a/src/include/86box/win.h b/src/include/86box/win.h index 3a287a11b..9eef0067d 100644 --- a/src/include/86box/win.h +++ b/src/include/86box/win.h @@ -107,7 +107,7 @@ extern HWND hwndMain, hwndRender; extern HANDLE ghMutex; extern HICON hIcon[256]; -extern int dpi; +extern int dpi; extern RECT oldclip; extern int sbar_height, user_resize; extern int acp_utf8; @@ -149,6 +149,11 @@ extern int win_get_system_metrics(int i, int dpi); extern LPARAM win_get_string(int id); +extern void win_clear_icon_set(); +extern void win_system_icon_set(); +extern void win_load_icon_set(); +extern void win_get_icons_path(char* path_root); + extern intptr_t fdd_type_to_icon(int type); #ifdef EMU_DEVICE_H diff --git a/src/unix/unix.c b/src/unix/unix.c index 0c4696d56..684fad935 100644 --- a/src/unix/unix.c +++ b/src/unix/unix.c @@ -1245,31 +1245,6 @@ plat_language_code_r(uint32_t lcid, char* outbuf, int len) return; } -void -plat_clear_icon_set() -{ - return; -} - -void -plat_system_icon_set() -{ - return; -} - -void -plat_load_icon_set() -{ - return; -} - -void -plat_get_icons_path(char* path_root) -{ - return; -} - - void joystick_init(void) {} void joystick_close(void) {} void joystick_process(void) {} diff --git a/src/win/CMakeLists.txt b/src/win/CMakeLists.txt index d94485929..5b44eeb45 100644 --- a/src/win/CMakeLists.txt +++ b/src/win/CMakeLists.txt @@ -20,7 +20,7 @@ add_library(plat OBJECT win.c win_dynld.c win_cdrom.c win_thread.c add_library(ui OBJECT win_ui.c win_icon.c win_stbar.c win_sdl.c win_dialog.c win_about.c win_settings.c win_devconf.c win_snd_gain.c win_specify_dim.c win_new_floppy.c - win_jsconf.c win_media_menu.c win_lang.c 86Box.rc) + win_jsconf.c win_media_menu.c win_progsett.c 86Box.rc) if(MSVC) # MSVC complains when we include the manifest from 86Box.rc... diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index c80cf694e..d678e2699 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -408,7 +408,7 @@ else UIOBJ := win_ui.o win_icon.o win_stbar.o \ win_sdl.o \ win_dialog.o win_about.o \ - win_settings.o win_devconf.o win_snd_gain.o win_specify_dim.o win_lang.o \ + win_settings.o win_devconf.o win_snd_gain.o win_specify_dim.o win_progsett.o \ win_new_floppy.o win_jsconf.o win_media_menu.o endif diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc index 60a234827..8aa608389 100644 --- a/src/win/languages/cs-CZ.rc +++ b/src/win/languages/cs-CZ.rc @@ -101,7 +101,7 @@ BEGIN MENUITEM "&Nastavení...", IDM_CONFIG MENUITEM "&Aktualizovat ikony stavového řádku", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "&Změnit jazyk zobrazení...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "Povolit integraci s &Discordem", IDM_DISCORD @@ -273,7 +273,7 @@ END // Dialog // -#define STR_PROG_SETT "Změnit jazyk zobrazení" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "Zesílení zvuku" #define STR_NEW_FLOPPY "Nový obraz" #define STR_CONFIG "Nastavení emulátoru 86Box" @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Uložit toto nastavení jako &globální výchozí stav" #define STR_DEFAULT "&Výchozí" #define STR_LANGUAGE "Jazyk:" -#define STR_ICONSET "Sada ikon:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Zesílení" diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index 3e50191a6..8df5bd68a 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -101,7 +101,7 @@ BEGIN MENUITEM "&Einstellungen...", IDM_CONFIG MENUITEM "&Statusleistenicons aktualisieren", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "&Anzeigesprache ändern...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "&Discord-Integration aktivieren", IDM_DISCORD @@ -273,7 +273,7 @@ END // Dialog // -#define STR_PROG_SETT "Anzeigesprache ändern" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "Klangverstärkung" #define STR_NEW_FLOPPY "Neues Image" #define STR_CONFIG "86Box-Einstellungen" @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Einstellungen als &globalen Standard speichern" #define STR_DEFAULT "&Standard" #define STR_LANGUAGE "Sprache:" -#define STR_ICONSET "Ikonensatz:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Verstärkung" diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc index 9862a5080..ce3a04b99 100644 --- a/src/win/languages/dialogs.rc +++ b/src/win/languages/dialogs.rc @@ -10,8 +10,8 @@ BEGIN COMBOBOX IDC_COMBO_ICON, 13, 50, 213, 22, CBS_DROPDOWNLIST | CBS_HASSTRINGS PUSHBUTTON STR_DEFAULT, IDC_BUTTON_DEFICON, 162, 64, 60, 14 AUTOCHECKBOX STR_GLOBAL, IDC_CHECKBOX_GLOBAL, 13, 82, 217, 8 , WS_DISABLED - LTEXT STR_LANGUAGE, 0, 13, 8, 100, 8 - LTEXT STR_ICONSET, 0, 13, 40, 100, 8 + LTEXT STR_LANGUAGE, 1001, 13, 8, 100, 8 + LTEXT STR_ICONSET, 1002, 13, 40, 100, 8 END DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc index 2b3ad1e94..c3baf5f0e 100644 --- a/src/win/languages/en-US.rc +++ b/src/win/languages/en-US.rc @@ -101,7 +101,7 @@ BEGIN MENUITEM "&Settings...", IDM_CONFIG MENUITEM "&Update status bar icons", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "Change dis&play language...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "Enable &Discord integration", IDM_DISCORD @@ -273,7 +273,7 @@ END // Dialog // -#define STR_PROG_SETT "Change Display Language" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "Sound Gain" #define STR_NEW_FLOPPY "New Image" #define STR_CONFIG "86Box Settings" @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Save these settings as &global defaults" #define STR_DEFAULT "&Default" #define STR_LANGUAGE "Language:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Gain" diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index 699c353e8..87a38b29b 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -101,7 +101,7 @@ BEGIN MENUITEM "&Postavke...", IDM_CONFIG MENUITEM "&Ažuriranje ikone statusne trake", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "&Promijeni jezik prikaza...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "Omogući integraciju &Discord-a", IDM_DISCORD @@ -273,7 +273,7 @@ END // Dialog // -#define STR_PROG_SETT "Promjena jezika prikaza" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "Pojačavanje zvuka" #define STR_NEW_FLOPPY "Nova image daoteka" #define STR_CONFIG "86Box postavke" @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Spremite ove postavke kao &globalne zadane postavke" #define STR_DEFAULT "&Standard" #define STR_LANGUAGE "Jezik:" -#define STR_ICONSET "Skup ikona:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Pojačavanje" diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc index 569f3b616..0841c4dac 100644 --- a/src/win/languages/hu-HU.rc +++ b/src/win/languages/hu-HU.rc @@ -104,7 +104,7 @@ BEGIN MENUITEM "&Beállítások...", IDM_CONFIG MENUITEM "Állapotsori ikonok &frissítése", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "A &program nyelvének módosítása...", IDM_VID_PROG_SETT + MENUITEM "Program&beállítások...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "&Discord integráció engedélyezése", IDM_DISCORD @@ -276,7 +276,7 @@ END // Dialog // -#define STR_PROG_SETT "Nyelvi beállítások" +#define STR_PROG_SETT "Programbeállítások" #define STR_SND_GAIN "Hangerőszabályzó" #define STR_NEW_FLOPPY "Új képfájl létrehozása" #define STR_CONFIG "86Box beállítások" @@ -287,7 +287,7 @@ END #define STR_GLOBAL "Beállítások mentése &globális alapértékként" #define STR_DEFAULT "&Alapértelmezett" #define STR_LANGUAGE "Nyelv:" -#define STR_ICONSET "Ikonkészlet:" +#define STR_ICONSET "Ikonkészlet:" #define STR_GAIN "Hangerő" diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc index 8feaeccf7..7e067dd9c 100644 --- a/src/win/languages/it-IT.rc +++ b/src/win/languages/it-IT.rc @@ -101,7 +101,7 @@ BEGIN MENUITEM "&Impostazioni...", IDM_CONFIG MENUITEM "&Aggiorna icone della barra di stato", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "Cambia li&ngua...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "Abilita &integrazione Discord", IDM_DISCORD @@ -273,7 +273,7 @@ END // Dialog // -#define STR_PROG_SETT "Cambia lingua dell'interfaccia" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "Guadagno del suono" #define STR_NEW_FLOPPY "Nuova immagine" #define STR_CONFIG "Impostazioni di 86Box" @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Salva queste impostazioni come &predefinite globali" #define STR_DEFAULT "&Predefinito" #define STR_LANGUAGE "Lingua:" -#define STR_ICONSET "Set di Icone:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Guadagno" diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index a9024321b..6066f093d 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -102,7 +102,7 @@ BEGIN MENUITEM "&Configurações...", IDM_CONFIG MENUITEM "&Atualizar ícones da barra de status", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "Alterar o &idioma de exibição...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "Ativar integração com o &Discord", IDM_DISCORD @@ -274,7 +274,7 @@ END // Dialog // -#define STR_PROG_SETT "Alterar idioma de exibição" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "Ganho de som" #define STR_NEW_FLOPPY "Nova imagem de disquete" #define STR_CONFIG "Configurações do 86Box" @@ -285,7 +285,7 @@ END #define STR_GLOBAL "Usar estas configurações como &padrões globais" #define STR_DEFAULT "&Padrão" #define STR_LANGUAGE "Idioma:" -#define STR_ICONSET "Conjunto de ícones:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Ganho" diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index aaeed8dc5..97afaa543 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -101,7 +101,7 @@ BEGIN MENUITEM "&Definições...", IDM_CONFIG MENUITEM "&Atualizar ícones da barra de estado", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "Mudar idioma de a&presentação...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "Ativar integração com &Discord", IDM_DISCORD @@ -273,7 +273,7 @@ END // Dialog // -#define STR_PROG_SETT "Mudar idioma de apresentação" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "Ganho de som" #define STR_NEW_FLOPPY "Nova imagem" #define STR_CONFIG "Definições do 86Box" @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Guardar estas definições como padrões &globais" #define STR_DEFAULT "&Padrão" #define STR_LANGUAGE "Idioma:" -#define STR_ICONSET "Conjunto de ícones:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Ganho" diff --git a/src/win/win_icon.c b/src/win/win_icon.c index 345d028af..e5e4cdc67 100644 --- a/src/win/win_icon.c +++ b/src/win/win_icon.c @@ -30,7 +30,7 @@ HICON hIcon[256]; /* icon data loaded from resources */ char icon_set[256] = ""; /* name of the iconset to be used */ -void plat_clear_icon_set() +void win_clear_icon_set() { int i; @@ -42,7 +42,7 @@ void plat_clear_icon_set() } } -void plat_system_icon_set() +void win_system_icon_set() { int i, x = win_get_system_metrics(SM_CXSMICON, dpi), y = win_get_system_metrics(SM_CYSMICON, dpi); @@ -103,7 +103,7 @@ const _ICON_DATA icon_files[] = {252, "storage_controllers.ico"} }; -void plat_get_icons_path(char* path_root) +void win_get_icons_path(char* path_root) { char roms_root[1024] = {0}; if (rom_path[0]) @@ -115,10 +115,10 @@ void plat_get_icons_path(char* path_root) plat_path_slash(path_root); } -void plat_load_icon_set() +void win_load_icon_set() { - plat_clear_icon_set(); - plat_system_icon_set(); + win_clear_icon_set(); + win_system_icon_set(); if (strlen(icon_set) == 0) return; @@ -126,7 +126,7 @@ void plat_load_icon_set() char path_root[2048] = {0}, temp[2048] = {0}; wchar_t wtemp[2048] = {0}; - plat_get_icons_path(path_root); + win_get_icons_path(path_root); strcat(path_root, icon_set); plat_path_slash(path_root); @@ -141,10 +141,9 @@ void plat_load_icon_set() ictemp = LoadImageW(NULL, (LPWSTR)wtemp, IMAGE_ICON, x, y, LR_LOADFROMFILE | LR_DEFAULTCOLOR); if (ictemp) { - HICON* helper = &hIcon[icon_files[i].id]; - if (*helper) - DestroyIcon(*helper); - *helper = ictemp; + if (hIcon[icon_files[i].id]) + DestroyIcon(hIcon[icon_files[i].id]); + hIcon[icon_files[i].id] = ictemp; } } diff --git a/src/win/win_lang.c b/src/win/win_progsett.c similarity index 97% rename from src/win/win_lang.c rename to src/win/win_progsett.c index 229c81cb2..46594ef45 100644 --- a/src/win/win_lang.c +++ b/src/win/win_progsett.c @@ -6,8 +6,7 @@ * * This file is part of the 86Box distribution. * - * Handle the dialog for changing the program's language. - * + * Handle the dialog for changing the program's language and other global settings. * * * Authors: Laci bá' @@ -100,7 +99,7 @@ progsett_fill_iconsets(HWND hdlg) WIN32_FIND_DATA data; char icon_path_root[512]; - plat_get_icons_path(icon_path_root); + win_get_icons_path(icon_path_root); wchar_t search[512]; mbstowcs(search, icon_path_root, strlen(icon_path_root) + 1); @@ -187,7 +186,7 @@ progsett_settings_save(void) /* Iconset */ strcpy(icon_set, temp_icon_set); - plat_load_icon_set(hinstance); + win_load_icon_set(hinstance); /* Update title bar */ update_mouse_msg(); diff --git a/src/win/win_stbar.c b/src/win/win_stbar.c index d8e079e14..c980253e0 100644 --- a/src/win/win_stbar.c +++ b/src/win/win_stbar.c @@ -877,7 +877,7 @@ StatusBarPopupMenu(HWND hwnd, POINT pt, int id) /* API: Load status bar icons */ void StatusBarLoadIcon(HINSTANCE hInst) { - plat_load_icon_set(hInst); + win_load_icon_set(); } /* Handle messages for the Status Bar window. */ diff --git a/src/win/win_ui.c b/src/win/win_ui.c index 84bde8e64..321871da2 100644 --- a/src/win/win_ui.c +++ b/src/win/win_ui.c @@ -68,6 +68,7 @@ int user_resize = 0; int fixed_size_x = 0, fixed_size_y = 0; int kbd_req_capture = 0; int hide_status_bar = 0; +int dpi = 96; extern char openfilestring[512]; extern WCHAR wopenfilestring[512]; @@ -77,7 +78,6 @@ extern WCHAR wopenfilestring[512]; static wchar_t wTitle[512]; static int manager_wm = 0; static int save_window_pos = 0, pause_state = 0; -int dpi = 96; static int padded_frame = 0; static int vis = -1; @@ -1064,7 +1064,7 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) break; case WM_DESTROY: - plat_clear_icon_set(); + win_clear_icon_set(); KillTimer(hwnd, TIMER_1SEC); PostQuitMessage(0); break; @@ -1395,6 +1395,9 @@ ui_init(int nCmdShow) /* Reset all menus to their defaults. */ ResetAllMenus(); media_menu_init(); + + /* Load the desired iconset */ + win_load_icon_set(); /* Make the window visible on the screen. */ ShowWindow(hwnd, nCmdShow); From cc59925be647d74c7591e0b85959ee1b3663828c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Wed, 17 Nov 2021 19:04:37 +0100 Subject: [PATCH 31/61] Make this branch up-to-date --- src/win/languages/zh-CN.rc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc index e625f53bc..1f0f97378 100644 --- a/src/win/languages/zh-CN.rc +++ b/src/win/languages/zh-CN.rc @@ -101,7 +101,7 @@ BEGIN MENUITEM "设置(&S)...", IDM_CONFIG MENUITEM "更新状态栏图标(&U)", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "更改显示语言(&p)...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "启用 Discord 集成(&D)", IDM_DISCORD @@ -273,7 +273,7 @@ END // Dialog // -#define STR_PROG_SETT "更改显示语言" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "音量增益" #define STR_NEW_FLOPPY "新建镜像" #define STR_CONFIG "86Box 设置" @@ -284,6 +284,7 @@ END #define STR_GLOBAL "将以上设定存储为全局默认值(&g)" #define STR_DEFAULT "默认(&D)" #define STR_LANGUAGE "语言:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "增益" From d9e6fc0db05a6790c45ca80e217c011767f30497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Wed, 17 Nov 2021 19:16:38 +0100 Subject: [PATCH 32/61] Update dialogs.rc --- src/win/languages/dialogs.rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc index c9cb99921..9ef64b316 100644 --- a/src/win/languages/dialogs.rc +++ b/src/win/languages/dialogs.rc @@ -10,8 +10,8 @@ BEGIN COMBOBOX IDC_COMBO_ICON, 13, 50, 213, 22, CBS_DROPDOWNLIST | CBS_HASSTRINGS PUSHBUTTON STR_DEFAULT, IDC_BUTTON_DEFICON, 162, 64, 60, 14 AUTOCHECKBOX STR_GLOBAL, IDC_CHECKBOX_GLOBAL, 13, 82, 217, 8 , WS_DISABLED - LTEXT STR_LANGUAGE, 1001, 13, 8, 100, 8 - LTEXT STR_ICONSET, 1002, 13, 40, 100, 8 + LTEXT STR_LANGUAGE, 0, 13, 8, 100, 8 + LTEXT STR_ICONSET, 1, 13, 40, 100, 8 END DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 From 988a22ebf47a2cc05eaca355986f4d8fdefe03d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Wed, 17 Nov 2021 19:23:55 +0100 Subject: [PATCH 33/61] Add missing texts to fi-FI translation too --- src/win/languages/dialogs.rc | 4 ++-- src/win/languages/fi-FI.rc | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc index 9ef64b316..78ab8885b 100644 --- a/src/win/languages/dialogs.rc +++ b/src/win/languages/dialogs.rc @@ -10,8 +10,8 @@ BEGIN COMBOBOX IDC_COMBO_ICON, 13, 50, 213, 22, CBS_DROPDOWNLIST | CBS_HASSTRINGS PUSHBUTTON STR_DEFAULT, IDC_BUTTON_DEFICON, 162, 64, 60, 14 AUTOCHECKBOX STR_GLOBAL, IDC_CHECKBOX_GLOBAL, 13, 82, 217, 8 , WS_DISABLED - LTEXT STR_LANGUAGE, 0, 13, 8, 100, 8 - LTEXT STR_ICONSET, 1, 13, 40, 100, 8 + LTEXT STR_LANGUAGE, 0, 13, 8, 100, 8 + LTEXT STR_ICONSET, 1, 13, 40, 100, 8 END DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc index 92e1187d5..28b34bb86 100644 --- a/src/win/languages/fi-FI.rc +++ b/src/win/languages/fi-FI.rc @@ -101,7 +101,7 @@ BEGIN MENUITEM "&Asetukset...", IDM_CONFIG MENUITEM "&Päivitä tilapalkin kuvakkeita", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "&Vaihda näyttökieltä...", IDM_VID_PROG_SETT + MENUITEM "Change program &settings...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "Käytä &Discord integraatiota", IDM_DISCORD @@ -273,7 +273,7 @@ END // Dialog // -#define STR_PROG_SETT "Vaihda näyttökieltä" +#define STR_PROG_SETT "Program Settings" #define STR_SND_GAIN "Äänen tulotaso" #define STR_NEW_FLOPPY "Uusi levykuva" #define STR_CONFIG "86Box Asetukset" @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Tallenna nämä asetukset &globaaleiksi oletuksiksi" #define STR_DEFAULT "&Oletus" #define STR_LANGUAGE "Kieli:" +#define STR_ICONSET "Iconset:" #define STR_GAIN "Taso" From 2f464edd651f26e126271cda8403db1805e494f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laci=20b=C3=A1?= Date: Wed, 17 Nov 2021 19:35:29 +0100 Subject: [PATCH 34/61] Another try to fix the VS2019 builds --- src/win/languages/dialogs.rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc index 78ab8885b..b2813faa0 100644 --- a/src/win/languages/dialogs.rc +++ b/src/win/languages/dialogs.rc @@ -10,8 +10,8 @@ BEGIN COMBOBOX IDC_COMBO_ICON, 13, 50, 213, 22, CBS_DROPDOWNLIST | CBS_HASSTRINGS PUSHBUTTON STR_DEFAULT, IDC_BUTTON_DEFICON, 162, 64, 60, 14 AUTOCHECKBOX STR_GLOBAL, IDC_CHECKBOX_GLOBAL, 13, 82, 217, 8 , WS_DISABLED - LTEXT STR_LANGUAGE, 0, 13, 8, 100, 8 - LTEXT STR_ICONSET, 1, 13, 40, 100, 8 + LTEXT STR_LANGUAGE, 2000, 13, 8, 100, 8 + LTEXT STR_ICONSET, 2001, 13, 40, 100, 8 END DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 From 63099ea3ff7b50596631c80db6ec768b5bd6faf6 Mon Sep 17 00:00:00 2001 From: jvernet Date: Wed, 17 Nov 2021 20:30:50 +0100 Subject: [PATCH 35/61] Update CMakeLists.txt --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c315c5376..fde99e3f0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -89,7 +89,7 @@ if(APPLE) set(CMAKE_MACOSX_BUNDLE 1) # setting our compilation target to macOS Mojave (macOS version 10.14), can be eventually changed to macOS 10.13 High Sierra - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14") + set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13") # set the Info.plist properly set_target_properties(86Box PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/mac/Info.plist.in) From f6741b172e8ff27c47349444ba48079ac4226e75 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Thu, 18 Nov 2021 02:09:40 +0600 Subject: [PATCH 36/61] Fix macOS rom directory (#1823) * Fix macOS rom directory * Fix typo --- src/86box.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/86box.c b/src/86box.c index 9db0ecdb8..b8c761319 100644 --- a/src/86box.c +++ b/src/86box.c @@ -27,6 +27,9 @@ #include #include #include +#ifndef _WIN32 +#include +#endif #ifdef __APPLE__ #include #include @@ -584,7 +587,7 @@ usage: if (vmrp && (path2[0] == '\0')) { #ifdef __APPLE__ - strcpy(rom_path, "~/Library/Application Support/86Box/roms"); + sprintf("%s/Library/Application Support/86Box/roms", getenv("HOME") ? getenv("HOME") : getpwuid(getuid())->pw_dir); #else strcpy(path2, usr_path); plat_path_slash(path2); From bfd2fe941e831bea4d4daa789e9d4e2c07147527 Mon Sep 17 00:00:00 2001 From: jvernet Date: Wed, 17 Nov 2021 21:28:18 +0100 Subject: [PATCH 37/61] Update fr-FR.rc --- src/win/languages/fr-FR.rc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index 3dd097959..08614510b 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -1,8 +1,8 @@ //////////////////////////////////////////////////////////////////////////// -// EnglishFrench (U.S.) resources +// French (F.R.) resources #ifdef _WIN32 -LANGUAGE LANG_FRENCH, SUBLANG_ENGLISH_US +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH #pragma code_page(65001) #endif //_WIN32 @@ -51,7 +51,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "Specify dimensions...", IDM_VID_SPECIFY_DIM MENUITEM "F&orcer 4:3", IDM_VID_FORCE43 - POPUP "&Echelle factor" + POPUP "&Echelle facteurr" BEGIN MENUITEM "&0.5x", IDM_VID_SCALE_1X MENUITEM "&1x", IDM_VID_SCALE_2X @@ -60,7 +60,7 @@ BEGIN END POPUP "Filtre method" BEGIN - MENUITEM "& Date: Wed, 17 Nov 2021 22:45:22 +0200 Subject: [PATCH 38/61] Increase resource string max length 512 > 1024. Allocate with calloc. --- src/win/win.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/win/win.c b/src/win/win.c index 1f6ab15af..8f4d5e937 100644 --- a/src/win/win.c +++ b/src/win/win.c @@ -60,7 +60,7 @@ #endif typedef struct { - WCHAR str[512]; + WCHAR str[1024]; } rc_str_t; @@ -165,50 +165,50 @@ LoadCommonStrings(void) free_string(&lpRCstr4096); free_string(&lpRCstr2048); - lpRCstr2048 = (rc_str_t *)malloc(STR_NUM_2048*sizeof(rc_str_t)); - lpRCstr4096 = (rc_str_t *)malloc(STR_NUM_4096*sizeof(rc_str_t)); - lpRCstr4352 = (rc_str_t *)malloc(STR_NUM_4352*sizeof(rc_str_t)); - lpRCstr4608 = (rc_str_t *)malloc(STR_NUM_4608*sizeof(rc_str_t)); - lpRCstr5120 = (rc_str_t *)malloc(STR_NUM_5120*sizeof(rc_str_t)); - lpRCstr5376 = (rc_str_t *)malloc(STR_NUM_5376*sizeof(rc_str_t)); - lpRCstr5632 = (rc_str_t *)malloc(STR_NUM_5632*sizeof(rc_str_t)); - lpRCstr5888 = (rc_str_t *)malloc(STR_NUM_5888*sizeof(rc_str_t)); - lpRCstr6144 = (rc_str_t *)malloc(STR_NUM_6144*sizeof(rc_str_t)); - lpRCstr7168 = (rc_str_t *)malloc(STR_NUM_7168*sizeof(rc_str_t)); + lpRCstr2048 = calloc(STR_NUM_2048, sizeof(rc_str_t)); + lpRCstr4096 = calloc(STR_NUM_4096, sizeof(rc_str_t)); + lpRCstr4352 = calloc(STR_NUM_4352, sizeof(rc_str_t)); + lpRCstr4608 = calloc(STR_NUM_4608, sizeof(rc_str_t)); + lpRCstr5120 = calloc(STR_NUM_5120, sizeof(rc_str_t)); + lpRCstr5376 = calloc(STR_NUM_5376, sizeof(rc_str_t)); + lpRCstr5632 = calloc(STR_NUM_5632, sizeof(rc_str_t)); + lpRCstr5888 = calloc(STR_NUM_5888, sizeof(rc_str_t)); + lpRCstr6144 = calloc(STR_NUM_6144, sizeof(rc_str_t)); + lpRCstr7168 = calloc(STR_NUM_7168, sizeof(rc_str_t)); for (i=0; i 3)) - LoadString(hinstance, 5376+i, lpRCstr5376[i].str, 512); + LoadString(hinstance, 5376+i, lpRCstr5376[i].str, 1024); } for (i=0; i 3)) - LoadString(hinstance, 5632+i, lpRCstr5632[i].str, 512); + LoadString(hinstance, 5632+i, lpRCstr5632[i].str, 1024); } for (i=0; i Date: Wed, 17 Nov 2021 21:53:26 +0100 Subject: [PATCH 39/61] Apply requested changes, along with more indentation fixes --- src/win/win_progsett.c | 36 ++++++++++++++++++------------------ src/win/win_ui.c | 4 ++-- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/win/win_progsett.c b/src/win/win_progsett.c index 46594ef45..46ede599b 100644 --- a/src/win/win_progsett.c +++ b/src/win/win_progsett.c @@ -156,25 +156,25 @@ progsett_fill_iconsets(HWND hdlg) static int progsett_settings_changed(void) { - int i = 0; + int i = 0; /* Language */ i = i || has_language_changed(temp_language); - i = i || strcmp(temp_icon_set, icon_set); + i = i || strcmp(temp_icon_set, icon_set); - return i; + return i; } /* IndexOf by ItemData */ static int progsett_indexof(HWND combo, LPARAM itemdata) { - int i; - for (i = 0; i < SendMessage(combo, CB_GETCOUNT, 0, 0); i++) - if (SendMessage(combo, CB_GETITEMDATA, i, 0) == itemdata) - return i; + int i; + for (i = 0; i < SendMessage(combo, CB_GETCOUNT, 0, 0); i++) + if (SendMessage(combo, CB_GETITEMDATA, i, 0) == itemdata) + return i; - return -1; + return -1; } /* This saves the settings back to the global variables. */ @@ -184,20 +184,20 @@ progsett_settings_save(void) /* Language */ set_language(temp_language); - /* Iconset */ - strcpy(icon_set, temp_icon_set); - win_load_icon_set(hinstance); + /* Iconset */ + strcpy(icon_set, temp_icon_set); + win_load_icon_set(); /* Update title bar */ - update_mouse_msg(); + update_mouse_msg(); - /* Update status bar */ - config_changed = 1; - ui_sb_set_ready(0); - ui_sb_update_panes(); + /* Update status bar */ + config_changed = 1; + ui_sb_set_ready(0); + ui_sb_update_panes(); - /* Save the language changes */ - config_save(); + /* Save the language changes */ + config_save(); } #if defined(__amd64__) || defined(__aarch64__) diff --git a/src/win/win_ui.c b/src/win/win_ui.c index 321871da2..7c4bdff1f 100644 --- a/src/win/win_ui.c +++ b/src/win/win_ui.c @@ -1396,8 +1396,8 @@ ui_init(int nCmdShow) ResetAllMenus(); media_menu_init(); - /* Load the desired iconset */ - win_load_icon_set(); + /* Load the desired iconset */ + win_load_icon_set(); /* Make the window visible on the screen. */ ShowWindow(hwnd, nCmdShow); From d0bfd1a801274bb9751d6d9e47e301d82c652458 Mon Sep 17 00:00:00 2001 From: altiereslima Date: Wed, 17 Nov 2021 19:18:43 -0300 Subject: [PATCH 40/61] Update pt-BR.rc --- src/win/languages/pt-BR.rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index feb6ec02a..83bba8c56 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -371,7 +371,7 @@ END #define STR_CYLS "Cilindros:" #define STR_SIZE_MB "Tamanho (MB):" #define STR_TYPE "Tipo:" -#define STR_IMG_FORMAT "Formato da imagem:" +#define STR_IMG_FORMAT "Formato:" #define STR_BLOCK_SIZE "Tamanho do bloco:" #define STR_FLOPPY_DRIVES "Unidades de disquete:" From 30680c46edbab75483a40c506227a61b6fa66cd7 Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 17 Nov 2021 23:20:16 +0100 Subject: [PATCH 41/61] Removed the obsolete m_at_socket4_5.c. --- src/machine/m_at_socket4_5.c | 781 ----------------------------------- 1 file changed, 781 deletions(-) delete mode 100644 src/machine/m_at_socket4_5.c diff --git a/src/machine/m_at_socket4_5.c b/src/machine/m_at_socket4_5.c deleted file mode 100644 index c876844ad..000000000 --- a/src/machine/m_at_socket4_5.c +++ /dev/null @@ -1,781 +0,0 @@ -/* - * 86Box A hypervisor and IBM PC system emulator that specializes in - * running old operating systems and software designed for IBM - * PC systems and compatibles from 1981 through fairly recent - * system designs based on the PCI bus. - * - * This file is part of the 86Box distribution. - * - * Implementation of Socket 4 and 5 machines. - * - * - * - * Authors: Sarah Walker, - * Miran Grca, - * - * Copyright 2010-2019 Sarah Walker. - * Copyright 2016-2019 Miran Grca. - */ -#include -#include -#include -#include -#include -#include <86box/86box.h> -#include <86box/mem.h> -#include <86box/io.h> -#include <86box/rom.h> -#include <86box/pci.h> -#include <86box/device.h> -#include <86box/chipset.h> -#include <86box/fdc_ext.h> -#include <86box/hdc.h> -#include <86box/hdc_ide.h> -#include <86box/timer.h> -#include <86box/fdd.h> -#include <86box/fdc.h> -#include <86box/keyboard.h> -#include <86box/flash.h> -#include <86box/nvr.h> -#include <86box/scsi_ncr53c8xx.h> -#include <86box/sio.h> -#include <86box/video.h> -#include <86box/machine.h> - -int -machine_at_excalibur_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_inverted("roms/machines/excalibur/S75P.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - device_add(&opti5x7_device); - device_add(&ide_opti611_vlb_device); - device_add(&fdc37c661_device); - device_add(&keyboard_at_ami_device); - - return ret; -} -int -machine_at_pat54pv_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/pat54pv/pat54pv.bin", - 0x000f0000, 65536, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - device_add(&opti5x7_device); - device_add(&keyboard_at_ami_device); - - if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); - - return ret; -} -int -machine_at_hot543_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/hot543/543_R21.BIN", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x10, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2); - device_add(&opti5x7_device); - device_add(&opti822_device); - device_add(&sst_flash_29ee010_device); - device_add(&keyboard_at_device); - - if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); - - return ret; -} - -int -machine_at_p54vl_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/p54vl/SM507.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x10, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x12, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x13, PCI_CARD_NORMAL, 3, 4, 1, 2); - device_add(&opti5x7_device); - device_add(&opti822_device); - device_add(&sst_flash_29ee010_device); - device_add(&keyboard_at_ami_device); - - if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); - - return ret; -} - -static void -machine_at_premiere_common_init(const machine_t *model, int pci_switch) -{ - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2 | pci_switch); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0); - pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 2, 1, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&sio_zb_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_ami_device); -} - - -static void -machine_at_award_common_init(const machine_t *model) -{ - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0); - pci_register_slot(0x03, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 03 = Slot 1 */ - pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 04 = Slot 2 */ - pci_register_slot(0x05, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 05 = Slot 3 */ - pci_register_slot(0x06, PCI_CARD_NORMAL, 4, 1, 2, 3); /* 06 = Slot 4 */ - pci_register_slot(0x07, PCI_CARD_SCSI, 1, 2, 3, 4); /* 07 = SCSI */ - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - - if (fdc_type == FDC_INTERNAL) - device_add(&fdc_at_device); - - device_add(&keyboard_ps2_pci_device); -} - - -int -machine_at_batman_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/revenge/1009af2_.bio", - "roms/machines/revenge/1009af2_.bi1", 0x1c000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_premiere_common_init(model, 0); - - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_dellxp60_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_inverted("roms/machines/dellxp60/XP60-A08.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - /* Not: 00, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F. */ - /* Yes: 01, 10, 11, 12, 13, 14. */ - pci_register_slot(0x01, PCI_CARD_NORMAL, 1, 3, 2, 4); - pci_register_slot(0x04, PCI_CARD_NORMAL, 4, 4, 3, 3); - pci_register_slot(0x05, PCI_CARD_NORMAL, 1, 4, 3, 2); - pci_register_slot(0x06, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&i430lx_device); - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&sio_zb_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - - -int -machine_at_opti560l_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_inverted("roms/machines/opti560l/560L_A06.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x03, PCI_CARD_NORMAL, 4, 4, 3, 3); - pci_register_slot(0x07, PCI_CARD_NORMAL, 1, 4, 3, 2); - pci_register_slot(0x08, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&i430lx_device); - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&sio_zb_device); - device_add(&i82091aa_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - - -int -machine_at_ambradp60_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/ambradp60/1004AF1P.BIO", - "roms/machines/ambradp60/1004AF1P.BI1", 0x1c000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_premiere_common_init(model, 0); - - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_valuepointp60_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/valuepointp60/1006AV0M.BIO", - "roms/machines/valuepointp60/1006AV0M.BI1", 0x1d000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - device_add(&ide_pci_2ch_device); - - pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0); - pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 2, 1, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_ps1_pci_device); - device_add(&sio_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_ami_device); - - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_pb520r_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/pb520r/1009bc0r.bio", - "roms/machines/pb520r/1009bc0r.bi1", 0x1c000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_2); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_IDE, 0, 0, 0, 0); - pci_register_slot(0x03, PCI_CARD_VIDEO, 3, 3, 3, 3); - pci_register_slot(0x06, PCI_CARD_NORMAL, 3, 2, 1, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 1, 3, 4); - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 3, 2, 4); - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&i430lx_device); - device_add(&ide_cmd640_pci_single_channel_device); - - if (gfxcard == VID_INTERNAL) - device_add(&gd5434_onboard_pci_device); - - device_add(&keyboard_ps2_pci_device); - device_add(&sio_zb_device); - device_add(&i82091aa_ide_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - -const device_t * -at_pb520r_get_device(void) -{ - return &gd5434_onboard_pci_device; -} - - -int -machine_at_p5mp3_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/p5mp3/0205.bin", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - device_add(&ide_pci_device); - - pci_init(PCI_CONFIG_TYPE_2 | PCI_NO_IRQ_STEERING); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x05, PCI_CARD_NORMAL, 1, 2, 3, 4); /* 05 = Slot 1 */ - pci_register_slot(0x04, PCI_CARD_NORMAL, 2, 3, 4, 1); /* 04 = Slot 2 */ - pci_register_slot(0x03, PCI_CARD_NORMAL, 3, 4, 1, 2); /* 03 = Slot 3 */ - pci_register_slot(0x02, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&fdc_at_device); - device_add(&keyboard_ps2_pci_device); - - device_add(&sio_zb_device); - device_add(&catalyst_flash_device); - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_586mc1_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/586mc1/IS.34", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_award_common_init(model); - - device_add(&sio_device); - device_add(&intel_flash_bxt_device); - device_add(&i430lx_device); - - return ret; -} - - -int -machine_at_plato_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/plato/1016ax1_.bio", - "roms/machines/plato/1016ax1_.bi1", 0x1d000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_premiere_common_init(model, PCI_CAN_SWITCH_TYPE); - - device_add(&i430nx_device); - - return ret; -} - - -int -machine_at_ambradp90_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/ambradp90/1002AX1P.BIO", - "roms/machines/ambradp90/1002AX1P.BI1", 0x1d000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_premiere_common_init(model, PCI_CAN_SWITCH_TYPE); - - device_add(&i430nx_device); - - return ret; -} - - -int -machine_at_430nx_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/430nx/IP.20", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_award_common_init(model); - - device_add(&sio_device); - device_add(&intel_flash_bxt_device); - device_add(&i430nx_device); - - return ret; -} - - -int -machine_at_endeavor_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/endeavor/1006cb0_.bio", - "roms/machines/endeavor/1006cb0_.bi1", 0x1d000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x08, PCI_CARD_VIDEO, 4, 0, 0, 0); - pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x0F, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - - if (gfxcard == VID_INTERNAL) - device_add(&s3_phoenix_trio64_onboard_pci_device); - - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&pc87306_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - - -const device_t * -at_endeavor_get_device(void) -{ - return &s3_phoenix_trio64_onboard_pci_device; -} - - -int -machine_at_zappa_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear_combined("roms/machines/zappa/1006bs0_.bio", - "roms/machines/zappa/1006bs0_.bi1", 0x20000, 128); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_intel_ami_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&pc87306_device); - device_add(&intel_flash_bxt_ami_device); - - return ret; -} - - -int -machine_at_mb500n_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/mb500n/031396s.bin", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x14, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x12, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x11, PCI_CARD_NORMAL, 4, 1, 2, 3); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_device); - - return ret; -} - - -int -machine_at_apollo_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/apollo/S728P.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init_ex(model, 2); - device_add(&ami_apollo_nvr_device); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x08, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x09, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x0B, PCI_CARD_NORMAL, 4, 1, 2, 3); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&pc87332_398_device); - device_add(&intel_flash_bxt_device); - - return ret; -} - - -int -machine_at_powermatev_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/powermatev/BIOS.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x08, PCI_CARD_NORMAL, 0, 0, 0, 0); - pci_register_slot(0x11, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x13, PCI_CARD_NORMAL, 2, 3, 4, 1); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_device); - - return ret; -} - - -int -machine_at_acerv30_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/acerv30/V30R01N9.BIN", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x12, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x11, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x14, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3); - device_add(&i430fx_device); - device_add(&piix_device); - device_add(&keyboard_ps2_acer_pci_device); - device_add(&fdc37c665_device); - - device_add(&sst_flash_29ee010_device); - - return ret; -} - - -static void -machine_at_sp4_common_init(const machine_t *model) -{ - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - /* Excluded: 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F, 10, 11, 12, 13, 14 */ - pci_register_slot(0x0D, PCI_CARD_IDE, 1, 2, 3, 4); - /* Excluded: 02, 03*, 04*, 05*, 06*, 07*, 08* */ - /* Slots: 09 (04), 0A (03), 0B (02), 0C (07) */ - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0B, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x0A, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x09, PCI_CARD_NORMAL, 4, 1, 2, 3); - device_add(&sis_85c50x_device); - device_add(&ide_cmd640_pci_device); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&fdc37c665_device); - device_add(&intel_flash_bxt_device); -} - - -int -machine_at_p5sp4_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/p5sp4/0106.001", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_sp4_common_init(model); - - return ret; -} - - -int -machine_at_p54sp4_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/p54sp4/SI5I0204.AWD", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_sp4_common_init(model); - - return ret; -} - - -int -machine_at_sq588_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/sq588/sq588b03.rom", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x01, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - /* Correct: 0D (01), 0F (02), 11 (03), 13 (04) */ - pci_register_slot(0x02, PCI_CARD_IDE, 1, 2, 3, 4); - pci_register_slot(0x0D, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0F, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x11, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x13, PCI_CARD_NORMAL, 4, 1, 2, 3); - device_add(&sis_85c50x_device); - device_add(&ide_cmd640_pci_single_channel_device); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&fdc37c665_ide_device); - device_add(&sst_flash_29ee010_device); - - return ret; -} - -int -machine_at_hot539_init(const machine_t *model) -{ - int ret; - - ret = bios_load_linear("roms/machines/hot539/539_R17.ROM", - 0x000e0000, 131072, 0); - - if (bios_only || !ret) - return ret; - - machine_at_common_init(model); - - pci_init(PCI_CONFIG_TYPE_1); - pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x12, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0); - pci_register_slot(0x0C, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x15, PCI_CARD_NORMAL, 1, 2, 3, 4); - pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x16, PCI_CARD_NORMAL, 2, 3, 4, 1); - pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 1, 2); - pci_register_slot(0x0F, PCI_CARD_NORMAL, 4, 1, 2, 3); - device_add(&umc_8890_device); - device_add(&umc_8886af_device); - device_add(&intel_flash_bxt_device); - device_add(&keyboard_ps2_ami_pci_device); - device_add(&um8669f_device); - - return ret; -} \ No newline at end of file From 53cb0de504e86100a554a64db4e498d60bf4a11e Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Wed, 17 Nov 2021 17:54:36 -0500 Subject: [PATCH 42/61] Fix PS/2 on 4dps --- src/machine/m_at_386dx_486.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/machine/m_at_386dx_486.c b/src/machine/m_at_386dx_486.c index 50718475b..43d03c385 100644 --- a/src/machine/m_at_386dx_486.c +++ b/src/machine/m_at_386dx_486.c @@ -988,7 +988,7 @@ machine_at_4dps_init(const machine_t *model) pci_register_slot(0x07, PCI_CARD_NORMAL, 4, 1, 2, 3); device_add(&w83787f_device); - device_add(&keyboard_at_ami_device); + device_add(&keyboard_ps2_ami_device); device_add(&intel_flash_bxt_device); From eed84b307dbc4bc4bfe3468946f7c57215f1d8d7 Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Wed, 17 Nov 2021 17:56:31 -0500 Subject: [PATCH 43/61] Fix some typos --- src/machine/machine_table.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 8c79a5747..08cadb621 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -201,7 +201,7 @@ const machine_t machines[] = { /* Most likely has AMI 'F' KBC firmware. */ { "[GC103] Trigem 286M", "tg286m", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 512, 8192, 128, 127, machine_at_tg286m_init, NULL }, /* This has "AMI KEYBOARD BIOS", most likely 'F'. */ - { "[NEAT] Dataexpert 286", "ami286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_neat_ami_init, NULL }, + { "[NEAT] DataExpert 286", "ami286", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_neat_ami_init, NULL }, /* Has IBM AT KBC firmware. */ { "[NEAT] NCR 3302", "3302", MACHINE_TYPE_286, CPU_PKG_286, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_VIDEO, 512, 16384, 128, 127, machine_at_3302_init, NULL }, /* Has IBM AT KBC firmware. */ @@ -257,7 +257,7 @@ const machine_t machines[] = { /* Has an unknown KBC firmware with commands B8 and BB in the style of Phoenix MultiKey and AMIKey-3(!), but also commands E1 and EA with unknown functions. */ - { "[Intel 82335 ADI 386SX", "adi386sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_adi386sx_init, NULL }, + { "[Intel 82335] ADI 386SX", "adi386sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_adi386sx_init, NULL }, /* Has an AMI Keyboard BIOS PLUS KBC firmware ('8'). */ { "[Intel 82335] Shuttle 386SX", "shuttle386sx", MACHINE_TYPE_386SX, CPU_PKG_386SX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 512, 8192, 128, 127, machine_at_shuttle386sx_init, NULL }, /* Uses Commodore (CBM) KBC firmware, to be implemented as identical to @@ -319,9 +319,9 @@ const machine_t machines[] = { Phoenix MultiKey commands. */ { "[OPTi 495] Award 486 clone", "award495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET1, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_init, NULL }, /* Has AMIKey F KBC firmware. */ - { "[OPTi 495] Dataexpert SX495", "ami495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET1, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_ami_init, NULL }, + { "[OPTi 495] DataExpert SX495", "ami495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET1, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_ami_init, NULL }, /* Has AMIKey F KBC firmware (it's just the MR BIOS for the above machine). */ - { "[OPTi 495] Dataexpert SX495 (MR BIOS)", "mr495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_mr_init, NULL }, + { "[OPTi 495] DataExpert SX495 (MR BIOS)", "mr495", MACHINE_TYPE_386DX_486, CPU_PKG_386DX | CPU_PKG_SOCKET3, 0, 0, 0, 0, 0, 0, 0, MACHINE_VLB | MACHINE_IDE, 1024, 32768, 1024, 127, machine_at_opti495_mr_init, NULL }, /* 486 machines - Socket 1 */ /* Has JetKey 5 KBC Firmware which looks like it is a clone of AMIKey type F. @@ -545,7 +545,7 @@ const machine_t machines[] = { /* Has AMIKey F KBC firmware. */ { "[i430FX] AMI Apollo", "apollo", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_apollo_init, NULL }, /* Has AMIKey H KBC firmware. */ - { "[i430FX] Dataexpert EXP8551", "exp8551", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_exp8551_init, NULL }, + { "[i430FX] DataExpert EXP8551", "exp8551", MACHINE_TYPE_SOCKET5, CPU_PKG_SOCKET5_7, 0, 50000000, 66666667, 3380, 3520, 1.5, 2.0, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_exp8551_init, NULL }, /* According to tests from real hardware: This has AMI MegaKey KBC firmware on the PC87306 Super I/O chip, command 0xA1 returns '5'. Command 0xA0 copyright string: (C)1994 AMI . */ From afe6bb08b06813069f3a02f2ebef94359bb452d0 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 00:40:48 +0100 Subject: [PATCH 44/61] Updated the keyboard controller identification for the AMI Excalibur PCI-II. --- src/machine/machine_table.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index 08cadb621..3047b7958 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -524,7 +524,7 @@ const machine_t machines[] = { { "[OPTi 597] Supermicro P5VL-PCI", "p5vl", MACHINE_TYPE_SOCKET4, CPU_PKG_SOCKET4, 0, 60000000, 66666667, 5000, 5000, MACHINE_MULTIPLIER_FIXED, MACHINE_PCI | MACHINE_VLB, 8192, 131072, 8192, 127, machine_at_p5vl_init, NULL }, /* SiS 50x */ - /* This has an unknown AMI KBC firmware, most likely AMIKey / type 'F'. */ + /* This has some form of AMI MegaKey as it uses keyboard controller command 0xCC. */ { "[SiS 501] AMI Excalibur PCI-II Pentium ISA","excaliburpci2", MACHINE_TYPE_SOCKET4, CPU_PKG_SOCKET4, 0, 60000000, 66666667, 5000, 5000, MACHINE_MULTIPLIER_FIXED, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_excaliburpci2_init, NULL }, /* This has an AMIKey-2, which is an updated version of type 'H'. */ { "[SiS 501] ASUS PCI/I-P5SP4", "p5sp4", MACHINE_TYPE_SOCKET4, CPU_PKG_SOCKET4, 0, 60000000, 66666667, 5000, 5000, MACHINE_MULTIPLIER_FIXED, MACHINE_PCI | MACHINE_BUS_PS2 | MACHINE_IDE_DUAL, 8192, 131072, 8192, 127, machine_at_p5sp4_init, NULL }, From eab075aa14bfc04a08e559d5915f78d7c0d365d4 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 10:34:05 +0100 Subject: [PATCH 45/61] Fixed the case of the MT32 and CM32-L ROM file. --- src/sound/midi_mt32.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sound/midi_mt32.c b/src/sound/midi_mt32.c index 5c1325314..a012236c5 100644 --- a/src/sound/midi_mt32.c +++ b/src/sound/midi_mt32.c @@ -226,12 +226,12 @@ void* mt32emu_init(char *control_rom, char *pcm_rom) void *mt32_init(const device_t *info) { - return mt32emu_init("roms/sound/mt32/mt32_control.rom", "roms/sound/mt32/mt32_pcm.rom"); + return mt32emu_init("roms/sound/mt32/MT32_CONTROL.ROM", "roms/sound/mt32/MT32_PCM.ROM"); } void *cm32l_init(const device_t *info) { - return mt32emu_init("roms/sound/cm32l/cm32l_control.rom", "roms/sound/cm32l/cm32l_pcm.rom"); + return mt32emu_init("roms/sound/cm32l/CM32L_CONTROL.ROM", "roms/sound/cm32l/CM32L_PCM.ROM"); } void mt32_close(void* p) From 96807e860b7a8cd0b17274c1310eb6e1ca4f59e2 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 17:52:49 +0100 Subject: [PATCH 46/61] Added the Japanese translation. --- src/win/86Box.rc | 3 +- src/win/languages/ja-JP.rc | 643 +++++++++++++++++++++++++++++++++++++ 2 files changed, 645 insertions(+), 1 deletion(-) create mode 100644 src/win/languages/ja-JP.rc diff --git a/src/win/86Box.rc b/src/win/86Box.rc index 678993eb5..c9c94033e 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -360,6 +360,7 @@ END #endif // not APSTUDIO_INVOKED +#include "languages/zh-CN.rc" #include "languages/cs-CZ.rc" #include "languages/de-DE.rc" #include "languages/en-US.rc" @@ -367,6 +368,6 @@ END #include "languages/fi-FI.rc" #include "languages/hu-HU.rc" #include "languages/it-IT.rc" +#include "languages/ja-JP.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" -#include "languages/zh-CN.rc" diff --git a/src/win/languages/ja-JP.rc b/src/win/languages/ja-JP.rc new file mode 100644 index 000000000..79324fd42 --- /dev/null +++ b/src/win/languages/ja-JP.rc @@ -0,0 +1,643 @@ +//////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#ifdef _WIN32 +LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "動作(&A)" + BEGIN + MENUITEM "キーボードはキャプチャが必要(&K)", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "右CTRLが左ALT(&R)", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "再起動(&H)...", IDM_ACTION_HRESET + MENUITEM "Ctrl+Alt+Del(&C)\tCtrl+F12", IDM_ACTION_RESET_CAD + MENUITEM SEPARATOR + MENUITEM "Ctrl+Alt+Esc(&E)", IDM_ACTION_CTRL_ALT_ESC + MENUITEM SEPARATOR + MENUITEM "一時停止(&P)", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "終了(&X)...", IDM_ACTION_EXIT + END + POPUP "表示(&V)" + BEGIN + MENUITEM "ステータスバーを隠す(&H)", IDM_VID_HIDE_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "ウィンドウのサイズを変更できるようにする(&R)", IDM_VID_RESIZE + MENUITEM "ウィンドウのサイズと位置を記憶(&E)", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "レンダラー(&N)" + BEGIN + MENUITEM "SDL (ソフトウェア)(&S)", IDM_VID_SDL_SW + MENUITEM "SDL (ハードウェア)(&H)", IDM_VID_SDL_HW + MENUITEM "SDL (OpenGL)(&O)", IDM_VID_SDL_OPENGL +#if defined(DEV_BRANCH) && defined(USE_OPENGL) + MENUITEM "OpenGL (3.3コア)(&G)", IDM_VID_OPENGL_CORE +#endif +#ifdef USE_VNC + MENUITEM "VNC(&V)", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "寸法指定...", IDM_VID_SPECIFY_DIM + MENUITEM "4:3に合わせる(&O)", IDM_VID_FORCE43 + POPUP "ウィンドウの倍率(&W)" + BEGIN + MENUITEM "0.5x(&0)", IDM_VID_SCALE_1X + MENUITEM "1x(&1)", IDM_VID_SCALE_2X + MENUITEM "1.5x(&5)", IDM_VID_SCALE_3X + MENUITEM "2x(&2)", IDM_VID_SCALE_4X + END + POPUP "フィルター方式" + BEGIN + MENUITEM "最も近い(&N)", IDM_VID_FILTER_NEAREST + MENUITEM "リニア(&L)", IDM_VID_FILTER_LINEAR + END + MENUITEM "HiDPIスケーリング(&D)", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "フルスクリーン(&F)\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + POPUP "フルスクリーンの比率(&S)" + BEGIN + MENUITEM "フルスクリーンに拡大(&F)", IDM_VID_FS_FULL + MENUITEM "4:3(&4)", IDM_VID_FS_43 + MENUITEM "正方形のピクセル(維持率)(&S)", IDM_VID_FS_KEEPRATIO + MENUITEM "定数倍(&I)", IDM_VID_FS_INT + END + POPUP "E&GA/(S)VGAの設定" + BEGIN + MENUITEM "倒立型VGAモニター(&)", IDM_VID_INVERT + POPUP "VGAスクリーンタイプ(&T)" + BEGIN + MENUITEM "RGBカラー(&C)", IDM_VID_GRAY_RGB + MENUITEM "RGBグレースケール(&R)", IDM_VID_GRAY_MONO + MENUITEM "橙色モニター(&A)", IDM_VID_GRAY_AMBER + MENUITEM "緑色モニター(&G)", IDM_VID_GRAY_GREEN + MENUITEM "白色モニター(&W)", IDM_VID_GRAY_WHITE + END + POPUP "グレースケール表示方式(&C)" + BEGIN + MENUITEM "BT601 (NTSC/PAL)(&6)", IDM_VID_GRAYCT_601 + MENUITEM "BT709 (HDTV)(7)", IDM_VID_GRAYCT_709 + MENUITEM "平均値(&A)", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "CGA/PCjr/Tandy/EGA/(S)VGAオーバースキャン(&G)", IDM_VID_OVERSCAN + MENUITEM "単色モニター用対比転換(&M)", IDM_VID_CGACON + END + MENUITEM "メディア(&M)", IDM_MEDIA + POPUP "ツール(&T)" + BEGIN + MENUITEM "設定(&S)...", IDM_CONFIG + MENUITEM "ステータスバーアイコンの更新(&U)", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "表示言語の変更(&P)...", IDM_VID_PROG_SETT +# ifdef USE_DISCORD + MENUITEM SEPARATOR + MENUITEM "Discordとの連携を可能にする(&D)", IDM_DISCORD +# endif + MENUITEM SEPARATOR + MENUITEM "クリーンショットを撮る(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "サウンドゲイン(&G)...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "トレース開始\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "エンドトレース\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END +#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) + POPUP "ロギング(&L)" + BEGIN +# ifdef ENABLE_BUSLOGIC_LOG + MENUITEM "BusLogicのログを有効にする\tCtrl+F4", IDM_LOG_BUSLOGIC +# endif +# ifdef ENABLE_CDROM_LOG + MENUITEM "CD-ROMのログを有効にする\tCtrl+F5", IDM_LOG_CDROM +# endif +# ifdef ENABLE_D86F_LOG + MENUITEM "フロッピー(86F)のログを有効にする\tCtrl+F6", IDM_LOG_D86F +# endif +# ifdef ENABLE_FDC_LOG + MENUITEM "フロッピーコントローラーのログを有効にする\tCtrl+F7", IDM_LOG_FDC +# endif +# ifdef ENABLE_IDE_LOG + MENUITEM "IDEのログを有効にする\tCtrl+F8", IDM_LOG_IDE +# endif +# ifdef ENABLE_SERIAL_LOG + MENUITEM "シリアルポートのログを有効にする\tCtrl+F3", IDM_LOG_SERIAL +# endif +# ifdef ENABLE_NIC_LOG + MENUITEM "ネットワークのログを有効にする\tCtrl+F9", IDM_LOG_NIC +# endif +# ifdef ENABLE_LOG_COMMANDS +# ifdef ENABLE_LOG_TOGGLES + MENUITEM SEPARATOR +# endif +# ifdef ENABLE_LOG_BREAKPOINT + MENUITEM "ログブレイクポイント(&L)\tCtrl+F10", IDM_LOG_BREAKPOINT +# endif +# ifdef ENABLE_VRAM_DUMP + MENUITEM "ビデオRAMのダンプ(&V)\tCtrl+F1", IDM_DUMP_VRAM +# endif +# endif + END +#endif + POPUP "ヘルプ(&H)" + BEGIN + MENUITEM "ドキュメント(&D)...", IDM_DOCS + MENUITEM "86Boxについて(&A)...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "新規のイメージ(&N)...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "既存のイメージ(&E)...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "既存のイメージ(ライトプロテクト付き) (&W)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "録音する(&R)", IDM_CASSETTE_RECORD + MENUITEM "再生する(&P)", IDM_CASSETTE_PLAY + MENUITEM "冒頭に巻き戻す(&R)", IDM_CASSETTE_REWIND + MENUITEM "最後まで早送りする(&F)", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "イジェクト(&J)", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "イメージ(&I)...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "イジェクト(&J)", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "新規のイメージ(&N)...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "既存のイメージ(&E)...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "既存のイメージ(ライトプロテクト付き) (&W)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "86Fへのエクスポート(&X)...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "イジェクト(&J)", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "ミュート(&M)", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "空(&M)", IDM_CDROM_EMPTY + MENUITEM "前のイメージを再読み込み (&R)", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "イメージ(&I)", IDM_CDROM_IMAGE + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "新規のイメージ(&N)...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "既存のイメージ(&E)...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "既存のイメージ(ライトプロテクト付き) (&W)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "イジェクト(&J)", IDM_ZIP_EJECT + MENUITEM "前のイメージを再読み込み (&R)", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "新規のイメージ(&N)...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "既存のイメージ(&E)...", IDM_MO_IMAGE_EXISTING + MENUITEM "既存のイメージ(ライトプロテクト付き) (&W)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "イジェクト(&J)", IDM_MO_EJECT + MENUITEM "前のイメージを再読み込み (&R)", IDM_MO_RELOAD + END +END + +#if defined(DEV_BRANCH) && defined(USE_OPENGL) +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "目標フレームレート(&F)" + BEGIN + MENUITEM "ビデオとの同期(&S)", IDM_VID_GL_FPS_BLITTER + MENUITEM "25フレーム/秒(&2)", IDM_VID_GL_FPS_25 + MENUITEM "30フレーム/秒(&3)", IDM_VID_GL_FPS_30 + MENUITEM "50フレーム/秒(&5)", IDM_VID_GL_FPS_50 + MENUITEM "60フレーム/秒(&6)", IDM_VID_GL_FPS_60 + MENUITEM "75フレーム/秒(&7)", IDM_VID_GL_FPS_75 + END + MENUITEM "VSync(&V)", IDM_VID_GL_VSYNC + MENUITEM "シェーダの選択(&S)...", IDM_VID_GL_SHADER + MENUITEM "シェーダの削除(&R)", IDM_VID_GL_NOSHADER +END +#endif + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PROG_SETT "表示言語の変更" +#define STR_SND_GAIN "サウンドゲイン" +#define STR_NEW_FLOPPY "新規のイメージ" +#define STR_CONFIG "86Boxの設定" +#define STR_SPECIFY_DIM "メインウィンドウの寸法指定" + +#define STR_OK "OK" +#define STR_CANCEL "キャンセル" +#define STR_GLOBAL "これらの設定をグローバル既定値として保存する(&G)" +#define STR_DEFAULT "既定値(&D)" +#define STR_LANGUAGE "言語:" + +#define STR_GAIN "ゲイン" + +#define STR_FILE_NAME "ファイル名:" +#define STR_DISK_SIZE "ディスクの容量:" +#define STR_RPM_MODE "RPMモード:" +#define STR_PROGRESS "プログレス:" + +#define STR_WIDTH "幅:" +#define STR_HEIGHT "高さ:" +#define STR_LOCK_TO_SIZE "この寸法のロック" + +#define STR_MACHINE_TYPE "マシンタイプ:" +#define STR_MACHINE "マシン:" +#define STR_CONFIGURE "設定" +#define STR_CPU_TYPE "CPUタイプ:" +#define STR_SPEED "速度:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "待機状態:" +#define STR_MB "MB" +#define STR_MEMORY "メモリ:" +#define STR_TIME_SYNC "時刻同期化" +#define STR_DISABLED "使用しない" +#define STR_ENABLED_LOCAL "使用する (現地時間)" +#define STR_ENABLED_UTC "使用する (UTC)" +#define STR_DYNAREC "動的再コンパイル" + +#define STR_VIDEO "ビデオカード:" +#define STR_VOODOO "Voodooグラフィック" + +#define STR_MOUSE "マウス:" +#define STR_JOYSTICK "ジョイスティック:" +#define STR_JOY1 "ジョイスティック1..." +#define STR_JOY2 "ジョイスティック2..." +#define STR_JOY3 "ジョイスティック3..." +#define STR_JOY4 "ジョイスティック4..." + +#define STR_SOUND "サウンドカード:" +#define STR_MIDI "MIDI出力デバイス:" +#define STR_MIDI_IN "MIDI入力デバイス:" +#define STR_MPU401 "MPU-401を単独使用" +#define STR_SSI "Innovation SSI-2001" +#define STR_CMS "CMS / Game Blaster" +#define STR_GUS "Gravis Ultrasound" +#define STR_FLOAT "FLOAT32サウンドを使用" + +#define STR_NET_TYPE "ネットワークタイプ:" +#define STR_PCAP "PCapデバイス:" +#define STR_NET "ネットワークアダプター:" + +#define STR_LPT1 "LPT1デバイス:" +#define STR_LPT2 "LPT2デバイス:" +#define STR_LPT3 "LPT3デバイス:" +#define STR_SERIAL1 "シリアルポート1" +#define STR_SERIAL2 "シリアルポート2" +#define STR_SERIAL3 "シリアルポート3" +#define STR_SERIAL4 "シリアルポート4" +#define STR_PARALLEL1 "パラレルポート1" +#define STR_PARALLEL2 "パラレルポート2" +#define STR_PARALLEL3 "パラレルポート3" + +#define STR_HDC "HDコントローラー:" +#define STR_FDC "FDコントローラー:" +#define STR_IDE_TER "第三世代のIDEコントローラー" +#define STR_IDE_QUA "第四世代のIDEコントローラー" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "コントローラー1:" +#define STR_SCSI_2 "コントローラー2:" +#define STR_SCSI_3 "コントローラー3:" +#define STR_SCSI_4 "コントローラー4:" +#define STR_CASSETTE "カセット" + +#define STR_HDD "ハードディスク:" +#define STR_NEW "新規(&N)..." +#define STR_EXISTING "既定(&E)..." +#define STR_REMOVE "除去(&R)" +#define STR_BUS "バス:" +#define STR_CHANNEL "チャンネル:" +#define STR_ID "ID:" + +#define STR_SPECIFY "参照(&S)..." +#define STR_SECTORS "セクター:" +#define STR_HEADS "ヘッド:" +#define STR_CYLS "シリンダー:" +#define STR_SIZE_MB "容量(MB):" +#define STR_TYPE "形式:" +#define STR_IMG_FORMAT "イメージフォーマット:" +#define STR_BLOCK_SIZE "ブロックサイズ:" + +#define STR_FLOPPY_DRIVES "フロッピードライブ:" +#define STR_TURBO "高速タイミング" +#define STR_CHECKBPB "BPBをチェック" +#define STR_CDROM_DRIVES "CD-ROMドライブ:" + +#define STR_MO_DRIVES "光磁気ドライブ:" +#define STR_ZIP_DRIVES "ZIPドライブ:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISAクロック/RTCカード:" +#define STR_ISAMEM "ISAメモリー拡張ボード" +#define STR_ISAMEM_1 "カード1:" +#define STR_ISAMEM_2 "カード2:" +#define STR_ISAMEM_3 "カード3:" +#define STR_ISAMEM_4 "カード4:" +#define STR_BUGGER "ISABuggerデバイス" +#define STR_POSTCARD "POSTカード" + +#define FONT_SIZE 9 +#define FONT_NAME "Meiryo UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "エラー" + IDS_2050 "致命的なエラー" + IDS_2051 "<予約済み>" + IDS_2052 "CTRL+ALT+PAGE DOWNでウィンドウモードに戻ります。" + IDS_2053 "速度" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIPイメージ (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Boxでは、使用可能なROMイメージが見つかりませんでした。\n\nROMセットをダウンロードして、《roms》ディレクトリに解凍してください。" + IDS_2057 "(空)" + IDS_2058 "ZIPイメージ (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0すべてのファイル (*.*)\0*.*\0" + IDS_2059 "高速" + IDS_2060 "オン" + IDS_2061 "オフ" + IDS_2062 "すべてのイメージ (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0基本的なセクターイメージ (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0面イメージ (*.86F)\0*.86F\0" + IDS_2063 "roms/machinesディレクトリにROMがないため、マシン《%hs》は使用できません。使用可能なマシンに切り替えます。" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "roms/videoディレクトリにROMがないため、ビデオカード《%hs》は使用できません。使用可能なビデオカードに切り替えます。" + IDS_2065 "マシン" + IDS_2066 "画面表示" + IDS_2067 "入力デバイス" + IDS_2068 "サウンド" + IDS_2069 "ネットワーク" + IDS_2070 "ポート (COMトLPT)" + IDS_2071 "ストレージコントローラ" + IDS_2072 "ハードディスク" + IDS_2073 "フロッピートCD-ROMドライブ" + IDS_2074 "その他のリムーバブルデバイス" + IDS_2075 "その他の周辺機器" + IDS_2076 "面イメージ (*.86F)\0*.86F\0" + IDS_2077 "クリックするとマウスを直接入力します" + IDS_2078 "F12+F8キーでマウスの直接入力を解除します" + IDS_2079 "F12+F8キーまたは中クリックでマウスの直接入力を解除します" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2080 "FluidSynthが初期化できません" + IDS_2081 "バス" + IDS_2082 "ファイル" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "BPBをチェック" + IDS_2088 "KB" + IDS_2089 "ビデオレンダラーが初期化できません。" + IDS_2090 "既定値" + IDS_2091 "%iつの待機状態" + IDS_2092 "形式" + IDS_2093 "PCapのセットアップに失敗しました" + IDS_2094 "PCapデバイスがありません" + IDS_2095 "不正なPCapデバイスです" + IDS_2096 "標準的な2ボタンのジョイスティック" + IDS_2097 "標準的な4ボタンのジョイスティック" + IDS_2098 "標準的な6ボタンのジョイスティック" + IDS_2099 "標準的な8ボタンのジョイスティック" + IDS_2100 "CH Flightstick Pro" + IDS_2101 "Microsoft SideWinder Pad" + IDS_2102 "Thrustmasterフライトコントロールシステム" + IDS_2103 "なし" + IDS_2104 "キーボードアクセラレーターを読み込めません。" + IDS_2105 "Raw入力が登録できません。" + IDS_2106 "%u" + IDS_2107 "%u MB (CHS: %i, %i, %i)" + IDS_2108 "フロッピー %i (%s): %ls" + IDS_2109 "すべてのイメージ (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0先行のセクターイメージ (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0基本的なセクターイメージ (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0フラックスイメージ (*.FDI)\0*.FDI\0面イメージ (*.86F;*.MFM)\0*.86F;*.MFM\0すべてのファイル (*.*)\0*.*\0" + IDS_2110 "FreeTypeが初期化できません" + IDS_2111 "SDLが初期化できません, SDL2.dllが必要です" + IDS_2112 "エミュレートされたマシンが再起動しますか?" + IDS_2113 "86Boxを終了しますか?" + IDS_2114 "Ghostscriptが初期化できません" + IDS_2115 "光磁気 %i (%ls): %ls" + IDS_2116 "光磁気イメージ (*.IM?;*.MDI)\0*.IM?;*.MDI\0すべてのファイル (*.*)\0*.*\0" + IDS_2117 "86Boxへようこそ!" + IDS_2118 "内部のコントローラー" + IDS_2119 "終了" + IDS_2120 "ROMが見つかりません" + IDS_2121 "設定を保存しますか?" + IDS_2122 "これにより、エミュレートされたマシンが再起動されます。" + IDS_2123 "保存" + IDS_2124 "86Boxについて" + IDS_2125 "86Box v" EMU_VERSION + + IDS_2126 "古いコンピュータのエミュレータ\n\n著者: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public License version 2以降でリリースされています。詳しくは LICENSE をご覧ください。" + IDS_2127 "OK" + IDS_2128 "ハードウェアが利用できない" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2129 LIB_NAME_PCAP "がインストールされていて、" LIB_NAME_PCAP "に対応したネットワークに接続されていることを確認してください。" + IDS_2130 "不正なコンフィギュレーションです" +#ifdef _WIN32 +#define LIB_NAME_FREETYPE "freetype.dll" +#else +#define LIB_NAME_FREETYPE "libfreetype" +#endif + IDS_2131 "ESC/Pプリンタのエミュレーションには" LIB_NAME_FREETYPE "が必要です。" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2132 LIB_NAME_GS "は、PostScriptファイルのPDFに自動的の切り替えのために所要です。\n\n汎用PostScriptプリンターに送った任意のドクメントは、PostScript (.ps)ファイルとして保存されます。" +#ifdef _WIN32 +#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" +#else +#define LIB_NAME_FLUIDSYNTH "libfluidsynth" +#endif + IDS_2133 "FluidSynthのMIDI出力には" LIB_NAME_FLUIDSYNTH "が必要です。" + IDS_2134 "フルスクリーンモードに移行する" + IDS_2135 "このメッセージを二度と表示しない" + IDS_2136 "終了しない" + IDS_2137 "リセット" + IDS_2138 "リセットしない" + IDS_2139 "光磁気イメージ (*.IM?;*.MDI)\0*.IM?;*.MDI\0すべてのファイル (*.*)\0*.*\0" + IDS_2140 "CD-ROMイメージ (*.ISO;*.CUE)\0*.ISO;*.CUE\0すべてのファイル (*.*)\0*.*\0" + IDS_2141 "%hs デバイスの設定" + IDS_2142 "モニターのスリープモード" + IDS_2143 "OpenGLシェーダー (*.GLSL)\0*.GLSL\0すべてのファイル (*.*)\0*.*\0" + IDS_2144 "OpenGLの設定" + IDS_2145 "サポートされていない設定を読み込んでいます" + IDS_2146 "選ばれたマシンに基づくCPUタイプのフィルタリングは、このエミュレートされたマシンでは使用しないです。\n\nこれがあれば、選ばれたマシンと互換性のないCPUを選ばれることができます。でも、マシンのBIOSまたはその他のソフトウエアとの非互換性がありますことができます。\n\nこの設定を使用することにが公式サポートがないで、すべての提出されたバグレポートは、は無効として閉じられる可能性があります。" + IDS_2147 "つづく" + IDS_2148 "カセット: %s" + IDS_2149 "カセットイメージ (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0すべてのファイル (*.*)\0*.*\0" + IDS_2150 "カートリッジ %i: %ls" + IDS_2151 "カートリッジイメージ (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0すべてのファイル (*.*)\0*.*\0" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "ハードディスク (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLLやESDIのCD-ROMドライブは存在しない" + IDS_4100 "カスタム..." + IDS_4101 "カスタム(大)..." + IDS_4102 "新規のディスクを追加" + IDS_4103 "既定のディスクを追加" + IDS_4104 "HDIのディスクイメージは4GB以上にはできません。" + IDS_4105 "ディスクイメージは127GB以上にはできません。" + IDS_4106 "ハードディスクイメージ (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0すべてのファイル (*.*)\0*.*\0" + IDS_4107 "ファイルの読み込みができません" + IDS_4108 "ファイルの書き込みができません" + IDS_4109 "512バイト以外のセクターサイズを持ったHDIとHDX形式のイメージはサポートしません。" + IDS_4110 "USBはまだサポートしません" + IDS_4111 "ディスクイメージファイルが既に存在する" + IDS_4112 "有効なファイル名を指定してください。" + IDS_4113 "ディスクイメージが作成されました" + IDS_4114 "ファイルが存在し、読み取り可能であることを確認します。" + IDS_4115 "ファイルが書き込み可能なディレクトリに保存されていることを確認してください。" + IDS_4116 "ディスクイメージが大きすぎる" + IDS_4117 "新規ディスクのパーティション設定とフォーマットを必ずしといて下さい。" + IDS_4118 "選択したファイルは上書きされます。使っていいですか?" + IDS_4119 "サポートされていないディスクイメージ" + IDS_4120 "オーバーライト" + IDS_4121 "オーバーライトしない" + IDS_4122 "生のイメージ (.img)" + IDS_4123 "HDIイメージ (.hdi)" + IDS_4124 "HDXイメージ (.hdx)" + IDS_4125 "固定サイズのVHD (.vhd)" + IDS_4126 "ダイナミックサイズのVHD (.vhd)" + IDS_4127 "ディファレンシングのVHD (.vhd)" + IDS_4128 "大きなブロック (2 MB)" + IDS_4129 "小型ブロック (512 KB)" + IDS_4130 "VHDファイル (*.VHD)\0*.VHD\0すべてのファイル (*.*)\0*.*\0" + IDS_4131 "親VHDの選択" + IDS_4132 "親イメージがディファレンシングイメージの作成の後に修正した可能性があります。\n\nイメージファイルが移動またはコピーされたまたはこのディスクを作成したプログラムにバグあり可能性があります。\n\nタイムスタンプを修正します?" + IDS_4133 "親ディスクと子ディスクのタイムスタンプが一致しない" + IDS_4134 "VHD のタイムスタンプを修正できませんでした。" + IDS_4135 "%01i:%02i" + + IDS_4352 "MFM/RLL" + IDS_4353 "XTA" + IDS_4354 "ESDI" + IDS_4355 "IDE" + IDS_4356 "ATAPI" + IDS_4357 "SCSI" + + IDS_4608 "MFM/RLL (%01i:%01i)" + IDS_4609 "XTA (%01i:%01i)" + IDS_4610 "ESDI (%01i:%01i)" + IDS_4611 "IDE (%01i:%01i)" + IDS_4612 "ATAPI (%01i:%01i)" + IDS_4613 "SCSI (%01i:%02i)" + + IDS_5120 "CD-ROM %i (%s): %s" + + IDS_5376 "使用しない" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "使用しない" + IDS_5637 "ATAPI (%01i:%01i)" + IDS_5638 "SCSI (%01i:%02i)" + + IDS_5888 "160 kB" + IDS_5889 "180 kB" + IDS_5890 "320 kB" + IDS_5891 "360 kB" + IDS_5892 "640 kB" + IDS_5893 "720 kB" + IDS_5894 "1.2 MB" + IDS_5895 "1.25 MB" + IDS_5896 "1.44 MB" + IDS_5897 "DMF (クラスター1024)" + IDS_5898 "DMF (クラスター2048)" + IDS_5899 "2.88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128Mb M.O. (ISO 10090)" + IDS_5903 "3.5"" 230Mb M.O. (ISO 13963)" + IDS_5904 "3.5"" 540Mb M.O. (ISO 15498)" + IDS_5905 "3.5"" 640Mb M.O. (ISO 15498)" + IDS_5906 "3.5"" 1.3Gb M.O. (GigaMO)" + IDS_5907 "3.5"" 2.3Gb M.O. (GigaMO 2)" + IDS_5908 "5.25"" 600Mb M.O." + IDS_5909 "5.25"" 650Mb M.O." + IDS_5910 "5.25"" 1Gb M.O." + IDS_5911 "5.25"" 1.3Gb M.O." + + IDS_6144 "規定の回転数" + IDS_6145 "1%低い回転数" + IDS_6146 "1.5%低い回転数" + IDS_6147 "2%低い回転数" + + IDS_7168 "(システム既定値)" +END +#define IDS_LANG_ENUS IDS_7168 + +// English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// From e027f52e57e98ecc0fb662d16a8f7703104e636f Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 17:56:23 +0100 Subject: [PATCH 47/61] Slight correction for the About dialog. --- src/win/languages/cs-CZ.rc | 2 +- src/win/languages/de-DE.rc | 2 +- src/win/languages/en-US.rc | 2 +- src/win/languages/fi-FI.rc | 2 +- src/win/languages/hr-HR.rc | 2 +- src/win/languages/hu-HU.rc | 2 +- src/win/languages/it-IT.rc | 2 +- src/win/languages/pt-BR.rc | 2 +- src/win/languages/pt-PT.rc | 2 +- src/win/languages/zh-CN.rc | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc index e07a91f2e..cd903b9ba 100644 --- a/src/win/languages/cs-CZ.rc +++ b/src/win/languages/cs-CZ.rc @@ -490,7 +490,7 @@ BEGIN IDS_2124 "O programu 86Box" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "Emulátor starých počítačů\n\nAutoři: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nZveřejněno pod licencí GNU General Public License verze 2 nebo novější. Viz soubor LICENSE pro více informací." + IDS_2126 "Emulátor starých počítačů\n\nAutoři: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nZveřejněno pod licencí GNU General Public License verze 2 nebo novější. Viz soubor LICENSE pro více informací." IDS_2127 "OK" IDS_2128 "Hardware není dostupný" #ifdef _WIN32 diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index c8b9f13d0..67e46e318 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -490,7 +490,7 @@ BEGIN IDS_2124 "Über 86Box" IDS_2125 "86Box Version " EMU_VERSION - IDS_2126 "Ein Emulator für alte Computer\n\nAutoren: Sarah Walker, Miran Grča, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho sowie andere.\n\nÜbersetzt von: dob205\n\nVeröffentlicht unter der GNU General Public License in der Version 2 oder neuer. Siehe LICENSE für mehr Informationen." + IDS_2126 "Ein Emulator für alte Computer\n\nAutoren: Sarah Walker, Miran Grča, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho sowie andere.\n\nÜbersetzt von: dob205\n\nVeröffentlicht unter der GNU General Public License in der Version 2 oder neuer. Siehe LICENSE für mehr Informationen." IDS_2127 "OK" IDS_2128 "Hardware nicht verfügbar" #ifdef _WIN32 diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc index 5e9dc9103..64c604aad 100644 --- a/src/win/languages/en-US.rc +++ b/src/win/languages/en-US.rc @@ -490,7 +490,7 @@ BEGIN IDS_2124 "About 86Box" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." + IDS_2126 "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." IDS_2127 "OK" IDS_2128 "Hardware not available" #ifdef _WIN32 diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc index 92e1187d5..a54368ae5 100644 --- a/src/win/languages/fi-FI.rc +++ b/src/win/languages/fi-FI.rc @@ -490,7 +490,7 @@ BEGIN IDS_2124 "Tietoja 86Box:sta" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "Vanhojen tietokoneiden emulaattori\n\nTekijät: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho ja muut.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa." + IDS_2126 "Vanhojen tietokoneiden emulaattori\n\nTekijät: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho ja muut.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa." IDS_2127 "OK" IDS_2128 "Laitteisto ei ole saatavilla" #ifdef _WIN32 diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index 096b36f23..89df536a5 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -490,7 +490,7 @@ BEGIN IDS_2124 "O 86Box" IDS_2125 "86Box verzija " EMU_VERSION - IDS_2126 "Emulator starih računala\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, i drugi.\n\nPreveo: dob205\n\nObjavljeno pod GNU Općom javnom licencom, verzija 2 ili kasnije. Vidi LICENSE za više informacije." + IDS_2126 "Emulator starih računala\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, i drugi.\n\nPreveo: dob205\n\nObjavljeno pod GNU Općom javnom licencom, verzija 2 ili kasnije. Vidi LICENSE za više informacije." IDS_2127 "OK" IDS_2128 "Hardver nije dostupan" #ifdef _WIN32 diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc index 6b10514fc..a9d0f9e0d 100644 --- a/src/win/languages/hu-HU.rc +++ b/src/win/languages/hu-HU.rc @@ -492,7 +492,7 @@ BEGIN IDS_2123 "Mentés" IDS_2124 "A 86Box névjegye" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "Régi számítógépek emulátora\n\nFejlesztők: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nFordította: Laci bá'\n\nMegjelent a GNU General Public License v2 vagy újabb alatt. További információért lásd a LICENSE fájlt." + IDS_2126 "Régi számítógépek emulátora\n\nFejlesztők: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nFordította: Laci bá'\n\nMegjelent a GNU General Public License v2 vagy újabb alatt. További információért lásd a LICENSE fájlt." IDS_2127 "OK" IDS_2128 "Hardver nem elérhető" #ifdef _WIN32 diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc index 81da4ef80..48ee0aaed 100644 --- a/src/win/languages/it-IT.rc +++ b/src/win/languages/it-IT.rc @@ -490,7 +490,7 @@ BEGIN IDS_2124 "Informazioni su 86Box" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "Un emulatore di computer vecchi\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nTradotto da: explorerdotexe\n\nRilasciato sotto la Licenza Pubblica GNU versione 2 o dopo. Vedi LICENSE per maggior informazioni." + IDS_2126 "Un emulatore di computer vecchi\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nTradotto da: explorerdotexe\n\nRilasciato sotto la Licenza Pubblica GNU versione 2 o dopo. Vedi LICENSE per maggior informazioni." IDS_2127 "OK" IDS_2128 "Hardware non disponibile" #ifdef _WIN32 diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index 83bba8c56..ae81ee59f 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -491,7 +491,7 @@ BEGIN IDS_2124 "Sobre o 86Box" IDS_2125 "86Box versão" EMU_VERSION - IDS_2126 "Um emulador de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU versão 2 ou posterior. Veja o arquivo LICENSE para mais informações." + IDS_2126 "Um emulador de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU versão 2 ou posterior. Veja o arquivo LICENSE para mais informações." IDS_2127 "OK" IDS_2128 "Hardware não disponível" #ifdef _WIN32 diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index 4204c5677..361326349 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -490,7 +490,7 @@ BEGIN IDS_2124 "Acerca do 86Box" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "Em emulator de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nUsado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações." + IDS_2126 "Em emulator de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nUsado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações." IDS_2127 "OK" IDS_2128 "Hardware não disponível" #ifdef _WIN32 diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc index e625f53bc..75e98df39 100644 --- a/src/win/languages/zh-CN.rc +++ b/src/win/languages/zh-CN.rc @@ -490,7 +490,7 @@ BEGIN IDS_2124 "关于 86Box" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "一个旧计算机模拟器\n\n作者: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布. 详情见 LICENSE 文件." + IDS_2126 "一个旧计算机模拟器\n\n作者: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布. 详情见 LICENSE 文件." IDS_2127 "确定" IDS_2128 "硬件不可用" #ifdef _WIN32 From 1d815f5b5b96da0d9cc516b38e0d5010212b6185 Mon Sep 17 00:00:00 2001 From: jvernet Date: Thu, 18 Nov 2021 18:04:56 +0100 Subject: [PATCH 48/61] Add MacoSX Glue --- src/mac/macOSXGlue.h | 23 ++++++++++++++++++++++ src/mac/macOSXGlue.m | 45 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 src/mac/macOSXGlue.h create mode 100644 src/mac/macOSXGlue.m diff --git a/src/mac/macOSXGlue.h b/src/mac/macOSXGlue.h new file mode 100644 index 000000000..cd3a880bd --- /dev/null +++ b/src/mac/macOSXGlue.h @@ -0,0 +1,23 @@ +// +// macOSXGlue.h +// TestSDL +// +// Created by Jerome Vernet on 18/11/2021. +// Copyright © 2021 Jerome Vernet. All rights reserved. +// + +#ifndef macOSXGlue_h +#define macOSXGlue_h + +#include + +CF_IMPLICIT_BRIDGING_ENABLED +CF_EXTERN_C_BEGIN +void getDefaultROMPath(char*); +int toto(); + +CF_EXTERN_C_END +CF_IMPLICIT_BRIDGING_DISABLED + + +#endif /* macOSXGlue_h */ diff --git a/src/mac/macOSXGlue.m b/src/mac/macOSXGlue.m new file mode 100644 index 000000000..07b8c3552 --- /dev/null +++ b/src/mac/macOSXGlue.m @@ -0,0 +1,45 @@ +// +// macOSXGlue.m +// 86BOx MacoSx Glue.... +// Todo: so much +// Created by Jerome Vernet on 18/11/2021. +// Copyright © 2021 Jerome Vernet. All rights reserved. +// + +#import + +void getDefaultROMPath(char* Path) +{ + NSFileManager* sharedFM = [NSFileManager defaultManager]; + NSArray* possibleURLs = [sharedFM URLsForDirectory:NSApplicationSupportDirectory + inDomains:NSUserDomainMask]; + NSURL* appSupportDir = nil; + NSURL* appDirectory = nil; + + if ([possibleURLs count] >= 1) { + // Use the first directory (if multiple are returned) + appSupportDir = [possibleURLs objectAtIndex:0]; + } + + // If a valid app support directory exists, add the + // app's bundle ID to it to specify the final directory. + if (appSupportDir) { + NSString* appBundleID = [[NSBundle mainBundle] bundleIdentifier]; + appDirectory = [appSupportDir URLByAppendingPathComponent:appBundleID]; + appDirectory=[appDirectory URLByAppendingPathComponent:@"roms"]; + } + // create ~/Library/Application Support/... stuff + + NSError* theError = nil; + if (![sharedFM createDirectoryAtURL:appDirectory withIntermediateDirectories:YES + attributes:nil error:&theError]) + { + // Handle the error. + NSLog(@"Error creating user library rom path"); + } else NSLog(@"Create user rom path sucessfull"); + + strcpy(Path,[appDirectory fileSystemRepresentation]); + // return appDirectory; +} + + From 97bbbb109022434a59a51cbcfa73b39735ab7572 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 18:28:40 +0100 Subject: [PATCH 49/61] Removed an excess pclog(). --- src/cpu/x86_ops_misc.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/cpu/x86_ops_misc.h b/src/cpu/x86_ops_misc.h index e630c685b..a6e7e9193 100644 --- a/src/cpu/x86_ops_misc.h +++ b/src/cpu/x86_ops_misc.h @@ -607,8 +607,6 @@ static int opF7_l_a32(uint32_t fetchdat) static int opHLT(uint32_t fetchdat) { - pclog("HLT: CS = %04X, DS = %04X, ES = %04X, SS = %04X, IP = %04X\n", CS, DS, ES, SS, cpu_state.pc); - if ((CPL || (cpu_state.eflags&VM_FLAG)) && (cr0&1)) { x86gpf(NULL,0); From 57e09bdda665b6da5326d81274591849e6217f09 Mon Sep 17 00:00:00 2001 From: jvernet Date: Thu, 18 Nov 2021 18:44:27 +0100 Subject: [PATCH 50/61] Update fr-FR.rc --- src/win/languages/fr-FR.rc | 88 +++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index 08614510b..77ee4c749 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -17,10 +17,10 @@ MainMenu MENU DISCARDABLE BEGIN POPUP "&Action" BEGIN - MENUITEM "&Keyboard requires capture", IDM_ACTION_KBD_REQ_CAPTURE - MENUITEM "&Right CTRL is left ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM "&Capturer le clavier", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "CTRL &Droite devient ALT Gauche", IDM_ACTION_RCTRL_IS_LALT MENUITEM SEPARATOR - MENUITEM "&Hard Reset...", IDM_ACTION_HRESET + MENUITEM "&Hard Reset...", IDM_ACTION_HRESET MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD MENUITEM SEPARATOR MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC @@ -49,7 +49,7 @@ BEGIN #endif END MENUITEM SEPARATOR - MENUITEM "Specify dimensions...", IDM_VID_SPECIFY_DIM + MENUITEM "Specifier dimensions...", IDM_VID_SPECIFY_DIM MENUITEM "F&orcer 4:3", IDM_VID_FORCE43 POPUP "&Echelle facteurr" BEGIN @@ -58,25 +58,25 @@ BEGIN MENUITEM "1.&5x", IDM_VID_SCALE_3X MENUITEM "&2x", IDM_VID_SCALE_4X END - POPUP "Filtre method" + POPUP "Methode Filtre" BEGIN MENUITEM "&Plus proche", IDM_VID_FILTER_NEAREST MENUITEM "&Lineaire", IDM_VID_FILTER_LINEAR END - MENUITEM "Hi&DPI scaling", IDM_VID_HIDPI + MENUITEM "Mise à l'échelle Hi&DPI", IDM_VID_HIDPI MENUITEM SEPARATOR MENUITEM "&Plein Ecran\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN POPUP "Mode &Elargi plein écran" BEGIN - MENUITEM "&Full screen stretch", IDM_VID_FS_FULL + MENUITEM "&Plein écran étiré", IDM_VID_FS_FULL MENUITEM "&4:3", IDM_VID_FS_43 - MENUITEM "&Square pixels (Keep ratio)", IDM_VID_FS_KEEPRATIO - MENUITEM "&Integer scale", IDM_VID_FS_INT + MENUITEM "pixels &Carrés(Keep ratio)", IDM_VID_FS_KEEPRATIO + MENUITEM "Echelle &Entière", IDM_VID_FS_INT END - POPUP "E&GA/(S)VGA settings" + POPUP "Réglages E&GA/(S)VGA" BEGIN - MENUITEM "&Inverted VGA monitor", IDM_VID_INVERT - POPUP "VGA screen &type" + MENUITEM "Moniteur VGA &Inversé", IDM_VID_INVERT + POPUP "&Type Ecran VGA" BEGIN MENUITEM "RGB &Couleur", IDM_VID_GRAY_RGB MENUITEM "&RGB Ton de Gris", IDM_VID_GRAY_MONO @@ -88,28 +88,28 @@ BEGIN BEGIN MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 - MENUITEM "&Average", IDM_VID_GRAYCT_AVE + MENUITEM "&Moyenne", IDM_VID_GRAYCT_AVE END END MENUITEM SEPARATOR MENUITEM "CGA/PCjr/Tandy/E&GA/(S)VGA overscan", IDM_VID_OVERSCAN - MENUITEM "Change contrast for &monochrome display", IDM_VID_CGACON + MENUITEM "Modifier contraste affichage &monochrome", IDM_VID_CGACON END MENUITEM "&Media", IDM_MEDIA POPUP "Ou&tils" BEGIN MENUITEM "&Réglages...", IDM_CONFIG - MENUITEM "&Update status bar icons", IDM_UPDATE_ICONS + MENUITEM "Mettre à jour la barre de stat&us", IDM_UPDATE_ICONS MENUITEM SEPARATOR MENUITEM "Changer la &langue...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR - MENUITEM "Enable &Discord integration", IDM_DISCORD + MENUITEM "Activer intégration &Discord", IDM_DISCORD # endif MENUITEM SEPARATOR - MENUITEM "Take s&creenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM "Copie &Ecran\tCtrl+F11", IDM_ACTION_SCREENSHOT MENUITEM SEPARATOR - MENUITEM "Sound &gain...", IDM_SND_GAIN + MENUITEM "&Gain Son...", IDM_SND_GAIN #ifdef MTR_ENABLED MENUITEM SEPARATOR MENUITEM "Begin trace\tCtrl+T", IDM_ACTION_BEGIN_TRACE @@ -174,12 +174,12 @@ BEGIN MENUITEM "Image &Existante...", IDM_CASSETTE_IMAGE_EXISTING MENUITEM "Existing image (&Write-protected)...", IDM_CASSETTE_IMAGE_EXISTING_WP MENUITEM SEPARATOR - MENUITEM "&Record", IDM_CASSETTE_RECORD - MENUITEM "&Play", IDM_CASSETTE_PLAY - MENUITEM "&Rewind to the beginning", IDM_CASSETTE_REWIND - MENUITEM "&Fast forward to the end", IDM_CASSETTE_FAST_FORWARD + MENUITEM "En®istrer", IDM_CASSETTE_RECORD + MENUITEM "&Jouer", IDM_CASSETTE_PLAY + MENUITEM "&Revenir au debut", IDM_CASSETTE_REWIND + MENUITEM "Aller à la &Fin", IDM_CASSETTE_FAST_FORWARD MENUITEM SEPARATOR - MENUITEM "E&ject", IDM_CASSETTE_EJECT + MENUITEM "E&jecter", IDM_CASSETTE_EJECT END END @@ -202,7 +202,7 @@ BEGIN MENUITEM "Image &Existante...", IDM_FLOPPY_IMAGE_EXISTING MENUITEM "Existing image (&Write-protected)...", IDM_FLOPPY_IMAGE_EXISTING_WP MENUITEM SEPARATOR - MENUITEM "E&xport to 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM "E&xport vers 86F...", IDM_FLOPPY_EXPORT_TO_86F MENUITEM SEPARATOR MENUITEM "E&jecter", IDM_FLOPPY_EJECT END @@ -214,8 +214,8 @@ BEGIN BEGIN MENUITEM "&Mute", IDM_CDROM_MUTE MENUITEM SEPARATOR - MENUITEM "E&mpty", IDM_CDROM_EMPTY - MENUITEM "&Reload previous image", IDM_CDROM_RELOAD + MENUITEM "E&jecter", IDM_CDROM_EMPTY + MENUITEM "&Recharger image précedente", IDM_CDROM_RELOAD MENUITEM SEPARATOR MENUITEM "&Image", IDM_CDROM_IMAGE END @@ -225,13 +225,13 @@ ZIPSubmenu MENU DISCARDABLE BEGIN POPUP "" BEGIN - MENUITEM "&New image...", IDM_ZIP_IMAGE_NEW + MENUITEM "&Nouvelle image...", IDM_ZIP_IMAGE_NEW MENUITEM SEPARATOR - MENUITEM "&Existing image...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Image &Existante...", IDM_ZIP_IMAGE_EXISTING MENUITEM "Existing image (&Write-protected)...", IDM_ZIP_IMAGE_EXISTING_WP MENUITEM SEPARATOR - MENUITEM "E&ject", IDM_ZIP_EJECT - MENUITEM "&Reload previous image", IDM_ZIP_RELOAD + MENUITEM "E&jecter", IDM_ZIP_EJECT + MENUITEM "&Recharger image précédente", IDM_ZIP_RELOAD END END @@ -239,13 +239,13 @@ MOSubmenu MENU DISCARDABLE BEGIN POPUP "" BEGIN - MENUITEM "&New image...", IDM_MO_IMAGE_NEW + MENUITEM "&Nouvelle image...", IDM_MO_IMAGE_NEW MENUITEM SEPARATOR - MENUITEM "&Existing image...", IDM_MO_IMAGE_EXISTING - MENUITEM "Existing image (&Write-protected)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM "Image &Existante...", IDM_MO_IMAGE_EXISTING + MENUITEM "Image Existante (&Write-protected)...", IDM_MO_IMAGE_EXISTING_WP MENUITEM SEPARATOR - MENUITEM "E&ject", IDM_MO_EJECT - MENUITEM "&Reload previous image", IDM_MO_RELOAD + MENUITEM "E&jecter", IDM_MO_EJECT + MENUITEM "&Recharger image précédente", IDM_MO_RELOAD END END @@ -273,22 +273,22 @@ END // Dialog // -#define STR_PROG_SETT "Change Display Language" -#define STR_SND_GAIN "Sound Gain" -#define STR_NEW_FLOPPY "New Image" -#define STR_CONFIG "86Box Settings" +#define STR_PROG_SETT "Changer Langue" +#define STR_SND_GAIN "Gain Son" +#define STR_NEW_FLOPPY "Nouvelle Image" +#define STR_CONFIG "Réglages 86Box" #define STR_SPECIFY_DIM "Specify Main Window Dimensions" #define STR_OK "OK" -#define STR_CANCEL "Cancel" +#define STR_CANCEL "Annuler" #define STR_GLOBAL "Save these settings as &global defaults" -#define STR_DEFAULT "&Default" -#define STR_LANGUAGE "Language:" +#define STR_DEFAULT "&Defaut" +#define STR_LANGUAGE "Langue:" #define STR_GAIN "Gain" -#define STR_FILE_NAME "File name:" -#define STR_DISK_SIZE "Disk size:" +#define STR_FILE_NAME "Nom Fichier:" +#define STR_DISK_SIZE "Taille Disque:" #define STR_RPM_MODE "RPM mode:" #define STR_PROGRESS "Progress:" From aa5210ad508f7c2f39cfc32f533e75c9cb2a71ff Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 21:46:05 +0100 Subject: [PATCH 51/61] Added the Slovenian translation by Overdoze (with some corrections by me). --- src/win/86Box.rc | 1 + src/win/languages/sl-SI.rc | 643 +++++++++++++++++++++++++++++++++++++ 2 files changed, 644 insertions(+) create mode 100644 src/win/languages/sl-SI.rc diff --git a/src/win/86Box.rc b/src/win/86Box.rc index c9c94033e..2239cdfb7 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -371,3 +371,4 @@ END #include "languages/ja-JP.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" +#include "languages/sl-SI.rc" diff --git a/src/win/languages/sl-SI.rc b/src/win/languages/sl-SI.rc new file mode 100644 index 000000000..336882e3b --- /dev/null +++ b/src/win/languages/sl-SI.rc @@ -0,0 +1,643 @@ +//////////////////////////////////////////////////////////////////////////// +// Slovenian resources + +#ifdef _WIN32 +LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Dejanja" + BEGIN + MENUITEM "&Tipkovnica potrebuje zajem", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Desni CTRL je levi ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Ponovni zagon...", IDM_ACTION_HRESET + MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD + MENUITEM SEPARATOR + MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC + MENUITEM SEPARATOR + MENUITEM "&Premor", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "Iz&hod...", IDM_ACTION_EXIT + END + POPUP "&Pogled" + BEGIN + MENUITEM "&Skrij statusno vrstico", IDM_VID_HIDE_STATUS_BAR + MENUITEM SEPARATOR + MENUITEM "S&premenljiva velikost okna", IDM_VID_RESIZE + MENUITEM "&Zapomni si velikost in položaj", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Upodabljanje" + BEGIN + MENUITEM "&SDL (programsko)", IDM_VID_SDL_SW + MENUITEM "SDL (s&trojno)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL +#if defined(DEV_BRANCH) && defined(USE_OPENGL) + MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE +#endif +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "&Določi velikost...", IDM_VID_SPECIFY_DIM + MENUITEM "&Vsili 4:3 razmerje zaslona", IDM_VID_FORCE43 + POPUP "&Faktor velikosti okna" + BEGIN + MENUITEM "&0.5x", IDM_VID_SCALE_1X + MENUITEM "&1x", IDM_VID_SCALE_2X + MENUITEM "1.&5x", IDM_VID_SCALE_3X + MENUITEM "&2x", IDM_VID_SCALE_4X + END + POPUP "&Metoda filtriranja" + BEGIN + MENUITEM "&Najbližja", IDM_VID_FILTER_NEAREST + MENUITEM "&Linearna", IDM_VID_FILTER_LINEAR + END + MENUITEM "&Raztezanje za visok DPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Celozaslonski način\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN + POPUP "&Način celozaslonskega raztezanja" + BEGIN + MENUITEM "&Raztegni na celoten zaslon", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Kvadratni piksli (ohrani razmerje)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Celoštevilsko raztezanje", IDM_VID_FS_INT + END + POPUP "Nastavitve E&GA/(S)VGA" + BEGIN + MENUITEM "&Obrni barve zaslona VGA", IDM_VID_INVERT + POPUP "&Vrsta zaslona VGA" + BEGIN + MENUITEM "&Barvni RGB", IDM_VID_GRAY_RGB + MENUITEM "&Sivinski RGB", IDM_VID_GRAY_MONO + MENUITEM "&Rumeni zaslon", IDM_VID_GRAY_AMBER + MENUITEM "&Zeleni zaslon", IDM_VID_GRAY_GREEN + MENUITEM "B&eli zaslon", IDM_VID_GRAY_WHITE + END + POPUP "V&rsta pretvorbe sivin" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Povprečje", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "&Presežek slike CGA/PCjr/Tandy/EGA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "&Spremeni contrast za črno-beli zaslon", IDM_VID_CGACON + END + MENUITEM "&Mediji", IDM_MEDIA + POPUP "&Orodja" + BEGIN + MENUITEM "&Nastavitve...", IDM_CONFIG + MENUITEM "&Posodabljaj ikone statusne vrstice", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "&Spremeni jezik...", IDM_VID_PROG_SETT +# ifdef USE_DISCORD + MENUITEM SEPARATOR + MENUITEM "Omogoči integracijo s programom &Discord", IDM_DISCORD +# endif + MENUITEM SEPARATOR + MENUITEM "&Zajemi posnetek zaslona\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Ojačanje zvoka...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Z&ačni sledenje\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "&Končaj sledenje\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END +#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) + POPUP "&Beleženje" + BEGIN +# ifdef ENABLE_BUSLOGIC_LOG + MENUITEM "Omogoči beležnje za BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC +# endif +# ifdef ENABLE_CDROM_LOG + MENUITEM "Omogoči beležnje za CD-ROM\tCtrl+F5", IDM_LOG_CDROM +# endif +# ifdef ENABLE_D86F_LOG + MENUITEM "Omogoči beležnje za diskete (86F)\tCtrl+F6", IDM_LOG_D86F +# endif +# ifdef ENABLE_FDC_LOG + MENUITEM "Omogoči beležnje za disketni krmilnik\tCtrl+F7", IDM_LOG_FDC +# endif +# ifdef ENABLE_IDE_LOG + MENUITEM "Omogoči beležnje za IDE\tCtrl+F8", IDM_LOG_IDE +# endif +# ifdef ENABLE_SERIAL_LOG + MENUITEM "Omogoči beležnje za serijska vrata\tCtrl+F3", IDM_LOG_SERIAL +# endif +# ifdef ENABLE_NIC_LOG + MENUITEM "Omogoči beležnje za omrežje\tCtrl+F9", IDM_LOG_NIC +# endif +# ifdef ENABLE_LOG_COMMANDS +# ifdef ENABLE_LOG_TOGGLES + MENUITEM SEPARATOR +# endif +# ifdef ENABLE_LOG_BREAKPOINT + MENUITEM "&Zabeleži prelomno točko\tCtrl+F10", IDM_LOG_BREAKPOINT +# endif +# ifdef ENABLE_VRAM_DUMP + MENUITEM "&Izvozi pomnilnik zaslona\tCtrl+F1", IDM_DUMP_VRAM +# endif +# endif + END +#endif + POPUP "&Pomoč" + BEGIN + MENUITEM "&Dokumentacija...", IDM_DOCS + MENUITEM "&O programu 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova slika...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Obstoječa slika...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Obstoječa slika (&samo za branje)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "Snemaj", IDM_CASSETTE_RECORD + MENUITEM "Predvajaj", IDM_CASSETTE_PLAY + MENUITEM "Previj na začetek", IDM_CASSETTE_REWIND + MENUITEM "Preskoči na konec", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "Izvrzi", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "Slika...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "Izvrzi", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova slika...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Obstoječa slika...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Obstoječa slika (&samo za branje)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Izvozi v 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "I&zvrzi", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Utišaj", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&Prazen", IDM_CDROM_EMPTY + MENUITEM "&Naloži zadnjo sliko", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Slika", IDM_CDROM_IMAGE + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova slika...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Obstoječa slika...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Obstoječa slika (&samo za branje)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "I&zvrzi", IDM_ZIP_EJECT + MENUITEM "&Naloži zadnjo sliko", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova slika...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Obstoječa slika...", IDM_MO_IMAGE_EXISTING + MENUITEM "Obstoječa slika (&samo za branje)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "I&zvrzi", IDM_MO_EJECT + MENUITEM "&Naloži zadnjo sliko", IDM_MO_RELOAD + END +END + +#if defined(DEV_BRANCH) && defined(USE_OPENGL) +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "&Ciljno št. sličic na sekundo" + BEGIN + MENUITEM "&Sinhroniziraj z videom", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 fps", IDM_VID_GL_FPS_25 + MENUITEM "&30 fps", IDM_VID_GL_FPS_30 + MENUITEM "&50 fps", IDM_VID_GL_FPS_50 + MENUITEM "&60 fps", IDM_VID_GL_FPS_60 + MENUITEM "&75 fps", IDM_VID_GL_FPS_75 + END + MENUITEM "&VSync", IDM_VID_GL_VSYNC + MENUITEM "&Izberi senčilnik...", IDM_VID_GL_SHADER + MENUITEM "&Odstrani senčilnik", IDM_VID_GL_NOSHADER +END +#endif + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PROG_SETT "Spremeni jezik" +#define STR_SND_GAIN "Ojačanje zvoka" +#define STR_NEW_FLOPPY "Nova slika" +#define STR_CONFIG "Nastavitve programa 86Box" +#define STR_SPECIFY_DIM "Določi velikost glavnega okna" + +#define STR_OK "V redu" +#define STR_CANCEL "Prekliči" +#define STR_GLOBAL "Shrani te nastavitve kot globalne privzete" +#define STR_DEFAULT "Privzeto" +#define STR_LANGUAGE "Jezik:" + +#define STR_GAIN "Ojačanje" + +#define STR_FILE_NAME "Ime datoteke:" +#define STR_DISK_SIZE "Velikost diska:" +#define STR_RPM_MODE "Način števila obratov:" +#define STR_PROGRESS "Napredek:" + +#define STR_WIDTH "Širina:" +#define STR_HEIGHT "Višina:" +#define STR_LOCK_TO_SIZE "Zakleni na to velikost" + +#define STR_MACHINE_TYPE "Vrsta sistema:" +#define STR_MACHINE "Sistem:" +#define STR_CONFIGURE "Nastavi" +#define STR_CPU_TYPE "Vrsta procesorja:" +#define STR_SPEED "Hitrost:" +#define STR_FPU "Procesor plavajoče vejice:" +#define STR_WAIT_STATES "Čakalna stanja:" +#define STR_MB "MB" +#define STR_MEMORY "Spomin:" +#define STR_TIME_SYNC "Sinhronizacija časa" +#define STR_DISABLED "Onemogočeno" +#define STR_ENABLED_LOCAL "Omogočeno (lokalni čas)" +#define STR_ENABLED_UTC "Omogočeno (UTC)" +#define STR_DYNAREC "Dinamični prevajalnik" + +#define STR_VIDEO "Video:" +#define STR_VOODOO "Voodoo grafika" + +#define STR_MOUSE "Miška:" +#define STR_JOYSTICK "Igralna palica:" +#define STR_JOY1 "Igralna palica 1..." +#define STR_JOY2 "Igralna palica 2..." +#define STR_JOY3 "Igralna palica 3..." +#define STR_JOY4 "Igralna palica 4..." + +#define STR_SOUND "Zvočna kartica:" +#define STR_MIDI "Izhodna naprava MIDI:" +#define STR_MIDI_IN "Vhodna naprava MIDI:" +#define STR_MPU401 "Samostojen MPU-401" +#define STR_SSI "Innovation SSI-2001" +#define STR_CMS "CMS / Game Blaster" +#define STR_GUS "Gravis Ultrasound" +#define STR_FLOAT "Uporabi FLOAT32 za zvok" + +#define STR_NET_TYPE "Vrsta omrežja:" +#define STR_PCAP "Naprava PCap:" +#define STR_NET "Omrežna kartica:" + +#define STR_LPT1 "Naprava LPT1:" +#define STR_LPT2 "Naprava LPT2:" +#define STR_LPT3 "Naprava LPT3:" +#define STR_SERIAL1 "Serijska vrata 1" +#define STR_SERIAL2 "Serijska vrata 2" +#define STR_SERIAL3 "Serijska vrata 3" +#define STR_SERIAL4 "Serijska vrata 4" +#define STR_PARALLEL1 "Paralelna vrata 1" +#define STR_PARALLEL2 "Paralelna vrata 2" +#define STR_PARALLEL3 "Paralelna vrata 3" + +#define STR_HDC "Krmilnik trdega diska:" +#define STR_FDC "Krmilnik disketnika:" +#define STR_IDE_TER "Terciarni krmilnik IDE" +#define STR_IDE_QUA "Kvartarni krmilnik IDE" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Krmilnik 1:" +#define STR_SCSI_2 "Krmilnik 2:" +#define STR_SCSI_3 "Krmilnik 3:" +#define STR_SCSI_4 "Krmilnik 4:" +#define STR_CASSETTE "Kasetnik" + +#define STR_HDD "Trdi diski:" +#define STR_NEW "Nov..." +#define STR_EXISTING "Obstoječ..." +#define STR_REMOVE "Odstrani" +#define STR_BUS "Vodilo:" +#define STR_CHANNEL "Kanal:" +#define STR_ID "ID:" + +#define STR_SPECIFY "Določi..." +#define STR_SECTORS "Sektorji:" +#define STR_HEADS "Glave:" +#define STR_CYLS "Cilindri:" +#define STR_SIZE_MB "Velikost (MB):" +#define STR_TYPE "Vrsta:" +#define STR_IMG_FORMAT "Format slike:" +#define STR_BLOCK_SIZE "Velikost bloka:" + +#define STR_FLOPPY_DRIVES "Disketni pogoni:" +#define STR_TURBO "Turbo časovniki" +#define STR_CHECKBPB "Preveri BPB" +#define STR_CDROM_DRIVES "Pogoni CD-ROM:" + +#define STR_MO_DRIVES "Magnetno-optični pogoni:" +#define STR_ZIP_DRIVES "Pogoni ZIP:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "Ura v realnem času ISA:" +#define STR_ISAMEM "Razširitev spomina ISA" +#define STR_ISAMEM_1 "Kartica 1:" +#define STR_ISAMEM_2 "Kartica 2:" +#define STR_ISAMEM_3 "Kartica 3:" +#define STR_ISAMEM_4 "Kartica 4:" +#define STR_BUGGER "Naprava ISABugger" +#define STR_POSTCARD "Kartica POST" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Napaka" + IDS_2050 "Kritična napaka" + IDS_2051 "" + IDS_2052 "Pritisnite CTRL+ALT+PAGE DOWN za povratek iz celozaslonskega načina." + IDS_2053 "Hitrost" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP slike (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box ni našel nobenih uporabnih ROM slik.\n\nProsim prenesite set ROM-ov in ga razširite v mapo ""roms""." + IDS_2057 "(prazno)" + IDS_2058 "ZIP slike (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Vse datoteke (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Vključeno" + IDS_2061 "Izključeno" + IDS_2062 "Vse slike (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Osnovne sektorske slike (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Površinske slike (*.86F)\0*.86F\0" + IDS_2063 "Sistem ""%hs"" ni na voljo zaradi manjkajočih ROM-ov v mapi roms/machines. Preklapljam na drug sistem, ki je na voljo." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Grafična kartica ""%hs"" ni na voljo zaradi manjkajočih ROM-ov v mapi roms/video. Preklapljam na drugo grafično kartico, ki je na voljo.." + IDS_2065 "Sistem" + IDS_2066 "Zaslon" + IDS_2067 "Vhodne naprave" + IDS_2068 "Zvok" + IDS_2069 "Omrežje" + IDS_2070 "Vrata (COM & LPT)" + IDS_2071 "Krmilniki shrambe" + IDS_2072 "Trdi diski" + IDS_2073 "Disketni in CD-ROM pogoni" + IDS_2074 "Druge odstranljive naprave" + IDS_2075 "Druga periferija" + IDS_2076 "Površinske slike (*.86F)\0*.86F\0" + IDS_2077 "Kliknite za zajem miške" + IDS_2078 "Pritisnite F8+F12 za izpust miške" + IDS_2079 "Pritisnite F8+F12 ali srednji gumb za izpust miške" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2080 "Ne morem inicializirati FluidSynth" + IDS_2081 "Vodilo" + IDS_2082 "Datoteka" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Preveri BPB" + IDS_2088 "KB" + IDS_2089 "Ne morem inicializirati pogona upodabljanja." + IDS_2090 "Privzeto" + IDS_2091 "%i stanj čakanja" + IDS_2092 "Vrsta" + IDS_2093 "Nastavitev PCap ni uspela" + IDS_2094 "Nobena naprava PCap ni bila najdena" + IDS_2095 "Neveljavna naprava PCap" + IDS_2096 "Standardna krmilna palica z 2 gumboma" + IDS_2097 "Standardna krmilna palica s 4 gumbi" + IDS_2098 "Standardna krmilna palica s 6 gumbi" + IDS_2099 "Standardna krmilna palica z 8 gumbi" + IDS_2100 "CH Flightstick Pro" + IDS_2101 "Microsoft SideWinder Pad" + IDS_2102 "Thrustmaster Flight Control System" + IDS_2103 "Brez" + IDS_2104 "Ne morem naložiti pospeševalnikov tipkovnice." + IDS_2105 "Ne morem registrirati surovega vnosa." + IDS_2106 "%u" + IDS_2107 "%u MB (CHS: %i, %i, %i)" + IDS_2108 "Disketa %i (%s): %ls" + IDS_2109 "Vse slike (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Napredne sektorske slike (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Osnovne sektorske slike (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Tokovne slike (*.FDI)\0*.FDI\0Površinske slike (*.86F;*.MFM)\0*.86F;*.MFM\0Vse datoteke (*.*)\0*.*\0" + IDS_2110 "Ne morem inicializirati FreeType" + IDS_2111 "Ne morem inicializirati SDL, potrebna je knjižica SDL2.dll" + IDS_2112 "Ste prepričani, da želite ponovno zagnati emulirani sistem?" + IDS_2113 "Ste prepričani, da želite zapreti 86Box?" + IDS_2114 "Ne morem inicializirati Ghostscript" + IDS_2115 "MO %i (%ls): %ls" + IDS_2116 "Slike MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Vse datoteke (*.*)\0*.*\0" + IDS_2117 "Dobrodošli v 86Box!" + IDS_2118 "Notranji krmilnik" + IDS_2119 "Izhod" + IDS_2120 "Nobeni ROM-i niso bili najdeni" + IDS_2121 "Želite shraniti nastavitve?" + IDS_2122 "To bo ponovno zagnalo emuliran sistem." + IDS_2123 "Shrani" + IDS_2124 "O programu 86Box" + IDS_2125 "86Box v" EMU_VERSION + + IDS_2126 "Emulator starih računalnikov\n\nAvtorji: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho in drugi.\n\nIzdano pod licenco GNU General Public License različica 2 ali novejša. Glej datoteko LICENSE za več informacij." + IDS_2127 "V redu" + IDS_2128 "Strojna oprema ni na voljo" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2129 "Prepičajte se, da je nameščen " LIB_NAME_PCAP " in da ste na omrežni povezavi, ki je združljiva z " LIB_NAME_PCAP + IDS_2130 "Neveljavna konfiguracija" +#ifdef _WIN32 +#define LIB_NAME_FREETYPE "freetype.dll" +#else +#define LIB_NAME_FREETYPE "libfreetype" +#endif + IDS_2131 LIB_NAME_FREETYPE " je potreben za emuliranje ESC/P tiskalnika." +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2132 LIB_NAME_GS " je potreben za samodejno pretvorbo PostScript datotek v PDF.\n\nVsi dokumenti, poslani generičnemu PostScript tiskalniku bodo shranjeni kot PostScript (.ps) datoteke." +#ifdef _WIN32 +#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" +#else +#define LIB_NAME_FLUIDSYNTH "libfluidsynth" +#endif + IDS_2133 LIB_NAME_FLUIDSYNTH " je potreben za FluidSynth MIDI izhod." + IDS_2134 "Preklapljam v celozaslonski način" + IDS_2135 "Ne pokaži več tega sporočila" + IDS_2136 "Prekliči izhod" + IDS_2137 "Resetiraj" + IDS_2138 "Ne resetiraj" + IDS_2139 "Slike MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Vse datoteke (*.*)\0*.*\0" + IDS_2140 "Slike CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Vse datoteke (*.*)\0*.*\0" + IDS_2141 "Konfiguracija naprave %hs" + IDS_2142 "Zaslon v načinu spanja" + IDS_2143 "Senčilniki OpenGL (*.GLSL)\0*.GLSL\0Vse datoteke (*.*)\0*.*\0" + IDS_2144 "Možnosti OpenGL" + IDS_2145 "Nalagate nepodprto konfiguracijo" + IDS_2146 "Filtriranje vrste procesorja glede na izbran sistem je onemogočeno za ta emuliran sistem.\n\nTako lahko izberete procesor, ki je sicer nezdružljiv z izbranim sistemom. Vendar lahko naletite na nezdružljivosti z BIOS-om sistema ali drugo programsko opremo\n\nOmogočanje te nastavitve ni uradno podprto, vsa poročila o hroščih iz tega naslova pa bodo zaprta kot neveljavna." + IDS_2147 "Nadaljuj" + IDS_2148 "Kaseta: %s" + IDS_2149 "Slike kaset (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Vse datoteke (*.*)\0*.*\0" + IDS_2150 "Spominski vložek %i: %ls" + IDS_2151 "Slike spominskega vložka (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Vse datoteke (*.*)\0*.*\0" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Trdi disk (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLL ali ESDI pogoni CD-ROM niso nikoli obstajali" + IDS_4100 "Po meri..." + IDS_4101 "Po meri (velik)..." + IDS_4102 "Dodaj nov trdi disk" + IDS_4103 "Dodaj obstoječ trdi disk" + IDS_4104 "Slike diska HDI ne morejo biti večje od 4 GB." + IDS_4105 "Slike diska ne morejo biti večje od 127 GB." + IDS_4106 "Slike trdega diska (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Vse datoteke (*.*)\0*.*\0" + IDS_4107 "Ne morem prebrati datoteke" + IDS_4108 "Ne morem pisati v datoteko" + IDS_4109 "Slike HDI ali HDX, ki nimajo sektorjev velikosti 512 bajtov, niso podprte." + IDS_4110 "USB še ni podprt" + IDS_4111 "Datoteka s sliko diska že obstaja" + IDS_4112 "Prosim, navedite veljavno ime datoteke." + IDS_4113 "Slika diska ustvarjena" + IDS_4114 "Prepričajte se, da datoteka obstaja in je berljiva." + IDS_4115 "Prepričajte se, da datoteko shranjujete v zapisljivo mapo." + IDS_4116 "Slika diska je prevelika" + IDS_4117 "Ne pozabite na novem disku ustvariti particij in jih formatirati." + IDS_4118 "Izbrana datoteka bo prepisana. Ali jo res želite uporabiti?" + IDS_4119 "Nepodprta slika diska" + IDS_4120 "Prepiši" + IDS_4121 "Ne prepiši" + IDS_4122 "Surova slika (.img)" + IDS_4123 "Slika HDI (.hdi)" + IDS_4124 "Slika HDX (.hdx)" + IDS_4125 "VHD fiksne velikosti (.vhd)" + IDS_4126 "Dinamičen VHD (.vhd)" + IDS_4127 "Diferencialni VHD (.vhd)" + IDS_4128 "Veliki bloki (2 MB)" + IDS_4129 "Mali bloki (512 KB)" + IDS_4130 "Datoteke VHD (*.VHD)\0*.VHD\0Vse datoteke (*.*)\0*.*\0" + IDS_4131 "Izberite starševsko sliko VHD" + IDS_4132 "To lahko pomeni, da je bila starševska slika spremenjena potem, ko je že bila ustvarjena diferencialna slika.\n\nDo tega lahko pride tudi kadar so datoteke slik diska premaknjene ali kopirane, ali pa gre za hrošča v programu, ki je ustvaril ta disk.\n\nŽelite popraviti časovni žig?" + IDS_4133 "Časovna žiga starševske slike diska in slike diska otroka se ne ujemata" + IDS_4134 "Ne morem popraviti časovnega žiga VHD." + IDS_4135 "%01i:%02i" + + IDS_4352 "MFM/RLL" + IDS_4353 "XTA" + IDS_4354 "ESDI" + IDS_4355 "IDE" + IDS_4356 "ATAPI" + IDS_4357 "SCSI" + + IDS_4608 "MFM/RLL (%01i:%01i)" + IDS_4609 "XTA (%01i:%01i)" + IDS_4610 "ESDI (%01i:%01i)" + IDS_4611 "IDE (%01i:%01i)" + IDS_4612 "ATAPI (%01i:%01i)" + IDS_4613 "SCSI (%01i:%02i)" + + IDS_5120 "CD-ROM %i (%s): %s" + + IDS_5376 "Onemogočeno" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Onemogočeno" + IDS_5637 "ATAPI (%01i:%01i)" + IDS_5638 "SCSI (%01i:%02i)" + + IDS_5888 "160 kB" + IDS_5889 "180 kB" + IDS_5890 "320 kB" + IDS_5891 "360 kB" + IDS_5892 "640 kB" + IDS_5893 "720 kB" + IDS_5894 "1.2 MB" + IDS_5895 "1.25 MB" + IDS_5896 "1.44 MB" + IDS_5897 "DMF (grozd 1024)" + IDS_5898 "DMF (grozd 2048)" + IDS_5899 "2.88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128Mb M.O. (ISO 10090)" + IDS_5903 "3.5"" 230Mb M.O. (ISO 13963)" + IDS_5904 "3.5"" 540Mb M.O. (ISO 15498)" + IDS_5905 "3.5"" 640Mb M.O. (ISO 15498)" + IDS_5906 "3.5"" 1.3Gb M.O. (GigaMO)" + IDS_5907 "3.5"" 2.3Gb M.O. (GigaMO 2)" + IDS_5908 "5.25"" 600Mb M.O." + IDS_5909 "5.25"" 650Mb M.O." + IDS_5910 "5.25"" 1Gb M.O." + IDS_5911 "5.25"" 1.3Gb M.O." + + IDS_6144 "Popolni obrati na minuto" + IDS_6145 "1%% pod popolnimi obrati" + IDS_6146 "1.5%% pod popolnimi obrati" + IDS_6147 "2%% pod popolnimi obrati" + + IDS_7168 "(Sistemsko privzeto)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Slovenian resources +///////////////////////////////////////////////////////////////////////////// From d99a9a1983d832fdefb5b85b9d8f386f5daae502 Mon Sep 17 00:00:00 2001 From: jvernet Date: Thu, 18 Nov 2021 22:00:15 +0100 Subject: [PATCH 52/61] More French --- .gitignore | 1 + src/win/86Box.rc | 3 +-- src/win/languages/fr-FR.rc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 641660680..43b1a1037 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ Makefile # Visual Studio Code /.vs /.vscode +src/win/RCa04980 diff --git a/src/win/86Box.rc b/src/win/86Box.rc index 49c56098c..695d46c03 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -372,5 +372,4 @@ END #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" #include "languages/zh-CN.rc" -#include "languages/fr-FR.rc" - +//#include "languages/fr-FR.rc" diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index 77ee4c749..1c87394e5 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////////// -// French (F.R.) resources +// French (fr-FR) resources #ifdef _WIN32 LANGUAGE LANG_FRENCH, SUBLANG_FRENCH From 6be0cbe304fd45a9086659ce78f906de727776a8 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Thu, 18 Nov 2021 22:02:14 +0100 Subject: [PATCH 53/61] Changes list 1: Fixed errors of the Trantor T128 SCSI adapter using the CD-ROM on low speed 386/486 processors. --- src/scsi/scsi_ncr5380.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/scsi/scsi_ncr5380.c b/src/scsi/scsi_ncr5380.c index 2413c30a5..7a6cd5ef9 100644 --- a/src/scsi/scsi_ncr5380.c +++ b/src/scsi/scsi_ncr5380.c @@ -1224,8 +1224,8 @@ ncr_callback(void *priv) ncr_log("Timer on! Host POS = %i, status = %02x, DMA mode = %i, Period = %lf\n", ncr_dev->t128.host_pos, ncr_dev->t128.status, ncr->dma_mode, scsi_device_get_callback(dev)); if (ncr_dev->t128.host_pos == MIN(512, dev->buffer_length) && ncr_dev->t128.block_count) { ncr_dev->t128.status |= 0x04; - ncr_timer_on(ncr_dev, ncr, 0); } + ncr_timer_on(ncr_dev, ncr, 0); } } else { ncr_log("DMA mode=%d, status ctrl = %02x\n", ncr->dma_mode, ncr_dev->status_ctrl); @@ -1364,7 +1364,8 @@ t128_read(uint32_t addr, void *priv) ncr_log("Transfer busy read, status = %02x, period = %lf\n", ncr_dev->t128.status, ncr_dev->period); if (ncr_dev->period == 0.2 || ncr_dev->period == 0.02) timer_on_auto(&ncr_dev->timer, 40.2); - } + } else if (ncr_dev->t128.host_pos < MIN(512, dev->buffer_length) && scsi_device_get_callback(dev) > 100.0) + cycles += 100; /*Needed to avoid timer de-syncing with transfers.*/ } } From 59193248996462a84edee99cffe13be466f4977c Mon Sep 17 00:00:00 2001 From: TC1995 Date: Thu, 18 Nov 2021 22:07:27 +0100 Subject: [PATCH 54/61] Made bits 16 and 18 of the Sample Rate Converter register of the ES1371 not writeable, fixes hangs with most NT 4.0 ES1371 drivers while keeping compatibility with other operating systems' drivers. --- src/sound/snd_audiopci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sound/snd_audiopci.c b/src/sound/snd_audiopci.c index d69b9a211..e93267376 100644 --- a/src/sound/snd_audiopci.c +++ b/src/sound/snd_audiopci.c @@ -964,7 +964,7 @@ es1371_outl(uint16_t port, uint32_t val, void *p) /* Sample Rate Converter Interface Register, Address 10H Addressable as longword only */ case 0x10: - dev->sr_cir = val; + dev->sr_cir = val & 0xfff8ffff; /*Bits 16 to 18 are undefined*/ if (dev->sr_cir & SRC_RAM_WE) { dev->sr_ram[dev->sr_cir >> 25] = val & 0xffff; switch (dev->sr_cir >> 25) { From 2eb16b4cd79f943a8608ed3c3fcf93cf6ca3c935 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Thu, 18 Nov 2021 22:16:18 +0100 Subject: [PATCH 55/61] Changes list 3: Reverted one major change of the ATI 28800 cards that caused glitches. --- src/video/vid_ati28800.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/video/vid_ati28800.c b/src/video/vid_ati28800.c index 565418e84..23ec0a2c5 100644 --- a/src/video/vid_ati28800.c +++ b/src/video/vid_ati28800.c @@ -165,7 +165,7 @@ ati28800_out(uint16_t addr, uint8_t val, void *p) ati_eeprom_write(&ati28800->eeprom, val & 8, val & 2, val & 1); break; case 0xb6: - if ((old ^ val) & 0x11) + if ((old ^ val) & 0x10) svga_recalctimings(svga); break; case 0xb8: @@ -488,8 +488,6 @@ ati28800_recalctimings(svga_t *svga) } } } - - svga->vram_display_mask = (ati28800->regs[0xb6] & 1) ? ((ati28800->memory << 10) - 1) : 0x3ffff; } From a7f78209401036a952422fa5769dee523adab86c Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 22:21:43 +0100 Subject: [PATCH 56/61] Fixed translation for icon sets. --- src/win/languages/cs-CZ.rc | 2 +- src/win/languages/de-DE.rc | 2 +- src/win/languages/en-US.rc | 2 +- src/win/languages/fi-FI.rc | 2 +- src/win/languages/fr-FR.rc | 1 + src/win/languages/hr-HR.rc | 2 +- src/win/languages/it-IT.rc | 2 +- src/win/languages/ja-JP.rc | 1 + src/win/languages/pt-BR.rc | 2 +- src/win/languages/pt-PT.rc | 2 +- src/win/languages/sl-SI.rc | 1 + src/win/languages/zh-CN.rc | 2 +- 12 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc index fd9b083b6..1c5e74876 100644 --- a/src/win/languages/cs-CZ.rc +++ b/src/win/languages/cs-CZ.rc @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Uložit toto nastavení jako &globální výchozí stav" #define STR_DEFAULT "&Výchozí" #define STR_LANGUAGE "Jazyk:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Sada ikon:" #define STR_GAIN "Zesílení" diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc index bca50e627..7c3364c1a 100644 --- a/src/win/languages/de-DE.rc +++ b/src/win/languages/de-DE.rc @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Einstellungen als &globalen Standard speichern" #define STR_DEFAULT "&Standard" #define STR_LANGUAGE "Sprache:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Icon-Satz:" #define STR_GAIN "Verstärkung" diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc index 3bd489b08..cc86e387a 100644 --- a/src/win/languages/en-US.rc +++ b/src/win/languages/en-US.rc @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Save these settings as &global defaults" #define STR_DEFAULT "&Default" #define STR_LANGUAGE "Language:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Icon set:" #define STR_GAIN "Gain" diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc index c6dc4ea35..990396e47 100644 --- a/src/win/languages/fi-FI.rc +++ b/src/win/languages/fi-FI.rc @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Tallenna nämä asetukset &globaaleiksi oletuksiksi" #define STR_DEFAULT "&Oletus" #define STR_LANGUAGE "Kieli:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Kuvakkeet:" #define STR_GAIN "Taso" diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index 1c87394e5..19c94e0b9 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Save these settings as &global defaults" #define STR_DEFAULT "&Defaut" #define STR_LANGUAGE "Langue:" +#define STR_ICONSET "Ensemble d'icônes:" #define STR_GAIN "Gain" diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc index fe48f0a81..dc98e45a2 100644 --- a/src/win/languages/hr-HR.rc +++ b/src/win/languages/hr-HR.rc @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Spremite ove postavke kao &globalne zadane postavke" #define STR_DEFAULT "&Standard" #define STR_LANGUAGE "Jezik:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Paket ikona:" #define STR_GAIN "Pojačavanje" diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc index 807ae11a2..28eb1ba95 100644 --- a/src/win/languages/it-IT.rc +++ b/src/win/languages/it-IT.rc @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Salva queste impostazioni come &predefinite globali" #define STR_DEFAULT "&Predefinito" #define STR_LANGUAGE "Lingua:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Pacchetto di icone:" #define STR_GAIN "Guadagno" diff --git a/src/win/languages/ja-JP.rc b/src/win/languages/ja-JP.rc index 79324fd42..bb5c84298 100644 --- a/src/win/languages/ja-JP.rc +++ b/src/win/languages/ja-JP.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "これらの設定をグローバル既定値として保存する(&G)" #define STR_DEFAULT "既定値(&D)" #define STR_LANGUAGE "言語:" +#define STR_ICONSET "アイコンセット:" #define STR_GAIN "ゲイン" diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index 8759f3e61..af6d1d35b 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -285,7 +285,7 @@ END #define STR_GLOBAL "Usar estas configurações como &padrões globais" #define STR_DEFAULT "&Padrão" #define STR_LANGUAGE "Idioma:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Pacote de ícones:" #define STR_GAIN "Ganho" diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc index 89e044d66..171e37d76 100644 --- a/src/win/languages/pt-PT.rc +++ b/src/win/languages/pt-PT.rc @@ -284,7 +284,7 @@ END #define STR_GLOBAL "Guardar estas definições como padrões &globais" #define STR_DEFAULT "&Padrão" #define STR_LANGUAGE "Idioma:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "Pacote de ícones:" #define STR_GAIN "Ganho" diff --git a/src/win/languages/sl-SI.rc b/src/win/languages/sl-SI.rc index 336882e3b..68aeaf46c 100644 --- a/src/win/languages/sl-SI.rc +++ b/src/win/languages/sl-SI.rc @@ -284,6 +284,7 @@ END #define STR_GLOBAL "Shrani te nastavitve kot globalne privzete" #define STR_DEFAULT "Privzeto" #define STR_LANGUAGE "Jezik:" +#define STR_ICONSET "Komplet ikon:" #define STR_GAIN "Ojačanje" diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc index 3b7d35e05..1a8444569 100644 --- a/src/win/languages/zh-CN.rc +++ b/src/win/languages/zh-CN.rc @@ -284,7 +284,7 @@ END #define STR_GLOBAL "将以上设定存储为全局默认值(&g)" #define STR_DEFAULT "默认(&D)" #define STR_LANGUAGE "语言:" -#define STR_ICONSET "Iconset:" +#define STR_ICONSET "图标集:" #define STR_GAIN "增益" From 02ca11ba1ed650c506d0e19c85192d2a540a6637 Mon Sep 17 00:00:00 2001 From: altiereslima Date: Thu, 18 Nov 2021 19:04:58 -0300 Subject: [PATCH 57/61] Update pt-BR.rc --- src/win/languages/pt-BR.rc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc index af6d1d35b..4bddc26ca 100644 --- a/src/win/languages/pt-BR.rc +++ b/src/win/languages/pt-BR.rc @@ -102,7 +102,7 @@ BEGIN MENUITEM "&Configurações...", IDM_CONFIG MENUITEM "&Atualizar ícones da barra de status", IDM_UPDATE_ICONS MENUITEM SEPARATOR - MENUITEM "Change program &settings...", IDM_VID_PROG_SETT + MENUITEM "Alterar &configurações do programa...", IDM_VID_PROG_SETT # ifdef USE_DISCORD MENUITEM SEPARATOR MENUITEM "Ativar integração com o &Discord", IDM_DISCORD @@ -274,7 +274,7 @@ END // Dialog // -#define STR_PROG_SETT "Program Settings" +#define STR_PROG_SETT "Configurações do programa" #define STR_SND_GAIN "Ganho de som" #define STR_NEW_FLOPPY "Nova imagem de disquete" #define STR_CONFIG "Configurações do 86Box" From 183f6231c1797bed03029bba33c6a4350840b406 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 23:26:33 +0100 Subject: [PATCH 58/61] Finished and enabled the French translation (JVERNET please look at this to make sure I did it correctly!). --- src/win/86Box.rc | 2 +- src/win/languages/fr-FR.rc | 485 +++++++++++++++++++------------------ 2 files changed, 245 insertions(+), 242 deletions(-) diff --git a/src/win/86Box.rc b/src/win/86Box.rc index a0347fb89..441d63ba0 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -364,7 +364,7 @@ END #include "languages/cs-CZ.rc" #include "languages/de-DE.rc" #include "languages/en-US.rc" -//#include "languages/fr-FR.rc" +#include "languages/fr-FR.rc" #include "languages/hr-HR.rc" #include "languages/fi-FI.rc" #include "languages/hu-HU.rc" diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index 19c94e0b9..f0e4dfff7 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -36,7 +36,7 @@ BEGIN MENUITEM "Fenètre &Retaillable", IDM_VID_RESIZE MENUITEM "S&auvegarder taille && position", IDM_VID_REMEMBER MENUITEM SEPARATOR - POPUP "Re&nderer" + POPUP "Moteur de &rendu vidéo" BEGIN MENUITEM "&SDL (Logiciel)", IDM_VID_SDL_SW MENUITEM "SDL (&Materiel)", IDM_VID_SDL_HW @@ -112,43 +112,43 @@ BEGIN MENUITEM "&Gain Son...", IDM_SND_GAIN #ifdef MTR_ENABLED MENUITEM SEPARATOR - MENUITEM "Begin trace\tCtrl+T", IDM_ACTION_BEGIN_TRACE - MENUITEM "End trace\tCtrl+T", IDM_ACTION_END_TRACE + MENUITEM "Démarrer traces\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Finir traces\tCtrl+T", IDM_ACTION_END_TRACE #endif END #if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) - POPUP "&Logging" + POPUP "&Journalisation" BEGIN # ifdef ENABLE_BUSLOGIC_LOG - MENUITEM "Enable BusLogic logs\tCtrl+F4", IDM_LOG_BUSLOGIC + MENUITEM "Activer journaux de BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC # endif # ifdef ENABLE_CDROM_LOG - MENUITEM "Enable CD-ROM logs\tCtrl+F5", IDM_LOG_CDROM + MENUITEM "Activer journaux du CD-ROM\tCtrl+F5", IDM_LOG_CDROM # endif # ifdef ENABLE_D86F_LOG - MENUITEM "Enable floppy (86F) logs\tCtrl+F6", IDM_LOG_D86F + MENUITEM "Activer journaux des disquettes (86F)s\tCtrl+F6", IDM_LOG_D86F # endif # ifdef ENABLE_FDC_LOG - MENUITEM "Enable floppy controller logs\tCtrl+F7", IDM_LOG_FDC + MENUITEM "Activer journaux du contrôleur de disquettes\tCtrl+F7", IDM_LOG_FDC # endif # ifdef ENABLE_IDE_LOG - MENUITEM "Enable IDE logs\tCtrl+F8", IDM_LOG_IDE + MENUITEM "Activer journaux de IDE\tCtrl+F8", IDM_LOG_IDE # endif # ifdef ENABLE_SERIAL_LOG - MENUITEM "Enable Serial Port logs\tCtrl+F3", IDM_LOG_SERIAL + MENUITEM "Activer journaux de porte sériel\tCtrl+F3", IDM_LOG_SERIAL # endif # ifdef ENABLE_NIC_LOG - MENUITEM "Enable Network logs\tCtrl+F9", IDM_LOG_NIC + MENUITEM "Activer journaux de réseau\tCtrl+F9", IDM_LOG_NIC # endif # ifdef ENABLE_LOG_COMMANDS # ifdef ENABLE_LOG_TOGGLES MENUITEM SEPARATOR # endif # ifdef ENABLE_LOG_BREAKPOINT - MENUITEM "&Log breakpoint\tCtrl+F10", IDM_LOG_BREAKPOINT + MENUITEM "&Point d'arrêt du journal\tCtrl+F10", IDM_LOG_BREAKPOINT # endif # ifdef ENABLE_VRAM_DUMP - MENUITEM "Dump &video RAM\tCtrl+F1", IDM_DUMP_VRAM + MENUITEM "Vidage de la mémoire &vidéo\tCtrl+F1", IDM_DUMP_VRAM # endif # endif END @@ -252,18 +252,18 @@ END #if defined(DEV_BRANCH) && defined(USE_OPENGL) VidGLSubMenu MENU DISCARDABLE BEGIN - POPUP "Target &framerate" + POPUP "&Taux de rafraîchissement cible" BEGIN - MENUITEM "&Sync with video", IDM_VID_GL_FPS_BLITTER - MENUITEM "&25 fps", IDM_VID_GL_FPS_25 - MENUITEM "&30 fps", IDM_VID_GL_FPS_30 - MENUITEM "&50 fps", IDM_VID_GL_FPS_50 - MENUITEM "&60 fps", IDM_VID_GL_FPS_60 - MENUITEM "&75 fps", IDM_VID_GL_FPS_75 + MENUITEM "&Synchronisation avec la vidéo", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 images par seconde", IDM_VID_GL_FPS_25 + MENUITEM "&30 images par seconde", IDM_VID_GL_FPS_30 + MENUITEM "&50 images par seconde", IDM_VID_GL_FPS_50 + MENUITEM "&60 images par seconde", IDM_VID_GL_FPS_60 + MENUITEM "&75 images par seconde", IDM_VID_GL_FPS_75 END - MENUITEM "&VSync", IDM_VID_GL_VSYNC - MENUITEM "&Select shader...", IDM_VID_GL_SHADER - MENUITEM "&Remove shader", IDM_VID_GL_NOSHADER + MENUITEM "Synchronisation &verticale", IDM_VID_GL_VSYNC + MENUITEM "Sé&lectionnez le shader...", IDM_VID_GL_SHADER + MENUITEM "S&upprimer le shader", IDM_VID_GL_NOSHADER END #endif @@ -273,124 +273,127 @@ END // Dialog // -#define STR_PROG_SETT "Changer Langue" -#define STR_SND_GAIN "Gain Son" -#define STR_NEW_FLOPPY "Nouvelle Image" +#define STR_PROG_SETT "Changer langue" +#define STR_SND_GAIN "Gain son" +#define STR_NEW_FLOPPY "Nouvelle image" #define STR_CONFIG "Réglages 86Box" -#define STR_SPECIFY_DIM "Specify Main Window Dimensions" +#define STR_SPECIFY_DIM "Spécifier le détournement de la fenêtre principale" #define STR_OK "OK" #define STR_CANCEL "Annuler" -#define STR_GLOBAL "Save these settings as &global defaults" -#define STR_DEFAULT "&Defaut" +#define STR_GLOBAL "Salve ces paramètres comme valeurs par défaut &globales" +#define STR_DEFAULT "&Défaut" #define STR_LANGUAGE "Langue:" #define STR_ICONSET "Ensemble d'icônes:" #define STR_GAIN "Gain" -#define STR_FILE_NAME "Nom Fichier:" -#define STR_DISK_SIZE "Taille Disque:" -#define STR_RPM_MODE "RPM mode:" -#define STR_PROGRESS "Progress:" +#define STR_FILE_NAME "Nom fichier:" +#define STR_DISK_SIZE "Taille disque:" +#define STR_RPM_MODE "Mode RPM:" +#define STR_PROGRESS "Progrès:" -#define STR_WIDTH "Width:" -#define STR_HEIGHT "Height:" -#define STR_LOCK_TO_SIZE "Lock to this size" +#define STR_WIDTH "Largeur:" +#define STR_HEIGHT "Hauteur:" +#define STR_LOCK_TO_SIZE "Verrouiller à cette taille" -#define STR_MACHINE_TYPE "Machine type:" +#define STR_MACHINE_TYPE "Type de la machine:" #define STR_MACHINE "Machine:" -#define STR_CONFIGURE "Configure" -#define STR_CPU_TYPE "CPU type:" -#define STR_SPEED "Speed:" +#define STR_CONFIGURE "Configurer" +#define STR_CPU_TYPE "Typ du processeur:" +#define STR_SPEED "Vitesse:" #define STR_FPU "FPU:" -#define STR_WAIT_STATES "Wait states:" -#define STR_MB "MB" -#define STR_MEMORY "Memory:" -#define STR_TIME_SYNC "Time synchronization" -#define STR_DISABLED "Disabled" -#define STR_ENABLED_LOCAL "Enabled (local time)" -#define STR_ENABLED_UTC "Enabled (UTC)" -#define STR_DYNAREC "Dynamic Recompiler" +#define STR_WAIT_STATES "États d'attente:" +#define STR_MB "Mo" +#define STR_MEMORY "Mémoire:" +#define STR_TIME_SYNC "Synchronisation du temps" +#define STR_DISABLED "Désactivé" +#define STR_ENABLED_LOCAL "Activé (heure locale)" +#define STR_ENABLED_UTC "Activé (UTC)" +#define STR_DYNAREC "Recompilateur dynamique" -#define STR_VIDEO "Video:" -#define STR_VOODOO "Voodoo Graphics" +#define STR_VIDEO "Vidéo:" +#define STR_VOODOO "Graphique Voodoo" -#define STR_MOUSE "Mouse:" -#define STR_JOYSTICK "Joystick:" -#define STR_JOY1 "Joystick 1..." -#define STR_JOY2 "Joystick 2..." -#define STR_JOY3 "Joystick 3..." -#define STR_JOY4 "Joystick 4..." +#define STR_MOUSE "Souris:" +#define STR_JOYSTICK "Manette de commande:" +#define STR_JOY1 "Manette 1..." +#define STR_JOY2 "Manette 2..." +#define STR_JOY3 "Manette 3..." +#define STR_JOY4 "Manette 4..." -#define STR_SOUND "Sound card:" -#define STR_MIDI "MIDI Out Device:" -#define STR_MIDI_IN "MIDI In Device:" -#define STR_MPU401 "Standalone MPU-401" +#define STR_SOUND "Carte son:" +#define STR_MIDI "Sortie MIDI:" +#define STR_MIDI_IN "Entrée MIDI:" +#define STR_MPU401 "MPU-401 autonome" #define STR_SSI "Innovation SSI-2001" #define STR_CMS "CMS / Game Blaster" #define STR_GUS "Gravis Ultrasound" -#define STR_FLOAT "Use FLOAT32 sound" +#define STR_FLOAT "Utiliser le son FLOAT32" -#define STR_NET_TYPE "Network type:" -#define STR_PCAP "PCap device:" -#define STR_NET "Network adapter:" +#define STR_NET_TYPE "Type de réseau:" +#define STR_PCAP "Dispositif PCap:" +#define STR_NET "Adaptateur de réseau:" -#define STR_LPT1 "LPT1 Device:" -#define STR_LPT2 "LPT2 Device:" -#define STR_LPT3 "LPT3 Device:" -#define STR_SERIAL1 "Serial port 1" -#define STR_SERIAL2 "Serial port 2" -#define STR_SERIAL3 "Serial port 3" -#define STR_SERIAL4 "Serial port 4" -#define STR_PARALLEL1 "Parallel port 1" -#define STR_PARALLEL2 "Parallel port 2" -#define STR_PARALLEL3 "Parallel port 3" +#define STR_LPT1 "Dispositif LPT1:" +#define STR_LPT2 "Dispositif LPT2:" +#define STR_LPT3 "Dispositif LPT3:" +#define STR_SERIAL1 "Port sériel 1" +#define STR_SERIAL2 "Port sériel 2" +#define STR_SERIAL3 "Port sériel 3" +#define STR_SERIAL4 "Port sériel 4" +#define STR_PARALLEL1 "Port parallèle 1" +#define STR_PARALLEL2 "Port parallèle 2" +#define STR_PARALLEL3 "Port parallèle 3" -#define STR_HDC "HD Controller:" -#define STR_FDC "FD Controller:" -#define STR_IDE_TER "Tertiary IDE Controller" -#define STR_IDE_QUA "Quaternary IDE Controller" +#define STR_HDC "Contrôleur HD:" +#define STR_FDC "Contrôleur FD:" +#define STR_IDE_TER "Contrôleur IDE tertiaire" +#define STR_IDE_QUA "Contrôleur IDE quaternair" #define STR_SCSI "SCSI" -#define STR_SCSI_1 "Controller 1:" -#define STR_SCSI_2 "Controller 2:" -#define STR_SCSI_3 "Controller 3:" -#define STR_SCSI_4 "Controller 4:" +#define STR_SCSI_1 "Contrôleur 1:" +#define STR_SCSI_2 "Contrôleur 2:" +#define STR_SCSI_3 "Contrôleur 3:" +#define STR_SCSI_4 "Contrôleur 4:" #define STR_CASSETTE "Cassette" -#define STR_HDD "Hard disks:" -#define STR_NEW "&New..." -#define STR_EXISTING "&Existing..." -#define STR_REMOVE "&Remove" +#define STR_HDD "Disques durs:" +#define STR_NEW "&Nouveau..." +#define STR_EXISTING "&Existant..." +#define STR_REMOVE "&Supprimer" #define STR_BUS "Bus:" -#define STR_CHANNEL "Channel:" +#define STR_CHANNEL "Canal:" #define STR_ID "ID:" -#define STR_SPECIFY "&Specify..." -#define STR_SECTORS "Sectors:" -#define STR_HEADS "Heads:" -#define STR_CYLS "Cylinders:" -#define STR_SIZE_MB "Size (MB):" +#define STR_SPECIFY "&Spécifier..." +#define STR_SECTORS "Secteurs:" +#define STR_HEADS "Têtes:" +#define STR_CYLS "Cylindres:" +#define STR_SIZE_MB "Taille (Mo):" #define STR_TYPE "Type:" -#define STR_IMG_FORMAT "Image Format:" -#define STR_BLOCK_SIZE "Block Size:" +#define STR_IMG_FORMAT "Format Image:" +#define STR_BLOCK_SIZE "Taille du bloc:" -#define STR_FLOPPY_DRIVES "Floppy drives:" -#define STR_TURBO "Turbo timings" -#define STR_CHECKBPB "Check BPB" -#define STR_CDROM_DRIVES "CD-ROM drives:" +#define STR_FLOPPY_DRIVES "Lecteurs de disquettes:" +#define STR_TURBO "Temps de turbo" +#define STR_CHECKBPB "Vérifier BPB" +#define STR_CDROM_DRIVES "Lecterus CD-ROM:" -#define STR_MO_DRIVES "MO drives:" -#define STR_ZIP_DRIVES "ZIP drives:" +#define STR_MO_DRIVES "Lecteurs magnéto-optiques:" +#define STR_ZIP_DRIVES "Lecterus ZIP:" #define STR_250 "ZIP 250" -#define STR_ISARTC "ISA RTC:" -#define STR_ISAMEM "ISA Memory Expansion" -#define STR_ISAMEM_1 "Card 1:" -#define STR_ISAMEM_2 "Card 2:" -#define STR_ISAMEM_3 "Card 3:" -#define STR_ISAMEM_4 "Card 4:" -#define STR_BUGGER "ISABugger device" -#define STR_POSTCARD "POST card" +#define STR_ISARTC "Horloge temps réel ISA:" +#define STR_ISAMEM "Expansion de la mémoire ISA" +#define STR_ISAMEM_1 "Carte 1:" +#define STR_ISAMEM_2 "Carte 2:" +#define STR_ISAMEM_3 "Carte 3:" +#define STR_ISAMEM_4 "Carte 4:" +#define STR_BUGGER "Dispositif ISABugger" +#define STR_POSTCARD "Carte POST" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" #include "dialogs.rc" @@ -402,181 +405,181 @@ END STRINGTABLE DISCARDABLE BEGIN 2048 "86Box" - IDS_2049 "Error" - IDS_2050 "Fatal error" - IDS_2051 "" - IDS_2052 "Press CTRL+ALT+PAGE DOWN to return to windowed mode." - IDS_2053 "Speed" + IDS_2049 "Erreur" + IDS_2050 "Erreur fatal" + IDS_2051 "" + IDS_2052 "Appuyez sur CTRL+ALT+PAGE ↓ pour revenir au mode fenêtré." + IDS_2053 "Vitesse" IDS_2054 "ZIP %03i %i (%s): %ls" - IDS_2055 "ZIP images (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" - IDS_2056 "86Box could not find any usable ROM images.\n\nPlease download a ROM set and extract it into the ""roms"" directory." - IDS_2057 "(empty)" - IDS_2058 "ZIP images (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0All files (*.*)\0*.*\0" + IDS_2055 "Images ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box n'a pas pu trouver d'images ROM utilisables.\n\nS'il vous plait, téléchargez un ensemble ROM et extrayez-le dans le répertoire ""roms""." + IDS_2057 "(vide)" + IDS_2058 "Images ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Tous les fichiers (*.*)\0*.*\0" IDS_2059 "Turbo" - IDS_2060 "On" - IDS_2061 "Off" - IDS_2062 "All images (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Basic sector images (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Surface images (*.86F)\0*.86F\0" - IDS_2063 "Machine ""%hs"" is not available due to missing ROMs in the roms/machines directory. Switching to an available machine." + IDS_2060 "Activé" + IDS_2061 "Desactivé" + IDS_2062 "Tous les images (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Images basiques du secteur (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Images de la surface (*.86F)\0*.86F\0" + IDS_2063 "La machine ""%hs"" n'est pas disponible en raison de l'absence de ROMs en le répertoire roms/machines. Basculer vers une machine disponible." END STRINGTABLE DISCARDABLE BEGIN - IDS_2064 "Video card ""%hs"" is not available due to missing ROMs in the roms/video directory. Switching to an available video card." + IDS_2064 "La carte vidéo ""%hs"" n'est pas disponible en raison de l'absence de ROMs en le répertoire roms/video. Basculer vers une carte vidéo disponible." IDS_2065 "Machine" - IDS_2066 "Display" - IDS_2067 "Input devices" - IDS_2068 "Sound" - IDS_2069 "Network" - IDS_2070 "Ports (COM & LPT)" - IDS_2071 "Storage controllers" - IDS_2072 "Hard disks" - IDS_2073 "Floppy & CD-ROM drives" - IDS_2074 "Other removable devices" - IDS_2075 "Other peripherals" - IDS_2076 "Surface images (*.86F)\0*.86F\0" - IDS_2077 "Click to capture mouse" - IDS_2078 "Press F8+F12 to release mouse" - IDS_2079 "Press F8+F12 or middle button to release mouse" + IDS_2066 "Affichage" + IDS_2067 "Dispositifs d'entrée" + IDS_2068 "Son" + IDS_2069 "Réseau" + IDS_2070 "Ports (COM et LPT)" + IDS_2071 "Contrôleurs de stockage" + IDS_2072 "Disques durs" + IDS_2073 "Lecteurs de disquette et CD-ROM" + IDS_2074 "Autres dispositifs amovibles" + IDS_2075 "Autres périfériques" + IDS_2076 "Images de surface (*.86F)\0*.86F\0" + IDS_2077 "Cliquer pour capturer la souris" + IDS_2078 "Appuyer sur F8+F12 pour libérer la souris" + IDS_2079 "Appuyer sur F8+F12 ou le bouton central pour libérer la souris" END STRINGTABLE DISCARDABLE BEGIN - IDS_2080 "Unable to initialize FluidSynth" + IDS_2080 "Impossible d'initialiser FluidSynth" IDS_2081 "Bus" IDS_2082 "File" IDS_2083 "C" - IDS_2084 "H" + IDS_2084 "T" IDS_2085 "S" - IDS_2086 "MB" - IDS_2087 "Check BPB" - IDS_2088 "KB" - IDS_2089 "Could not initialize the video renderer." - IDS_2090 "Default" - IDS_2091 "%i Wait state(s)" + IDS_2086 "Mo" + IDS_2087 "Vérifier BPB" + IDS_2088 "Ko" + IDS_2089 "Impossible d'initialiser le moteur de rendu vidéo." + IDS_2090 "Défaut" + IDS_2091 "%i état(s) d'attente" IDS_2092 "Type" - IDS_2093 "Failed to set up PCap" - IDS_2094 "No PCap devices found" - IDS_2095 "Invalid PCap device" - IDS_2096 "Standard 2-button joystick(s)" - IDS_2097 "Standard 4-button joystick" - IDS_2098 "Standard 6-button joystick" - IDS_2099 "Standard 8-button joystick" + IDS_2093 "Impossible d'initialiser PCap" + IDS_2094 "Aucun dispositif PCap trouvé" + IDS_2095 "Dispositif PCap non valide" + IDS_2096 "Manette(s) de command standard avec 2 boutons" + IDS_2097 "Manette de command standard avec 4 boutons" + IDS_2098 "Manette de command standard avec 6 boutons" + IDS_2099 "Manette de command standard avec 6 boutons" IDS_2100 "CH Flightstick Pro" IDS_2101 "Microsoft SideWinder Pad" - IDS_2102 "Thrustmaster Flight Control System" - IDS_2103 "None" - IDS_2104 "Unable to load keyboard accelerators." - IDS_2105 "Unable to register raw input." + IDS_2102 "Système de contrôle de vol Thrustmaster" + IDS_2103 "Aucun" + IDS_2104 "Impossible de charger les accélérateurs de clavier." + IDS_2105 "Impossible de charger l'entrée raw." IDS_2106 "%u" - IDS_2107 "%u MB (CHS: %i, %i, %i)" - IDS_2108 "Floppy %i (%s): %ls" - IDS_2109 "All images (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Advanced sector images (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Basic sector images (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Flux images (*.FDI)\0*.FDI\0Surface images (*.86F;*.MFM)\0*.86F;*.MFM\0All files (*.*)\0*.*\0" - IDS_2110 "Unable to initialize FreeType" - IDS_2111 "Unable to initialize SDL, SDL2.dll is required" - IDS_2112 "Are you sure you want to hard reset the emulated machine?" - IDS_2113 "Are you sure you want to exit 86Box?" - IDS_2114 "Unable to initialize Ghostscript" - IDS_2115 "MO %i (%ls): %ls" - IDS_2116 "MO images (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" - IDS_2117 "Welcome to 86Box!" - IDS_2118 "Internal controller" - IDS_2119 "Exit" - IDS_2120 "No ROMs found" - IDS_2121 "Do you want to save the settings?" - IDS_2122 "This will hard reset the emulated machine." - IDS_2123 "Save" - IDS_2124 "About 86Box" + IDS_2107 "%u Mo (CTS: %i, %i, %i)" + IDS_2108 "Disquette %i (%s): %ls" + IDS_2109 "Toutes les images (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Images du secteur avancés (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Images du secteur basiques (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Images du flux (*.FDI)\0*.FDI\0Images de surface (*.86F;*.MFM)\0*.86F;*.MFM\0Tous les fichiers (*.*)\0*.*\0" + IDS_2110 "Impossible d'initialiser FreeType" + IDS_2111 "Impossible d'initialiser SDL, SDL2.dll est nécessaire" + IDS_2112 "Etes-vous sûr de vouloir réinitialiser la machine émulée ?" + IDS_2113 "Etes-vous sûr de vouloir sortir du86Box?" + IDS_2114 "Impossible d'initialiser Ghostscript" + IDS_2115 "Magnéto-optique %i (%ls): %ls" + IDS_2116 "Images magnéto-optiques (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tous les fichiers (*.*)\0*.*\0" + IDS_2117 "Bienvenues dans 86Box !" + IDS_2118 "Côntrolleur interne" + IDS_2119 "Sortir" + IDS_2120 "Pas de ROMs trouvées" + IDS_2121 "Voulez-vous sauver les paramètres ?" + IDS_2122 "Ce entraînera la réinitialisation complète de la machine émulée." + IDS_2123 "Sauver" + IDS_2124 "À propos de 86Box" IDS_2125 "86Box v" EMU_VERSION - IDS_2126 "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." + IDS_2126 "Un émulateur de vieux ordinateurs\n\nAuteurs: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, MoochMcGee, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nLibéré sous la licence GNU General Public License version 2 ou ultérieure. Pour plus d'informations, voir le fichier LICENSE." IDS_2127 "OK" - IDS_2128 "Hardware not available" + IDS_2128 "Matériel non disponible" #ifdef _WIN32 #define LIB_NAME_PCAP "WinPcap" #else #define LIB_NAME_PCAP "libpcap" #endif - IDS_2129 "Make sure " LIB_NAME_PCAP " is installed and that you are on a " LIB_NAME_PCAP "-compatible network connection." - IDS_2130 "Invalid configuration" + IDS_2129 "Assurez-vous que " LIB_NAME_PCAP " est installé e que vou utilizes une connexion de réseau compatible avec " LIB_NAME_PCAP "." + IDS_2130 "Configuration non valide" #ifdef _WIN32 #define LIB_NAME_FREETYPE "freetype.dll" #else #define LIB_NAME_FREETYPE "libfreetype" #endif - IDS_2131 LIB_NAME_FREETYPE " is required for ESC/P printer emulation." + IDS_2131 LIB_NAME_FREETYPE " est nécessaire pour l'émulation de l'imprimante ESC/P." #ifdef _WIN32 #define LIB_NAME_GS "gsdll32.dll" #else #define LIB_NAME_GS "libgs" #endif - IDS_2132 LIB_NAME_GS " is required for automatic conversion of PostScript files to PDF.\n\nAny documents sent to the generic PostScript printer will be saved as PostScript (.ps) files." + IDS_2132 LIB_NAME_GS " est nécessair pour la conversion automatique des fichiers PostScript dans PDF.\n\nTous les documents envoyés à l'imprimante générique PostScript seront sauvés comme des fichiers PostScript (.ps)." #ifdef _WIN32 #define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" #else #define LIB_NAME_FLUIDSYNTH "libfluidsynth" #endif - IDS_2133 LIB_NAME_FLUIDSYNTH " is required for FluidSynth MIDI output." - IDS_2134 "Entering fullscreen mode" - IDS_2135 "Don't show this message again" - IDS_2136 "Don't exit" - IDS_2137 "Reset" - IDS_2138 "Don't reset" - IDS_2139 "MO images (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" - IDS_2140 "CD-ROM images (*.ISO;*.CUE)\0*.ISO;*.CUE\0All files (*.*)\0*.*\0" - IDS_2141 "%hs Device Configuration" - IDS_2142 "Monitor in sleep mode" - IDS_2143 "OpenGL Shaders (*.GLSL)\0*.GLSL\0All files (*.*)\0*.*\0" - IDS_2144 "OpenGL options" - IDS_2145 "You are loading an unsupported configuration" - IDS_2146 "CPU type filtering based on selected machine is disabled for this emulated machine.\n\nThis makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n\nEnabling this setting is not officially supported and any bug reports filed may be closed as invalid." - IDS_2147 "Continue" + IDS_2133 LIB_NAME_FLUIDSYNTH " est nécessaire pour la sortie MIDI FluidSynth." + IDS_2134 "Entrer en mode plein écran" + IDS_2135 "Ne pas montrer ce message à nouveau" + IDS_2136 "Ne pas sortir" + IDS_2137 "Réinitialiser" + IDS_2138 "Ne pas réinitialiser" + IDS_2139 "Images magnéto-optiques (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tous les fichiers (*.*)\0*.*\0" + IDS_2140 "Images CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Tous les fichiers (*.*)\0*.*\0" + IDS_2141 "Configuration du dispositif %hs" + IDS_2142 "Moniteur en mode veille" + IDS_2143 "Shaders OpenGL (*.GLSL)\0*.GLSL\0Tous les fichiers (*.*)\0*.*\0" + IDS_2144 "Options OpenGL" + IDS_2145 "Vous chargez une configuration non prise en charge" + IDS_2146 "La filtrage du type du processeur sur la base de la machine sélectionné est desactivé pur cette machine émulée.\n\nCela permet de sélectionner une processeur que est sinon incompatible avec la machine sélectionné. Cependant, il pourrait y avoir des incompatibilités avec le BIOS de la machine ou autres logiciels.\n\nL'activatione de cette configuration non est officiellement prise en charge et tout rapport de bogue peut être fermé comme étant invalide." + IDS_2147 "Continuer" IDS_2148 "Cassette: %s" - IDS_2149 "Cassette images (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0All files (*.*)\0*.*\0" - IDS_2150 "Cartridge %i: %ls" - IDS_2151 "Cartridge images (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0All files (*.*)\0*.*\0" + IDS_2149 "Images cassette (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tous les fichiers (*.*)\0*.*\0" + IDS_2150 "Cartouche %i: %ls" + IDS_2151 "Images cartouche (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Tous les fichiers (*.*)\0*.*\0" END STRINGTABLE DISCARDABLE BEGIN - IDS_4096 "Hard disk (%s)" + IDS_4096 "Disque dur (%s)" IDS_4097 "%01i:%01i" IDS_4098 "%01i" - IDS_4099 "MFM/RLL or ESDI CD-ROM drives never existed" - IDS_4100 "Custom..." - IDS_4101 "Custom (large)..." - IDS_4102 "Add New Hard Disk" - IDS_4103 "Add Existing Hard Disk" - IDS_4104 "HDI disk images cannot be larger than 4 GB." - IDS_4105 "Disk images cannot be larger than 127 GB." - IDS_4106 "Hard disk images (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0All files (*.*)\0*.*\0" - IDS_4107 "Unable to read file" - IDS_4108 "Unable to write file" - IDS_4109 "HDI or HDX images with a sector size other than 512 are not supported." - IDS_4110 "USB is not yet supported" - IDS_4111 "Disk image file already exists" - IDS_4112 "Please specify a valid file name." - IDS_4113 "Disk image created" - IDS_4114 "Make sure the file exists and is readable." - IDS_4115 "Make sure the file is being saved to a writable directory." - IDS_4116 "Disk image too large" - IDS_4117 "Remember to partition and format the newly-created drive." - IDS_4118 "The selected file will be overwritten. Are you sure you want to use it?" - IDS_4119 "Unsupported disk image" - IDS_4120 "Overwrite" - IDS_4121 "Don't overwrite" - IDS_4122 "Raw image (.img)" - IDS_4123 "HDI image (.hdi)" - IDS_4124 "HDX image (.hdx)" - IDS_4125 "Fixed-size VHD (.vhd)" - IDS_4126 "Dynamic-size VHD (.vhd)" - IDS_4127 "Differencing VHD (.vhd)" - IDS_4128 "Large blocks (2 MB)" - IDS_4129 "Small blocks (512 KB)" - IDS_4130 "VHD files (*.VHD)\0*.VHD\0All files (*.*)\0*.*\0" - IDS_4131 "Select the parent VHD" - IDS_4132 "This could mean that the parent image was modified after the differencing image was created.\n\nIt can also happen if the image files were moved or copied, or by a bug in the program that created this disk.\n\nDo you want to fix the timestamps?" - IDS_4133 "Parent and child disk timestamps do not match" - IDS_4134 "Could not fix VHD timestamp." + IDS_4099 "Les lecteurs de CD-ROM MFM/RLL ou ESDI n'ont jamais existé" + IDS_4100 "Personnalisé..." + IDS_4101 "Personnalisé (grand)..." + IDS_4102 "Ajouter un nouveau disque dur" + IDS_4103 "Ajouter un disque dur existant" + IDS_4104 "Les images de disque HDI ne peuvent pas être plus grandes de 4 Go." + IDS_4105 "Les images de disque ne peuvent pas être plus grandes de 127 Go." + IDS_4106 "Images de dique dur (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Tous les fichiers (*.*)\0*.*\0" + IDS_4107 "Impossible de lire le fichier" + IDS_4108 "Impossible d'écrire le fichier" + IDS_4109 "Les images HDI ou HDX avec une taille de secteur que non est 512 non sont pas prises en charge." + IDS_4110 "USB n'est pas encore pris en charge" + IDS_4111 "Le fichier de la image du sique déjà existe" + IDS_4112 "Veuillez spécifier un nom de fichier valide." + IDS_4113 "Image de disque créée" + IDS_4114 "Assurez-vous que le fichier existe et est lisible." + IDS_4115 "Assurez-vous que est en train d'être sauvé dans une répertoire accessible en écriture." + IDS_4116 "Image de disque trop grande" + IDS_4117 "N'oubliez pas de partitionner et de formater le nouveau disque créé." + IDS_4118 "Le fichier sélectionné sera écrasé. Etes-vous sûr de vouloir l'utiliser?" + IDS_4119 "Image de sique non prise en charge" + IDS_4120 "Écraser" + IDS_4121 "Ne pas écraser" + IDS_4122 "Image brute (.img)" + IDS_4123 "Image HDI (.hdi)" + IDS_4124 "Image HDX (.hdx)" + IDS_4125 "VHD à taille fixe (.vhd)" + IDS_4126 "VHD à taille dynamique (.vhd)" + IDS_4127 "VHD à différenciation (.vhd)" + IDS_4128 "Blocs grands (2 MB)" + IDS_4129 "Blocs petits (512 KB)" + IDS_4130 "Fichiers VHD (*.VHD)\0*.VHD\0Tous les fichiers (*.*)\0*.*\0" + IDS_4131 "Sélectionnez le VHD parent" + IDS_4132 "Est possible que la image parente a été modifié après la création de la image à différenciation.\n\nEst même possible que les fichiers de la image ont été déplacés ou copiés ou il était une bogue dans le programme que a créé ce disque.\n\nVoulez-vous Do you want to réparer l'horodatage?" + IDS_4133 "Les horodatages des disques parent et enfant ne correspondent pas" + IDS_4134 "Impossible de réparer l'horodatage du VHD." IDS_4135 "%01i:%02i" IDS_4352 "MFM/RLL" @@ -595,11 +598,11 @@ BEGIN IDS_5120 "CD-ROM %i (%s): %s" - IDS_5376 "Disabled" + IDS_5376 "Desactivé" IDS_5381 "ATAPI" IDS_5382 "SCSI" - IDS_5632 "Disabled" + IDS_5632 "Desactivé" IDS_5637 "ATAPI (%01i:%01i)" IDS_5638 "SCSI (%01i:%02i)" @@ -628,12 +631,12 @@ BEGIN IDS_5910 "5.25"" 1Gb M.O." IDS_5911 "5.25"" 1.3Gb M.O." - IDS_6144 "Perfect RPM" - IDS_6145 "1%% below perfect RPM" - IDS_6146 "1.5%% below perfect RPM" - IDS_6147 "2%% below perfect RPM" + IDS_6144 "RPM précis" + IDS_6145 "Précision RPM de moins 1%" + IDS_6146 "Précision RPM de moins 1.5%" + IDS_6147 "Précision RPM de moins 2%" - IDS_7168 "(System Default)" + IDS_7168 "(Défaut du système)" END #define IDS_LANG_ENUS IDS_7168 From 89233d0fbbc642e7cff1d08858d399a77cd81562 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Thu, 18 Nov 2021 23:27:31 +0100 Subject: [PATCH 59/61] Changes list 4: Fixed Diamond Stealth 3D 4000 specific drivers' hang. --- src/video/vid_s3_virge.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/video/vid_s3_virge.c b/src/video/vid_s3_virge.c index c43a1c55a..23033b5b3 100644 --- a/src/video/vid_s3_virge.c +++ b/src/video/vid_s3_virge.c @@ -788,6 +788,7 @@ static void s3_virge_recalctimings(svga_t *svga) svga->clock = (cpuclock * (float)(1ull << 32)) / freq; } + if ((svga->crtc[0x67] & 0xc) != 0xc) /*VGA mode*/ { svga->ma_latch |= (virge->ma_ext << 16); @@ -982,7 +983,7 @@ s3_virge_mmio_read(uint32_t addr, void *p) virge_t *virge = (virge_t *)p; uint8_t ret = 0xff; - s3_virge_log("MMIO ReadB addr = %04x\n", addr & 0xffff); + s3_virge_log("[%04X:%08X]: MMIO ReadB addr = %04x\n", CS, cpu_state.pc, addr & 0xffff); switch (addr & 0xffff) { @@ -1028,10 +1029,21 @@ static uint16_t s3_virge_mmio_read_w(uint32_t addr, void *p) { virge_t *virge = (virge_t *)p; + uint32_t ret = 0xffff; - s3_virge_log("MMIO ReadW addr = %04x\n", addr & 0xfffc); + s3_virge_log("[%04X:%08X]: MMIO ReadW addr = %04x\n", CS, cpu_state.pc, addr & 0xfffe); switch (addr & 0xfffe) { + case 0x8504: + if (!virge->fifo_slot) + virge->subsys_stat |= INT_FIFO_EMP; + ret |= virge->subsys_stat; + if (virge->fifo_slot) + virge->fifo_slot--; + ret |= 0x30; /*A bit of a workaround at the moment.*/ + s3_virge_update_irqs(virge); + return ret; + case 0x859c: return virge->cmd_dma; @@ -1050,6 +1062,8 @@ s3_virge_mmio_read_l(uint32_t addr, void *p) VIRGEDMAHeader *dmahdr = &virge->dmahdr; uint32_t ret = 0xffffffff; + s3_virge_log("[%04X:%08X]: MMIO ReadL addr = %04x\n", CS, cpu_state.pc, addr & 0xfffc); + switch (addr & 0xfffc) { case 0x8180: ret = virge->streams.pri_ctrl; @@ -1267,8 +1281,9 @@ static void s3_virge_mmio_write(uint32_t addr, uint8_t val, void *p) static void s3_virge_mmio_write_w(uint32_t addr, uint16_t val, void *p) { - virge_t *virge = (virge_t *)p; - s3_virge_log("MMIO WriteW addr = %04x, val = %04x\n", addr & 0xfffe, val); + virge_t *virge = (virge_t *)p; + s3_virge_log("[%04X:%08X]: MMIO WriteW addr = %04x, val = %04x\n", CS, cpu_state.pc, addr & 0xfffe, val); + if ((addr & 0xfffe) < 0x8000) { if (virge->s3d.cmd_set & CMD_SET_MS) s3_virge_bitblt(virge, 16, ((val >> 8) | (val << 8)) << 16); @@ -4070,7 +4085,7 @@ static void *s3_virge_init(const device_t *info) virge->render_thread = thread_create(render_thread, virge); timer_add(&virge->tri_timer, s3_virge_tri_timer, virge, 0); - + virge->local = info->local; return virge; From 86a74f03d0eb3daefa45649aa09d2abd4aa71123 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 18 Nov 2021 23:30:48 +0100 Subject: [PATCH 60/61] Fixed some mistakes in the French translation. --- src/win/languages/fr-FR.rc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc index f0e4dfff7..76060ce8b 100644 --- a/src/win/languages/fr-FR.rc +++ b/src/win/languages/fr-FR.rc @@ -417,7 +417,7 @@ BEGIN IDS_2058 "Images ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Tous les fichiers (*.*)\0*.*\0" IDS_2059 "Turbo" IDS_2060 "Activé" - IDS_2061 "Desactivé" + IDS_2061 "Désactivé" IDS_2062 "Tous les images (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Images basiques du secteur (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Images de la surface (*.86F)\0*.86F\0" IDS_2063 "La machine ""%hs"" n'est pas disponible en raison de l'absence de ROMs en le répertoire roms/machines. Basculer vers une machine disponible." END @@ -531,7 +531,7 @@ BEGIN IDS_2143 "Shaders OpenGL (*.GLSL)\0*.GLSL\0Tous les fichiers (*.*)\0*.*\0" IDS_2144 "Options OpenGL" IDS_2145 "Vous chargez une configuration non prise en charge" - IDS_2146 "La filtrage du type du processeur sur la base de la machine sélectionné est desactivé pur cette machine émulée.\n\nCela permet de sélectionner une processeur que est sinon incompatible avec la machine sélectionné. Cependant, il pourrait y avoir des incompatibilités avec le BIOS de la machine ou autres logiciels.\n\nL'activatione de cette configuration non est officiellement prise en charge et tout rapport de bogue peut être fermé comme étant invalide." + IDS_2146 "La filtrage du type du processeur sur la base de la machine sélectionné est désactivé pur cette machine émulée.\n\nCela permet de sélectionner une processeur que est sinon incompatible avec la machine sélectionné. Cependant, il pourrait y avoir des incompatibilités avec le BIOS de la machine ou autres logiciels.\n\nL'activatione de cette configuration non est officiellement prise en charge et tout rapport de bogue peut être fermé comme étant invalide." IDS_2147 "Continuer" IDS_2148 "Cassette: %s" IDS_2149 "Images cassette (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tous les fichiers (*.*)\0*.*\0" @@ -598,11 +598,11 @@ BEGIN IDS_5120 "CD-ROM %i (%s): %s" - IDS_5376 "Desactivé" + IDS_5376 "Désactivé" IDS_5381 "ATAPI" IDS_5382 "SCSI" - IDS_5632 "Desactivé" + IDS_5632 "Désactivé" IDS_5637 "ATAPI (%01i:%01i)" IDS_5638 "SCSI (%01i:%02i)" From e29dafa17a56f58c3d91b16ecd23618b88ca2de0 Mon Sep 17 00:00:00 2001 From: TC1995 Date: Thu, 18 Nov 2021 23:58:04 +0100 Subject: [PATCH 61/61] Changes list 5: Added the AT&T 2xc498 Precision RAMDAC. Added 1MB configurations to the Cirrus Logic GD5434 as well as re-organized the memory size options of the other Cirrus cards. Separated the et4000w32/i blitter from the standard et4000w32p blitter and properly implemented the X/Y Count route. Added several Diamond Cirrus cards. Added Number Nine S3 cards (868 and 968-based). Fixed the WD90c30 1MB modes. Re-organized the video card names. --- src/include/86box/vid_svga.h | 3 + src/include/86box/video.h | 10 +- src/video/CMakeLists.txt | 2 +- src/video/vid_att2xc498_ramdac.c | 186 ++++++ src/video/vid_cl54xx.c | 476 +++++++++---- src/video/vid_et4000w32.c | 1063 ++++++++++++++++++++++-------- src/video/vid_paradise.c | 378 +++++++---- src/video/vid_s3.c | 193 ++++-- src/video/vid_table.c | 24 +- src/win/Makefile.mingw | 1 + 10 files changed, 1747 insertions(+), 589 deletions(-) create mode 100644 src/video/vid_att2xc498_ramdac.c diff --git a/src/include/86box/vid_svga.h b/src/include/86box/vid_svga.h index 9022a4a86..4380e041b 100644 --- a/src/include/86box/vid_svga.h +++ b/src/include/86box/vid_svga.h @@ -226,6 +226,8 @@ extern void ati68860_hwcursor_draw(svga_t *svga, int displine); extern void att49x_ramdac_out(uint16_t addr, int rs2, uint8_t val, void *p, svga_t *svga); extern uint8_t att49x_ramdac_in(uint16_t addr, int rs2, void *p, svga_t *svga); +extern void att498_ramdac_out(uint16_t addr, int rs2, uint8_t val, void *p, svga_t *svga); +extern uint8_t att498_ramdac_in(uint16_t addr, int rs2, void *p, svga_t *svga); extern float av9194_getclock(int clock, void *p); extern void bt48x_ramdac_out(uint16_t addr, int rs2, int rs3, uint8_t val, void *p, svga_t *svga); @@ -278,6 +280,7 @@ extern const device_t ati68860_ramdac_device; extern const device_t att490_ramdac_device; extern const device_t att491_ramdac_device; extern const device_t att492_ramdac_device; +extern const device_t att498_ramdac_device; extern const device_t av9194_device; extern const device_t bt484_ramdac_device; extern const device_t att20c504_ramdac_device; diff --git a/src/include/86box/video.h b/src/include/86box/video.h index 166770154..3e0c74ce9 100644 --- a/src/include/86box/video.h +++ b/src/include/86box/video.h @@ -226,24 +226,28 @@ extern const device_t compaq_ati28800_device; extern const device_t ati28800_wonderxl24_device; #endif -/* Cirrus Logic CL-GD 54xx */ +/* Cirrus Logic GD54xx */ extern const device_t gd5401_isa_device; extern const device_t gd5402_isa_device; extern const device_t gd5402_onboard_device; extern const device_t gd5420_isa_device; extern const device_t gd5422_isa_device; extern const device_t gd5424_vlb_device; +extern const device_t gd5426_isa_device; +extern const device_t gd5426_diamond_speedstar_pro_a1_isa_device; extern const device_t gd5426_vlb_device; extern const device_t gd5426_onboard_device; extern const device_t gd5428_isa_device; extern const device_t gd5428_vlb_device; +extern const device_t gd5428_diamond_speedstar_pro_b1_vlb_device; extern const device_t gd5428_mca_device; extern const device_t gd5428_onboard_device; extern const device_t gd5429_isa_device; extern const device_t gd5429_vlb_device; -extern const device_t gd5430_vlb_device; +extern const device_t gd5430_diamond_speedstar_pro_se_a8_vlb_device; extern const device_t gd5430_pci_device; extern const device_t gd5434_isa_device; +extern const device_t gd5434_diamond_speedstar_64_a3_isa_device; extern const device_t gd5434_onboard_pci_device; extern const device_t gd5434_vlb_device; extern const device_t gd5434_pci_device; @@ -369,6 +373,7 @@ extern const device_t s3_mirocrystal_20sv_964_pci_device; extern const device_t s3_mirocrystal_20sd_864_vlb_device; extern const device_t s3_phoenix_vision864_pci_device; extern const device_t s3_phoenix_vision864_vlb_device; +extern const device_t s3_9fx_531_pci_device; extern const device_t s3_phoenix_vision868_pci_device; extern const device_t s3_phoenix_vision868_vlb_device; extern const device_t s3_diamond_stealth64_pci_device; @@ -376,6 +381,7 @@ extern const device_t s3_diamond_stealth64_vlb_device; extern const device_t s3_diamond_stealth64_964_pci_device; extern const device_t s3_diamond_stealth64_964_vlb_device; extern const device_t s3_mirovideo_40sv_ergo_968_pci_device; +extern const device_t s3_9fx_771_pci_device; extern const device_t s3_phoenix_vision968_pci_device; extern const device_t s3_phoenix_vision968_vlb_device; extern const device_t s3_spea_mercury_p64v_pci_device; diff --git a/src/video/CMakeLists.txt b/src/video/CMakeLists.txt index 0c3befa62..b42bd21cb 100644 --- a/src/video/CMakeLists.txt +++ b/src/video/CMakeLists.txt @@ -24,7 +24,7 @@ add_library(vid OBJECT agpgart.c video.c vid_table.c vid_cga.c vid_cga_comp.c vid_stg_ramdac.c vid_ht216.c vid_oak_oti.c vid_paradise.c vid_rtg310x.c vid_f82c425.c vid_ti_cf62011.c vid_tvga.c vid_tgui9440.c vid_tkd8001_ramdac.c vid_att20c49x_ramdac.c vid_s3.c vid_s3_virge.c vid_ibm_rgb528_ramdac.c - vid_sdac_ramdac.c vid_ogc.c vid_nga.c vid_tvp3026_ramdac.c) + vid_sdac_ramdac.c vid_ogc.c vid_nga.c vid_tvp3026_ramdac.c vid_att2xc498_ramdac.c) if(MGA) target_compile_definitions(vid PRIVATE USE_MGA) diff --git a/src/video/vid_att2xc498_ramdac.c b/src/video/vid_att2xc498_ramdac.c new file mode 100644 index 000000000..747ffe75c --- /dev/null +++ b/src/video/vid_att2xc498_ramdac.c @@ -0,0 +1,186 @@ +/* + * 86Box A hypervisor and IBM PC system emulator that specializes in + * running old operating systems and software designed for IBM + * PC systems and compatibles from 1981 through fairly recent + * system designs based on the PCI bus. + * + * This file is part of the 86Box distribution. + * + * Emulation of a AT&T 2xc498 RAMDAC. + * + * + * + * Authors: Sarah Walker, + * Miran Grca, + * + * Copyright 2008-2018 Sarah Walker. + * Copyright 2016-2018 Miran Grca. + */ +#include +#include +#include +#include +#include +#include <86box/86box.h> +#include <86box/device.h> +#include <86box/mem.h> +#include <86box/timer.h> +#include <86box/video.h> +#include <86box/vid_svga.h> + + +typedef struct +{ + int type; + int state; + int loop; + uint8_t ctrl; +} att498_ramdac_t; + +static void +att498_ramdac_control(uint8_t val, void *p, svga_t *svga) +{ + att498_ramdac_t *ramdac = (att498_ramdac_t *) p; + ramdac->ctrl = val; + + if (val == 0xff) + return; + + switch ((ramdac->ctrl >> 4) & 0x0f) { + default: + svga->bpp = 8; + break; + case 1: + if (ramdac->ctrl & 4) + svga->bpp = 15; + else + svga->bpp = 8; + break; + case 3: + case 6: + svga->bpp = 16; + break; + case 5: + case 7: + svga->bpp = 32; + break; + case 0x0e: + svga->bpp = 24; + break; + } + + svga_set_ramdac_type(svga, (ramdac->ctrl & 2) ? RAMDAC_8BIT : RAMDAC_6BIT); + svga_recalctimings(svga); +} + +void +att498_ramdac_out(uint16_t addr, int rs2, uint8_t val, void *p, svga_t *svga) +{ + att498_ramdac_t *ramdac = (att498_ramdac_t *) p; + uint8_t rs = (addr & 0x03); + rs |= ((!!rs2) << 2); + + switch (rs) { + case 0x00: + case 0x01: + case 0x03: + case 0x04: + case 0x05: + case 0x07: + svga_out(addr, val, svga); + ramdac->state = 0; + break; + case 0x02: + switch (ramdac->state) { + case 4: + att498_ramdac_control(val, ramdac, svga); + break; + default: + svga_out(addr, val, svga); + break; + } + break; + case 0x06: + att498_ramdac_control(val, ramdac, svga); + break; + } +} + + +uint8_t +att498_ramdac_in(uint16_t addr, int rs2, void *p, svga_t *svga) +{ + att498_ramdac_t *ramdac = (att498_ramdac_t *) p; + uint8_t temp = 0xff; + uint8_t rs = (addr & 0x03); + rs |= ((!!rs2) << 2); + + switch (rs) { + case 0x00: + case 0x01: + case 0x03: + case 0x04: + case 0x05: + case 0x07: + temp = svga_in(addr, svga); + ramdac->state = 0; + break; + case 0x02: + switch (ramdac->state) { + case 4: + temp = ramdac->ctrl; + ramdac->state++; + break; + case 5: + temp = 0x84; + ramdac->state++; + break; + case 6: + temp = ramdac->ctrl; + ramdac->state = 0; + break; + default: + temp = svga_in(addr, svga); + ramdac->state++; + break; + } + break; + case 0x06: + temp = ramdac->ctrl; + ramdac->state = 0; + break; + } + + return temp; +} + + +static void * +att498_ramdac_init(const device_t *info) +{ + att498_ramdac_t *ramdac = (att498_ramdac_t *) malloc(sizeof(att498_ramdac_t)); + memset(ramdac, 0, sizeof(att498_ramdac_t)); + + ramdac->type = info->local; + + return ramdac; +} + + +static void +att498_ramdac_close(void *priv) +{ + att498_ramdac_t *ramdac = (att498_ramdac_t *) priv; + + if (ramdac) + free(ramdac); +} + + +const device_t att498_ramdac_device = +{ + "AT&T 22c498 RAMDAC", + 0, 0, + att498_ramdac_init, att498_ramdac_close, + NULL, { NULL }, NULL, NULL +}; \ No newline at end of file diff --git a/src/video/vid_cl54xx.c b/src/video/vid_cl54xx.c index 7ba2efb3c..3055de90a 100644 --- a/src/video/vid_cl54xx.c +++ b/src/video/vid_cl54xx.c @@ -45,13 +45,15 @@ #define BIOS_GD5402_ONBOARD_PATH "roms/machines/cbm_sl386sx25/c000.rom" #define BIOS_GD5420_PATH "roms/video/cirruslogic/5420.vbi" #define BIOS_GD5422_PATH "roms/video/cirruslogic/cl5422.bin" -#define BIOS_GD5426_PATH "roms/video/cirruslogic/Diamond SpeedStar PRO VLB v3.04.bin" +#define BIOS_GD5426_DIAMOND_A1_ISA_PATH "roms/video/cirruslogic/diamond5426.bin" +#define BIOS_GD5428_DIAMOND_B1_VLB_PATH "roms/video/cirruslogic/Diamond SpeedStar PRO VLB v3.04.bin" #define BIOS_GD5428_ISA_PATH "roms/video/cirruslogic/5428.bin" #define BIOS_GD5428_MCA_PATH "roms/video/cirruslogic/SVGA141.ROM" #define BIOS_GD5428_PATH "roms/video/cirruslogic/vlbusjapan.BIN" #define BIOS_GD5429_PATH "roms/video/cirruslogic/5429.vbi" -#define BIOS_GD5430_VLB_PATH "roms/video/cirruslogic/diamondvlbus.bin" -#define BIOS_GD5430_PCI_PATH "roms/video/cirruslogic/pci.bin" +#define BIOS_GD5430_DIAMOND_A8_VLB_PATH "roms/video/cirruslogic/diamondvlbus.bin" +#define BIOS_GD5430_PATH "roms/video/cirruslogic/pci.bin" +#define BIOS_GD5434_DIAMOND_A3_ISA_PATH "roms/video/cirruslogic/Diamond Multimedia SpeedStar 64 v2.02 EPROM Backup from ST M27C256B-12F1.BIN" #define BIOS_GD5434_PATH "roms/video/cirruslogic/gd5434.bin" #define BIOS_GD5436_PATH "roms/video/cirruslogic/5436.vbi" #define BIOS_GD5440_PATH "roms/video/cirruslogic/BIOS.BIN" @@ -1209,11 +1211,62 @@ gd54xx_in(uint16_t addr, void *p) ret |= 0x80; } break; + case 0x0a: /*Scratch Pad 1 (Memory size for 5402/542x)*/ + ret = svga->seqregs[0x0a] & ~0x1a; + if (svga->crtc[0x27] == CIRRUS_ID_CLGD5402) { + ret |= 0x01; /*512K of memory*/ + } else if (svga->crtc[0x27] > CIRRUS_ID_CLGD5402) { + switch (gd54xx->vram_size >> 10) { + case 512: + ret |= 0x08; + break; + case 1024: + ret |= 0x10; + break; + case 2048: + ret |= 0x18; + break; + } + } + break; case 0x0b: case 0x0c: case 0x0d: case 0x0e: ret = gd54xx->vclk_n[svga->seqaddr-0x0b]; break; + case 0x0f: /*DRAM control*/ + ret = svga->seqregs[0x0f] & ~0x98; + switch (gd54xx->vram_size >> 10) { + case 512: + ret |= 0x08; /*16-bit DRAM data bus width*/ + break; + case 1024: + ret |= 0x10; /*32-bit DRAM data bus width for 1M of memory*/ + break; + case 2048: + ret |= (gd54xx_is_5434(svga)) ? 0x98 : 0x18; /*32-bit (Pre-5434)/64-bit (5434 and up) DRAM data bus width for 2M of memory*/ + break; + case 4096: + ret |= 0x98; /*64-bit (5434 and up) DRAM data bus width for 4M of memory*/ + break; + } + break; + case 0x15: /*Scratch Pad 3 (Memory size for 543x)*/ + ret = svga->seqregs[0x15] & ~0x0f; + if (svga->crtc[0x27] >= CIRRUS_ID_CLGD5430) { + switch (gd54xx->vram_size >> 20) { + case 1: + ret |= 0x02; + break; + case 2: + ret |= 0x03; + break; + case 4: + ret |= 0x04; + break; + } + } + break; case 0x17: - ret = svga->gdcreg[0x17] & ~(7 << 3); + ret = svga->seqregs[0x17] & ~(7 << 3); if (svga->crtc[0x27] <= CIRRUS_ID_CLGD5429) { if ((svga->crtc[0x27] == CIRRUS_ID_CLGD5428) || (svga->crtc[0x27] == CIRRUS_ID_CLGD5426)) { if (gd54xx->vlb) @@ -3844,17 +3897,29 @@ static void case CIRRUS_ID_CLGD5426: if (info->local & 0x200) romfn = NULL; - else - romfn = BIOS_GD5426_PATH; + else { + if (info->local & 0x100) + romfn = BIOS_GD5426_DIAMOND_A1_ISA_PATH; + else { + if (gd54xx->vlb) + romfn = BIOS_GD5428_PATH; + else + romfn = BIOS_GD5428_ISA_PATH; + } + } break; case CIRRUS_ID_CLGD5428: - if (gd54xx->vlb) - romfn = BIOS_GD5428_PATH; - else if (gd54xx->mca) - romfn = BIOS_GD5428_MCA_PATH; - else - romfn = BIOS_GD5428_ISA_PATH; + if (info->local & 0x100) + romfn = BIOS_GD5428_DIAMOND_B1_VLB_PATH; + else { + if (gd54xx->vlb) + romfn = BIOS_GD5428_PATH; + else if (gd54xx->mca) + romfn = BIOS_GD5428_MCA_PATH; + else + romfn = BIOS_GD5428_ISA_PATH; + } break; case CIRRUS_ID_CLGD5429: @@ -3873,8 +3938,12 @@ static void if (info->local & 0x200) { romfn = NULL; gd54xx->has_bios = 0; - } else - romfn = BIOS_GD5434_PATH; + } else { + if (info->local & 0x100) + romfn = BIOS_GD5434_DIAMOND_A3_ISA_PATH; + else + romfn = BIOS_GD5434_PATH; + } break; case CIRRUS_ID_CLGD5436: @@ -3896,9 +3965,9 @@ static void romfn = NULL; gd54xx->has_bios = 0; } else if (gd54xx->pci) - romfn = BIOS_GD5430_PCI_PATH; + romfn = BIOS_GD5430_PATH; else - romfn = BIOS_GD5430_VLB_PATH; + romfn = BIOS_GD5430_DIAMOND_A8_VLB_PATH; } break; @@ -3915,23 +3984,24 @@ static void } if (info->flags & DEVICE_MCA) { - vram = 1; - gd54xx->vram_size = 1 << 20; + vram = 1024; + gd54xx->vram_size = vram << 10; } else { - if (id >= CIRRUS_ID_CLGD5420) { + if (id <= CIRRUS_ID_CLGD5428) { if ((id == CIRRUS_ID_CLGD5426) && (info->local & 0x200)) - vram = 1; + vram = 1024; + else if (id == CIRRUS_ID_CLGD5401) + vram = 256; + else if (id == CIRRUS_ID_CLGD5402) + vram = 512; else vram = device_get_config_int("memory"); - } else - vram = 0; - - if (vram) - gd54xx->vram_size = vram << 20; - else - gd54xx->vram_size = 1 << 19; + gd54xx->vram_size = vram << 10; + } else { + vram = device_get_config_int("memory"); + gd54xx->vram_size = vram << 20; + } } - gd54xx->vram_mask = gd54xx->vram_size - 1; if (romfn) @@ -3955,8 +4025,8 @@ static void } svga->vblank_start = gd54xx_vblank_start; svga->ven_write = gd54xx_write_modes45; - if (vram <= 1) - svga->decode_mask = gd54xx->vram_mask; + if ((vram == 1) || (vram >= 256 && vram <= 1024)) + svga->decode_mask = gd54xx->vram_mask; if (gd54xx->bit32) { mem_mapping_set_handler(&svga->mapping, gd54xx_read, gd54xx_readw, gd54xx_readl, gd54xx_write, gd54xx_writew, gd54xx_writel); @@ -4039,6 +4109,7 @@ static void svga->crtc[0x27] = id; svga->seqregs[6] = 0x0f; + if (svga->crtc[0x27] >= CIRRUS_ID_CLGD5429) gd54xx->unlocked = 1; @@ -4089,9 +4160,9 @@ gd5422_available(void) } static int -gd5426_available(void) +gd5426_diamond_a1_available(void) { - return rom_present(BIOS_GD5426_PATH); + return rom_present(BIOS_GD5426_DIAMOND_A1_ISA_PATH); } static int @@ -4100,6 +4171,12 @@ gd5428_available(void) return rom_present(BIOS_GD5428_PATH); } +static int +gd5428_diamond_b1_available(void) +{ + return rom_present(BIOS_GD5428_DIAMOND_B1_VLB_PATH); +} + static int gd5428_isa_available(void) { @@ -4119,15 +4196,15 @@ gd5429_available(void) } static int -gd5430_vlb_available(void) +gd5430_diamond_a8_available(void) { - return rom_present(BIOS_GD5430_VLB_PATH); + return rom_present(BIOS_GD5430_DIAMOND_A8_VLB_PATH); } static int -gd5430_pci_available(void) +gd5430_available(void) { - return rom_present(BIOS_GD5430_PCI_PATH); + return rom_present(BIOS_GD5430_PATH); } static int @@ -4136,6 +4213,12 @@ gd5434_available(void) return rom_present(BIOS_GD5434_PATH); } +static int +gd5434_diamond_a3_available(void) +{ + return rom_present(BIOS_GD5434_DIAMOND_A3_ISA_PATH); +} + static int gd5436_available(void) { @@ -4199,28 +4282,96 @@ gd54xx_force_redraw(void *p) gd54xx->svga.fullchange = changeframecount; } -static const device_config_t gd5422_config[] = +static const device_config_t gd542x_config[] = { { - "memory","Memory size",CONFIG_SELECTION,"", 1, "", { 0 }, + .name = "memory", + .description = "Memory size", + .type = CONFIG_SELECTION, + .selection = { { - "512 KB", 0 + .description = "512 KB", + .value = 512 }, { - "1 MB", 1 + .description = "1 MB", + .value = 1024 }, { - "" + .description = "" } }, + .default_int = 512 }, { - "", "", -1 + .type = -1 } }; -static const device_config_t gd5428_config[] = +static const device_config_t gd5426_config[] = +{ + { + .name = "memory", + .description = "Memory size", + .type = CONFIG_SELECTION, + .selection = + { + { + .description = "512 KB", + .value = 512 + }, + { + .description = "1 MB", + .value = 1024 + }, + { + .description = "2 MB", + .value = 2048 + }, + { + .description = "" + } + }, + .default_int = 2048 + }, + { + .type = -1 + } +}; + +static const device_config_t gd5428_onboard_config[] = +{ + { + .name = "memory", + .description = "Onboard memory size", + .type = CONFIG_SELECTION, + .selection = + { + { + .description = "512 KB", + .value = 512 + }, + { + .description = "1 MB", + .value = 1024 + }, + { + .description = "2 MB", + .value = 2048 + }, + { + .description = "" + } + }, + .default_int = 2048 + }, + { + .type = -1 + } +}; + +static const device_config_t gd5429_config[] = { { .name = "memory", @@ -4247,38 +4398,11 @@ static const device_config_t gd5428_config[] = } }; -static const device_config_t gd5428_onboard_config[] = -{ - { - .name = "memory", - .description = "Onboard Video RAM size", - .type = CONFIG_SELECTION, - .selection = - { - { - .description = "1 MB", - .value = 1 - }, - { - .description = "2 MB", - .value = 2 - }, - { - .description = "" - } - }, - .default_int = 2 - }, - { - .type = -1 - } -}; - static const device_config_t gd5440_onboard_config[] = { { .name = "memory", - .description = "Video memory size", + .description = "Onboard memory size", .type = CONFIG_SELECTION, .selection = { @@ -4302,6 +4426,68 @@ static const device_config_t gd5440_onboard_config[] = }; static const device_config_t gd5434_config[] = +{ + { + .name = "memory", + .description = "Memory size", + .type = CONFIG_SELECTION, + .selection = + { + { + .description = "1 MB", + .value = 1 + }, + { + .description = "2 MB", + .value = 2 + }, + { + .description = "4 MB", + .value = 4 + }, + { + .description = "" + } + }, + .default_int = 4 + }, + { + .type = -1 + } +}; + +static const device_config_t gd5434_onboard_config[] = +{ + { + .name = "memory", + .description = "Onboard memory size", + .type = CONFIG_SELECTION, + .selection = + { + { + .description = "1 MB", + .value = 1 + }, + { + .description = "2 MB", + .value = 2 + }, + { + .description = "4 MB", + .value = 4 + }, + { + .description = "" + } + }, + .default_int = 4 + }, + { + .type = -1 + } +}; + +static const device_config_t gd5480_config[] = { { .name = "memory", @@ -4330,7 +4516,7 @@ static const device_config_t gd5434_config[] = const device_t gd5401_isa_device = { - "Cirrus Logic GD-5401 (ACUMOS AVGA1)", + "Cirrus Logic GD5401 (ISA) (ACUMOS AVGA1)", DEVICE_ISA, CIRRUS_ID_CLGD5401, gd54xx_init, gd54xx_close, @@ -4343,7 +4529,7 @@ const device_t gd5401_isa_device = const device_t gd5402_isa_device = { - "Cirrus Logic GD-5402 (ACUMOS AVGA2)", + "Cirrus Logic GD5402 (ISA) (ACUMOS AVGA2)", DEVICE_ISA, CIRRUS_ID_CLGD5402, gd54xx_init, gd54xx_close, @@ -4356,7 +4542,7 @@ const device_t gd5402_isa_device = const device_t gd5402_onboard_device = { - "Cirrus Logic GD-5402 (ACUMOS AVGA2) (On-Board)", + "Cirrus Logic GD5402 (ISA) (ACUMOS AVGA2) (On-Board)", DEVICE_AT | DEVICE_ISA, CIRRUS_ID_CLGD5402 | 0x200, gd54xx_init, gd54xx_close, @@ -4369,7 +4555,7 @@ const device_t gd5402_onboard_device = const device_t gd5420_isa_device = { - "Cirrus Logic GD-5420", + "Cirrus Logic GD5420 (ISA)", DEVICE_AT | DEVICE_ISA, CIRRUS_ID_CLGD5420, gd54xx_init, gd54xx_close, @@ -4377,11 +4563,11 @@ const device_t gd5420_isa_device = { gd5420_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5422_config, + gd542x_config, }; const device_t gd5422_isa_device = { - "Cirrus Logic GD-5422", + "Cirrus Logic GD5422 (ISA)", DEVICE_AT | DEVICE_ISA, CIRRUS_ID_CLGD5422, gd54xx_init, gd54xx_close, @@ -4389,11 +4575,11 @@ const device_t gd5422_isa_device = { { gd5422_available }, /* Common BIOS between 5422 and 5424 */ gd54xx_speed_changed, gd54xx_force_redraw, - gd5422_config, + gd542x_config, }; const device_t gd5424_vlb_device = { - "Cirrus Logic GD-5424", + "Cirrus Logic GD5424 (VLB)", DEVICE_VLB, CIRRUS_ID_CLGD5424, gd54xx_init, gd54xx_close, @@ -4401,26 +4587,57 @@ const device_t gd5424_vlb_device = { { gd5422_available }, /* Common BIOS between 5422 and 5424 */ gd54xx_speed_changed, gd54xx_force_redraw, - gd5422_config, + gd542x_config, +}; + +const device_t gd5426_isa_device = +{ + "Cirrus Logic GD5426 (ISA)", + DEVICE_AT | DEVICE_ISA, + CIRRUS_ID_CLGD5426, + gd54xx_init, + gd54xx_close, + gd54xx_reset, + { gd5428_isa_available }, + gd54xx_speed_changed, + gd54xx_force_redraw, + gd5426_config +}; + + +/*According to a Diamond bios file listing and vgamuseum*/ +const device_t gd5426_diamond_speedstar_pro_a1_isa_device = +{ + "Cirrus Logic GD5426 (ISA) (Diamond SpeedStar Pro Rev. A1)", + DEVICE_AT | DEVICE_ISA, + CIRRUS_ID_CLGD5426 | 0x100, + gd54xx_init, + gd54xx_close, + gd54xx_reset, + { gd5426_diamond_a1_available }, + gd54xx_speed_changed, + gd54xx_force_redraw, + gd5426_config }; const device_t gd5426_vlb_device = { - "Cirrus Logic CL-GD 5426 (VLB)", + "Cirrus Logic GD5426 (VLB)", DEVICE_VLB, CIRRUS_ID_CLGD5426, gd54xx_init, gd54xx_close, gd54xx_reset, - { gd5426_available }, + { gd5428_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5428_config + gd5426_config }; + const device_t gd5426_onboard_device = { - "Cirrus Logic CL-GD 5426 (On-board)", + "Cirrus Logic GD5426 (VLB) (On-Board)", DEVICE_VLB, CIRRUS_ID_CLGD5426 | 0x200, gd54xx_init, @@ -4434,7 +4651,7 @@ const device_t gd5426_onboard_device = const device_t gd5428_isa_device = { - "Cirrus Logic CL-GD 5428 (ISA)", + "Cirrus Logic GD5428 (ISA)", DEVICE_AT | DEVICE_ISA, CIRRUS_ID_CLGD5428, gd54xx_init, @@ -4443,12 +4660,12 @@ const device_t gd5428_isa_device = { gd5428_isa_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5428_config + gd5426_config }; const device_t gd5428_vlb_device = { - "Cirrus Logic CL-GD 5428 (VLB)", + "Cirrus Logic GD5428 (VLB)", DEVICE_VLB, CIRRUS_ID_CLGD5428, gd54xx_init, @@ -4457,12 +4674,27 @@ const device_t gd5428_vlb_device = { gd5428_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5428_config + gd5426_config +}; + +/*According to a Diamond bios file listing and vgamuseum*/ +const device_t gd5428_diamond_speedstar_pro_b1_vlb_device = +{ + "Cirrus Logic GD5428 (VLB) (Diamond SpeedStar Pro Rev. B1)", + DEVICE_VLB, + CIRRUS_ID_CLGD5428 | 0x100, + gd54xx_init, + gd54xx_close, + gd54xx_reset, + { gd5428_diamond_b1_available }, + gd54xx_speed_changed, + gd54xx_force_redraw, + gd5426_config }; const device_t gd5428_mca_device = { - "Cirrus Logic CL-GD 5428 (IBM SVGA Adapter/A)", + "Cirrus Logic GD5428 (MCA) (IBM SVGA Adapter/A)", DEVICE_MCA, CIRRUS_ID_CLGD5428, gd54xx_init, @@ -4476,7 +4708,7 @@ const device_t gd5428_mca_device = const device_t gd5428_onboard_device = { - "Cirrus Logic CL-GD 5428 (On-Board)", + "Cirrus Logic GD5428 (ISA) (On-Board)", DEVICE_AT | DEVICE_ISA, CIRRUS_ID_CLGD5428, gd54xx_init, @@ -4490,7 +4722,7 @@ const device_t gd5428_onboard_device = const device_t gd5429_isa_device = { - "Cirrus Logic CL-GD 5429 (ISA)", + "Cirrus Logic GD5429 (ISA)", DEVICE_AT | DEVICE_ISA, CIRRUS_ID_CLGD5429, gd54xx_init, @@ -4499,12 +4731,12 @@ const device_t gd5429_isa_device = { gd5429_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5428_config + gd5429_config }; const device_t gd5429_vlb_device = { - "Cirrus Logic CL-GD 5429 (VLB)", + "Cirrus Logic GD5429 (VLB)", DEVICE_VLB, CIRRUS_ID_CLGD5429, gd54xx_init, @@ -4513,40 +4745,41 @@ const device_t gd5429_vlb_device = { gd5429_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5428_config + gd5429_config }; -const device_t gd5430_vlb_device = +/*According to a Diamond bios file listing and vgamuseum*/ +const device_t gd5430_diamond_speedstar_pro_se_a8_vlb_device = { - "Cirrus Logic CL-GD 5430 (VLB)", + "Cirrus Logic GD5430 (VLB) (Diamond SpeedStar Pro SE Rev. A8)", DEVICE_VLB, CIRRUS_ID_CLGD5430, gd54xx_init, gd54xx_close, gd54xx_reset, - { gd5430_vlb_available }, + { gd5430_diamond_a8_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5428_config + gd5429_config }; const device_t gd5430_pci_device = { - "Cirrus Logic CL-GD 5430 (PCI)", + "Cirrus Logic GD5430 (PCI)", DEVICE_PCI, CIRRUS_ID_CLGD5430, gd54xx_init, gd54xx_close, gd54xx_reset, - { gd5430_pci_available }, + { gd5430_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5428_config + gd5429_config }; const device_t gd5434_isa_device = { - "Cirrus Logic CL-GD 5434 (ISA)", + "Cirrus Logic GD5434 (ISA)", DEVICE_AT | DEVICE_ISA, CIRRUS_ID_CLGD5434, gd54xx_init, @@ -4558,9 +4791,24 @@ const device_t gd5434_isa_device = gd5434_config }; +/*According to a Diamond bios file listing and vgamuseum*/ +const device_t gd5434_diamond_speedstar_64_a3_isa_device = +{ + "Cirrus Logic GD5434 (ISA) (Diamond SpeedStar 64 Rev. A3)", + DEVICE_AT | DEVICE_ISA, + CIRRUS_ID_CLGD5434 | 0x100, + gd54xx_init, + gd54xx_close, + gd54xx_reset, + { gd5434_diamond_a3_available }, + gd54xx_speed_changed, + gd54xx_force_redraw, + gd5429_config +}; + const device_t gd5434_onboard_pci_device = { - "Cirrus Logic CL-GD 5434-4 (On-Board PCI)", + "Cirrus Logic GD5434-4 (PCI) (On-Board)", DEVICE_PCI, CIRRUS_ID_CLGD5434 | 0x200, gd54xx_init, @@ -4569,12 +4817,12 @@ const device_t gd5434_onboard_pci_device = { NULL }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5434_config + gd5434_onboard_config }; const device_t gd5434_vlb_device = { - "Cirrus Logic CL-GD 5434 (VLB)", + "Cirrus Logic GD5434 (VLB)", DEVICE_VLB, CIRRUS_ID_CLGD5434, gd54xx_init, @@ -4588,7 +4836,7 @@ const device_t gd5434_vlb_device = const device_t gd5434_pci_device = { - "Cirrus Logic CL-GD 5434 (PCI)", + "Cirrus Logic GD5434 (PCI)", DEVICE_PCI, CIRRUS_ID_CLGD5434, gd54xx_init, @@ -4602,7 +4850,7 @@ const device_t gd5434_pci_device = const device_t gd5436_pci_device = { - "Cirrus Logic CL-GD 5436 (PCI)", + "Cirrus Logic GD5436 (PCI)", DEVICE_PCI, CIRRUS_ID_CLGD5436, gd54xx_init, @@ -4616,7 +4864,7 @@ const device_t gd5436_pci_device = const device_t gd5440_onboard_pci_device = { - "Cirrus Logic CL-GD 5440 (On-Board PCI)", + "Cirrus Logic GD5440 (PCI) (On-Board)", DEVICE_PCI, CIRRUS_ID_CLGD5440 | 0x600, gd54xx_init, @@ -4630,7 +4878,7 @@ const device_t gd5440_onboard_pci_device = const device_t gd5440_pci_device = { - "Cirrus Logic CL-GD 5440 (PCI)", + "Cirrus Logic GD5440 (PCI)", DEVICE_PCI, CIRRUS_ID_CLGD5440 | 0x400, gd54xx_init, @@ -4639,12 +4887,12 @@ const device_t gd5440_pci_device = { gd5440_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5428_config + gd5429_config }; const device_t gd5446_pci_device = { - "Cirrus Logic CL-GD 5446 (PCI)", + "Cirrus Logic GD5446 (PCI)", DEVICE_PCI, CIRRUS_ID_CLGD5446, gd54xx_init, @@ -4658,7 +4906,7 @@ const device_t gd5446_pci_device = const device_t gd5446_stb_pci_device = { - "STB Nitro 64V (PCI)", + "Cirrus Logic GD5446 (PCI) (STB Nitro 64V)", DEVICE_PCI, CIRRUS_ID_CLGD5446 | 0x100, gd54xx_init, @@ -4672,7 +4920,7 @@ const device_t gd5446_stb_pci_device = const device_t gd5480_pci_device = { - "Cirrus Logic CL-GD 5480 (PCI)", + "Cirrus Logic GD5480 (PCI)", DEVICE_PCI, CIRRUS_ID_CLGD5480, gd54xx_init, @@ -4681,5 +4929,5 @@ const device_t gd5480_pci_device = { gd5480_available }, gd54xx_speed_changed, gd54xx_force_redraw, - gd5434_config + gd5480_config }; diff --git a/src/video/vid_et4000w32.c b/src/video/vid_et4000w32.c index 65dced875..1c2ca794e 100644 --- a/src/video/vid_et4000w32.c +++ b/src/video/vid_et4000w32.c @@ -78,9 +78,9 @@ typedef struct et4000w32p_t uint8_t regs[256], pci_regs[256]; int index, vlb, pci, interleaved, - bank, blitter_busy, type; + bank, type; - uint32_t linearbase, linearbase_old; + uint32_t linearbase; uint32_t vram_mask; /* Accelerator */ @@ -97,12 +97,13 @@ typedef struct et4000w32p_t uint32_t pattern_addr, source_addr, dest_addr, mix_addr; } queued, internal; - uint8_t osr; + uint8_t suspend_terminate, osr; uint8_t status; + uint16_t x_count, y_count; int pattern_x, source_x, pattern_x_back, source_x_back, pattern_y, source_y, cpu_dat_pos, pix_pos, - cpu_input_num, queue; + cpu_input_num, fifo_queue; uint32_t pattern_addr, source_addr, dest_addr, mix_addr, pattern_back, source_back, dest_back, mix_back, @@ -115,6 +116,8 @@ typedef struct et4000w32p_t uint32_t base[3]; uint8_t ctrl; } mmu; + + volatile int busy; } et4000w32p_t; @@ -131,12 +134,13 @@ static video_timings_t timing_et4000w32_isa = {VIDEO_ISA, 4, 4, 4, 10, 10, 10 void et4000w32p_recalcmapping(et4000w32p_t *et4000); -uint8_t et4000w32p_mmu_read(uint32_t addr, void *p); -void et4000w32p_mmu_write(uint32_t addr, uint8_t val, void *p); +static uint8_t et4000w32p_mmu_read(uint32_t addr, void *p); +static void et4000w32p_mmu_write(uint32_t addr, uint8_t val, void *p); -void et4000w32_blit_start(et4000w32p_t *et4000); -void et4000w32p_blit_start(et4000w32p_t *et4000); -void et4000w32p_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input, et4000w32p_t *et4000); +static void et4000w32_blit_start(et4000w32p_t *et4000); +static void et4000w32p_blit_start(et4000w32p_t *et4000); +static void et4000w32_blit(int count, int cpu_input, uint32_t src_dat, uint32_t mix_dat, et4000w32p_t *et4000); +static void et4000w32p_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input, et4000w32p_t *et4000); uint8_t et4000w32p_in(uint16_t addr, void *p); @@ -213,7 +217,7 @@ et4000w32p_out(uint16_t addr, uint8_t val, void *p) } break; case 0x3d4: - svga->crtcreg = val & 63; + svga->crtcreg = val & 0x3f; return; case 0x3d5: if ((svga->crtcreg < 7) && (svga->crtc[0x11] & 0x80)) @@ -333,12 +337,16 @@ et4000w32p_in(uint16_t addr, void *p) case 0x3d4: return svga->crtcreg; case 0x3d5: + if (et4000->type == ET4000W32) { + if (svga->crtcreg == 0x37) + return 0x09; + } return svga->crtc[svga->crtcreg]; case 0x3da: svga->attrff = 0; - /*Bit 1 of the Input Status Register is required by OS/2 ET4000W32/I drivers to be set otherwise + /*Bit 1 of the Input Status Register is required by the OS/2 and NT ET4000W32/I drivers to be set otherwise the guest will loop infinitely upon reaching the GUI*/ if (svga->cgastat & 0x01) svga->cgastat &= ~0x32; @@ -397,6 +405,24 @@ et4000w32p_recalctimings(svga_t *svga) svga->clock = (cpuclock * (double)(1ull << 32)) / svga->getclock((svga->miscout >> 2) & 3, svga->clock_gen); + if (et4000->type != ET4000W32P_DIAMOND) { + if ((svga->gdcreg[6] & 1) || (svga->attrregs[0x10] & 1)) { + if (svga->gdcreg[5] & 0x40) { + switch (svga->bpp) { + case 8: + svga->clock /= 2; + break; + case 15: case 16: + svga->clock /= 3; + break; + case 24: + svga->clock /= 4; + break; + } + } + } + } + if (svga->adv_flags & FLAG_NOSKEW) { /* On the Cardex ET4000/W32p-based cards, adjust text mode clocks by 1. */ if (!(svga->gdcreg[6] & 1) && !(svga->attrregs[0x10] & 1)) { /* Text mode */ @@ -550,6 +576,7 @@ et4000w32p_recalcmapping(et4000w32p_t *et4000) map = (svga->gdcreg[6] & 0xc) >> 2; if (svga->crtc[0x36] & 0x20) map |= 4; if (svga->crtc[0x36] & 0x08) map |= 8; + mem_mapping_disable(&et4000->linear_mapping); switch (map) { case 0x0: case 0x4: case 0x8: case 0xc: /* 128k at A0000 */ mem_mapping_set_addr(&svga->mapping, 0xa0000, 0x20000); @@ -587,12 +614,8 @@ et4000w32p_recalcmapping(et4000w32p_t *et4000) svga->banked_mask = 0x7fff; break; } - - mem_mapping_disable(&et4000->linear_mapping); } - et4000->linearbase_old = et4000->linearbase; - if (!et4000->interleaved && (svga->crtc[0x32] & 0x80)) mem_mapping_disable(&svga->mapping); } @@ -601,128 +624,208 @@ et4000w32p_recalcmapping(et4000w32p_t *et4000) static void et4000w32p_accel_write_fifo(et4000w32p_t *et4000, uint32_t addr, uint8_t val) { - switch (addr & 0x7fff) { - case 0x7f80: et4000->acl.queued.pattern_addr = (et4000->acl.queued.pattern_addr & 0xFFFFFF00) | val; break; - case 0x7f81: et4000->acl.queued.pattern_addr = (et4000->acl.queued.pattern_addr & 0xFFFF00FF) | (val << 8); break; - case 0x7f82: et4000->acl.queued.pattern_addr = (et4000->acl.queued.pattern_addr & 0xFF00FFFF) | (val << 16); break; - case 0x7f83: et4000->acl.queued.pattern_addr = (et4000->acl.queued.pattern_addr & 0x00FFFFFF) | (val << 24); et4000->acl.queue++; break; - case 0x7f84: et4000->acl.queued.source_addr = (et4000->acl.queued.source_addr & 0xFFFFFF00) | val; break; - case 0x7f85: et4000->acl.queued.source_addr = (et4000->acl.queued.source_addr & 0xFFFF00FF) | (val << 8); break; - case 0x7f86: et4000->acl.queued.source_addr = (et4000->acl.queued.source_addr & 0xFF00FFFF) | (val << 16); break; - case 0x7f87: et4000->acl.queued.source_addr = (et4000->acl.queued.source_addr & 0x00FFFFFF) | (val << 24); et4000->acl.queue++; break; - case 0x7f88: et4000->acl.queued.pattern_off = (et4000->acl.queued.pattern_off & 0xFF00) | val; break; - case 0x7f89: et4000->acl.queued.pattern_off = (et4000->acl.queued.pattern_off & 0x00FF) | (val << 8); et4000->acl.queue++; break; - case 0x7f8a: et4000->acl.queued.source_off = (et4000->acl.queued.source_off & 0xFF00) | val; break; - case 0x7f8b: et4000->acl.queued.source_off = (et4000->acl.queued.source_off & 0x00FF) | (val << 8); et4000->acl.queue++;break; - case 0x7f8c: et4000->acl.queued.dest_off = (et4000->acl.queued.dest_off & 0xFF00) | val; break; - case 0x7f8d: et4000->acl.queued.dest_off = (et4000->acl.queued.dest_off & 0x00FF) | (val << 8); et4000->acl.queue++; break; - case 0x7f8e: - et4000->acl.queue++; - if (et4000->type >= ET4000W32P_REVC) - et4000->acl.queued.pixel_depth = val; - else - et4000->acl.queued.vbus = val; + et4000->acl.fifo_queue++; + switch (addr & 0xff) { + case 0x80: + et4000->acl.queued.pattern_addr = (et4000->acl.queued.pattern_addr & 0x3fff00) | val; break; - case 0x7f8f: et4000->acl.queued.xy_dir = val; et4000->acl.queue++; break; - case 0x7f90: et4000->acl.queued.pattern_wrap = val; et4000->acl.queue++; break; - case 0x7f92: et4000->acl.queued.source_wrap = val; et4000->acl.queue++; break; - case 0x7f98: et4000->acl.queued.count_x = (et4000->acl.queued.count_x & 0xFF00) | val; break; - case 0x7f99: et4000->acl.queued.count_x = (et4000->acl.queued.count_x & 0x00FF) | (val << 8); et4000->acl.queue++; break; - case 0x7f9a: et4000->acl.queued.count_y = (et4000->acl.queued.count_y & 0xFF00) | val; break; - case 0x7f9b: et4000->acl.queued.count_y = (et4000->acl.queued.count_y & 0x00FF) | (val << 8); et4000->acl.queue++; break; - case 0x7f9c: et4000->acl.queued.ctrl_routing = val; et4000->acl.queue++; break; - case 0x7f9d: et4000->acl.queued.ctrl_reload = val; et4000->acl.queue++; break; - case 0x7f9e: et4000->acl.queued.rop_bg = val; et4000->acl.queue++; break; - case 0x7f9f: et4000->acl.queued.rop_fg = val; et4000->acl.queue++; break; - case 0x7fa0: et4000->acl.queued.dest_addr = (et4000->acl.queued.dest_addr & 0xFFFFFF00) | val; break; - case 0x7fa1: et4000->acl.queued.dest_addr = (et4000->acl.queued.dest_addr & 0xFFFF00FF) | (val << 8); break; - case 0x7fa2: et4000->acl.queued.dest_addr = (et4000->acl.queued.dest_addr & 0xFF00FFFF) | (val << 16); break; - case 0x7fa3: et4000->acl.queued.dest_addr = (et4000->acl.queued.dest_addr & 0x00FFFFFF) | (val << 24); - et4000->acl.queue++; + case 0x81: + et4000->acl.queued.pattern_addr = (et4000->acl.queued.pattern_addr & 0x3f00ff) | (val << 8); + break; + case 0x82: + et4000->acl.queued.pattern_addr = (et4000->acl.queued.pattern_addr & 0x00ffff) | ((val & 0x3f) << 16); + break; + case 0x84: + et4000->acl.queued.source_addr = (et4000->acl.queued.source_addr & 0x3fff00) | val; + break; + case 0x85: + et4000->acl.queued.source_addr = (et4000->acl.queued.source_addr & 0x3f00ff) | (val << 8); + break; + case 0x86: + et4000->acl.queued.source_addr = (et4000->acl.queued.source_addr & 0x00ffff) | ((val & 0x3f) << 16); + break; + case 0x88: + et4000->acl.queued.pattern_off = (et4000->acl.queued.pattern_off & 0x0f00) | val; + break; + case 0x89: + et4000->acl.queued.pattern_off = (et4000->acl.queued.pattern_off & 0x00ff) | ((val & 0x0f) << 8); + break; + case 0x8a: + et4000->acl.queued.source_off = (et4000->acl.queued.source_off & 0x0f00) | val; + break; + case 0x8b: + et4000->acl.queued.source_off = (et4000->acl.queued.source_off & 0x00ff) | ((val & 0x0f) << 8); + break; + case 0x8c: + et4000->acl.queued.dest_off = (et4000->acl.queued.dest_off & 0x0f00) | val; + break; + case 0x8d: + et4000->acl.queued.dest_off = (et4000->acl.queued.dest_off & 0x00ff) | ((val & 0x0f) << 8); + break; + case 0x8e: + if (et4000->type >= ET4000W32P_REVC) + et4000->acl.queued.pixel_depth = val & 0x30; + else + et4000->acl.queued.vbus = val & 0x03; + break; + case 0x8f: + if (et4000->type >= ET4000W32P_REVC) + et4000->acl.queued.xy_dir = val & 0xb7; + else + et4000->acl.queued.xy_dir = val & 0x03; + break; + case 0x90: + et4000->acl.queued.pattern_wrap = val & 0x77; + break; + case 0x92: + et4000->acl.queued.source_wrap = val & 0x77; + break; + case 0x98: + et4000->acl.queued.count_x = (et4000->acl.queued.count_x & 0x0f00) | val; + break; + case 0x99: + et4000->acl.queued.count_x = (et4000->acl.queued.count_x & 0x00ff) | ((val & 0x0f) << 8); + break; + case 0x9a: + et4000->acl.queued.count_y = (et4000->acl.queued.count_y & 0x0f00) | val; + break; + case 0x9b: + et4000->acl.queued.count_y = (et4000->acl.queued.count_y & 0x00ff) | ((val & 0x0f) << 8); + break; + case 0x9c: + if (et4000->type >= ET4000W32P_REVC) + et4000->acl.queued.ctrl_routing = val & 0xdb; + else + et4000->acl.queued.ctrl_routing = val & 0xb7; + break; + case 0x9d: + et4000->acl.queued.ctrl_reload = val & 0x03; + break; + case 0x9e: + et4000->acl.queued.rop_bg = val; + break; + case 0x9f: + et4000->acl.queued.rop_fg = val; + break; + case 0xa0: + et4000->acl.queued.dest_addr = (et4000->acl.queued.dest_addr & 0x3fff00) | val; + break; + case 0xa1: + et4000->acl.queued.dest_addr = (et4000->acl.queued.dest_addr & 0x3f00ff) | (val << 8); + break; + case 0xa2: + et4000->acl.queued.dest_addr = (et4000->acl.queued.dest_addr & 0x00ffff) | ((val & 0x3f) << 16); + break; + case 0xa3: et4000->acl.internal = et4000->acl.queued; if (et4000->type >= ET4000W32P_REVC) { - if (et4000->acl.osr & 0x10) { - et4000w32p_blit_start(et4000); - if (!(et4000->acl.queued.ctrl_routing & 0x43)) { - et4000w32p_blit(0xffffff, ~0, 0, 0, et4000); - } - if ((et4000->acl.queued.ctrl_routing & 0x40) && !(et4000->acl.internal.ctrl_routing & 3)) { - et4000w32p_blit(4, ~0, 0, 0, et4000); - } + et4000w32p_blit_start(et4000); + et4000w32_log("Destination Address write and start XY Block, xcnt = %i, ycnt = %i\n", et4000->acl.x_count + 1, et4000->acl.y_count + 1); + if (!(et4000->acl.queued.ctrl_routing & 0x43)) { + et4000w32p_blit(0xffffff, ~0, 0, 0, et4000); + } + if ((et4000->acl.queued.ctrl_routing & 0x40) && !(et4000->acl.internal.ctrl_routing & 3)) { + et4000w32p_blit(4, ~0, 0, 0, et4000); } } else { et4000w32_blit_start(et4000); et4000->acl.cpu_input_num = 0; - if (!(et4000->acl.queued.ctrl_routing & 0x37)) - et4000w32p_blit(0xffffff, ~0, 0, 0, et4000); + if (!(et4000->acl.queued.ctrl_routing & 0x37)) { + et4000w32_blit(-1, 0, 0, 0xffffffff, et4000); + } } break; - case 0x7fa4: et4000->acl.queued.mix_addr = (et4000->acl.queued.mix_addr & 0xFFFFFF00) | val; break; - case 0x7fa5: et4000->acl.queued.mix_addr = (et4000->acl.queued.mix_addr & 0xFFFF00FF) | (val << 8); break; - case 0x7fa6: et4000->acl.queued.mix_addr = (et4000->acl.queued.mix_addr & 0xFF00FFFF) | (val << 16); break; - case 0x7fa7: et4000->acl.queued.mix_addr = (et4000->acl.queued.mix_addr & 0x00FFFFFF) | (val << 24); et4000->acl.queue++; break; - case 0x7fa8: et4000->acl.queued.mix_off = (et4000->acl.queued.mix_off & 0xFF00) | val; break; - case 0x7fa9: et4000->acl.queued.mix_off = (et4000->acl.queued.mix_off & 0x00FF) | (val << 8); et4000->acl.queue++; break; - case 0x7faa: et4000->acl.queued.error = (et4000->acl.queued.error & 0xFF00) | val; break; - case 0x7fab: et4000->acl.queued.error = (et4000->acl.queued.error & 0x00FF) | (val << 8); et4000->acl.queue++; break; - case 0x7fac: et4000->acl.queued.dmin = (et4000->acl.queued.dmin & 0xFF00) | val; break; - case 0x7fad: et4000->acl.queued.dmin = (et4000->acl.queued.dmin & 0x00FF) | (val << 8); et4000->acl.queue++; break; - case 0x7fae: et4000->acl.queued.dmaj = (et4000->acl.queued.dmaj & 0xFF00) | val; break; - case 0x7faf: et4000->acl.queued.dmaj = (et4000->acl.queued.dmaj & 0x00FF) | (val << 8); et4000->acl.queue++; break; + case 0xa4: + et4000->acl.queued.mix_addr = (et4000->acl.queued.mix_addr & 0xFFFFFF00) | val; + break; + case 0xa5: + et4000->acl.queued.mix_addr = (et4000->acl.queued.mix_addr & 0xFFFF00FF) | (val << 8); + break; + case 0xa6: + et4000->acl.queued.mix_addr = (et4000->acl.queued.mix_addr & 0xFF00FFFF) | (val << 16); + break; + case 0xa7: + et4000->acl.queued.mix_addr = (et4000->acl.queued.mix_addr & 0x00FFFFFF) | (val << 24); + break; + case 0xa8: + et4000->acl.queued.mix_off = (et4000->acl.queued.mix_off & 0xFF00) | val; + break; + case 0xa9: + et4000->acl.queued.mix_off = (et4000->acl.queued.mix_off & 0x00FF) | (val << 8); + break; + case 0xaa: + et4000->acl.queued.error = (et4000->acl.queued.error & 0xFF00) | val; + break; + case 0xab: + et4000->acl.queued.error = (et4000->acl.queued.error & 0x00FF) | (val << 8); + break; + case 0xac: + et4000->acl.queued.dmin = (et4000->acl.queued.dmin & 0xFF00) | val; + break; + case 0xad: + et4000->acl.queued.dmin = (et4000->acl.queued.dmin & 0x00FF) | (val << 8); + break; + case 0xae: + et4000->acl.queued.dmaj = (et4000->acl.queued.dmaj & 0xFF00) | val; + break; + case 0xaf: + et4000->acl.queued.dmaj = (et4000->acl.queued.dmaj & 0x00FF) | (val << 8); + break; } } - static void -et4000w32p_accel_write_mmu(et4000w32p_t *et4000, uint32_t addr, uint8_t val) +et4000w32p_accel_write_mmu(et4000w32p_t *et4000, uint32_t addr, uint8_t val, uint8_t bank) { if (et4000->type >= ET4000W32P_REVC) { - if (!(et4000->acl.status & ACL_XYST)) + if (!(et4000->acl.status & ACL_XYST)) { + et4000w32_log("XY MMU block not started\n"); return; + } if (et4000->acl.internal.ctrl_routing & 3) { - et4000->acl.queue++; - if ((et4000->acl.internal.ctrl_routing & 3) == 2) { + et4000->acl.fifo_queue++; + if ((et4000->acl.internal.ctrl_routing & 3) == 2) /*CPU data is Mix data*/ et4000w32p_blit(8 - (et4000->acl.mix_addr & 7), val >> (et4000->acl.mix_addr & 7), 0, 1, et4000); - } - else if ((et4000->acl.internal.ctrl_routing & 3) == 1) { + else if ((et4000->acl.internal.ctrl_routing & 3) == 1) /*CPU data is Source data*/ et4000w32p_blit(1, ~0, val, 2, et4000); - } } } else { if (!(et4000->acl.status & ACL_XYST)) { - et4000->acl.queue++; - et4000->acl.queued.dest_addr = (addr & 0x1FFF) + et4000->mmu.base[et4000->bank]; + et4000->acl.fifo_queue++; + et4000->acl.queued.dest_addr = ((addr & 0x1fff) + et4000->mmu.base[bank]); et4000->acl.internal = et4000->acl.queued; et4000w32_blit_start(et4000); - if (!(et4000->acl.internal.ctrl_routing & 0x37)) - et4000w32p_blit(0xFFFFFF, ~0, 0, 0, et4000); + et4000w32_log("Accelerated MMU aperture = %i and start XY Block (Implicit), xcnt = %i, ycnt = %i\n", bank, et4000->acl.x_count + 1, et4000->acl.y_count + 1); et4000->acl.cpu_input_num = 0; + if (!(et4000->acl.queued.ctrl_routing & 0x37)) { + et4000w32_blit(-1, 0, 0, 0xffffffff, et4000); + } } if (et4000->acl.internal.ctrl_routing & 7) { - et4000->acl.queue++; - et4000->acl.cpu_input = (et4000->acl.cpu_input &~ (0xFF << (et4000->acl.cpu_input_num << 3))) | + et4000->acl.fifo_queue++; + et4000->acl.cpu_input = (et4000->acl.cpu_input & ~(0xff << (et4000->acl.cpu_input_num << 3))) | (val << (et4000->acl.cpu_input_num << 3)); et4000->acl.cpu_input_num++; - if (et4000->acl.cpu_input_num == et4000w32_vbus[et4000->acl.internal.vbus & 3]) { - if ((et4000->acl.internal.ctrl_routing & 7) == 2) - et4000w32p_blit(et4000->acl.cpu_input_num << 3, et4000->acl.cpu_input, 0, 1, et4000); - else if ((et4000->acl.internal.ctrl_routing & 7) == 1) - et4000w32p_blit(et4000->acl.cpu_input_num, ~0, et4000->acl.cpu_input, 2, et4000); - else if ((et4000->acl.internal.ctrl_routing & 7) == 4) - et4000w32p_blit(et4000->acl.cpu_input_num, ~0, et4000->acl.internal.count_x, 2, et4000); - else if ((et4000->acl.internal.ctrl_routing & 7) == 5) - et4000w32p_blit(et4000->acl.cpu_input_num, ~0, et4000->acl.internal.count_y, 2, et4000); + if (et4000->acl.cpu_input_num == et4000w32_vbus[et4000->acl.internal.vbus]) { + if ((et4000->acl.internal.ctrl_routing & 7) == 2) /*CPU data is Mix data*/ + et4000w32_blit(et4000->acl.cpu_input_num << 3, 2, 0, et4000->acl.cpu_input, et4000); + else if ((et4000->acl.internal.ctrl_routing & 7) == 1) /*CPU data is Source data*/ + et4000w32_blit(et4000->acl.cpu_input_num, 1, et4000->acl.cpu_input, 0xffffffff, et4000); et4000->acl.cpu_input_num = 0; } + + if ((et4000->acl.internal.ctrl_routing & 7) == 4) /*CPU data is X Count*/ + et4000w32_blit(val | (et4000->acl.queued.count_x << 8), 0, 0, 0xffffffff, et4000); + if ((et4000->acl.internal.ctrl_routing & 7) == 5) /*CPU data is Y Count*/ + et4000w32_blit(val | (et4000->acl.queued.count_y << 8), 0, 0, 0xffffffff, et4000); } } } - -void +static void et4000w32p_mmu_write(uint32_t addr, uint8_t val, void *p) { et4000w32p_t *et4000 = (et4000w32p_t *)p; @@ -734,7 +837,7 @@ et4000w32p_mmu_write(uint32_t addr, uint8_t val, void *p) case 0x4000: /* MMU 2 */ et4000->bank = (addr >> 13) & 3; if (et4000->mmu.ctrl & (1 << et4000->bank)) { - et4000w32p_accel_write_mmu(et4000, addr & 0x7fff, val); + et4000w32p_accel_write_mmu(et4000, addr & 0x7fff, val, et4000->bank); } else { if (((addr & 0x1fff) + et4000->mmu.base[et4000->bank]) < svga->vram_max) { svga->vram[(addr & 0x1fff) + et4000->mmu.base[et4000->bank]] = val; @@ -743,43 +846,65 @@ et4000w32p_mmu_write(uint32_t addr, uint8_t val, void *p) } break; case 0x6000: - if ((addr & 0x7fff) >= 0x7f80) { + if ((addr & 0xff) >= 0x80) { et4000w32p_accel_write_fifo(et4000, addr & 0x7fff, val); - } else switch (addr & 0x7fff) { - case 0x7f00: et4000->mmu.base[0] = (et4000->mmu.base[0] & 0xFFFFFF00) | val; break; - case 0x7f01: et4000->mmu.base[0] = (et4000->mmu.base[0] & 0xFFFF00FF) | (val << 8); break; - case 0x7f02: et4000->mmu.base[0] = (et4000->mmu.base[0] & 0xFF00FFFF) | (val << 16); break; - case 0x7f03: et4000->mmu.base[0] = (et4000->mmu.base[0] & 0x00FFFFFF) | (val << 24); break; - case 0x7f04: et4000->mmu.base[1] = (et4000->mmu.base[1] & 0xFFFFFF00) | val; break; - case 0x7f05: et4000->mmu.base[1] = (et4000->mmu.base[1] & 0xFFFF00FF) | (val << 8); break; - case 0x7f06: et4000->mmu.base[1] = (et4000->mmu.base[1] & 0xFF00FFFF) | (val << 16); break; - case 0x7f07: et4000->mmu.base[1] = (et4000->mmu.base[1] & 0x00FFFFFF) | (val << 24); break; - case 0x7f08: et4000->mmu.base[2] = (et4000->mmu.base[2] & 0xFFFFFF00) | val; break; - case 0x7f09: et4000->mmu.base[2] = (et4000->mmu.base[2] & 0xFFFF00FF) | (val << 8); break; - case 0x7f0a: et4000->mmu.base[2] = (et4000->mmu.base[2] & 0xFF00FFFF) | (val << 16); break; - case 0x7f0b: et4000->mmu.base[2] = (et4000->mmu.base[2] & 0x00FFFFFF) | (val << 24); break; - case 0x7f13: et4000->mmu.ctrl = val; break; - case 0x7f31: et4000->acl.osr = val; break; + } else { + switch (addr & 0xff) { + case 0x00: + et4000->mmu.base[0] = (et4000->mmu.base[0] & 0x3fff00) | val; + break; + case 0x01: + et4000->mmu.base[0] = (et4000->mmu.base[0] & 0x3f00ff) | (val << 8); + break; + case 0x02: + et4000->mmu.base[0] = (et4000->mmu.base[0] & 0x00ffff) | ((val & 0x3f) << 16); + break; + case 0x04: + et4000->mmu.base[1] = (et4000->mmu.base[1] & 0x3fff00) | val; + break; + case 0x05: + et4000->mmu.base[1] = (et4000->mmu.base[1] & 0x3f00ff) | (val << 8); + break; + case 0x06: + et4000->mmu.base[1] = (et4000->mmu.base[1] & 0x00ffff) | ((val & 0x3f) << 16); + break; + case 0x08: + et4000->mmu.base[2] = (et4000->mmu.base[2] & 0x3fff00) | val; + break; + case 0x09: + et4000->mmu.base[2] = (et4000->mmu.base[2] & 0x3f00ff) | (val << 8); + break; + case 0x0a: + et4000->mmu.base[2] = (et4000->mmu.base[2] & 0x00ffff) | ((val & 0x3f) << 16); + break; + case 0x13: + et4000->mmu.ctrl = val; + break; + case 0x30: + et4000->acl.suspend_terminate = val; + break; + case 0x31: + et4000->acl.osr = val; + break; + } } break; } } - -uint8_t +static uint8_t et4000w32p_mmu_read(uint32_t addr, void *p) { et4000w32p_t *et4000 = (et4000w32p_t *)p; svga_t *svga = &et4000->svga; - int bank; uint8_t temp; switch (addr & 0x6000) { case 0x0000: /* MMU 0 */ case 0x2000: /* MMU 1 */ case 0x4000: /* MMU 2 */ - bank = (addr >> 13) & 3; - if (et4000->mmu.ctrl & (1 << bank)) { + et4000->bank = (addr >> 13) & 3; + if (et4000->mmu.ctrl & (1 << et4000->bank)) { temp = 0xff; if (et4000->acl.cpu_dat_pos) { et4000->acl.cpu_dat_pos--; @@ -793,84 +918,97 @@ et4000w32p_mmu_read(uint32_t addr, void *p) return temp; } - if ((addr&0x1fff) + et4000->mmu.base[bank] >= svga->vram_max) + if ((addr & 0x1fff) + et4000->mmu.base[et4000->bank] >= svga->vram_max) return 0xff; - return svga->vram[(addr&0x1fff) + et4000->mmu.base[bank]]; + return svga->vram[(addr & 0x1fff) + et4000->mmu.base[et4000->bank]]; case 0x6000: - switch (addr & 0x7fff) { - case 0x7f00: return et4000->mmu.base[0]; - case 0x7f01: return et4000->mmu.base[0] >> 8; - case 0x7f02: return et4000->mmu.base[0] >> 16; - case 0x7f03: return et4000->mmu.base[0] >> 24; - case 0x7f04: return et4000->mmu.base[1]; - case 0x7f05: return et4000->mmu.base[1] >> 8; - case 0x7f06: return et4000->mmu.base[1] >> 16; - case 0x7f07: return et4000->mmu.base[1] >> 24; - case 0x7f08: return et4000->mmu.base[2]; - case 0x7f09: return et4000->mmu.base[2] >> 8; - case 0x7f0a: return et4000->mmu.base[2] >> 16; - case 0x7f0b: return et4000->mmu.base[2] >> 24; - case 0x7f13: return et4000->mmu.ctrl; + switch (addr & 0xff) { + case 0x00: + return et4000->mmu.base[0] & 0xff; + case 0x01: + return et4000->mmu.base[0] >> 8; + case 0x02: + return et4000->mmu.base[0] >> 16; + case 0x03: + return et4000->mmu.base[0] >> 24; + case 0x04: + return et4000->mmu.base[1] & 0xff; + case 0x05: + return et4000->mmu.base[1] >> 8; + case 0x06: + return et4000->mmu.base[1] >> 16; + case 0x07: + return et4000->mmu.base[1] >> 24; + case 0x08: + return et4000->mmu.base[2] & 0xff; + case 0x09: + return et4000->mmu.base[2] >> 8; + case 0x0a: + return et4000->mmu.base[2] >> 16; + case 0x0b: + return et4000->mmu.base[2] >> 24; + case 0x13: + return et4000->mmu.ctrl; - case 0x7f36: - if (et4000->type >= ET4000W32P_REVC) { - if (et4000->acl.queue) { - et4000->acl.status |= ACL_RDST; - et4000->acl.queue = 0; - } else - et4000->acl.status &= ~ACL_RDST; - - temp = et4000->acl.status; - } else { - et4000->acl.status &= ~(ACL_XYST | ACL_SSO); + case 0x36: + if (et4000->acl.fifo_queue) { + et4000->acl.status |= ACL_RDST; + et4000->acl.fifo_queue = 0; + } else + et4000->acl.status &= ~ACL_RDST; + return et4000->acl.status; - if (et4000->acl.queue) { - et4000->acl.status |= ACL_RDST; - et4000->acl.queue = 0; - } else - et4000->acl.status &= ~ACL_RDST; - - temp = et4000->acl.status; - } - return temp; - - case 0x7f80: return et4000->acl.internal.pattern_addr; - case 0x7f81: return et4000->acl.internal.pattern_addr >> 8; - case 0x7f82: return et4000->acl.internal.pattern_addr >> 16; - case 0x7f83: return et4000->acl.internal.pattern_addr >> 24; - case 0x7f84: return et4000->acl.internal.source_addr; - case 0x7f85: return et4000->acl.internal.source_addr >> 8; - case 0x7f86: return et4000->acl.internal.source_addr >> 16; - case 0x7f87: return et4000->acl.internal.source_addr >> 24; - case 0x7f88: return et4000->acl.internal.pattern_off; - case 0x7f89: return et4000->acl.internal.pattern_off >> 8; - case 0x7f8a: return et4000->acl.internal.source_off; - case 0x7f8b: return et4000->acl.internal.source_off >> 8; - case 0x7f8c: return et4000->acl.internal.dest_off; - case 0x7f8d: return et4000->acl.internal.dest_off >> 8; - case 0x7f8e: + case 0x80: + return et4000->acl.internal.pattern_addr & 0xff; + case 0x81: + return et4000->acl.internal.pattern_addr >> 8; + case 0x82: + return et4000->acl.internal.pattern_addr >> 16; + case 0x83: + return et4000->acl.internal.pattern_addr >> 24; + case 0x84: + return et4000->acl.internal.source_addr & 0xff; + case 0x85: + return et4000->acl.internal.source_addr >> 8; + case 0x86: + return et4000->acl.internal.source_addr >> 16; + case 0x87: + return et4000->acl.internal.source_addr >> 24; + case 0x88: + return et4000->acl.internal.pattern_off & 0xff; + case 0x89: + return et4000->acl.internal.pattern_off >> 8; + case 0x8a: + return et4000->acl.internal.source_off & 0xff; + case 0x8b: + return et4000->acl.internal.source_off >> 8; + case 0x8c: + return et4000->acl.internal.dest_off & 0xff; + case 0x8d: + return et4000->acl.internal.dest_off >> 8; + case 0x8e: if (et4000->type >= ET4000W32P_REVC) return et4000->acl.internal.pixel_depth; else return et4000->acl.internal.vbus; break; - case 0x7f8f: return et4000->acl.internal.xy_dir; - case 0x7f90: return et4000->acl.internal.pattern_wrap; - case 0x7f92: return et4000->acl.internal.source_wrap; - case 0x7f98: return et4000->acl.internal.count_x; - case 0x7f99: return et4000->acl.internal.count_x >> 8; - case 0x7f9a: return et4000->acl.internal.count_y; - case 0x7f9b: return et4000->acl.internal.count_y >> 8; - case 0x7f9c: return et4000->acl.internal.ctrl_routing; - case 0x7f9d: return et4000->acl.internal.ctrl_reload; - case 0x7f9e: return et4000->acl.internal.rop_bg; - case 0x7f9f: return et4000->acl.internal.rop_fg; - case 0x7fa0: return et4000->acl.internal.dest_addr; - case 0x7fa1: return et4000->acl.internal.dest_addr >> 8; - case 0x7fa2: return et4000->acl.internal.dest_addr >> 16; - case 0x7fa3: return et4000->acl.internal.dest_addr >> 24; + case 0x8f: return et4000->acl.internal.xy_dir; + case 0x90: return et4000->acl.internal.pattern_wrap; + case 0x92: return et4000->acl.internal.source_wrap; + case 0x98: return et4000->acl.internal.count_x & 0xff; + case 0x99: return et4000->acl.internal.count_x >> 8; + case 0x9a: return et4000->acl.internal.count_y & 0xff; + case 0x9b: return et4000->acl.internal.count_y >> 8; + case 0x9c: return et4000->acl.internal.ctrl_routing; + case 0x9d: return et4000->acl.internal.ctrl_reload; + case 0x9e: return et4000->acl.internal.rop_bg; + case 0x9f: return et4000->acl.internal.rop_fg; + case 0xa0: return et4000->acl.internal.dest_addr & 0xff; + case 0xa1: return et4000->acl.internal.dest_addr >> 8; + case 0xa2: return et4000->acl.internal.dest_addr >> 16; + case 0xa3: return et4000->acl.internal.dest_addr >> 24; } return 0xff; @@ -883,16 +1021,19 @@ et4000w32p_mmu_read(uint32_t addr, void *p) void et4000w32_blit_start(et4000w32p_t *et4000) { - et4000->acl.pattern_addr = et4000->acl.internal.pattern_addr; - et4000->acl.source_addr = et4000->acl.internal.source_addr; - et4000->acl.dest_addr = et4000->acl.internal.dest_addr; - et4000->acl.dest_back = et4000->acl.dest_addr; - et4000->acl.internal.pos_x = et4000->acl.internal.pos_y = 0; - et4000->acl.pattern_x = et4000->acl.source_x = et4000->acl.pattern_y = et4000->acl.source_y = 0; + et4000->acl.x_count = et4000->acl.internal.count_x; + et4000->acl.y_count = et4000->acl.internal.count_y; + + et4000->acl.pattern_addr = et4000->acl.internal.pattern_addr; + et4000->acl.source_addr = et4000->acl.internal.source_addr; + et4000->acl.dest_addr = et4000->acl.internal.dest_addr; + et4000->acl.dest_back = et4000->acl.dest_addr; + et4000->acl.pattern_x = et4000->acl.source_x = et4000->acl.pattern_y = et4000->acl.source_y = 0; et4000->acl.status |= ACL_XYST; + et4000->acl.status &= ~ACL_SSO; - if (!(et4000->acl.internal.ctrl_routing & 7)) + if (!(et4000->acl.internal.ctrl_routing & 7) || (et4000->acl.internal.ctrl_routing & 4)) et4000->acl.status |= ACL_SSO; if (et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7]) { @@ -900,10 +1041,11 @@ et4000w32_blit_start(et4000w32p_t *et4000) et4000->acl.pattern_addr &= ~et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7]; } et4000->acl.pattern_back = et4000->acl.pattern_addr; + if (!(et4000->acl.internal.pattern_wrap & 0x40)) { - if ((et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7] + 1) == 0x00) + if ((et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7] + 1) == 0x00) { /*This is to avoid a division by zero crash*/ et4000->acl.pattern_y = (et4000->acl.pattern_addr / (0x7f + 1)) & (et4000w32_wrap_y[(et4000->acl.internal.pattern_wrap >> 4) & 7] - 1); - else + } else et4000->acl.pattern_y = (et4000->acl.pattern_addr / (et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7] + 1)) & (et4000w32_wrap_y[(et4000->acl.internal.pattern_wrap >> 4) & 7] - 1); et4000->acl.pattern_back &= ~(((et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7] + 1) * et4000w32_wrap_y[(et4000->acl.internal.pattern_wrap >> 4) & 7]) - 1); } @@ -913,13 +1055,12 @@ et4000w32_blit_start(et4000w32p_t *et4000) et4000->acl.source_x = et4000->acl.source_addr & et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7]; et4000->acl.source_addr &= ~et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7]; } - et4000->acl.source_back = et4000->acl.source_addr; if (!(et4000->acl.internal.source_wrap & 0x40)) { - if ((et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1) == 0x00) + if ((et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1) == 0x00) { /*This is to avoid a division by zero crash*/ et4000->acl.source_y = (et4000->acl.source_addr / (0x7f + 1)) & (et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7] - 1); - else + } else et4000->acl.source_y = (et4000->acl.source_addr / (et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1)) & (et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7] - 1); et4000->acl.source_back &= ~(((et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1) * et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7]) - 1); } @@ -927,9 +1068,12 @@ et4000w32_blit_start(et4000w32p_t *et4000) } -void +static void et4000w32p_blit_start(et4000w32p_t *et4000) { + et4000->acl.x_count = et4000->acl.internal.count_x; + et4000->acl.y_count = et4000->acl.internal.count_y; + if (!(et4000->acl.queued.xy_dir & 0x20)) et4000->acl.internal.error = et4000->acl.internal.dmaj / 2; et4000->acl.pattern_addr = et4000->acl.internal.pattern_addr; @@ -941,6 +1085,7 @@ et4000w32p_blit_start(et4000w32p_t *et4000) et4000->acl.internal.pos_x = et4000->acl.internal.pos_y = 0; et4000->acl.pattern_x = et4000->acl.source_x = et4000->acl.pattern_y = et4000->acl.source_y = 0; et4000->acl.status |= ACL_XYST; + et4000w32_log("ACL status XYST set\n"); if ((!(et4000->acl.internal.ctrl_routing & 7) || (et4000->acl.internal.ctrl_routing & 4)) && !(et4000->acl.internal.ctrl_routing & 0x40)) et4000->acl.status |= ACL_SSO; @@ -961,13 +1106,14 @@ et4000w32p_blit_start(et4000w32p_t *et4000) et4000->acl.source_addr &= ~et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7]; } et4000->acl.source_back = et4000->acl.source_addr; + if (!(et4000->acl.internal.source_wrap & 0x40)) { et4000->acl.source_y = (et4000->acl.source_addr / (et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1)) & (et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7] - 1); et4000->acl.source_back &= ~(((et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1) * et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7]) - 1); } et4000->acl.source_x_back = et4000->acl.source_x; - et4000w32_max_x[2] = ((et4000->acl.internal.pixel_depth & 0x30) == 0x20) ? 3 : 4; + et4000w32_max_x[2] = (et4000->acl.internal.pixel_depth == 0x20) ? 3 : 4; et4000->acl.internal.count_x += (et4000->acl.internal.pixel_depth >> 4) & 3; et4000->acl.cpu_dat_pos = 0; @@ -1040,24 +1186,393 @@ et4000w32_decy(et4000w32p_t *et4000) et4000->acl.source_y--; if (et4000->acl.source_y < 0 && !(et4000->acl.internal.source_wrap & 0x40)) { et4000->acl.source_y = et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7] - 1; - et4000->acl.source_addr = et4000->acl.source_back + (et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] *(et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7] - 1));; + et4000->acl.source_addr = et4000->acl.source_back + (et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] *(et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7] - 1)); } } -void +#define ROPMIX(R, D, P, S, out) \ + { \ + switch (R) { \ + case 0x00: out = 0; break; \ + case 0x01: out = ~(D | (P | S)); break; \ + case 0x02: out = D & ~(P | S); break; \ + case 0x03: out = ~(P | S); break; \ + case 0x04: out = S & ~(D | P); break; \ + case 0x05: out = ~(D | P); break; \ + case 0x06: out = ~(P | ~(D ^ S)); break; \ + case 0x07: out = ~(P | (D & S)); break; \ + case 0x08: out = S & (D & ~P); break; \ + case 0x09: out = ~(P | (D ^ S)); break; \ + case 0x0a: out = D & ~P; break; \ + case 0x0b: out = ~(P | (S & ~D)); break; \ + case 0x0c: out = S & ~P; break; \ + case 0x0d: out = ~(P | (D & ~S)); break; \ + case 0x0e: out = ~(P | ~(D | S)); break; \ + case 0x0f: out = ~P; break; \ + case 0x10: out = P & ~(D | S); break; \ + case 0x11: out = ~(D | S); break; \ + case 0x12: out = ~(S | ~(D ^ P)); break; \ + case 0x13: out = ~(S | (D & P)); break; \ + case 0x14: out = ~(D | ~(P ^ S)); break; \ + case 0x15: out = ~(D | (P & S)); break; \ + case 0x16: out = P ^ (S ^ (D & ~(P & S))); break; \ + case 0x17: out = ~(S ^ ((S ^ P) & (D ^ S))); break; \ + case 0x18: out = (S ^ P) & (P ^ D); break; \ + case 0x19: out = ~(S ^ (D & ~(P & S))); break; \ + case 0x1a: out = P ^ (D | (S & P)); break; \ + case 0x1b: out = ~(S ^ (D & (P ^ S))); break; \ + case 0x1c: out = P ^ (S | (D & P)); break; \ + case 0x1d: out = ~(D ^ (S & (P ^ D))); break; \ + case 0x1e: out = P ^ (D | S); break; \ + case 0x1f: out = ~(P & (D | S)); break; \ + case 0x20: out = D & (P & ~S); break; \ + case 0x21: out = ~(S | (D ^ P)); break; \ + case 0x22: out = D & ~S; break; \ + case 0x23: out = ~(S | (P & ~D)); break; \ + case 0x24: out = (S ^ P) & (D ^ S); break; \ + case 0x25: out = ~(P ^ (D & ~(S & P))); break; \ + case 0x26: out = S ^ (D | (P & S)); break; \ + case 0x27: out = S ^ (D | ~(P ^ S)); break; \ + case 0x28: out = D & (P ^ S); break; \ + case 0x29: out = ~(P ^ (S ^ (D | (P & S)))); break; \ + case 0x2a: out = D & ~(P & S); break; \ + case 0x2b: out = ~(S ^ ((S ^ P) & (P ^ D))); break; \ + case 0x2c: out = S ^ (P & (D | S)); break; \ + case 0x2d: out = P ^ (S | ~D); break; \ + case 0x2e: out = P ^ (S | (D ^ P)); break; \ + case 0x2f: out = ~(P & (S | ~D)); break; \ + case 0x30: out = P & ~S; break; \ + case 0x31: out = ~(S | (D & ~P)); break; \ + case 0x32: out = S ^ (D | (P | S)); break; \ + case 0x33: out = ~S; break; \ + case 0x34: out = S ^ (P | (D & S)); break; \ + case 0x35: out = S ^ (P | ~(D ^ S)); break; \ + case 0x36: out = S ^ (D | P); break; \ + case 0x37: out = ~(S & (D | P)); break; \ + case 0x38: out = P ^ (S & (D | P)); break; \ + case 0x39: out = S ^ (P | ~D); break; \ + case 0x3a: out = S ^ (P | (D ^ S)); break; \ + case 0x3b: out = ~(S & (P | ~D)); break; \ + case 0x3c: out = P ^ S; break; \ + case 0x3d: out = S ^ (P | ~(D | S)); break; \ + case 0x3e: out = S ^ (P | (D & ~S)); break; \ + case 0x3f: out = ~(P & S); break; \ + case 0x40: out = P & (S & ~D); break; \ + case 0x41: out = ~(D | (P ^ S)); break; \ + case 0x42: out = (S ^ D) & (P ^ D); break; \ + case 0x43: out = ~(S ^ (P & ~(D & S))); break; \ + case 0x44: out = S & ~D; break; \ + case 0x45: out = ~(D | (P & ~S)); break; \ + case 0x46: out = D ^ (S | (P & D)); break; \ + case 0x47: out = ~(P ^ (S & (D ^ P))); break; \ + case 0x48: out = S & (D ^ P); break; \ + case 0x49: out = ~(P ^ (D ^ (S | (P & D)))); break; \ + case 0x4a: out = D ^ (P & (S | D)); break; \ + case 0x4b: out = P ^ (D | ~S); break; \ + case 0x4c: out = S & ~(D & P); break; \ + case 0x4d: out = ~(S ^ ((S ^ P) | (D ^ S))); break; \ + case 0x4e: out = P ^ (D | (S ^ P)); break; \ + case 0x4f: out = ~(P & (D | ~S)); break; \ + case 0x50: out = P & ~D; break; \ + case 0x51: out = ~(D | (S & ~P)); break; \ + case 0x52: out = D ^ (P | (S & D)); break; \ + case 0x53: out = ~(S ^ (P & (D ^ S))); break; \ + case 0x54: out = ~(D | ~(P | S)); break; \ + case 0x55: out = ~D; break; \ + case 0x56: out = D ^ (P | S); break; \ + case 0x57: out = ~(D & (P | S)); break; \ + case 0x58: out = P ^ (D & (S | P)); break; \ + case 0x59: out = D ^ (P | ~S); break; \ + case 0x5a: out = D ^ P; break; \ + case 0x5b: out = D ^ (P | ~(S | D)); break; \ + case 0x5c: out = D ^ (P | (S ^ D)); break; \ + case 0x5d: out = ~(D & (P | ~S)); break; \ + case 0x5e: out = D ^ (P | (S & ~D)); break; \ + case 0x5f: out = ~(D & P); break; \ + case 0x60: out = P & (D ^ S); break; \ + case 0x61: out = ~(D ^ (S ^ (P | (D & S)))); break; \ + case 0x62: out = D ^ (S & (P | D)); break; \ + case 0x63: out = S ^ (D | ~P); break; \ + case 0x64: out = S ^ (D & (P | S)); break; \ + case 0x65: out = D ^ (S | ~P); break; \ + case 0x66: out = D ^ S; break; \ + case 0x67: out = S ^ (D | ~(P | S)); break; \ + case 0x68: out = ~(D ^ (S ^ (P | ~(D | S)))); break; \ + case 0x69: out = ~(P ^ (D ^ S)); break; \ + case 0x6a: out = D ^ (P & S); break; \ + case 0x6b: out = ~(P ^ (S ^ (D & (P | S)))); break; \ + case 0x6c: out = S ^ (D & P); break; \ + case 0x6d: out = ~(P ^ (D ^ (S & (P | D)))); break; \ + case 0x6e: out = S ^ (D & (P | ~S)); break; \ + case 0x6f: out = ~(P & ~(D ^ S)); break; \ + case 0x70: out = P & ~(D & S); break; \ + case 0x71: out = ~(S ^ ((S ^ D) & (P ^ D))); break; \ + case 0x72: out = S ^ (D | (P ^ S)); break; \ + case 0x73: out = ~(S & (D | ~P)); break; \ + case 0x74: out = D ^ (S | (P ^ D)); break; \ + case 0x75: out = ~(D & (S | ~P)); break; \ + case 0x76: out = S ^ (D | (P & ~S)); break; \ + case 0x77: out = ~(D & S); break; \ + case 0x78: out = P ^ (D & S); break; \ + case 0x79: out = ~(D ^ (S ^ (P & (D | S)))); break; \ + case 0x7a: out = D ^ (P & (S | ~D)); break; \ + case 0x7b: out = ~(S & ~(D ^ P)); break; \ + case 0x7c: out = S ^ (P & (D | ~S)); break; \ + case 0x7d: out = ~(D & ~(P ^ S)); break; \ + case 0x7e: out = (S ^ P) | (D ^ S); break; \ + case 0x7f: out = ~(D & (P & S)); break; \ + case 0x80: out = D & (P & S); break; \ + case 0x81: out = ~((S ^ P) | (D ^ S)); break; \ + case 0x82: out = D & ~(P ^ S); break; \ + case 0x83: out = ~(S ^ (P & (D | ~S))); break; \ + case 0x84: out = S & ~(D ^ P); break; \ + case 0x85: out = ~(P ^ (D & (S | ~P))); break; \ + case 0x86: out = D ^ (S ^ (P & (D | S))); break; \ + case 0x87: out = ~(P ^ (D & S)); break; \ + case 0x88: out = D & S; break; \ + case 0x89: out = ~(S ^ (D | (P & ~S))); break; \ + case 0x8a: out = D & (S | ~P); break; \ + case 0x8b: out = ~(D ^ (S | (P ^ D))); break; \ + case 0x8c: out = S & (D | ~P); break; \ + case 0x8d: out = ~(S ^ (D | (P ^ S))); break; \ + case 0x8e: out = S ^ ((S ^ D) & (P ^ D)); break; \ + case 0x8f: out = ~(P & ~(D & S)); break; \ + case 0x90: out = P & ~(D ^ S); break; \ + case 0x91: out = ~(S ^ (D & (P | ~S))); break; \ + case 0x92: out = D ^ (P ^ (S & (D | P))); break; \ + case 0x93: out = ~(S ^ (P & D)); break; \ + case 0x94: out = P ^ (S ^ (D & (P | S))); break; \ + case 0x95: out = ~(D ^ (P & S)); break; \ + case 0x96: out = D ^ (P ^ S); break; \ + case 0x97: out = P ^ (S ^ (D | ~(P | S))); break; \ + case 0x98: out = ~(S ^ (D | ~(P | S))); break; \ + case 0x99: out = ~(D ^ S); break; \ + case 0x9a: out = D ^ (P & ~S); break; \ + case 0x9b: out = ~(S ^ (D & (P | S))); break; \ + case 0x9c: out = S ^ (P & ~D); break; \ + case 0x9d: out = ~(D ^ (S & (P | D))); break; \ + case 0x9e: out = D ^ (S ^ (P | (D & S))); break; \ + case 0x9f: out = ~(P & (D ^ S)); break; \ + case 0xa0: out = D & P; break; \ + case 0xa1: out = ~(P ^ (D | (S & ~P))); break; \ + case 0xa2: out = D & (P | ~S); break; \ + case 0xa3: out = ~(D ^ (P | (S ^ D))); break; \ + case 0xa4: out = ~(P ^ (D | ~(S | P))); break; \ + case 0xa5: out = ~(P ^ D); break; \ + case 0xa6: out = D ^ (S & ~P); break; \ + case 0xa7: out = ~(P ^ (D & (S | P))); break; \ + case 0xa8: out = D & (P | S); break; \ + case 0xa9: out = ~(D ^ (P | S)); break; \ + case 0xaa: out = D; break; \ + case 0xab: out = D | ~(P | S); break; \ + case 0xac: out = S ^ (P & (D ^ S)); break; \ + case 0xad: out = ~(D ^ (P | (S & D))); break; \ + case 0xae: out = D | (S & ~P); break; \ + case 0xaf: out = D | ~P; break; \ + case 0xb0: out = P & (D | ~S); break; \ + case 0xb1: out = ~(P ^ (D | (S ^ P))); break; \ + case 0xb2: out = S ^ ((S ^ P) | (D ^ S)); break; \ + case 0xb3: out = ~(S & ~(D & P)); break; \ + case 0xb4: out = P ^ (S & ~D); break; \ + case 0xb5: out = ~(D ^ (P & (S | D))); break; \ + case 0xb6: out = D ^ (P ^ (S | (D & P))); break; \ + case 0xb7: out = ~(S & (D ^ P)); break; \ + case 0xb8: out = P ^ (S & (D ^ P)); break; \ + case 0xb9: out = ~(D ^ (S | (P & D))); break; \ + case 0xba: out = D | (P & ~S); break; \ + case 0xbb: out = D | ~S; break; \ + case 0xbc: out = S ^ (P & ~(D & S)); break; \ + case 0xbd: out = ~((S ^ D) & (P ^ D)); break; \ + case 0xbe: out = D | (P ^ S); break; \ + case 0xbf: out = D | ~(P & S); break; \ + case 0xc0: out = P & S; break; \ + case 0xc1: out = ~(S ^ (P | (D & ~S))); break; \ + case 0xc2: out = ~(S ^ (P | ~(D | S))); break; \ + case 0xc3: out = ~(P ^ S); break; \ + case 0xc4: out = S & (P | ~D); break; \ + case 0xc5: out = ~(S ^ (P | (D ^ S))); break; \ + case 0xc6: out = S ^ (D & ~P); break; \ + case 0xc7: out = ~(P ^ (S & (D | P))); break; \ + case 0xc8: out = S & (D | P); break; \ + case 0xc9: out = ~(S ^ (P | D)); break; \ + case 0xca: out = D ^ (P & (S ^ D)); break; \ + case 0xcb: out = ~(S ^ (P | (D & S))); break; \ + case 0xcc: out = S; break; \ + case 0xcd: out = S | ~(D | P); break; \ + case 0xce: out = S | (D & ~P); break; \ + case 0xcf: out = S | ~P; break; \ + case 0xd0: out = P & (S | ~D); break; \ + case 0xd1: out = ~(P ^ (S | (D ^ P))); break; \ + case 0xd2: out = P ^ (D & ~S); break; \ + case 0xd3: out = ~(S ^ (P & (D | S))); break; \ + case 0xd4: out = S ^ ((S ^ P) & (P ^ D)); break; \ + case 0xd5: out = ~(D & ~(P & S)); break; \ + case 0xd6: out = P ^ (S ^ (D | (P & S))); break; \ + case 0xd7: out = ~(D & (P ^ S)); break; \ + case 0xd8: out = P ^ (D & (S ^ P)); break; \ + case 0xd9: out = ~(S ^ (D | (P & S))); break; \ + case 0xda: out = D ^ (P & ~(S & D)); break; \ + case 0xdb: out = ~((S ^ P) & (D ^ S)); break; \ + case 0xdc: out = S | (P & ~D); break; \ + case 0xdd: out = S | ~D; break; \ + case 0xde: out = S | (D ^ P); break; \ + case 0xdf: out = S | ~(D & P); break; \ + case 0xe0: out = P & (D | S); break; \ + case 0xe1: out = ~(P ^ (D | S)); break; \ + case 0xe2: out = D ^ (S & (P ^ D)); break; \ + case 0xe3: out = ~(P ^ (S | (D & P))); break; \ + case 0xe4: out = S ^ (D & (P ^ S)); break; \ + case 0xe5: out = ~(P ^ (D | (S & P))); break; \ + case 0xe6: out = S ^ (D & ~(P & S)); break; \ + case 0xe7: out = ~((S ^ P) & (P ^ D)); break; \ + case 0xe8: out = S ^ ((S ^ P) & (D ^ S)); break; \ + case 0xe9: out = ~(D ^ (S ^ (P & ~(D & S)))); break; \ + case 0xea: out = D | (P & S); break; \ + case 0xeb: out = D | ~(P ^ S); break; \ + case 0xec: out = S | (D & P); break; \ + case 0xed: out = S | ~(D ^ P); break; \ + case 0xee: out = D | S; break; \ + case 0xef: out = S | (D | ~P); break; \ + case 0xf0: out = P; break; \ + case 0xf1: out = P | ~(D | S); break; \ + case 0xf2: out = P | (D & ~S); break; \ + case 0xf3: out = P | ~S; break; \ + case 0xf4: out = P | (S & ~D); break; \ + case 0xf5: out = P | ~D; break; \ + case 0xf6: out = P | (D ^ S); break; \ + case 0xf7: out = P | ~(D & S); break; \ + case 0xf8: out = P | (D & S); break; \ + case 0xf9: out = P | ~(D ^ S); break; \ + case 0xfa: out = D | P; break; \ + case 0xfb: out = D | (P | ~S); break; \ + case 0xfc: out = P | S; break; \ + case 0xfd: out = P | (S | ~D); break; \ + case 0xfe: out = D | (P | S); break; \ + case 0xff: out = ~0; break; \ + } \ + } + +static void +et4000w32_blit(int count, int cpu_input, uint32_t src_dat, uint32_t mix_dat, et4000w32p_t *et4000) +{ + svga_t *svga = &et4000->svga; + uint8_t pattern, source, dest; + uint8_t rop; + int mixmap; + + while (count-- && et4000->acl.y_count >= 0) { + pattern = svga->vram[(et4000->acl.pattern_addr + et4000->acl.pattern_x) & et4000->vram_mask]; + + if (cpu_input == 1) { + source = src_dat & 0xff; + src_dat >>= 8; + } else /*The source data is from the display memory if the Control Routing register is not set to 1*/ + source = svga->vram[(et4000->acl.source_addr + et4000->acl.source_x) & et4000->vram_mask]; + + dest = svga->vram[et4000->acl.dest_addr & et4000->vram_mask]; + mixmap = mix_dat & 1; + + /*Now determine the Raster Operation*/ + rop = mixmap ? et4000->acl.internal.rop_fg : et4000->acl.internal.rop_bg; + mix_dat >>= 1; + mix_dat |= 0x80000000; + + ROPMIX(rop, dest, pattern, source, dest); + + /*Write the data*/ + svga->vram[et4000->acl.dest_addr & et4000->vram_mask] = dest; + svga->changedvram[(et4000->acl.dest_addr & et4000->vram_mask) >> 12] = changeframecount; + + if (et4000->acl.internal.xy_dir & 1) { + et4000->acl.dest_addr--; + et4000->acl.pattern_x--; + et4000->acl.source_x--; + if (et4000->acl.pattern_x < 0) + et4000->acl.pattern_x += (et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7] + 1); + if (et4000->acl.source_x < 0) + et4000->acl.source_x += (et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1); + } else { + et4000->acl.dest_addr++; + et4000->acl.pattern_x++; + et4000->acl.source_x++; + if (et4000->acl.pattern_x >= (et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7] + 1)) + et4000->acl.pattern_x -= (et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7] + 1); + if (et4000->acl.source_x >= (et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1)) + et4000->acl.source_x -= (et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] + 1); + } + + et4000->acl.x_count--; + if (et4000->acl.x_count == 0xffff) { + et4000->acl.x_count = et4000->acl.internal.count_x; + + if (et4000->acl.internal.xy_dir & 2) { + et4000->acl.pattern_addr -= (et4000->acl.internal.pattern_off + 1); + et4000->acl.source_addr -= (et4000->acl.internal.source_off + 1); + et4000->acl.dest_addr -= (et4000->acl.internal.dest_off + 1); + et4000->acl.pattern_y--; + if ((et4000->acl.pattern_y < 0) && !(et4000->acl.internal.pattern_wrap & 0x40)) { + et4000->acl.pattern_y = et4000w32_wrap_y[(et4000->acl.internal.pattern_wrap >> 4) & 7] - 1; + et4000->acl.pattern_addr = et4000->acl.pattern_back + (et4000w32_wrap_x[et4000->acl.internal.pattern_wrap & 7] * (et4000w32_wrap_y[(et4000->acl.internal.pattern_wrap >> 4) & 7] - 1)); + } + et4000->acl.source_y--; + if ((et4000->acl.source_y < 0) && !(et4000->acl.internal.source_wrap & 0x40)) { + et4000->acl.source_y = et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7] - 1; + et4000->acl.source_addr = et4000->acl.source_back + (et4000w32_wrap_x[et4000->acl.internal.source_wrap & 7] * (et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7] - 1)); + } + et4000->acl.dest_back = et4000->acl.dest_addr = et4000->acl.dest_back - (et4000->acl.internal.dest_off + 1); + } else { + et4000->acl.pattern_addr += (et4000->acl.internal.pattern_off + 1); + et4000->acl.source_addr += (et4000->acl.internal.source_off + 1); + et4000->acl.dest_addr += (et4000->acl.internal.dest_off + 1); + et4000->acl.pattern_y++; + if (et4000->acl.pattern_y == et4000w32_wrap_y[(et4000->acl.internal.pattern_wrap >> 4) & 7]) { + et4000->acl.pattern_y = 0; + et4000->acl.pattern_addr = et4000->acl.pattern_back; + } + et4000->acl.source_y++; + if (et4000->acl.source_y == et4000w32_wrap_y[(et4000->acl.internal.source_wrap >> 4) & 7]) { + et4000->acl.source_y = 0; + et4000->acl.source_addr = et4000->acl.source_back; + } + et4000->acl.dest_back = et4000->acl.dest_addr = et4000->acl.dest_back + (et4000->acl.internal.dest_off + 1); + } + + et4000->acl.pattern_x = et4000->acl.pattern_x_back; + et4000->acl.source_x = et4000->acl.source_x_back; + + et4000->acl.y_count--; + if (et4000->acl.y_count == 0xffff) { + et4000->acl.status &= ~ACL_XYST; + if (!(et4000->acl.internal.ctrl_routing & 7) || (et4000->acl.internal.ctrl_routing & 4)) { + et4000w32_log("W32i: end blit, xcount = %i\n", et4000->acl.x_count); + et4000->acl.status &= ~ACL_SSO; + } + et4000->acl.cpu_input_num = 0; + return; + } + + if (cpu_input) + return; + } + } +} + +static void et4000w32p_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input, et4000w32p_t *et4000) { svga_t *svga = &et4000->svga; - int c, d; uint8_t pattern, source, dest, out; uint8_t rop; int mixdat; - if (!(et4000->acl.status & ACL_XYST) && (et4000->type >= ET4000W32P_REVC)) - return; + if (!(et4000->acl.status & ACL_XYST)) { + et4000w32_log("XY Block not started\n"); + return; + } if (et4000->acl.internal.xy_dir & 0x80) { /* Line draw */ + et4000w32_log("Line draw\n"); while (count--) { et4000w32_log("%i,%i : ", et4000->acl.internal.pos_x, et4000->acl.internal.pos_y); pattern = svga->vram[(et4000->acl.pattern_addr + et4000->acl.pattern_x) & et4000->vram_mask]; @@ -1080,12 +1595,9 @@ et4000w32p_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input, et4000w32 } et4000->acl.mix_addr++; rop = mixdat ? et4000->acl.internal.rop_fg : et4000->acl.internal.rop_bg; - for (c = 0; c < 8; c++) { - d = (dest & (1 << c)) ? 1 : 0; - if (source & (1 << c)) d |= 2; - if (pattern & (1 << c)) d |= 4; - if (rop & (1 << d)) out |= (1 << c); - } + + ROPMIX(rop, dest, pattern, source, out); + et4000w32_log("%06X = %02X\n", et4000->acl.dest_addr & et4000->vram_mask, out); if (!(et4000->acl.internal.ctrl_routing & 0x40)) { svga->vram[et4000->acl.dest_addr & et4000->vram_mask] = out; @@ -1157,80 +1669,77 @@ et4000w32p_blit(int count, uint32_t mix, uint32_t sdat, int cpu_input, et4000w32 } } } else { - while (count--) { - et4000w32_log("%i,%i : ", et4000->acl.internal.pos_x, et4000->acl.internal.pos_y); + et4000w32_log("BitBLT: count = %i\n", count); + while (count-- && et4000->acl.y_count >= 0) { + pattern = svga->vram[(et4000->acl.pattern_addr + et4000->acl.pattern_x) & et4000->vram_mask]; - pattern = svga->vram[(et4000->acl.pattern_addr + et4000->acl.pattern_x) & et4000->vram_mask]; - source = svga->vram[(et4000->acl.source_addr + et4000->acl.source_x) & et4000->vram_mask]; - et4000w32_log("%i %06X %06X %02X %02X ", et4000->acl.pattern_y, (et4000->acl.pattern_addr + et4000->acl.pattern_x) & et4000->vram_mask, (et4000->acl.source_addr + et4000->acl.source_x) & et4000->vram_mask, pattern, source); - - if (cpu_input == 2) { - source = sdat & 0xff; - sdat >>= 8; - } - dest = svga->vram[et4000->acl.dest_addr & et4000->vram_mask]; - out = 0; - et4000w32_log("%06X %02X %i %08X %08X ", dest, et4000->acl.dest_addr, mix & 1, mix, et4000->acl.mix_addr); - if ((et4000->acl.internal.ctrl_routing & 0xa) == 8) { - mixdat = svga->vram[(et4000->acl.mix_addr >> 3) & et4000->vram_mask] & (1 << (et4000->acl.mix_addr & 7)); - et4000w32_log("%06X %02X ", et4000->acl.mix_addr, svga->vram[(et4000->acl.mix_addr >> 3) & et4000->vram_mask]); - } else { - mixdat = mix & 1; - mix >>= 1; - mix |= 0x80000000; - } - - rop = mixdat ? et4000->acl.internal.rop_fg : et4000->acl.internal.rop_bg; - for (c = 0; c < 8; c++) { - d = (dest & (1 << c)) ? 1 : 0; - if (source & (1 << c)) d |= 2; - if (pattern & (1 << c)) d |= 4; - if (rop & (1 << d)) out |= (1 << c); - } - et4000w32_log("%06X = %02X\n", et4000->acl.dest_addr & et4000->vram_mask, out); - if (!(et4000->acl.internal.ctrl_routing & 0x40)) { - svga->vram[et4000->acl.dest_addr & et4000->vram_mask] = out; - svga->changedvram[(et4000->acl.dest_addr & et4000->vram_mask) >> 12] = changeframecount; - } else { - et4000->acl.cpu_dat |= ((uint64_t)out << (et4000->acl.cpu_dat_pos * 8)); - et4000->acl.cpu_dat_pos++; - } - - if (et4000->acl.internal.xy_dir & 1) et4000w32_decx(1, et4000); - else et4000w32_incx(1, et4000); - - et4000->acl.internal.pos_x++; - if (et4000->acl.internal.pos_x > et4000->acl.internal.count_x) { - if (et4000->acl.internal.xy_dir & 2) { - et4000w32_decy(et4000); - et4000->acl.mix_back = et4000->acl.mix_addr = et4000->acl.mix_back - (et4000->acl.internal.mix_off + 1); - et4000->acl.dest_back = et4000->acl.dest_addr = et4000->acl.dest_back - (et4000->acl.internal.dest_off + 1); + if (cpu_input == 2) { + source = sdat & 0xff; + sdat >>= 8; + } else + source = svga->vram[(et4000->acl.source_addr + et4000->acl.source_x) & et4000->vram_mask]; + + dest = svga->vram[et4000->acl.dest_addr & et4000->vram_mask]; + out = 0; + + if ((et4000->acl.internal.ctrl_routing & 0xa) == 8) { + mixdat = svga->vram[(et4000->acl.mix_addr >> 3) & et4000->vram_mask] & (1 << (et4000->acl.mix_addr & 7)); } else { - et4000w32_incy(et4000); - et4000->acl.mix_back = et4000->acl.mix_addr = et4000->acl.mix_back + et4000->acl.internal.mix_off + 1; - et4000->acl.dest_back = et4000->acl.dest_addr = et4000->acl.dest_back + et4000->acl.internal.dest_off + 1; + mixdat = mix & 1; + mix >>= 1; + mix |= 0x80000000; } - et4000->acl.pattern_x = et4000->acl.pattern_x_back; - et4000->acl.source_x = et4000->acl.source_x_back; + rop = mixdat ? et4000->acl.internal.rop_fg : et4000->acl.internal.rop_bg; - et4000->acl.internal.pos_y++; - et4000->acl.internal.pos_x = 0; - if (et4000->acl.internal.pos_y > et4000->acl.internal.count_y) { - et4000->acl.status &= ~(ACL_XYST | ACL_SSO); - return; + ROPMIX(rop, dest, pattern, source, out); + + if (!(et4000->acl.internal.ctrl_routing & 0x40)) { + svga->vram[et4000->acl.dest_addr & et4000->vram_mask] = out; + svga->changedvram[(et4000->acl.dest_addr & et4000->vram_mask) >> 12] = changeframecount; + } else { + et4000->acl.cpu_dat |= ((uint64_t)out << (et4000->acl.cpu_dat_pos * 8)); + et4000->acl.cpu_dat_pos++; } - if (cpu_input) - return; + if (et4000->acl.internal.xy_dir & 1) + et4000w32_decx(1, et4000); + else + et4000w32_incx(1, et4000); + + et4000->acl.x_count--; + if (et4000->acl.x_count == 0xffff) { + if (et4000->acl.internal.xy_dir & 2) { + et4000w32_decy(et4000); + et4000->acl.mix_back = et4000->acl.mix_addr = et4000->acl.mix_back - (et4000->acl.internal.mix_off + 1); + et4000->acl.dest_back = et4000->acl.dest_addr = et4000->acl.dest_back - (et4000->acl.internal.dest_off + 1); + } else { + et4000w32_incy(et4000); + et4000->acl.mix_back = et4000->acl.mix_addr = et4000->acl.mix_back + et4000->acl.internal.mix_off + 1; + et4000->acl.dest_back = et4000->acl.dest_addr = et4000->acl.dest_back + et4000->acl.internal.dest_off + 1; + } - if (et4000->acl.internal.ctrl_routing & 0x40) { - if (et4000->acl.cpu_dat_pos & 3) - et4000->acl.cpu_dat_pos += 4 - (et4000->acl.cpu_dat_pos & 3); - return; + et4000->acl.pattern_x = et4000->acl.pattern_x_back; + et4000->acl.source_x = et4000->acl.source_x_back; + + et4000->acl.y_count--; + et4000->acl.x_count = et4000->acl.internal.count_x; + if (et4000->acl.y_count == 0xffff) { + et4000w32_log("BitBLT end\n"); + et4000->acl.status &= ~(ACL_XYST | ACL_SSO); + return; + } + + if (cpu_input) + return; + + if (et4000->acl.internal.ctrl_routing & 0x40) { + if (et4000->acl.cpu_dat_pos & 3) + et4000->acl.cpu_dat_pos += 4 - (et4000->acl.cpu_dat_pos & 3); + return; + } } } - } } } diff --git a/src/video/vid_paradise.c b/src/video/vid_paradise.c index 107a1773f..d32871c22 100644 --- a/src/video/vid_paradise.c +++ b/src/video/vid_paradise.c @@ -40,7 +40,7 @@ typedef struct paradise_t rom_t bios_rom; - uint8_t pr0a, pr0b, pr1, pr5, bank_mask; + uint8_t bank_mask; enum { @@ -54,7 +54,7 @@ typedef struct paradise_t uint32_t read_bank[4], write_bank[4]; int interlace; - int check; + int check, check2; struct { uint8_t reg_block_ptr; @@ -81,7 +81,7 @@ void paradise_out(uint16_t addr, uint8_t val, void *p) { paradise_t *paradise = (paradise_t *)p; svga_t *svga = ¶dise->svga; - uint8_t old, o; + uint8_t old; if (paradise->vram_mask <= ((512 << 10) - 1)) paradise->bank_mask = 0x7f; @@ -94,15 +94,14 @@ void paradise_out(uint16_t addr, uint8_t val, void *p) switch (addr) { case 0x3c5: - if (svga->seqaddr > 7) - { - if (paradise->type < WD90C11 || svga->seqregs[6] != 0x48) - return; - svga->seqregs[svga->seqaddr & 0x1f] = val; - if (svga->seqaddr == 0x11) { - paradise_remap(paradise); - } - return; + if (svga->seqaddr > 7) { + if (paradise->type < WD90C11 || svga->seqregs[6] != 0x48) + return; + svga->seqregs[svga->seqaddr & 0x1f] = val; + if (svga->seqaddr == 0x11) { + paradise_remap(paradise); + } + return; } break; @@ -115,53 +114,45 @@ void paradise_out(uint16_t addr, uint8_t val, void *p) case 0x3cf: if (svga->gdcaddr >= 9 && svga->gdcaddr <= 0x0e) { - if ((paradise->pr5 & 7) != 5) + if ((svga->gdcreg[0x0f] & 7) != 5) return; } + switch (svga->gdcaddr) { case 6: - if (val & 8) - svga->banked_mask = 0x7fff; - else - svga->banked_mask = 0xffff; - if (svga->gdcreg[6] != val) - svga->gdcreg[6] = val; + if ((svga->gdcreg[6] & 0x0c) != (val & 0x0c)) { + switch (val & 0x0c) { + case 0x00: /*128k at A0000*/ + mem_mapping_set_addr(&svga->mapping, 0xa0000, 0x20000); + svga->banked_mask = 0xffff; + break; + case 0x04: /*64k at A0000*/ + mem_mapping_set_addr(&svga->mapping, 0xa0000, 0x10000); + svga->banked_mask = 0xffff; + break; + case 0x08: /*32k at B0000*/ + mem_mapping_set_addr(&svga->mapping, 0xb0000, 0x08000); + svga->banked_mask = 0x7fff; + break; + case 0x0c: /*32k at B8000*/ + mem_mapping_set_addr(&svga->mapping, 0xb8000, 0x08000); + svga->banked_mask = 0x7fff; + break; + } + } + svga->gdcreg[6] = val; paradise_remap(paradise); - break; + return; case 9: - paradise->pr0a = val & paradise->bank_mask; - paradise_remap(paradise); - break; case 0x0a: - paradise->pr0b = val & paradise->bank_mask; + svga->gdcreg[svga->gdcaddr] = val & paradise->bank_mask; paradise_remap(paradise); - break; + return; case 0x0b: - paradise->pr1 = val; + svga->gdcreg[0x0b] = val; paradise_remap(paradise); - break; - case 0x0d: - o = svga->gdcreg[0x0d]; - svga->gdcreg[0x0d] = val; - if ((o ^ val) & 0x18) - svga_recalctimings(svga); - break; - case 0x0e: - o = svga->gdcreg[0x0e]; - svga->gdcreg[0x0e] = val; - if ((o ^ val) & 0x01) - svga_recalctimings(svga); - break; - case 0x0c: - svga->gdcreg[0x0c] = val; - break; - case 0x0f: - paradise->pr5 = val; - break; - default: - svga->gdcreg[svga->gdcaddr] = val; - break; + return; } break; @@ -216,10 +207,8 @@ uint8_t paradise_in(uint16_t addr, void *p) { if (paradise->type < WD90C11 || svga->seqregs[6] != 0x48) return 0xff; - if (paradise->type < WD90C30) { - if (svga->seqaddr > 0x12) + if (svga->seqaddr > 0x12) return 0xff; - } return svga->seqregs[svga->seqaddr & 0x1f]; } break; @@ -231,36 +220,21 @@ uint8_t paradise_in(uint16_t addr, void *p) case 0x3cf: if (svga->gdcaddr >= 9 && svga->gdcaddr <= 0x0e) { - if (paradise->pr5 & 0x10) + if (svga->gdcreg[0x0f] & 0x10) return 0xff; } switch (svga->gdcaddr) { - case 9: - return paradise->pr0a; - case 0x0a: - return paradise->pr0b; case 0x0b: - if (paradise->vram_mask == (512 << 10) - 1) { - paradise->pr1 |= 0xc0; - paradise->pr1 &= ~0x40; - } else if (paradise->vram_mask == (1024 << 10) - 1) { - paradise->pr1 |= 0xc0; - /*The following is a horrible tweak, but needed to get around black corruption in 1M mode*/ - if (svga->bpp >= 8 && (svga->gdcreg[0x0e] & 0x01) && paradise->check) - paradise->pr1 &= ~0x40; - else if (!(svga->gdcreg[0x0e] & 0x01) && !(svga->crtc[0x14] & 0x40) && paradise->check) - paradise->check = 0; + if (paradise->type == WD90C30) { + if (paradise->vram_mask == ((512 << 10) - 1)) { + svga->gdcreg[0x0b] |= 0xc0; + svga->gdcreg[0x0b] &= ~0x40; + } } - return paradise->pr1; - case 6: - case 0x0c: - case 0x0d: - case 0x0e: - return svga->gdcreg[svga->gdcaddr]; + return svga->gdcreg[0x0b]; + case 0x0f: - return (paradise->pr5 & 0x17) | 0x80; - default: - return svga->gdcreg[svga->gdcaddr]; + return (svga->gdcreg[0x0f] & 0x17) | 0x80; } break; @@ -278,61 +252,46 @@ uint8_t paradise_in(uint16_t addr, void *p) void paradise_remap(paradise_t *paradise) { - svga_t *svga = ¶dise->svga; + svga_t *svga = ¶dise->svga; + paradise->check = 0; - if (svga->seqregs[0x11] & 0x80) { - paradise->read_bank[0] = (paradise->pr0a) << 12; - paradise->read_bank[1] = paradise->read_bank[0] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->read_bank[2] = paradise->read_bank[0]; - paradise->read_bank[3] = paradise->read_bank[1]; - paradise->write_bank[0] = (paradise->pr0b) << 12; - paradise->write_bank[1] = paradise->write_bank[0] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->write_bank[2] = paradise->write_bank[0]; - paradise->write_bank[3] = paradise->write_bank[1]; - } else if (paradise->pr1 & 8) { - if (svga->gdcreg[6] & 0x0c) { - paradise->read_bank[0] = (paradise->pr0b) << 12; - paradise->read_bank[1] = ((paradise->pr0a) << 12) + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->read_bank[2] = paradise->read_bank[0]; - paradise->read_bank[3] = paradise->read_bank[1]; - paradise->write_bank[0] = (paradise->pr0b) << 12; - paradise->write_bank[1] = ((paradise->pr0a) << 12) + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->write_bank[2] = paradise->write_bank[0]; - paradise->write_bank[3] = paradise->write_bank[1]; - } else { - paradise->read_bank[0] = (paradise->pr0b) << 12; - paradise->read_bank[1] = paradise->read_bank[0] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->read_bank[2] = (paradise->pr0a) << 12; - paradise->read_bank[3] = paradise->read_bank[2] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->write_bank[0] = (paradise->pr0b) << 12; - paradise->write_bank[1] = paradise->write_bank[0] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->write_bank[2] = (paradise->pr0a) << 12; - paradise->write_bank[3] = paradise->write_bank[2] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - } - } else { - paradise->read_bank[0] = (paradise->pr0a) << 12; - paradise->write_bank[0] = (paradise->pr0a) << 12; - paradise->read_bank[1] = paradise->read_bank[0] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->write_bank[1] = paradise->write_bank[0] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->read_bank[2] = paradise->read_bank[0]; - paradise->write_bank[2] = paradise->write_bank[0]; - paradise->read_bank[3] = paradise->read_bank[0] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - paradise->write_bank[3] = paradise->write_bank[0] + ((svga->gdcreg[6] & 8) ? 0 : 0x8000); - } - - if (paradise->bank_mask == 0x7f) { - paradise->read_bank[1] &= 0x7ffff; - paradise->write_bank[1] &= 0x7ffff; + if (svga->seqregs[0x11] & 0x80) { + paradise->read_bank[0] = paradise->read_bank[2] = svga->gdcreg[9] << 12; + paradise->read_bank[1] = paradise->read_bank[3] = (svga->gdcreg[9] << 12) + ((svga->gdcreg[6] & 0x08) ? 0 : 0x8000); + paradise->write_bank[0] = paradise->write_bank[2] = svga->gdcreg[0x0a] << 12; + paradise->write_bank[1] = paradise->write_bank[3] = (svga->gdcreg[0x0a] << 12) + ((svga->gdcreg[6] & 0x08) ? 0 : 0x8000); + } else if (svga->gdcreg[0x0b] & 0x08) { + if (svga->gdcreg[6] & 0x0c) { + paradise->read_bank[0] = paradise->read_bank[2] = svga->gdcreg[0x0a] << 12; + paradise->write_bank[0] = paradise->write_bank[2] = svga->gdcreg[0x0a] << 12; + paradise->read_bank[1] = paradise->read_bank[3] = (svga->gdcreg[9] << 12) + ((svga->gdcreg[6] & 0x08) ? 0 : 0x8000); + paradise->write_bank[1] = paradise->write_bank[3] = (svga->gdcreg[9] << 12) + ((svga->gdcreg[6] & 0x08) ? 0 : 0x8000); + } else { + paradise->read_bank[0] = paradise->write_bank[0] = svga->gdcreg[0x0a] << 12; + paradise->read_bank[1] = paradise->write_bank[1] = (svga->gdcreg[0xa] << 12) + ((svga->gdcreg[6] & 0x08) ? 0 : 0x8000); + paradise->read_bank[2] = paradise->write_bank[2] = svga->gdcreg[9] << 12; + paradise->read_bank[3] = paradise->write_bank[3] = (svga->gdcreg[9] << 12) + ((svga->gdcreg[6] & 0x08) ? 0 : 0x8000); } + } else { + paradise->read_bank[0] = paradise->read_bank[2] = svga->gdcreg[9] << 12; + paradise->read_bank[1] = paradise->read_bank[3] = (svga->gdcreg[9] << 12) + ((svga->gdcreg[6] & 0x08) ? 0 : 0x8000); + paradise->write_bank[0] = paradise->write_bank[2] = svga->gdcreg[9] << 12; + paradise->write_bank[1] = paradise->write_bank[3] = (svga->gdcreg[9] << 12) + ((svga->gdcreg[6] & 0x08) ? 0 : 0x8000); + } + + if ((((svga->gdcreg[0x0b] & 0xc0) == 0xc0) && !svga->chain4 && (svga->crtc[0x14] & 0x40) && ((svga->gdcreg[6] >> 2) & 3) == 1)) + paradise->check = 1; + + if (paradise->bank_mask == 0x7f) { + paradise->read_bank[1] &= 0x7ffff; + paradise->write_bank[1] &= 0x7ffff; + } } void paradise_recalctimings(svga_t *svga) { paradise_t *paradise = (paradise_t *) svga->p; - if (svga->gdcreg[0x0d] & 0x08) svga->ma_latch |= 0x10000; - if (svga->gdcreg[0x0d] & 0x10) svga->ma_latch |= 0x20000; - svga->lowres = !(svga->gdcreg[0x0e] & 0x01); if (paradise->type == WD90C30) { @@ -355,8 +314,6 @@ void paradise_recalctimings(svga_t *svga) if (paradise->type < WD90C30) { if (svga->bpp >= 8 && !svga->lowres) { - if ((svga->crtc[0x17] == 0xc2) && (svga->crtc[0x14] & 0x40)) - paradise->check = 1; svga->render = svga_render_8bpp_highres; } } else { @@ -368,8 +325,6 @@ void paradise_recalctimings(svga_t *svga) svga->render = svga_render_15bpp_highres; svga->hdisp >>= 1; } else { - if ((svga->crtc[0x17] == 0xc2) && (svga->crtc[0x14] & 0x40)) - paradise->check = 1; svga->render = svga_render_8bpp_highres; } } @@ -380,20 +335,94 @@ static void paradise_write(uint32_t addr, uint8_t val, void *p) { paradise_t *paradise = (paradise_t *)p; svga_t *svga = ¶dise->svga; + uint32_t prev_addr, prev_addr2; - addr &= svga->banked_mask; - addr = (addr & 0x7fff) + paradise->write_bank[(addr >> 15) & 3]; - + addr = (addr & 0x7fff) + paradise->write_bank[(addr >> 15) & 3]; + + /*Could be done in a better way but it works.*/ + if (!svga->lowres) { + if (paradise->check) { + prev_addr = addr & 3; + prev_addr2 = addr & 0xfffc; + if ((addr & 3) == 3) { + if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 2) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 1) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 0) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } + } + } + svga_write_linear(addr, val, svga); } static void paradise_writew(uint32_t addr, uint16_t val, void *p) { paradise_t *paradise = (paradise_t *)p; svga_t *svga = ¶dise->svga; + uint32_t prev_addr, prev_addr2; - addr &= svga->banked_mask; addr = (addr & 0x7fff) + paradise->write_bank[(addr >> 15) & 3]; - + + /*Could be done in a better way but it works.*/ + if (!svga->lowres) { + if (paradise->check) { + prev_addr = addr & 3; + prev_addr2 = addr & 0xfffc; + if ((addr & 3) == 3) { + if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 2) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 1) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 0) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } + } + } + svga_writew_linear(addr, val, svga); } @@ -401,9 +430,46 @@ static uint8_t paradise_read(uint32_t addr, void *p) { paradise_t *paradise = (paradise_t *)p; svga_t *svga = ¶dise->svga; - - addr &= svga->banked_mask; + uint32_t prev_addr, prev_addr2; + addr = (addr & 0x7fff) + paradise->read_bank[(addr >> 15) & 3]; + + /*Could be done in a better way but it works.*/ + if (!svga->lowres) { + if (paradise->check) { + prev_addr = addr & 3; + prev_addr2 = addr & 0xfffc; + if ((addr & 3) == 3) { + if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 2) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 1) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 0) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } + } + } return svga_read_linear(addr, svga); } @@ -411,11 +477,48 @@ static uint16_t paradise_readw(uint32_t addr, void *p) { paradise_t *paradise = (paradise_t *)p; svga_t *svga = ¶dise->svga; - - addr &= svga->banked_mask; + uint32_t prev_addr, prev_addr2; + addr = (addr & 0x7fff) + paradise->read_bank[(addr >> 15) & 3]; + + /*Could be done in a better way but it works.*/ + if (!svga->lowres) { + if (paradise->check) { + prev_addr = addr & 3; + prev_addr2 = addr & 0xfffc; + if ((addr & 3) == 3) { + if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 2) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 1) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x00000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } else if ((addr & 3) == 0) { + if ((addr & 0x30000) == 0x30000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x20000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + else if ((addr & 0x30000) == 0x10000) + addr = (addr >> 16) | (prev_addr << 16) | prev_addr2; + } + } + } - return svga_readw_linear(addr, svga); + return svga_readw_linear(addr, svga); } void *paradise_init(const device_t *info, uint32_t memsize) @@ -653,9 +756,6 @@ static const device_config_t paradise_pvga1a_config[] = { "512 kB", 512 }, - { - "1 MB", 1024 - }, { "" } diff --git a/src/video/vid_s3.c b/src/video/vid_s3.c index 7dff04e4a..30c0df216 100644 --- a/src/video/vid_s3.c +++ b/src/video/vid_s3.c @@ -62,9 +62,11 @@ #define ROM_DIAMOND_STEALTH_SE "roms/video/s3/DiamondStealthSE.VBI" #define ROM_ELSAWIN2KPROX_964 "roms/video/s3/elsaw20004m.BIN" #define ROM_ELSAWIN2KPROX "roms/video/s3/elsaw20008m.BIN" +#define ROM_NUMBER9_9FX_531 "roms/video/s3/numbernine.BIN" #define ROM_PHOENIX_VISION868 "roms/video/s3/1-DSV3868.BIN" #define ROM_MIROVIDEO40SV_ERGO_968_PCI "roms/video/s3/S3_968PCI_TVP3026_miroVideo40SV_PCI_1.04.BIN" #define ROM_SPEA_MERCURY_P64V "roms/video/s3/S3_968PCI_TVP3026_SPEAMecuryP64V_ver1.01.BIN" +#define ROM_NUMBER9_9FX_771 "roms/video/s3/no9motionfx771.BIN" #define ROM_PHOENIX_VISION968 "roms/video/s3/1-DSV3968P.BIN" enum @@ -100,7 +102,9 @@ enum S3_MIROCRYSTAL20SV_964, S3_MIROCRYSTAL20SD_864, S3_PHOENIX_VISION968, - S3_MIROCRYSTAL8S_805 + S3_MIROCRYSTAL8S_805, + S3_NUMBER9_9FX_531, + S3_NUMBER9_9FX_771 }; @@ -1140,18 +1144,30 @@ s3_accel_out_fifo(s3_t *s3, uint16_t port, uint8_t val) break; s3->accel.pix_trans[0] = val; if (s3->accel.cmd & 0x100) { - if (!(s3->accel.cmd & 0x600)) { - if (((s3->accel.multifunc[0xa] & 0xc0) == 0x80) || (s3->accel.cmd & 2)) { - if (((s3->accel.frgd_mix & 0x60) != 0x40) || ((s3->accel.bkgd_mix & 0x60) != 0x40)) - s3_accel_start(8, 1, s3->accel.pix_trans[0], 0, s3); - else - s3_accel_start(1, 1, 0xffffffff, s3->accel.pix_trans[0], s3); - } else { - if (s3->color_16bit) - s3_accel_start(2, 1, 0xffffffff, s3->accel.pix_trans[0], s3); - else - s3_accel_start(1, 1, 0xffffffff, s3->accel.pix_trans[0], s3); - } + switch (s3->accel.cmd & 0x600) { + case 0x000: + if (((s3->accel.multifunc[0xa] & 0xc0) == 0x80) || (s3->accel.cmd & 2)) { + if (((s3->accel.frgd_mix & 0x60) != 0x40) || ((s3->accel.bkgd_mix & 0x60) != 0x40)) + s3_accel_start(8, 1, s3->accel.pix_trans[0], 0, s3); + else + s3_accel_start(1, 1, 0xffffffff, s3->accel.pix_trans[0], s3); + } else { + if (s3->color_16bit) + s3_accel_start(2, 1, 0xffffffff, s3->accel.pix_trans[0], s3); + else + s3_accel_start(1, 1, 0xffffffff, s3->accel.pix_trans[0], s3); + } + break; + case 0x200: + if (((s3->accel.multifunc[0xa] & 0xc0) == 0x80) || (s3->accel.cmd & 2)) { + if (((s3->accel.frgd_mix & 0x60) != 0x40) || ((s3->accel.bkgd_mix & 0x60) != 0x40)) + s3_accel_start(16, 1, s3->accel.pix_trans[0] | (s3->accel.pix_trans[0] << 8), 0, s3); + else + s3_accel_start(2, 1, 0xffffffff, s3->accel.pix_trans[0] | (s3->accel.pix_trans[0] << 8), s3); + } else { + s3_accel_start(2, 1, 0xffffffff, s3->accel.pix_trans[0] | (s3->accel.pix_trans[0] << 8), s3); + } + break; } } break; @@ -2442,7 +2458,7 @@ s3_out(uint16_t addr, uint8_t val, void *p) rs3 = 0; bt48x_ramdac_out(addr, rs2, rs3, val, svga->ramdac, svga); } else if ((s3->chip == S3_VISION964 && s3->card_type == S3_ELSAWIN2KPROX_964) || (s3->chip == S3_VISION968 && (s3->card_type == S3_ELSAWIN2KPROX || - s3->card_type == S3_PHOENIX_VISION968))) + s3->card_type == S3_PHOENIX_VISION968 || s3->card_type == S3_NUMBER9_9FX_771))) ibm_rgb528_ramdac_out(addr, rs2, val, svga->ramdac, svga); else if ((s3->chip == S3_VISION968 && (s3->card_type == S3_SPEA_MERCURY_P64V || s3->card_type == S3_MIROVIDEO40SV_ERGO_968))) { rs3 = !!(svga->crtc[0x55] & 0x02); @@ -2451,7 +2467,9 @@ s3_out(uint16_t addr, uint8_t val, void *p) att49x_ramdac_out(addr, rs2, val, svga->ramdac, svga); else if (s3->chip <= S3_86C924) { sc1148x_ramdac_out(addr, rs2, val, svga->ramdac, svga); - } else + } else if (s3->card_type == S3_NUMBER9_9FX_531) + att498_ramdac_out(addr, rs2, val, svga->ramdac, svga); + else sdac_ramdac_out(addr, rs2, val, svga->ramdac, svga); return; @@ -2728,7 +2746,7 @@ s3_in(uint16_t addr, void *p) rs3 = !!(svga->crtc[0x55] & 0x02); return bt48x_ramdac_in(addr, rs2, rs3, svga->ramdac, svga); } else if ((s3->chip == S3_VISION964 && s3->card_type == S3_ELSAWIN2KPROX_964) || (s3->chip == S3_VISION968 && (s3->card_type == S3_ELSAWIN2KPROX || - s3->card_type == S3_PHOENIX_VISION968))) + s3->card_type == S3_PHOENIX_VISION968 || s3->card_type == S3_NUMBER9_9FX_771))) return ibm_rgb528_ramdac_in(addr, rs2, svga->ramdac, svga); else if ((s3->chip == S3_VISION968 && (s3->card_type == S3_SPEA_MERCURY_P64V || s3->card_type == S3_MIROVIDEO40SV_ERGO_968))) { rs3 = !!(svga->crtc[0x55] & 0x02); @@ -2737,6 +2755,8 @@ s3_in(uint16_t addr, void *p) return att49x_ramdac_in(addr, rs2, svga->ramdac, svga); else if (s3->chip <= S3_86C924) return sc1148x_ramdac_in(addr, rs2, svga->ramdac, svga); + else if (s3->card_type == S3_NUMBER9_9FX_531) + return att498_ramdac_in(addr, rs2, svga->ramdac, svga); else return sdac_ramdac_in(addr, rs2, svga->ramdac, svga); break; @@ -2839,7 +2859,7 @@ static void s3_recalctimings(svga_t *svga) else ibm_rgb528_recalctimings(svga->ramdac, svga); } else - svga->interlace = svga->crtc[0x42] & 0x20; + svga->interlace = !!(svga->crtc[0x42] & 0x20); if ((((svga->miscout >> 2) & 3) == 3) && s3->chip < S3_TRIO32) clk_sel = svga->crtc[0x42] & 0x0f; @@ -2856,10 +2876,25 @@ static void s3_recalctimings(svga_t *svga) if (s3->card_type == S3_MIROCRYSTAL10SD_805 || s3->card_type == S3_MIROCRYSTAL20SD_864 || s3->card_type == S3_MIROCRYSTAL20SV_964 || s3->card_type == S3_SPEA_MIRAGE_86C801 || - s3->card_type == S3_SPEA_MIRAGE_86C805 || s3->card_type == S3_MIROCRYSTAL8S_805) { + s3->card_type == S3_SPEA_MIRAGE_86C805 || s3->card_type == S3_MIROCRYSTAL8S_805 || + s3->card_type == S3_NUMBER9_9FX_531) { + if (!(svga->crtc[0x5e] & 0x04)) + svga->vblankstart = svga->dispend; if (svga->bpp != 32) { if (svga->crtc[0x31] & 2) /*This is needed if the pixel width gets set with delays*/ s3->width = 2048; + else { + if (s3->card_type == S3_MIROCRYSTAL10SD_805) { + if (svga->hdisp == 1280 && s3->width == 1024) { + s3->width = 1280; + } + } + } + } else { + if (s3->card_type == S3_NUMBER9_9FX_531) { + if (svga->hdisp == 1600 && s3->width == 1600) + s3->width = 800; + } } } else if (s3->chip == S3_86C928) { if (svga->bpp == 15) { @@ -2889,15 +2924,16 @@ static void s3_recalctimings(svga_t *svga) if (s3->chip != S3_VISION868) { if (s3->chip == S3_86C928) { if (s3->width == 2048 || s3->width == 1280 || s3->width == 1600) - svga->hdisp *= 2; + svga->hdisp <<= 1; } else if ((s3->chip != S3_86C801) && (s3->chip != S3_86C805) && (s3->chip != S3_TRIO32) && (s3->chip != S3_TRIO64) && (s3->chip != S3_VISION964) && (s3->chip != S3_VISION968)) { if (s3->width == 1280 || s3->width == 1600) - svga->hdisp *= 2; + svga->hdisp <<= 1; } else if (s3->card_type == S3_SPEA_MERCURY_P64V) { if (s3->width == 1280 || s3->width == 1600) - svga->hdisp *= 2; - } + svga->hdisp <<= 1; + } else if (s3->card_type == S3_NUMBER9_9FX_771) + svga->hdisp <<= 1; if (s3->card_type == S3_MIROVIDEO40SV_ERGO_968 || s3->card_type == S3_MIROCRYSTAL20SD_864 || s3->card_type == S3_PHOENIX_VISION968 || s3->card_type == S3_SPEA_MERCURY_P64V) { @@ -2948,19 +2984,21 @@ static void s3_recalctimings(svga_t *svga) if ((s3->chip != S3_VISION964) && (s3->card_type != S3_SPEA_MIRAGE_86C801) && (s3->card_type != S3_SPEA_MIRAGE_86C805)) { if (s3->chip == S3_86C928) - svga->hdisp *= 2; + svga->hdisp <<= 1; else if (s3->chip != S3_VISION968) - svga->hdisp /= 2; + svga->hdisp >>= 1; } if ((s3->chip != S3_VISION868) && (s3->chip != S3_TRIO32) && (s3->chip != S3_TRIO64) && (s3->chip != S3_VISION964)) { if (s3->width == 1280 || s3->width == 1600) - svga->hdisp *= 2; + svga->hdisp <<= 1; + else if (s3->card_type == S3_NUMBER9_9FX_771) + svga->hdisp <<= 1; } if (s3->card_type == S3_MIROVIDEO40SV_ERGO_968 || s3->card_type == S3_PHOENIX_VISION968 || s3->card_type == S3_SPEA_MERCURY_P64V) { if (svga->hdisp == (1408*2)) - svga->hdisp /= 2; + svga->hdisp >>= 1; else svga->hdisp = s3->width; } @@ -2973,21 +3011,22 @@ static void s3_recalctimings(svga_t *svga) if ((s3->chip != S3_VISION964) && (s3->card_type != S3_SPEA_MIRAGE_86C801) && (s3->card_type != S3_SPEA_MIRAGE_86C805)) { if (s3->chip == S3_86C928) - svga->hdisp *= 2; + svga->hdisp <<= 1; else if (s3->chip != S3_VISION968) - svga->hdisp /= 2; - } else if ((s3->card_type == S3_SPEA_MIRAGE_86C801) || (s3->card_type == S3_SPEA_MIRAGE_86C805)) { - svga->hdisp /= 2; - } + svga->hdisp >>= 1; + } else if ((s3->card_type == S3_SPEA_MIRAGE_86C801) || (s3->card_type == S3_SPEA_MIRAGE_86C805)) + svga->hdisp >>= 1; if ((s3->chip != S3_VISION868) && (s3->chip != S3_TRIO32) && (s3->chip != S3_TRIO64) && (s3->chip != S3_VISION964)) { if (s3->width == 1280 || s3->width == 1600) - svga->hdisp *= 2; + svga->hdisp <<= 1; + else if (s3->card_type == S3_NUMBER9_9FX_771) + svga->hdisp <<= 1; } if (s3->card_type == S3_MIROVIDEO40SV_ERGO_968 || s3->card_type == S3_PHOENIX_VISION968 || s3->card_type == S3_SPEA_MERCURY_P64V) { if (svga->hdisp == (1408*2)) - svga->hdisp /= 2; + svga->hdisp >>= 1; else svga->hdisp = s3->width; } @@ -3013,12 +3052,13 @@ static void s3_recalctimings(svga_t *svga) if ((s3->chip < S3_TRIO32) && (s3->chip != S3_VISION964) && (s3->chip != S3_VISION968) && (s3->chip != S3_86C928)) { if (s3->chip == S3_VISION868) - svga->hdisp /= 2; + svga->hdisp >>= 1; else - svga->hdisp /= 4; + svga->hdisp >>= 2; } - if (s3->width == 1280 || s3->width == 1600 || (s3->card_type == S3_SPEA_MERCURY_P64V)) - svga->hdisp *= 2; + if (s3->width == 1280 || s3->width == 1600 || (s3->card_type == S3_SPEA_MERCURY_P64V || + s3->card_type == S3_NUMBER9_9FX_771)) + svga->hdisp <<= 1; if (s3->card_type == S3_MIROVIDEO40SV_ERGO_968 || s3->card_type == S3_MIROCRYSTAL20SV_964 || s3->card_type == S3_MIROCRYSTAL20SD_864 || s3->card_type == S3_PHOENIX_VISION968 || s3->card_type == S3_SPEA_MERCURY_P64V) { @@ -3110,11 +3150,11 @@ static void s3_trio64v_recalctimings(svga_t *svga) break; case 15: svga->render = svga_render_15bpp_highres; - svga->hdisp /= 2; + svga->hdisp >>= 1; break; case 16: svga->render = svga_render_16bpp_highres; - svga->hdisp /= 2; + svga->hdisp >>= 1; break; case 24: svga->render = svga_render_24bpp_highres; @@ -6530,6 +6570,7 @@ static void s3_reset(void *priv) case S3_ELSAWIN2KPROX: case S3_SPEA_MERCURY_P64V: case S3_MIROVIDEO40SV_ERGO_968: + case S3_NUMBER9_9FX_771: case S3_PHOENIX_VISION968: if (s3->pci) { svga->crtc[0x53] = 0x18; @@ -6544,6 +6585,7 @@ static void s3_reset(void *priv) } break; + case S3_NUMBER9_9FX_531: case S3_PHOENIX_VISION868: if (s3->pci) { svga->crtc[0x53] = 0x18; @@ -6679,6 +6721,11 @@ static void *s3_init(const device_t *info) else video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_vision864_vlb); break; + case S3_NUMBER9_9FX_531: + bios_fn = ROM_NUMBER9_9FX_531; + chip = S3_VISION868; + video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_vision868_pci); + break; case S3_PHOENIX_VISION868: bios_fn = ROM_PHOENIX_VISION868; chip = S3_VISION868; @@ -6710,6 +6757,11 @@ static void *s3_init(const device_t *info) chip = S3_VISION968; video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_vision968_pci); break; + case S3_NUMBER9_9FX_771: + bios_fn = ROM_NUMBER9_9FX_771; + chip = S3_VISION968; + video_inform(VIDEO_FLAG_TYPE_SPECIAL, &timing_s3_vision968_pci); + break; case S3_PHOENIX_VISION968: bios_fn = ROM_PHOENIX_VISION968; chip = S3_VISION968; @@ -6887,7 +6939,7 @@ static void *s3_init(const device_t *info) if (chip == S3_VISION964 && info->local != S3_ELSAWIN2KPROX_964) svga->dac_hwcursor_draw = bt48x_hwcursor_draw; else if ((chip == S3_VISION964 && info->local == S3_ELSAWIN2KPROX_964) || (chip == S3_VISION968 && (info->local == S3_ELSAWIN2KPROX || - info->local == S3_PHOENIX_VISION968))) + info->local == S3_PHOENIX_VISION968 || info->local == S3_NUMBER9_9FX_771))) svga->dac_hwcursor_draw = ibm_rgb528_hwcursor_draw; else if (chip == S3_VISION968 && (info->local == S3_SPEA_MERCURY_P64V || info->local == S3_MIROVIDEO40SV_ERGO_968)) svga->dac_hwcursor_draw = tvp3026_hwcursor_draw; @@ -7048,7 +7100,7 @@ static void *s3_init(const device_t *info) case S3_PARADISE_BAHAMAS64: case S3_PHOENIX_VISION864: - case S3_MIROCRYSTAL20SD_864: + case S3_MIROCRYSTAL20SD_864: /*BIOS 3.xx has a SDAC ramdac.*/ svga->decode_mask = (8 << 20) - 1; if (info->local == S3_PARADISE_BAHAMAS64 || info->local == S3_MIROCRYSTAL20SD_864) stepping = 0xc0; /*Vision864*/ @@ -7085,6 +7137,7 @@ static void *s3_init(const device_t *info) case S3_ELSAWIN2KPROX: case S3_SPEA_MERCURY_P64V: case S3_MIROVIDEO40SV_ERGO_968: + case S3_NUMBER9_9FX_771: case S3_PHOENIX_VISION968: svga->decode_mask = (8 << 20) - 1; s3->id = 0xe1; /*Vision968*/ @@ -7102,7 +7155,8 @@ static void *s3_init(const device_t *info) svga->crtc[0x5a] = 0x0a; } - if (info->local == S3_ELSAWIN2KPROX || info->local == S3_PHOENIX_VISION968) + if (info->local == S3_ELSAWIN2KPROX || info->local == S3_PHOENIX_VISION968 || + info->local == S3_NUMBER9_9FX_771) svga->ramdac = device_add(&ibm_rgb528_ramdac_device); else svga->ramdac = device_add(&tvp3026_ramdac_device); @@ -7111,6 +7165,7 @@ static void *s3_init(const device_t *info) svga->getclock = icd2061_getclock; break; + case S3_NUMBER9_9FX_531: case S3_PHOENIX_VISION868: svga->decode_mask = (8 << 20) - 1; s3->id = 0xe1; /*Vision868*/ @@ -7128,10 +7183,16 @@ static void *s3_init(const device_t *info) svga->crtc[0x59] = 0x00; svga->crtc[0x5a] = 0x0a; } - - svga->ramdac = device_add(&sdac_ramdac_device); - svga->clock_gen = svga->ramdac; - svga->getclock = sdac_getclock; + + if (info->local == S3_NUMBER9_9FX_531) { + svga->ramdac = device_add(&att498_ramdac_device); + svga->clock_gen = device_add(&icd2061_device); + svga->getclock = icd2061_getclock; + } else { + svga->ramdac = device_add(&sdac_ramdac_device); + svga->clock_gen = svga->ramdac; + svga->getclock = sdac_getclock; + } break; case S3_PHOENIX_TRIO32: @@ -7261,6 +7322,11 @@ static int s3_phoenix_vision864_available(void) return rom_present(ROM_PHOENIX_VISION864); } +static int s3_9fx_531_available(void) +{ + return rom_present(ROM_NUMBER9_9FX_531); +} + static int s3_phoenix_vision868_available(void) { return rom_present(ROM_PHOENIX_VISION868); @@ -7286,6 +7352,11 @@ static int s3_mirovideo_40sv_ergo_968_pci_available(void) return rom_present(ROM_MIROVIDEO40SV_ERGO_968_PCI); } +static int s3_9fx_771_available(void) +{ + return rom_present(ROM_NUMBER9_9FX_771); +} + static int s3_phoenix_vision968_available(void) { return rom_present(ROM_PHOENIX_VISION968); @@ -7448,7 +7519,7 @@ static const device_config_t s3_phoenix_trio32_config[] = static const device_config_t s3_standard_config[] = { { - "memory", "Video memory size", CONFIG_SELECTION, "", 4, "", { 0 }, + "memory", "Memory size", CONFIG_SELECTION, "", 4, "", { 0 }, { { "1 MB", 1 @@ -7750,6 +7821,20 @@ const device_t s3_diamond_stealth64_964_pci_device = s3_standard_config }; +const device_t s3_9fx_771_pci_device = +{ + "S3 Vision968 PCI (Number 9 9FX 771)", + DEVICE_PCI, + S3_NUMBER9_9FX_771, + s3_init, + s3_close, + s3_reset, + { s3_9fx_771_available }, + s3_speed_changed, + s3_force_redraw, + s3_standard_config +}; + const device_t s3_phoenix_vision968_pci_device = { "S3 Vision968 PCI (Phoenix)", @@ -7989,6 +8074,20 @@ const device_t s3_phoenix_vision864_pci_device = s3_standard_config }; +const device_t s3_9fx_531_pci_device = +{ + "S3 Vision868 PCI (Number 9 9FX 531)", + DEVICE_PCI, + S3_NUMBER9_9FX_531, + s3_init, + s3_close, + s3_reset, + { s3_9fx_531_available }, + s3_speed_changed, + s3_force_redraw, + s3_9fx_config +}; + const device_t s3_phoenix_vision868_vlb_device = { "S3 Vision868 VLB (Phoenix)", diff --git a/src/video/vid_table.c b/src/video/vid_table.c index 32865df01..f1752d611 100644 --- a/src/video/vid_table.c +++ b/src/video/vid_table.c @@ -72,9 +72,12 @@ video_cards[] = { { "cl_gd5402_isa", &gd5402_isa_device }, { "cl_gd5420_isa", &gd5420_isa_device }, { "cl_gd5422_isa", &gd5422_isa_device }, + { "cl_gd5426_isa", &gd5426_isa_device }, + { "cl_gd5426_diamond_a1_isa", &gd5426_diamond_speedstar_pro_a1_isa_device }, { "cl_gd5428_isa", &gd5428_isa_device }, { "cl_gd5429_isa", &gd5429_isa_device }, { "cl_gd5434_isa", &gd5434_isa_device }, + { "cl_gd5434_diamond_a3_isa", &gd5434_diamond_speedstar_64_a3_isa_device }, { "compaq_cga", &compaq_cga_device }, { "compaq_cga_2", &compaq_cga_2_device }, { "compaq_ega", &cpqega_device }, @@ -123,14 +126,15 @@ video_cards[] = { { "radius_mc", &radius_svga_multiview_mca_device }, { "mach64gx_pci", &mach64gx_pci_device }, { "mach64vt2", &mach64vt2_device }, + { "et4000w32p_revc_pci", &et4000w32p_revc_pci_device }, { "et4000w32p_pci", &et4000w32p_cardex_pci_device }, { "et4000w32p_nc_pci", &et4000w32p_noncardex_pci_device }, - { "et4000w32p_revc_pci", &et4000w32p_revc_pci_device }, { "cl_gd5430_pci", &gd5430_pci_device, }, { "cl_gd5434_pci", &gd5434_pci_device }, { "cl_gd5436_pci", &gd5436_pci_device }, { "cl_gd5440_pci", &gd5440_pci_device }, { "cl_gd5446_pci", &gd5446_pci_device }, + { "cl_gd5446_stb_pci", &gd5446_stb_pci_device }, { "cl_gd5480_pci", &gd5480_pci_device }, { "ctl3d_banshee_pci", &creative_voodoo_banshee_device }, { "stealth32_pci", &et4000w32p_pci_device }, @@ -146,8 +150,10 @@ video_cards[] = { { "px_trio64_pci", &s3_phoenix_trio64_pci_device }, { "elsawin2kprox_pci", &s3_elsa_winner2000_pro_x_pci_device }, { "mirovideo40sv_pci", &s3_mirovideo_40sv_ergo_968_pci_device }, + { "n9_9fx_771_pci", &s3_9fx_771_pci_device }, { "px_vision968_pci", &s3_phoenix_vision968_pci_device }, { "spea_mercury64p_pci", &s3_spea_mercury_p64v_pci_device }, + { "n9_9fx_531_pci", &s3_9fx_531_pci_device }, { "px_vision868_pci", &s3_phoenix_vision868_pci_device }, { "px_trio64vplus_pci", &s3_phoenix_trio64vplus_pci_device }, { "trio64v2dx_pci", &s3_trio64v2_dx_pci_device }, @@ -164,7 +170,6 @@ video_cards[] = { { "mystique", &mystique_device }, { "mystique_220", &mystique_220_device }, #endif - { "cl_gd5446_stb_pci", &gd5446_stb_pci_device }, { "tgui9440_pci", &tgui9440_pci_device }, { "tgui9660_pci", &tgui9660_pci_device }, { "tgui9680_pci", &tgui9680_pci_device }, @@ -173,16 +178,17 @@ video_cards[] = { { "voodoo3_3k_pci", &voodoo_3_3000_device }, { "mach64gx_vlb", &mach64gx_vlb_device }, { "et4000w32i_vlb", &et4000w32i_vlb_device }, - { "et4000w32p_vlb", &et4000w32p_cardex_vlb_device }, - { "et4000w32p_nc_vlb", &et4000w32p_noncardex_vlb_device }, { "et4000w32p_revc_vlb", &et4000w32p_revc_vlb_device }, - { "cl_gd5424_vlb", &gd5424_vlb_device }, - { "cl_gd5428_vlb", &gd5428_vlb_device }, - { "cl_gd5429_vlb", &gd5429_vlb_device }, - { "cl_gd5434_vlb", &gd5434_vlb_device }, + { "et4000w32p_vlb", &et4000w32p_cardex_vlb_device }, { "stealth32_vlb", &et4000w32p_vlb_device }, + { "et4000w32p_nc_vlb", &et4000w32p_noncardex_vlb_device }, + { "cl_gd5424_vlb", &gd5424_vlb_device }, { "cl_gd5426_vlb", &gd5426_vlb_device }, - { "cl_gd5430_vlb", &gd5430_vlb_device }, + { "cl_gd5428_vlb", &gd5428_vlb_device }, + { "cl_gd5428_diamond_b1_vlb", &gd5428_diamond_speedstar_pro_b1_vlb_device }, + { "cl_gd5429_vlb", &gd5429_vlb_device }, + { "cl_gd5430_vlb", &gd5430_diamond_speedstar_pro_se_a8_vlb_device }, + { "cl_gd5434_vlb", &gd5434_vlb_device }, { "metheus928_vlb", &s3_metheus_86c928_vlb_device }, { "mirocrystal8s_vlb", &s3_mirocrystal_8s_805_vlb_device }, { "mirocrystal10sd_vlb", &s3_mirocrystal_10sd_805_vlb_device }, diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw index d678e2699..2d2ad272f 100644 --- a/src/win/Makefile.mingw +++ b/src/win/Makefile.mingw @@ -730,6 +730,7 @@ VIDOBJ := agpgart.o video.o \ vid_tvga.o \ vid_tgui9440.o vid_tkd8001_ramdac.o \ vid_att20c49x_ramdac.o \ + vid_att2xc498_ramdac.o \ vid_s3.o vid_s3_virge.o \ vid_ibm_rgb528_ramdac.o vid_sdac_ramdac.o \ vid_ogc.o \