From 9fbb3d2fdc2fa8c4c877482da283d65449863e95 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Mon, 21 Aug 2023 02:05:32 +0300 Subject: [PATCH 01/18] Enable caching in latest 86box build Enable caching similar to https://github.com/1ahmadbassam/pcem_cache --- src/86box.c | 8 + src/config.c | 6 +- src/include/86box/86box.h | 1 + src/include/86box/mem.h | 4 + src/include/86box/resource.h | 525 +++ src/mem/mem.c | 50 + src/qt/qt_settingsmachine.cpp | 3 + src/qt/qt_settingsmachine.ui | 114 +- src/win/languages/cs-CZ.rc | 637 ++++ src/win/languages/de-DE.rc | 637 ++++ src/win/languages/dialogs.rc | 1147 +++++++ src/win/languages/en-GB.rc | 637 ++++ src/win/languages/en-US.rc | 637 ++++ src/win/languages/es-ES.rc | 637 ++++ src/win/languages/fi-FI.rc | 637 ++++ src/win/languages/fr-FR.rc | 637 ++++ src/win/languages/hr-HR.rc | 637 ++++ src/win/languages/hu-HU.rc | 641 ++++ src/win/languages/it-IT.rc | 638 ++++ src/win/languages/ja-JP.rc | 637 ++++ src/win/languages/ko-KR.rc | 637 ++++ src/win/languages/pl-PL.rc | 637 ++++ src/win/languages/pt-BR.rc | 640 ++++ src/win/languages/pt-PT.rc | 637 ++++ src/win/languages/ru-RU.rc | 637 ++++ src/win/languages/sl-SI.rc | 637 ++++ src/win/languages/tr-TR.rc | 637 ++++ src/win/languages/uk-UA.rc | 637 ++++ src/win/languages/zh-CN.rc | 637 ++++ src/win/languages/zh-TW.rc | 637 ++++ src/win/win_settings.c | 5719 +++++++++++++++++++++++++++++++++ 31 files changed, 20902 insertions(+), 60 deletions(-) create mode 100644 src/include/86box/resource.h create mode 100644 src/win/languages/cs-CZ.rc create mode 100644 src/win/languages/de-DE.rc create mode 100644 src/win/languages/dialogs.rc create mode 100644 src/win/languages/en-GB.rc create mode 100644 src/win/languages/en-US.rc create mode 100644 src/win/languages/es-ES.rc create mode 100644 src/win/languages/fi-FI.rc create mode 100644 src/win/languages/fr-FR.rc create mode 100644 src/win/languages/hr-HR.rc create mode 100644 src/win/languages/hu-HU.rc create mode 100644 src/win/languages/it-IT.rc create mode 100644 src/win/languages/ja-JP.rc create mode 100644 src/win/languages/ko-KR.rc create mode 100644 src/win/languages/pl-PL.rc create mode 100644 src/win/languages/pt-BR.rc create mode 100644 src/win/languages/pt-PT.rc create mode 100644 src/win/languages/ru-RU.rc create mode 100644 src/win/languages/sl-SI.rc create mode 100644 src/win/languages/tr-TR.rc create mode 100644 src/win/languages/uk-UA.rc create mode 100644 src/win/languages/zh-CN.rc create mode 100644 src/win/languages/zh-TW.rc create mode 100644 src/win/win_settings.c diff --git a/src/86box.c b/src/86box.c index 67d0bb165b..fa875c5537 100644 --- a/src/86box.c +++ b/src/86box.c @@ -193,6 +193,8 @@ int cpu_use_dynarec = 0; /* (C) cpu use int cpu = 0; /* (C) cpu type */ int fpu_type = 0; /* (C) fpu type */ int fpu_softfloat = 0; /* (C) fpu uses softfloat */ +int cache = 0; + /* (C) machine uses cache */ int time_sync = 0; /* (C) enable time sync */ int confirm_reset = 1; /* (C) enable reset confirmation */ int confirm_exit = 1; /* (C) enable exit confirmation */ @@ -896,6 +898,8 @@ pc_speed_changed(void) pit_set_clock(cpu_s->rspeed); else pit_set_clock((uint32_t) 14318184.0); + /* On speed change, update memory cache */ + mem_updatecache(); } void @@ -1148,6 +1152,10 @@ pc_reset_hard_init(void) scsi_reset(); scsi_device_init(); + /* Reset and enable memory caching */ + + mem_updatecache(); + /* Initialize the actual machine and its basic modules. */ machine_init(); diff --git a/src/config.c b/src/config.c index 373ee130dd..2edbaf16aa 100644 --- a/src/config.c +++ b/src/config.c @@ -388,8 +388,11 @@ load_machine(void) mem_size = machine_get_max_ram(machine); cpu_use_dynarec = !!ini_section_get_int(cat, "cpu_use_dynarec", 0); - fpu_softfloat = !!ini_section_get_int(cat, "fpu_softfloat", 0); + cache = !!ini_section_get_int(cat, "cache", 0); if ((fpu_type != FPU_NONE) && machine_has_flags(machine, MACHINE_SOFTFLOAT_ONLY)) + fpu_softfloat = !!ini_section_get_int(cat, "fpu_softfloat", 0); + + if (machine_has_flags(machine, MACHINE_SOFTFLOAT_ONLY)) fpu_softfloat = 1; p = ini_section_get_string(cat, "time_sync", NULL); @@ -1970,6 +1973,7 @@ save_machine(void) ini_section_set_int(cat, "cpu_use_dynarec", cpu_use_dynarec); ini_section_set_int(cat, "fpu_softfloat", fpu_softfloat); + ini_section_set_int(cat, "cache", cache); if (time_sync & TIME_SYNC_ENABLED) if (time_sync & TIME_SYNC_UTC) diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h index 3f5f3f2ab9..32399261e5 100644 --- a/src/include/86box/86box.h +++ b/src/include/86box/86box.h @@ -139,6 +139,7 @@ extern int xga_standalone_enabled; /* (C) video option */ extern uint32_t mem_size; /* (C) memory size (Installed on system board) */ extern uint32_t isa_mem_size; /* (C) memory size (ISA Memory Cards) */ extern int cpu; /* (C) cpu type */ +extern int cache; /* (C) machine uses cache */ extern int cpu_use_dynarec; /* (C) cpu uses/needs Dyna */ extern int fpu_type; /* (C) fpu type */ extern int fpu_softfloat; /* (C) fpu uses softfloat */ diff --git a/src/include/86box/mem.h b/src/include/86box/mem.h index bc949834fb..9d4c35d83c 100644 --- a/src/include/86box/mem.h +++ b/src/include/86box/mem.h @@ -298,6 +298,8 @@ extern int readlnum; extern int writelnum; extern int memspeed[11]; +extern int cache; +extern int memwaitstate; extern int mmu_perm; extern uint8_t high_page; /* if a high (> 4 gb) page was detected */ @@ -429,6 +431,8 @@ extern int mem_addr_is_ram(uint32_t addr); extern uint64_t mmutranslate_noabrt(uint32_t addr, int rw); +extern void mem_updatecache(void); + extern void mem_invalidate_range(uint32_t start_addr, uint32_t end_addr); extern void mem_write_ramb_page(uint32_t addr, uint8_t val, page_t *page); diff --git a/src/include/86box/resource.h b/src/include/86box/resource.h new file mode 100644 index 0000000000..3cfee7b321 --- /dev/null +++ b/src/include/86box/resource.h @@ -0,0 +1,525 @@ +/* + * 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. + * + * Windows resource defines. + * + * + * + * Authors: Sarah Walker, + * Miran Grca, + * Fred N. van Kempen, + * David Hrdlička, + * + * Copyright 2008-2019 Sarah Walker. + * Copyright 2016-2019 Miran Grca. + * Copyright 2018-2019 David Hrdlička. + * Copyright 2021-2022 Jasmine Iwanek. + */ + +#ifndef WIN_RESOURCE_H +#define WIN_RESOURCE_H + +/* Dialog IDs. */ +#define DLG_ABOUT 101 /* top-level dialog */ +#define DLG_STATUS 102 /* top-level dialog */ +#define DLG_SND_GAIN 103 /* top-level dialog */ +#define DLG_NEW_FLOPPY 104 /* top-level dialog */ +#define DLG_SPECIFY_DIM 105 /* top-level dialog */ +#define DLG_PREFERENCES 106 /* top-level dialog */ +#define DLG_CONFIG 110 /* top-level dialog */ +#define DLG_CFG_MACHINE 111 /* sub-dialog of config */ +#define DLG_CFG_VIDEO 112 /* sub-dialog of config */ +#define DLG_CFG_INPUT 113 /* sub-dialog of config */ +#define DLG_CFG_SOUND 114 /* sub-dialog of config */ +#define DLG_CFG_NETWORK 115 /* sub-dialog of config */ +#define DLG_CFG_PORTS 116 /* sub-dialog of config */ +#define DLG_CFG_STORAGE 117 /* sub-dialog of config */ +#define DLG_CFG_HARD_DISKS 118 /* sub-dialog of config */ +#define DLG_CFG_HARD_DISKS_ADD 119 /* sub-dialog of config */ +#define DLG_CFG_FLOPPY_AND_CDROM_DRIVES 120 /* sub-dialog of config */ +#define DLG_CFG_OTHER_REMOVABLE_DEVICES 121 /* sub-dialog of config */ +#define DLG_CFG_PERIPHERALS 122 /* sub-dialog of config */ + +/* Static text label IDs. */ + +/* DLG_SND_GAIN */ +#define IDT_GAIN 1700 /* Gain */ + +/* DLG_NEW_FLOPPY */ +#define IDT_FLP_FILE_NAME 1701 /* File name: */ +#define IDT_FLP_DISK_SIZE 1702 /* Disk size: */ +#define IDT_FLP_RPM_MODE 1703 /* RPM mode: */ +#define IDT_FLP_PROGRESS 1704 /* Progress: */ + +/* DLG_SPECIFY_DIM */ +#define IDT_WIDTH 1705 /* ??? */ +#define IDT_HEIGHT 1706 /* ??? */ + +/* DLG_CFG_MACHINE */ +#define IDT_MACHINE_TYPE 1707 /* Machine type: */ +#define IDT_MACHINE 1708 /* Machine: */ +#define IDT_CPU_TYPE 1709 /* CPU type: */ +#define IDT_CPU_SPEED 1710 /* CPU speed: */ +#define IDT_FPU 1711 /* FPU: */ +#define IDT_WAIT_STATES 1712 /* Wait states: */ +#define IDT_MB 1713 /* MB == IDC_TEXT_MB */ +#define IDT_MEMORY 1714 /* Memory: */ + +/* DLG_CFG_VIDEO */ +#define IDT_VIDEO 1715 /* Video: */ +#define IDT_VIDEO_2 1716 /* Video 2: */ + +/* DLG_CFG_INPUT */ +#define IDT_MOUSE 1717 /* Mouse: */ +#define IDT_JOYSTICK 1718 /* Joystick: */ + +/* DLG_CFG_SOUND */ +#define IDT_SOUND1 1719 /* Sound card #1: */ +#define IDT_SOUND2 1720 /* Sound card #2: */ +#define IDT_SOUND3 1721 /* Sound card #3: */ +#define IDT_SOUND4 1722 /* Sound card #4: */ +#define IDT_MIDI_OUT 1723 /* MIDI Out Device: */ +#define IDT_MIDI_IN 1724 /* MIDI In Device: */ + +/* DLG_CFG_NETWORK */ +#define IDT_NET_TYPE 1725 /* Network type: */ +#define IDT_PCAP 1726 /* PCap device: */ +#define IDT_NET 1727 /* Network adapter: */ +#define IDT_NET1 1728 /* Network adapter 1: */ +#define IDT_NET2 1729 /* Network adapter 2: */ +#define IDT_NET3 1730 /* Network adapter 3: */ +#define IDT_NET4 1731 /* Network adapter 4: */ + +/* DLG_CFG_PORTS */ +#define IDT_COM1 1732 /* COM1 Device: */ +#define IDT_COM2 1733 /* COM1 Device: */ +#define IDT_COM3 1734 /* COM1 Device: */ +#define IDT_COM4 1735 /* COM1 Device: */ + +#define IDT_LPT1 1736 /* LPT1 Device: */ +#define IDT_LPT2 1737 /* LPT2 Device: */ +#define IDT_LPT3 1738 /* LPT3 Device: */ +#define IDT_LPT4 1739 /* LPT4 Device: */ + +/* DLG_CFG_STORAGE */ +#define IDT_HDC 1740 /* HD Controller: */ +#define IDT_FDC 1741 /* Ext FD Controller: */ +#define IDT_SCSI_1 1742 /* SCSI Board #1: */ +#define IDT_SCSI_2 1743 /* SCSI Board #2: */ +#define IDT_SCSI_3 1744 /* SCSI Board #3: */ +#define IDT_SCSI_4 1745 /* SCSI Board #4: */ + +/* DLG_CFG_HARD_DISKS */ +#define IDT_HDD 1746 /* Hard disks: */ +#define IDT_BUS 1747 /* Bus: */ +#define IDT_CHANNEL 1748 /* Channel: */ +#define IDT_ID 1749 /* ID: */ +#define IDT_LUN 1750 /* LUN: */ +#define IDT_SPEED 1751 /* Speed: */ + +/* DLG_CFG_HARD_DISKS_ADD */ +#define IDT_SECTORS 1752 /* Sectors: */ +#define IDT_HEADS 1753 /* Heads: */ +#define IDT_CYLS 1754 /* Cylinders: */ +#define IDT_SIZE_MB 1755 /* Size (MB): */ +#define IDT_TYPE 1756 /* Type: */ +#define IDT_FILE_NAME 1757 /* File name: */ +#define IDT_IMG_FORMAT 1758 /* Image Format: */ +#define IDT_BLOCK_SIZE 1759 /* Block Size: */ +#define IDT_PROGRESS 1760 /* Progress: */ + +/* DLG_CFG_FLOPPY_AND_CDROM_DRIVES */ +#define IDT_FLOPPY_DRIVES 1761 /* Floppy drives: */ +#define IDT_FDD_TYPE 1762 /* Type: */ +#define IDT_CD_DRIVES 1763 /* CD-ROM drives: */ +#define IDT_CD_BUS 1764 /* Bus: */ +#define IDT_CD_ID 1765 /* ID: */ +#define IDT_CD_LUN 1766 /* LUN: */ +#define IDT_CD_CHANNEL 1767 /* Channel: */ +#define IDT_CD_SPEED 1768 /* Speed: */ +#define IDT_CD_TYPE 1769 /* Type: */ + +/* DLG_CFG_OTHER_REMOVABLE_DEVICES */ +#define IDT_MO_DRIVES 1770 /* MO drives: */ +#define IDT_MO_BUS 1771 /* Bus: */ +#define IDT_MO_ID 1772 /* ID: */ +#define IDT_MO_CHANNEL 1773 /* Channel */ +#define IDT_MO_TYPE 1774 /* Type: */ + +#define IDT_ZIP_DRIVES 1775 /* ZIP drives: */ +#define IDT_ZIP_BUS 1776 /* Bus: */ +#define IDT_ZIP_ID 1777 /* ID: */ +#define IDT_ZIP_LUN 1778 /* LUN: */ +#define IDT_ZIP_CHANNEL 1779 /* Channel: */ + +/* DLG_CFG_PERIPHERALS */ +#define IDT_ISARTC 1780 /* ISA RTC: */ +#define IDT_ISAMEM_1 1781 /* ISAMEM Board #1: */ +#define IDT_ISAMEM_2 1782 /* ISAMEM Board #2: */ +#define IDT_ISAMEM_3 1783 /* ISAMEM Board #3: */ +#define IDT_ISAMEM_4 1784 /* ISAMEM Board #4: */ + +/* + * To try to keep these organized, we now group the + * constants per dialog, as this allows easy adding + * and deleting items. + */ +#define IDC_SETTINGSCATLIST 1001 /* generic config */ +#define IDC_CFILE 1002 /* Select File dialog */ +#define IDC_TIME_SYNC 1005 +#define IDC_RADIO_TS_DISABLED 1006 +#define IDC_RADIO_TS_LOCAL 1007 +#define IDC_RADIO_TS_UTC 1008 + +#define IDC_COMBO_MACHINE_TYPE 1010 +#define IDC_COMBO_MACHINE 1011 /* machine/cpu config */ +#define IDC_CONFIGURE_MACHINE 1012 +#define IDC_COMBO_CPU_TYPE 1013 +#define IDC_COMBO_CPU_SPEED 1014 +#define IDC_COMBO_FPU 1015 +#define IDC_COMBO_WS 1016 +#ifdef USE_DYNAREC +# define IDC_CHECK_DYNAREC 1017 +#endif +#define IDC_CHECK_SOFTFLOAT 1018 +#define IDC_CHECK_CACHE 1019 +#define IDC_MEMTEXT 1020 +#define IDC_MEMSPIN 1021 +#define IDC_TEXT_MB IDT_MB + +#define IDC_VIDEO 1022 /* video config */ +#define IDC_COMBO_VIDEO 1023 +#define IDC_VIDEO_2 1024 +#define IDC_COMBO_VIDEO_2 1025 +#define IDC_CHECK_VOODOO 1026 +#define IDC_BUTTON_VOODOO 1027 +#define IDC_CHECK_IBM8514 1028 +#define IDC_CHECK_XGA 1029 +#define IDC_BUTTON_XGA 1030 + +#define IDC_INPUT 1031 /* input config */ +#define IDC_COMBO_MOUSE 1032 +#define IDC_COMBO_JOYSTICK 1033 +#define IDC_COMBO_JOY 1034 +#define IDC_CONFIGURE_MOUSE 1035 + +#define IDC_SOUND 1040 /* sound config */ +#define IDC_COMBO_SOUND1 1041 +#define IDC_COMBO_SOUND2 1042 +#define IDC_COMBO_SOUND3 1043 +#define IDC_COMBO_SOUND4 1044 +#define IDC_COMBO_MIDI_OUT 1045 +#define IDC_CHECK_MPU401 1046 +#define IDC_CONFIGURE_MPU401 1047 +#define IDC_CHECK_FLOAT 1048 +#define IDC_CONFIGURE_GUS 1049 +#define IDC_COMBO_MIDI_IN 1050 +#define IDC_CONFIGURE_CMS 1051 +#define IDC_CONFIGURE_SSI 1052 +#define IDC_FM_DRIVER 1053 +#define IDC_RADIO_FM_DRV_NUKED 1054 +#define IDC_RADIO_FM_DRV_YMFM 1055 + +#define IDC_COMBO_NET1_TYPE 1060 /* network config */ +#define IDC_COMBO_NET2_TYPE 1061 +#define IDC_COMBO_NET3_TYPE 1062 +#define IDC_COMBO_NET4_TYPE 1063 +#define IDC_COMBO_PCAP1 1064 +#define IDC_COMBO_PCAP2 1065 +#define IDC_COMBO_PCAP3 1066 +#define IDC_COMBO_PCAP4 1067 +#define IDC_COMBO_NET1 1068 +#define IDC_COMBO_NET2 1069 +#define IDC_COMBO_NET3 1070 +#define IDC_COMBO_NET4 1071 + +#define IDC_COMBO_LPT1 1080 /* ports config */ +#define IDC_COMBO_LPT2 1081 +#define IDC_COMBO_LPT3 1082 +#define IDC_COMBO_LPT4 1083 +#define IDC_CHECK_SERIAL1 1084 +#define IDC_CHECK_SERIAL2 1085 +#define IDC_CHECK_SERIAL3 1086 +#define IDC_CHECK_SERIAL4 1087 +#define IDC_CHECK_PARALLEL1 1088 +#define IDC_CHECK_PARALLEL2 1089 +#define IDC_CHECK_PARALLEL3 1090 +#define IDC_CHECK_PARALLEL4 1091 +#define IDC_CHECK_SERIAL_PASS1 1092 +#define IDC_CHECK_SERIAL_PASS2 1093 +#define IDC_CHECK_SERIAL_PASS3 1094 +#define IDC_CHECK_SERIAL_PASS4 1095 + +#define IDC_OTHER_PERIPH 1110 /* storage controllers config */ +#define IDC_COMBO_HDC 1111 +#define IDC_CONFIGURE_HDC 1112 +#define IDC_CHECK_IDE_TER 1113 +#define IDC_BUTTON_IDE_TER 1114 +#define IDC_CHECK_IDE_QUA 1115 +#define IDC_BUTTON_IDE_QUA 1116 +#define IDC_GROUP_SCSI 1117 +#define IDC_COMBO_SCSI_1 1118 +#define IDC_COMBO_SCSI_2 1119 +#define IDC_COMBO_SCSI_3 1120 +#define IDC_COMBO_SCSI_4 1121 +#define IDC_CONFIGURE_SCSI_1 1122 +#define IDC_CONFIGURE_SCSI_2 1123 +#define IDC_CONFIGURE_SCSI_3 1124 +#define IDC_CONFIGURE_SCSI_4 1125 +#define IDC_CHECK_CASSETTE 1126 + +#define IDC_HARD_DISKS 1130 /* hard disks config */ +#define IDC_LIST_HARD_DISKS 1131 +#define IDC_BUTTON_HDD_ADD_NEW 1132 +#define IDC_BUTTON_HDD_ADD 1133 +#define IDC_BUTTON_HDD_REMOVE 1134 +#define IDC_COMBO_HD_BUS 1135 +#define IDC_COMBO_HD_CHANNEL 1136 +#define IDC_COMBO_HD_ID 1137 +#define IDC_COMBO_HD_SPEED 1138 +#define IDC_COMBO_HD_CHANNEL_IDE 1139 + +#define IDC_EDIT_HD_FILE_NAME 1140 /* add hard disk dialog */ +#define IDC_EDIT_HD_SPT 1141 +#define IDC_EDIT_HD_HPC 1142 +#define IDC_EDIT_HD_CYL 1143 +#define IDC_EDIT_HD_SIZE 1144 +#define IDC_COMBO_HD_TYPE 1145 +#define IDC_PBAR_IMG_CREATE 1146 +#define IDC_COMBO_HD_IMG_FORMAT 1147 +#define IDC_COMBO_HD_BLOCK_SIZE 1148 + +#define IDC_REMOV_DEVICES 1150 /* floppy and cd-rom drives config */ +#define IDC_LIST_FLOPPY_DRIVES 1151 +#define IDC_COMBO_FD_TYPE 1152 +#define IDC_CHECKTURBO 1153 +#define IDC_CHECKBPB 1154 +#define IDC_LIST_CDROM_DRIVES 1155 +#define IDC_COMBO_CD_BUS 1156 +#define IDC_COMBO_CD_ID 1157 +#define IDC_COMBO_CD_LUN 1158 +#define IDC_COMBO_CD_CHANNEL_IDE 1159 +#define IDC_COMBO_CD_TYPE 1160 + +#define IDC_LIST_ZIP_DRIVES 1170 /* other removable devices config */ +#define IDC_COMBO_ZIP_BUS 1171 +#define IDC_COMBO_ZIP_ID 1172 +#define IDC_COMBO_ZIP_LUN 1173 +#define IDC_COMBO_ZIP_CHANNEL_IDE 1174 +#define IDC_CHECK250 1175 +#define IDC_COMBO_CD_SPEED 1176 +#define IDC_LIST_MO_DRIVES 1177 +#define IDC_COMBO_MO_BUS 1178 +#define IDC_COMBO_MO_ID 1179 +#define IDC_COMBO_MO_LUN 1170 +#define IDC_COMBO_MO_CHANNEL_IDE 1181 +#define IDC_COMBO_MO_TYPE 1182 + +#define IDC_CHECK_BUGGER 1190 /* other periph config */ +#define IDC_CHECK_POSTCARD 1191 +#define IDC_COMBO_ISARTC 1192 +#define IDC_CONFIGURE_ISARTC 1193 +#define IDC_COMBO_FDC 1194 +#define IDC_CONFIGURE_FDC 1195 +#define IDC_GROUP_ISAMEM 1196 +#define IDC_COMBO_ISAMEM_1 1197 +#define IDC_COMBO_ISAMEM_2 1198 +#define IDC_COMBO_ISAMEM_3 1199 +#define IDC_COMBO_ISAMEM_4 1200 +#define IDC_CONFIGURE_ISAMEM_1 1201 +#define IDC_CONFIGURE_ISAMEM_2 1202 +#define IDC_CONFIGURE_ISAMEM_3 1203 +#define IDC_CONFIGURE_ISAMEM_4 1204 + +#define IDC_SLIDER_GAIN 1210 /* sound gain dialog */ + +#define IDC_EDIT_FILE_NAME 1220 /* new floppy image dialog */ +#define IDC_COMBO_DISK_SIZE 1221 +#define IDC_COMBO_RPM_MODE 1222 + +#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 +#define IDC_CONFIGURE_VID 1300 +#define IDC_CONFIGURE_VID_2 1301 +#define IDC_CONFIGURE_SND1 1302 +#define IDC_CONFIGURE_SND2 1303 +#define IDC_CONFIGURE_SND3 1304 +#define IDC_CONFIGURE_SND4 1305 +#define IDC_CONFIGURE_VOODOO 1306 +#define IDC_CONFIGURE_NET1_TYPE 1310 +#define IDC_CONFIGURE_NET2_TYPE 1311 +#define IDC_CONFIGURE_NET3_TYPE 1312 +#define IDC_CONFIGURE_NET4_TYPE 1313 +#define IDC_CONFIGURE_PCAP1 1314 +#define IDC_CONFIGURE_PCAP2 1315 +#define IDC_CONFIGURE_PCAP3 1316 +#define IDC_CONFIGURE_PCAP4 1317 +#define IDC_CONFIGURE_NET1 1318 +#define IDC_CONFIGURE_NET2 1319 +#define IDC_CONFIGURE_NET3 1320 +#define IDC_CONFIGURE_NET4 1321 +#define IDC_CONFIGURE_MIDI_OUT 1322 +#define IDC_CONFIGURE_MIDI_IN 1323 +#define IDC_CONFIGURE_SERIAL_PASS1 1324 +#define IDC_CONFIGURE_SERIAL_PASS2 1325 +#define IDC_CONFIGURE_SERIAL_PASS3 1326 +#define IDC_CONFIGURE_SERIAL_PASS4 1327 +#define IDC_JOY1 1330 +#define IDC_JOY2 1331 +#define IDC_JOY3 1332 +#define IDC_JOY4 1333 +#define IDC_HDTYPE 1380 +#define IDC_RENDER 1381 +#define IDC_STATUS 1382 + +#define IDC_EDIT_WIDTH 1400 /* specify main window dimensions dialog */ +#define IDC_WIDTHSPIN 1401 +#define IDC_EDIT_HEIGHT 1402 +#define IDC_HEIGHTSPIN 1403 +#define IDC_CHECK_LOCK_SIZE 1404 + +#define IDM_ABOUT 40001 +#define IDC_ABOUT_ICON 65535 +#define IDM_ACTION_KBD_REQ_CAPTURE 40010 +#define IDM_ACTION_RCTRL_IS_LALT 40011 +#define IDM_ACTION_SCREENSHOT 40012 +#define IDM_ACTION_HRESET 40013 +#define IDM_ACTION_RESET_CAD 40014 +#define IDM_ACTION_EXIT 40015 +#define IDM_ACTION_CTRL_ALT_ESC 40016 +#define IDM_ACTION_PAUSE 40017 +#ifdef MTR_ENABLED +# define IDM_ACTION_BEGIN_TRACE 40018 +# define IDM_ACTION_END_TRACE 40019 +# define IDM_ACTION_TRACE 40020 +#endif +#define IDM_CONFIG 40021 +#define IDM_VID_HIDE_STATUS_BAR 40022 +#define IDM_VID_HIDE_TOOLBAR 40023 +#define IDM_UPDATE_ICONS 40030 +#define IDM_SND_GAIN 40031 +#define IDM_VID_MONITORS 40040 +#define IDM_VID_RESIZE 40041 +#define IDM_VID_REMEMBER 40042 +#define IDM_VID_SDL_SW 40050 +#define IDM_VID_SDL_HW 40051 +#define IDM_VID_SDL_OPENGL 40052 +#define IDM_VID_OPENGL_CORE 40053 +#ifdef USE_VNC +# define IDM_VID_VNC 40054 +#endif +#define IDM_VID_SCALE_1X 40055 +#define IDM_VID_SCALE_2X 40056 +#define IDM_VID_SCALE_3X 40057 +#define IDM_VID_SCALE_4X 40058 +#define IDM_VID_SCALE_5X 40059 +#define IDM_VID_SCALE_6X 40060 +#define IDM_VID_SCALE_7X 40061 +#define IDM_VID_SCALE_8X 40062 +#define IDM_VID_SCALE_9X 40063 +#define IDM_VID_SCALE_10X 40064 + +#define IDM_VID_HIDPI 40065 +#define IDM_VID_FULLSCREEN 40066 +#define IDM_VID_FS_FULL 40067 +#define IDM_VID_FS_43 40068 +#define IDM_VID_FS_KEEPRATIO 40069 +#define IDM_VID_FS_INT 40070 +#define IDM_VID_SPECIFY_DIM 40071 +#define IDM_VID_FORCE43 40072 +#define IDM_VID_OVERSCAN 40073 +#define IDM_VID_INVERT 40074 +#define IDM_VID_CGACON 40075 +#define IDM_VID_GRAYCT_601 40076 +#define IDM_VID_GRAYCT_709 40077 +#define IDM_VID_GRAYCT_AVE 40078 +#define IDM_VID_GRAY_RGB 40080 +#define IDM_VID_GRAY_MONO 40081 +#define IDM_VID_GRAY_AMBER 40082 +#define IDM_VID_GRAY_GREEN 40083 +#define IDM_VID_GRAY_WHITE 40084 +#define IDM_VID_FILTER_NEAREST 40085 +#define IDM_VID_FILTER_LINEAR 40086 + +#define IDM_MEDIA 40087 +#define IDM_DOCS 40088 + +#define IDM_DISCORD 40090 + +#define IDM_PREFERENCES 40091 + +#define IDM_VID_GL_FPS_BLITTER 40100 +#define IDM_VID_GL_FPS_25 40101 +#define IDM_VID_GL_FPS_30 40102 +#define IDM_VID_GL_FPS_50 40103 +#define IDM_VID_GL_FPS_60 40104 +#define IDM_VID_GL_FPS_75 40105 +#define IDM_VID_GL_VSYNC 40106 +#define IDM_VID_GL_SHADER 40107 +#define IDM_VID_GL_NOSHADER 40108 + +/* + * We need 7 bits for CDROM (2 bits ID and 5 bits for host drive), + * and 5 bits for Removable Disks (5 bits for ID), so we use an + * 8bit (256 entries) space for these devices. + */ +#define IDM_CASSETTE_IMAGE_NEW 0x1200 +#define IDM_CASSETTE_IMAGE_EXISTING 0x1300 +#define IDM_CASSETTE_IMAGE_EXISTING_WP 0x1400 +#define IDM_CASSETTE_RECORD 0x1500 +#define IDM_CASSETTE_PLAY 0x1600 +#define IDM_CASSETTE_REWIND 0x1700 +#define IDM_CASSETTE_FAST_FORWARD 0x1800 +#define IDM_CASSETTE_EJECT 0x1900 + +#define IDM_CARTRIDGE_IMAGE 0x2200 +#define IDM_CARTRIDGE_EJECT 0x2300 + +#define IDM_FLOPPY_IMAGE_NEW 0x3200 +#define IDM_FLOPPY_IMAGE_EXISTING 0x3300 +#define IDM_FLOPPY_IMAGE_EXISTING_WP 0x3400 +#define IDM_FLOPPY_EXPORT_TO_86F 0x3500 +#define IDM_FLOPPY_EJECT 0x3600 + +#define IDM_CDROM_MUTE 0x4200 +#define IDM_CDROM_EMPTY 0x4300 +#define IDM_CDROM_RELOAD 0x4400 +#define IDM_CDROM_IMAGE 0x4500 +#define IDM_CDROM_DIR 0x4600 +#define IDM_CDROM_HOST_DRIVE 0x4700 + +#define IDM_ZIP_IMAGE_NEW 0x5200 +#define IDM_ZIP_IMAGE_EXISTING 0x5300 +#define IDM_ZIP_IMAGE_EXISTING_WP 0x5400 +#define IDM_ZIP_EJECT 0x5500 +#define IDM_ZIP_RELOAD 0x5600 + +#define IDM_MO_IMAGE_NEW 0x6200 +#define IDM_MO_IMAGE_EXISTING 0x6300 +#define IDM_MO_IMAGE_EXISTING_WP 0x6400 +#define IDM_MO_EJECT 0x6500 +#define IDM_MO_RELOAD 0x6600 + +/* Next default values for new objects */ +#ifdef APSTUDIO_INVOKED +# ifndef APSTUDIO_READONLY_SYMBOLS +# define _APS_NO_MFC 1 +# define _APS_NEXT_RESOURCE_VALUE 1400 +# define _APS_NEXT_COMMAND_VALUE 55000 +# define _APS_NEXT_CONTROL_VALUE 1800 +# define _APS_NEXT_SYMED_VALUE 200 +# endif +#endif + +#endif /*WIN_RESOURCE_H*/ diff --git a/src/mem/mem.c b/src/mem/mem.c index 188aa49d0c..456bfcff23 100644 --- a/src/mem/mem.c +++ b/src/mem/mem.c @@ -99,6 +99,7 @@ int shadowbios_write; int readlnum = 0; int writelnum = 0; int cachesize = 256; +int cache; uint32_t get_phys_virt; uint32_t get_phys_phys; @@ -567,6 +568,13 @@ mem_addr_translate(uint32_t addr, uint32_t chunk_start, uint32_t len) return chunk_start + (addr & mask); } +int memspeed[11]={256,320,384,512,640,768,1024,1152,1280,1536,1920}; +int memwaitstate; + +static int cachelookup[256]; +static uint8_t *cachelookup2; +static int cachelnext; + void addreadlookup(uint32_t virt, uint32_t phys) { @@ -580,6 +588,18 @@ addreadlookup(uint32_t virt, uint32_t phys) if (readlookup2[virt >> 12] != (uintptr_t) LOOKUP_INV) return; + if (cache && !cachelookup2[phys >> 12]) { + readlnum++; + cycles-= memwaitstate; + if (cachelookup[cachelnext] != 0xffffffff) + cachelookup2[cachelookup[cachelnext]] = 0; + cachelookup[cachelnext] = phys >> 12; + cachelookup2[phys >> 12] = 1; + cachelnext = (cachelnext + 1) & (cachesize - 1); + } + + + if (readlookup[readlnext] != (int) 0xffffffff) { if ((readlookup[readlnext] == ((es + DI) >> 12)) || (readlookup[readlnext] == ((es + EDI) >> 12))) uncached = 1; @@ -617,6 +637,18 @@ addwritelookup(uint32_t virt, uint32_t phys) if (page_lookup[virt >> 12]) return; + if (cache && !cachelookup2[phys >> 12]) { + writelnum++; + cycles -= memwaitstate; + if (cachelookup[cachelnext] != 0xffffffff) + cachelookup2[cachelookup[cachelnext]] = 0; + cachelookup[cachelnext] = phys >> 12; + cachelookup2[phys >> 12] = 1; + cachelnext = (cachelnext + 1) & (cachesize - 1); + } + + cycles -= memwaitstate; + if (writelookup[writelnext] != -1) { page_lookup[writelookup[writelnext]] = NULL; writelookup2[writelookup[writelnext]] = LOOKUP_INV; @@ -2206,6 +2238,23 @@ mem_write_remappedl2(uint32_t addr, uint32_t val, UNUSED(void *priv)) *(uint32_t *) &ram[addr] = val; } +void mem_updatecache(void) +{ + if (!cache) { + memwaitstate = 0; // Disable caching completely + return; + } + flushmmucache(); + if (!is386) { + memwaitstate = 0; + return; + } + if (cpu_16bitbus) + memwaitstate = 512 * cpu_multi; + else + memwaitstate = 150 * cpu_multi; +} + void mem_invalidate_range(uint32_t start_addr, uint32_t end_addr) { @@ -2903,6 +2952,7 @@ mem_init(void) readlookupp = malloc((1 << 20) * sizeof(uint8_t)); writelookup2 = malloc((1 << 20) * sizeof(uintptr_t)); writelookupp = malloc((1 << 20) * sizeof(uint8_t)); + cachelookup2 = malloc((1 << 20)); } static void diff --git a/src/qt/qt_settingsmachine.cpp b/src/qt/qt_settingsmachine.cpp index aff55203e8..060fb2a7ca 100644 --- a/src/qt/qt_settingsmachine.cpp +++ b/src/qt/qt_settingsmachine.cpp @@ -130,6 +130,7 @@ SettingsMachine::save() fpu_type = ui->comboBoxFPU->currentData().toInt(); cpu_use_dynarec = ui->checkBoxDynamicRecompiler->isChecked() ? 1 : 0; fpu_softfloat = ui->checkBoxFPUSoftfloat->isChecked() ? 1 : 0; + cache = (ui->checkBoxCache->isChecked()) ? 1 : 0; int64_t temp_mem_size; if (machine_get_ram_granularity(machine) < 1024) @@ -331,6 +332,8 @@ SettingsMachine::on_comboBoxFPU_currentIndexChanged(int index) ui->checkBoxFPUSoftfloat->setEnabled(machine_has_flags(machineId, MACHINE_SOFTFLOAT_ONLY) ? false : true); } + + ui->checkBoxCache->setChecked(cache); } } diff --git a/src/qt/qt_settingsmachine.ui b/src/qt/qt_settingsmachine.ui index 0c9c2708eb..77646db640 100644 --- a/src/qt/qt_settingsmachine.ui +++ b/src/qt/qt_settingsmachine.ui @@ -254,65 +254,61 @@ - - - - - - 2 - 2 - - - - Dynamic Recompiler - - - - - - - - - - - - 3 - 3 - - - - Softfloat FPU - - - - - - - - - - - - - - High performance impact - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 1 + 1 + + + + Dynamic Recompiler + + + + + + + + 1 + 1 + + + + SoftFloat FPU + + + + + + + + 1 + 1 + + + + Cache + + + + + diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc new file mode 100644 index 0000000000..a74a09a3c7 --- /dev/null +++ b/src/win/languages/cs-CZ.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Czech (Czech Republic) resources + +#ifdef _WIN32 +LANGUAGE LANG_CZECH, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Akce" + BEGIN + MENUITEM "&Klávesnice vyžaduje záběr", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Pravý Ctrl je levý Alt", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Resetovat", 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&ozastavit", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "&Ukončit", IDM_ACTION_EXIT + END + POPUP "&Zobrazení" + BEGIN + MENUITEM "&Schovat stavový řádek", IDM_VID_HIDE_STATUS_BAR + MENUITEM "Schovat panel &nástrojů", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Měnitelná velikost okna", IDM_VID_RESIZE + MENUITEM "&Pamatovat velikost a pozici", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Renderer" + BEGIN + MENUITEM "&SDL (Software)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "&Zadat velikost...", IDM_VID_SPECIFY_DIM + MENUITEM "&Dodržovat poměr stran 4:3", IDM_VID_FORCE43 + POPUP "&Násobek zvětšení 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Metoda &filtrování" + BEGIN + MENUITEM "&Nejbližší", IDM_VID_FILTER_NEAREST + MENUITEM "&Lineární", IDM_VID_FILTER_LINEAR + END + MENUITEM "Š&kálování HiDPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Celá obrazovka\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "Režím roztá&hnutí při celé obrazovce" + BEGIN + MENUITEM "&Roztáhnout", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Zachovat poměr stran", IDM_VID_FS_KEEPRATIO + MENUITEM "&Celočíselné škálování", IDM_VID_FS_INT + END + POPUP "Nastavení pro E&GA a (S)VGA" + BEGIN + MENUITEM "&Převrátit barvy", IDM_VID_INVERT + POPUP "&Typ VGA monitoru" + BEGIN + MENUITEM "RGB &barevný", IDM_VID_GRAY_RGB + MENUITEM "&Odstíny šedi", IDM_VID_GRAY_MONO + MENUITEM "&Jantarová obrazovka", IDM_VID_GRAY_AMBER + MENUITEM "&Zelená obrazovka", IDM_VID_GRAY_GREEN + MENUITEM "&Bílá obrazovka", IDM_VID_GRAY_WHITE + END + POPUP "Převod na &odstíny šedi" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Průměr", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "Přesah obrazu CGA/PCjr/Tandy/E&GA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "&Upravit kontrast černobílé obrazovky", IDM_VID_CGACON + END + MENUITEM "&Média", IDM_MEDIA + POPUP "&Nástroje" + BEGIN + MENUITEM "&Nastavení...", IDM_CONFIG + MENUITEM "&Aktualizovat ikony stavového řádku", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Pořídit &screenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Předvolby...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Povolit integraci s &Discordem", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Zesílení zvuku", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Začít trace\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Zastavit trace\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "Ná&pověda" + BEGIN + MENUITEM "&Dokumentace", IDM_DOCS + MENUITEM "&O programu 86Box", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nový obraz...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Existující obraz...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Existující obraz (&ochrana proti zápisu)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Nahrávat", IDM_CASSETTE_RECORD + MENUITEM "&Přehrát", IDM_CASSETTE_PLAY + MENUITEM "Přetočit na &začátek", IDM_CASSETTE_REWIND + MENUITEM "Přetočit na &konec", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "&Vyjmout", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Obraz...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "&Vyjmout", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nový obraz...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Existující obraz...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Existující obraz (&ochrana proti zápisu)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&xportovat do 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "&Vyjmout", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Ztišit", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&Vyjmout", IDM_CDROM_EMPTY + MENUITEM "&Načíst znova předchozí obraz", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Obraz...", IDM_CDROM_IMAGE + MENUITEM "&Složka...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nový obraz...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Existující obraz...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Existující obraz (&ochrana proti zápisu)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Vyjmout", IDM_ZIP_EJECT + MENUITEM "&Načíst znova předchozí obraz", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nový obraz...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Existující obraz...", IDM_MO_IMAGE_EXISTING + MENUITEM "Existující obraz (&ochrana proti zápisu)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Vyjmout", IDM_MO_EJECT + MENUITEM "&Načíst znova předchozí obraz", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "&Cílová snímková frekvence" + BEGIN + MENUITEM "&Synchronizovat s obrazem", 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 "&Zvolit shader...", IDM_VID_GL_SHADER + MENUITEM "&Odebrat shader", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Předvolby" +#define STR_SND_GAIN "Zesílení zvuku" +#define STR_NEW_FLOPPY "Nový obraz" +#define STR_CONFIG "Nastavení" +#define STR_SPECIFY_DIM "Zadat rozměry hlavního okna" + +#define STR_OK "OK" +#define STR_CANCEL "Storno" +#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í" + +#define STR_FILE_NAME "Název souboru:" +#define STR_DISK_SIZE "Velikost disku:" +#define STR_RPM_MODE "Režím ot./m:" +#define STR_PROGRESS "Průběh:" + +#define STR_WIDTH "Šířka:" +#define STR_HEIGHT "Výška:" +#define STR_LOCK_TO_SIZE "Uzamknout na tyto rozměry" + +#define STR_MACHINE_TYPE "Typ počítače:" +#define STR_MACHINE "Počítač:" +#define STR_CONFIGURE "Nastavit" +#define STR_CPU_TYPE "Procesor:" +#define STR_CPU_SPEED "Rychlost:" +#define STR_FPU "Koprocesor:" +#define STR_WAIT_STATES "Čekací stavy:" +#define STR_MB "MB" +#define STR_MEMORY "Pamět:" +#define STR_TIME_SYNC "Synchronizace času" +#define STR_DISABLED "Vypnuta" +#define STR_ENABLED_LOCAL "Zapnuta (místní čas)" +#define STR_ENABLED_UTC "Zapnuta (UTC)" +#define STR_DYNAREC "Dynamický překladač" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Keš" + +#define STR_VIDEO "Grafika:" +#define STR_VIDEO_2 "Grafika 2:" +#define STR_VOODOO "Použít grafický akcelerátor Voodoo" +#define STR_IBM8514 "Grafika IBM 8514/A" +#define STR_XGA "Grafika XGA" + +#define STR_MOUSE "Myš:" +#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_SOUND1 "Zvuková karta 1:" +#define STR_SOUND2 "Zvuková karta 2:" +#define STR_SOUND3 "Zvuková karta 3:" +#define STR_SOUND4 "Zvuková karta 4:" +#define STR_MIDI_OUT "MIDI výstup:" +#define STR_MIDI_IN "MIDI vstup:" +#define STR_MPU401 "Samostatný MPU-401" +#define STR_FLOAT "Použít zvuk FLOAT32" +#define STR_FM_DRIVER "FM synth driver" +#define STR_FM_DRV_NUKED "Nuked (přesnější)" +#define STR_FM_DRV_YMFM "YMFM (rychlejší)" + +#define STR_NET_TYPE "Druh sítě:" +#define STR_PCAP "PCap zařízení:" +#define STR_NET "Síťový adaptér:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Zařízení na COM1:" +#define STR_COM2 "Zařízení na COM2:" +#define STR_COM3 "Zařízení na COM3:" +#define STR_COM4 "Zařízení na COM4:" +#define STR_LPT1 "Zařízení na LPT1:" +#define STR_LPT2 "Zařízení na LPT2:" +#define STR_LPT3 "Zařízení na LPT3:" +#define STR_LPT4 "Zařízení na LPT4:" +#define STR_SERIAL1 "Povolit port COM1" +#define STR_SERIAL2 "Povolit port COM2" +#define STR_SERIAL3 "Povolit port COM3" +#define STR_SERIAL4 "Povolit port COM4" +#define STR_PARALLEL1 "Povolit port LPT1" +#define STR_PARALLEL2 "Povolit port LPT2" +#define STR_PARALLEL3 "Povolit port LPT3" +#define STR_PARALLEL4 "Povolit port LPT4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#define STR_HDC "Řadič disku:" +#define STR_FDC "Disketový řadič:" +#define STR_IDE_TER "Třetí řadič IDE" +#define STR_IDE_QUA "Čtvrtý řadič IDE" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Řadič 1:" +#define STR_SCSI_2 "Řadič 2:" +#define STR_SCSI_3 "Řadič 3:" +#define STR_SCSI_4 "Řadič 4:" +#define STR_CASSETTE "Kazeta" + +#define STR_HDD "Pevné disky:" +#define STR_NEW "&Nový..." +#define STR_EXISTING "&Existující..." +#define STR_REMOVE "&Odebrat" +#define STR_BUS "Sběrnice:" +#define STR_CHANNEL "Kanál:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Zadat..." +#define STR_SECTORS "Sektory:" +#define STR_HEADS "Hlavy:" +#define STR_CYLS "Cylindry:" +#define STR_SIZE_MB "Velikost (MB):" +#define STR_TYPE "Typ:" +#define STR_IMG_FORMAT "Formát obrazu:" +#define STR_BLOCK_SIZE "Velikost bloků:" + +#define STR_FLOPPY_DRIVES "Disketové mechaniky:" +#define STR_TURBO "Turbo časování" +#define STR_CHECKBPB "Kontrola BPB" +#define STR_CDROM_DRIVES "Mechaniky CD-ROM:" +#define STR_CD_SPEED "Rychlost:" + +#define STR_MO_DRIVES "Magnetooptické mechaniky:" +#define STR_ZIP_DRIVES "Mechaniky ZIP:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA hodiny:" +#define STR_ISAMEM "ISA rozšíření paměti" +#define STR_ISAMEM_1 "Karta 1:" +#define STR_ISAMEM_2 "Karta 2:" +#define STR_ISAMEM_3 "Karta 3:" +#define STR_ISAMEM_4 "Karta 4:" +#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" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Chyba" + IDS_2050 "Kritická chyba" + IDS_2051 " - PAUSED" + IDS_2052 "Stiskněte Ctrl+Alt+PgDn pro návrat z režimu celé obrazovky." + IDS_2053 "Rychlost" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "Obrazy ZIP disků (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box nenalezl žádné použitelné image pamětí ROM.\n\nStáhněte sadu obrazů ROM a extrahujte ji do složky ""roms""." + IDS_2057 "(prázdné)" + IDS_2058 "Obrazy ZIP disků (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0All files (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Zap." + IDS_2061 "Vyp." + IDS_2062 "Všechny obrazy disků (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Základní sektorové obrazy (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Obrazy povrchu (*.86F)\0*.86F\0" + IDS_2063 "Počítač ""%hs"" není dostupný, jelikož chybí obraz jeho paměti ROM ve složce ""roms/machines"". Konfigurace se přepne na jiný dostupný počítač." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Video adaptér ""%hs"" není dostupný, jelikož chybí obraz jeho paměti ROM ve složce ""roms/video"". Konfigurace se přepne na jiný dostupný adaptér." + IDS_2065 "Počítač" + IDS_2066 "Obraz" + IDS_2067 "Vstupní zařízení" + IDS_2068 "Zvuk" + IDS_2069 "Síť" + IDS_2070 "COM a LPT porty" + IDS_2071 "Řadiče úložiště" + IDS_2072 "Pevné disky" + IDS_2073 "Disketové a CD-ROM mechaniky" + IDS_2074 "Další vyměnitelná zařízení" + IDS_2075 "Jiné příslušenství" + IDS_2076 "Obrazy povrchu (*.86F)\0*.86F\0" + IDS_2077 "Klikněte pro zabraní myši" + IDS_2078 "Stiskněte F8+F12 pro uvolnění myši" + IDS_2079 "Stiskněte F8+F12 nebo prostřední tlačítko pro uvolnění myši" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Sběrnice" + IDS_2082 "Soubor" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Kontrola BPB" + IDS_2089 "KB" + IDS_2090 "Nastala chyba při inicializaci video rendereru." + IDS_2091 "Výchozí" + IDS_2092 "%i čekací stav(y)" + IDS_2093 "Typ" + IDS_2094 "Nastala chyba při inicializaci knihovny PCap" + IDS_2095 "Nebyla nalezena žádná PCap zařízení" + IDS_2096 "Neplatné PCap zařízení" + IDS_2097 "Standardní 2tlačítkový joystick" + IDS_2098 "Standardní 4tlačítkový joystick" + IDS_2099 "Standardní 6tlačítkový joystick" + IDS_2100 "Standardní 8tlačítkový joystick" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Žadné" + IDS_2105 "Nebylo možné nahrát klávesnicové zkratky." + IDS_2106 "Nebylo možné zaregistrovat raw input." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Disketová mechanika %i (%s): %ls" + IDS_2110 "Všechny obrazy (*.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\0Rozšířené sektorové obrazy (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Základní sektorové obrazy (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Obrazy magnetického toku (*.FDI)\0*.FDI\0Obrazy povrchu (*.86F;*.MFM)\0*.86F;*.MFM\0Všechny soubory (*.*)\0*.*\0" + IDS_2113 "Opravdu chcete resetovat emulovaný počítač?" + IDS_2114 "Opravdu chcete ukončit 86Box?" + IDS_2115 "Nastala chyba při inicializaci knihovny Ghostscript" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "Obrazy MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Všechny soubory (*.*)\0*.*\0" + IDS_2118 "Vítejte v programu 86Box!" + IDS_2119 "Vestavěný řadič" + IDS_2120 "Ukončit" + IDS_2121 "Nebyly nalezeny žádné obrazy ROM" + IDS_2122 "Chcete uložit nastavení?" + IDS_2123 "Pokračováním se resetuje emulovaný počítač." + IDS_2124 "Uložit" + IDS_2125 "O programu 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Emulátor starých počítačů\n\nAutoři: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, 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_2128 "OK" + IDS_2129 "Hardware není dostupný" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Ujistěte se, že je nainstalován " LIB_NAME_PCAP " a používáte síťové připojení s ním kompatibilní." + IDS_2131 "Neplatná konfigurace" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " je potřeba pro automatický převod PostScript dokumentů do PDF.\n\nJakékoliv dokumenty vytisknuté přes obecnou PostScriptovou tiskárnu budou uloženy jako PostScript (.ps) soubory." + IDS_2135 "Vstup do režimu celé obrazovky" + IDS_2136 "Nezobrazovat dále tuto zprávu" + IDS_2137 "Neukončovat" + IDS_2138 "Resetovat" + IDS_2139 "Neresetovat" + IDS_2140 "Obraz magnetooptického disku (*.IM?;*.MDI)\0*.IM?;*.MDI\0Všechny soubory (*.*)\0*.*\0" + IDS_2141 "Obraz CD-ROM disku (*.ISO;*.CUE)\0*.ISO;*.CUE\0Všechny soubory (*.*)\0*.*\0" + IDS_2142 "Konfigurace zařízení %hs" + IDS_2143 "Monitor je v režimu spánku" + IDS_2144 "Shadery OpenGL (*.GLSL)\0*.GLSL\0All files (*.*)\0*.*\0" + IDS_2145 "Možnosti OpenGL" + IDS_2146 "Pokoušíte se spustit nepodporovanou konfiguraci" + IDS_2147 "Pro tuto konfiguraci bylo vypnuto filtrování procesorů podle zvoleného počítače.\n\nToto umožňuje zvolit procesor, který by jinak se zvoleným počítačem nebyl kompatibilní. Můžou však nastat potíže s BIOSem nebo jiným softwarem.\n\nPovolení tohoto nastavení není oficiálně podporováno a jakákoliv hlášení o chybách mohou být uzavřeny jako neplatné." + IDS_2148 "Pokračovat" + IDS_2149 "Kazeta: %s" + IDS_2150 "Kazetové nahrávky (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Všechny soubory (*.*)\0*.*\0" + IDS_2151 "Cartridge %i: %ls" + IDS_2152 "Obrazy cartridge (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Všechny soubory (*.*)\0*.*\0" + IDS_2153 "Error initializing renderer" + IDS_2154 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." + IDS_2155 "Obnovit" + IDS_2156 "Pozastavit" + IDS_2157 "Stisknout Ctrl+Alt+Delete" + IDS_2158 "Stisknout Ctrl+Alt+Esc" + IDS_2159 "Resetovat" + IDS_2160 "Vypnout skrze rozhraní ACPI" + IDS_2161 "Nastavení" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Pevný disk (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "CD-ROM mechaniky pro rozhraní MFM/RLL nebo ESDI nikdy neexistovaly" + IDS_4100 "Vlastní..." + IDS_4101 "Vlastní (velký)..." + IDS_4102 "Přidat nový pevný disk" + IDS_4103 "Přidat existující pevný disk" + IDS_4104 "Obraz disku formátu HDI nemůžou být větší než 4 GB." + IDS_4105 "Obraz disku nemůžou být větší než 127 GB." + IDS_4106 "Obrazy pevného disku (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Všechny soubory (*.*)\0*.*\0" + IDS_4107 "Nebylo možné přečíst soubor" + IDS_4108 "Nebylo možné zapisovat do souboru" + IDS_4109 "Obraz disku ve formátu HDI nebo HDX s velikostí sektoru jinou než 512 bajtů nejsou podporovány." + IDS_4110 "USB zatím není podporováno." + IDS_4111 "Soubor obrazu disku již existuje" + IDS_4112 "Zadejte platný název souboru." + IDS_4113 "Obraz disku byl vytvořen" + IDS_4114 "Ujistěte se, že soubor existuje a lze jej přečíst." + IDS_4115 "Ujistěte se, že se do složky, kde se má soubor uložit, dá zapisovat." + IDS_4116 "Obraz disku je příliš velký" + IDS_4117 "Nezapomeňte nově vytvořený disk rozdělit a naformátovat." + IDS_4118 "Zvolený soubor bude přepsán. Opravdu jej chcete použít?" + IDS_4119 "Nepodporovaný obraz disku" + IDS_4120 "Přepsat" + IDS_4121 "Nepřepisovat" + IDS_4122 "Surový obraz (.img)" + IDS_4123 "HDI obraz (.hdi)" + IDS_4124 "HDX obraz (.hdx)" + IDS_4125 "VHD s pevnou velikostí (.vhd)" + IDS_4126 "VHD s dynamickou velikostí (.vhd)" + IDS_4127 "Rozdílový VHD (.vhd)" + IDS_4128 "Velké bloky (2 MB)" + IDS_4129 "Malé bloky (512 KB)" + IDS_4130 "Soubory VHD (*.VHD)\0*.VHD\0Všechny soubory (*.*)\0*.*\0" + IDS_4131 "Vyberte nadřazený virtuální disk" + IDS_4132 "To může znamenat, že se obsahy nadřazeného disku změnily po vytvoření rozdílového disku.\n\nTato chyba také může nastat, pokud byl obraz disku kopírován nebo přesunut, nebo kvůli chybě v programu, který jej vytvořil.\n\nChcete časová razítka opravit?" + IDS_4133 "Časová razítka nadřazeného a podřazeného disku nesouhlasí" + IDS_4134 "Nebylo možné opravit časové razítko 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 "Vypnuto" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Vypnuto" + 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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + IDS_6144 "Dokonalé otáčky za minutu" + IDS_6145 "1% pod dokonalými ot./m" + IDS_6146 "1.5% pod dokonalými ot./m" + IDS_6147 "2% pod dokonalými ot./m" + + IDS_7168 "(Výchozí nastavení systému)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Czech (Czech Republic) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc new file mode 100644 index 0000000000..5510b56438 --- /dev/null +++ b/src/win/languages/de-DE.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// German (de-DE) resources + +#ifdef _WIN32 +LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Aktionen" + BEGIN + MENUITEM "&Tastatur benötigt das Einfangen des Mauszeigers", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Die rechte Strg-Taste ist die Linke Alt-Taste", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Hard-Reset...", IDM_ACTION_HRESET + MENUITEM "&Strg+Alt+Entf\tStrg+F12", IDM_ACTION_RESET_CAD + MENUITEM SEPARATOR + MENUITEM "Strg+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC + MENUITEM SEPARATOR + MENUITEM "&Pause", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "Be&enden...", IDM_ACTION_EXIT + END + POPUP "&Ansicht" + BEGIN + MENUITEM "&Statusleiste ausblenden", IDM_VID_HIDE_STATUS_BAR + MENUITEM "&Werkzeugleiste ausblenden", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Größenverstellbares Fenster", IDM_VID_RESIZE + MENUITEM "&Größe && Position merken", 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 + MENUITEM "Open&GL (3.0-Kern)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Fenstergröße einstellen...", IDM_VID_SPECIFY_DIM + MENUITEM "&4:3-Seitenverhältnis erzwingen", IDM_VID_FORCE43 + POPUP "&Fensterskalierungsfaktor" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Filteringmethode" + BEGIN + MENUITEM "&Nearest", IDM_VID_FILTER_NEAREST + MENUITEM "&Linear", IDM_VID_FILTER_LINEAR + END + MENUITEM "Hi&DPI-Skalierung", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Vollbild\tStrg+Alt+Bild auf", IDM_VID_FULLSCREEN + POPUP "&Stretching-Modus im Vollbildmodus" + BEGIN + MENUITEM "&Vollbild-Stretching", IDM_VID_FS_FULL + 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 + POPUP "E&GA/(S)VGA-Einstellungen" + BEGIN + MENUITEM "&Invertierte VGA-Anzeige", IDM_VID_INVERT + POPUP "&VGA-Bildschirmtyp" + BEGIN + MENUITEM "&RGB-Farbe", IDM_VID_GRAY_RGB + MENUITEM "&RGB-Graustufen", IDM_VID_GRAY_MONO + MENUITEM "&Bernstein-Monitor", IDM_VID_GRAY_AMBER + MENUITEM "&Grüner Monitor", IDM_VID_GRAY_GREEN + MENUITEM "&Weißer Monitor", IDM_VID_GRAY_WHITE + END + POPUP "Methode zur &Graustufenkonversion" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Durchschnittsmethode", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "Overscan für CGA/PCjr/Tandy/E&GA/(S)VGA-Displays", IDM_VID_OVERSCAN + MENUITEM "Kontrast für &monochrome Displays ändern", IDM_VID_CGACON + END + MENUITEM "&Medien", IDM_MEDIA + POPUP "&Werkzeuge" + BEGIN + MENUITEM "&Optionen...", IDM_CONFIG + MENUITEM "&Statusleistenicons aktualisieren", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "S&creenshot aufnehmen\tStrg+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Einstellungen...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "&Discord-Integration aktivieren", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Klangverstärkung...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Tracing starten\tStrg+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Tracing beenden\tStrg+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Hilfe" + BEGIN + MENUITEM "&Dokumentation...", IDM_DOCS + MENUITEM "&Über 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Neues Image...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Bestehendes Image...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Bestehendes Image (&schreibgeschützt)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Aufnehmen", IDM_CASSETTE_RECORD + MENUITEM "&Abspielen", IDM_CASSETTE_PLAY + MENUITEM "&An den Anfang zurückspulen", IDM_CASSETTE_REWIND + MENUITEM "&An das Ende vorspulen", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "A&uswerfen", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Cartridgeimage...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "A&uswerfen", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Neues Image...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Bestehendes Image...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Bestehendes Image (&schreibgeschützt)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&In das 86F-Format e&xportieren...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "&Auswerfen", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Stummschalten", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "L&eer", IDM_CDROM_EMPTY + MENUITEM "&Voriges Image neu laden", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Image...", IDM_CDROM_IMAGE + MENUITEM "&Verzeichnis...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Neues Image...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Bestehendes Image...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Bestehendes Image (&schreibgeschützt)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "A&uswerfen", IDM_ZIP_EJECT + MENUITEM "&Voriges Image neu laden", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Neues Image...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Bestehendes Image...", IDM_MO_IMAGE_EXISTING + MENUITEM "Bestehendes Image (&schreibgeschützt)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Auswerfen", IDM_MO_EJECT + MENUITEM "&Bestehendes Image erneut laden", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Ziel&framerate" + BEGIN + MENUITEM "&Mit Videoausgabe synchronisieren", 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 "&Shader auswählen...", IDM_VID_GL_SHADER + MENUITEM "&Shader entfernen", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Einstellungen" +#define STR_SND_GAIN "Klangverstärkung" +#define STR_NEW_FLOPPY "Neues Image" +#define STR_CONFIG "Optionen" +#define STR_SPECIFY_DIM "Fenstergröße einstellen" + +#define STR_OK "OK" +#define STR_CANCEL "Abbrechen" +#define STR_GLOBAL "Einstellungen als &globalen Standard speichern" +#define STR_DEFAULT "&Standard" +#define STR_LANGUAGE "Sprache:" +#define STR_ICONSET "Icon-Satz:" + +#define STR_GAIN "Verstärkung" + +#define STR_FILE_NAME "Dateiname:" +#define STR_DISK_SIZE "Plattengröße:" +#define STR_RPM_MODE "Drehzahlmodus:" +#define STR_PROGRESS "Fortschritt:" + +#define STR_WIDTH "Breite:" +#define STR_HEIGHT "Höhe:" +#define STR_LOCK_TO_SIZE "Feste Größe" + +#define STR_MACHINE_TYPE "Systemtyp:" +#define STR_MACHINE "System:" +#define STR_CONFIGURE "Einstellen" +#define STR_CPU_TYPE "CPU-Typ:" +#define STR_CPU_SPEED "Takt:" +#define STR_FPU "FPU-Einheit:" +#define STR_WAIT_STATES "Wartezustände:" +#define STR_MB "MB" +#define STR_MEMORY "Hauptspeicher:" +#define STR_TIME_SYNC "Zeitsynchronisierung" +#define STR_DISABLED "Deaktiviert" +#define STR_ENABLED_LOCAL "Aktiviert (Lokale Uhrzeit)" +#define STR_ENABLED_UTC "Aktiviert (UTC)" +#define STR_DYNAREC "Dynamischer Recompiler" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Cachegeheugen" + +#define STR_VIDEO "Videokarte:" +#define STR_VIDEO_2 "Videokarte 2:" +#define STR_VOODOO "Voodoo-Grafik" +#define STR_IBM8514 "IBM 8514/A-Grafik" +#define STR_XGA "XGA-Grafik" + +#define STR_MOUSE "Maus:" +#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_SOUND1 "Soundkarte 1:" +#define STR_SOUND2 "Soundkarte 2:" +#define STR_SOUND3 "Soundkarte 3:" +#define STR_SOUND4 "Soundkarte 4:" +#define STR_MIDI_OUT "MIDI Out-Gerät:" +#define STR_MIDI_IN "MIDI In-Gerät:" +#define STR_MPU401 "Standalone-MPU-401-Gerät" +#define STR_FLOAT "FLOAT32-Wiedergabe benutzen" +#define STR_FM_DRIVER "FM-Synth-Treiber" +#define STR_FM_DRV_NUKED "Nuked (genauer)" +#define STR_FM_DRV_YMFM "YMFM (schneller)" + +#define STR_NET_TYPE "Netzwerktyp:" +#define STR_PCAP "PCap-Gerät:" +#define STR_NET "Netzwerkadapter:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "COM1-Gerät:" +#define STR_COM2 "COM2-Gerät:" +#define STR_COM3 "COM3-Gerät:" +#define STR_COM4 "COM4-Gerät:" +#define STR_LPT1 "LPT1-Gerät:" +#define STR_LPT2 "LPT2-Gerät:" +#define STR_LPT3 "LPT3-Gerät:" +#define STR_LPT4 "LPT4-Gerät:" +#define STR_SERIAL1 "Serielle Schnittstelle 1" +#define STR_SERIAL2 "Serielle Schnittstelle 2" +#define STR_SERIAL3 "Serielle Schnittstelle 3" +#define STR_SERIAL4 "Serielle Schnittstelle 4" +#define STR_PARALLEL1 "Parallelport 1" +#define STR_PARALLEL2 "Parallelport 2" +#define STR_PARALLEL3 "Parallelport 3" +#define STR_PARALLEL4 "Parallelport 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#define STR_HDC "HDD-Controller:" +#define STR_FDC "FD-Controller:" +#define STR_IDE_TER "Tertiärer IDE-Controller" +#define STR_IDE_QUA "Quartärer 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 "Kassette" + +#define STR_HDD "Festplatten:" +#define STR_NEW "&Neu..." +#define STR_EXISTING "&Vorhanden..." +#define STR_REMOVE "&Entfernen" +#define STR_BUS "Bus:" +#define STR_CHANNEL "Kanal:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Festlegen..." +#define STR_SECTORS "Sektoren:" +#define STR_HEADS "Köpfe:" +#define STR_CYLS "Zylinder:" +#define STR_SIZE_MB "Größe (MB):" +#define STR_TYPE "Typ:" +#define STR_IMG_FORMAT "Imageformat:" +#define STR_BLOCK_SIZE "Blockgröße:" + +#define STR_FLOPPY_DRIVES "Diskettenlaufwerke:" +#define STR_TURBO "Turbo-Timings" +#define STR_CHECKBPB "BPB überprüfen" +#define STR_CDROM_DRIVES "CD-ROM-Laufwerke:" +#define STR_CD_SPEED "Geschwindigkeit:" + +#define STR_MO_DRIVES "MO-Laufwerke:" +#define STR_ZIP_DRIVES "ZIP-Laufwerke:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA-Echtzeituhr:" +#define STR_ISAMEM "ISA-Speichererweiterung:" +#define STR_ISAMEM_1 "Steckkarte 1:" +#define STR_ISAMEM_2 "Steckkarte 2:" +#define STR_ISAMEM_3 "Steckkarte 3:" +#define STR_ISAMEM_4 "Steckkarte 4:" +#define STR_BUGGER "ISABugger-Gerät" +#define STR_POSTCARD "POST-Code-Karte" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Fehler" + IDS_2050 "Fataler Fehler" + IDS_2051 " - PAUSED" + IDS_2052 "Bitte Strg+Alt+Bild ab zur Rückkehr in den Fenstermodus drücken." + IDS_2053 "Geschwindigkeit" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP-Images (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box konnte keine nutzbaren ROM-Dateien finden.\n\nBitte besuchen Sie download, laden ein ROM-Set herunter und extrahieren dies in das ""roms""-Verzeichnis." + IDS_2057 "(leer)" + IDS_2058 "ZIP-Images (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Alle Dateien (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "An" + IDS_2061 "Aus" + IDS_2062 "Alle Images (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Basissektorimages (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Oberflächenimages (*.86F)\0*.86F\0" + IDS_2063 "Das System ""%hs"" ist aufgrund von fehlenden ROMs im Verzeichnis roms/machines nicht verfügbar. Es wird auf ein verfügbares System gewechselt." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Die Videokarte ""%hs"" ist aufgrund von fehlenden ROMs im Verzeichnis roms/video nicht verfügbar. Es wird auf eine verfügbare Videokarte gewechselt." + IDS_2065 "System" + IDS_2066 "Anzeige" + IDS_2067 "Eingabegeräte" + IDS_2068 "Multimedia" + IDS_2069 "Netzwerk" + IDS_2070 "Anschlüsse (COM & LPT)" + IDS_2071 "Speichercontroller" + IDS_2072 "Festplatten" + IDS_2073 "Disketten- & CD-ROM-Laufwerke" + IDS_2074 "Andere Wechsellaufwerke" + IDS_2075 "Andere Peripheriegeräte" + IDS_2076 "Oberflächenimages (*.86F)\0*.86F\0" + IDS_2077 "Zum Einfangen des Mauszeigers bitte klicken" + IDS_2078 "Bitte F8+F12 zur Mausfreigabe drücken" + IDS_2079 "Bitte F8+F12 oder die mittlere Maustaste zur Mausfreigabe drücken" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Bus" + IDS_2082 "Datei" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "BPB prüfen" + IDS_2089 "KB" + IDS_2090 "Der Videorenderer konnte nicht initialisiert werden." + IDS_2091 "Standard" + IDS_2092 "%i Wartezustände" + IDS_2093 "Typ" + IDS_2094 "PCap konnte nicht eingerichtet werden" + IDS_2095 "Keine PCap-Geräte gefunden" + IDS_2096 "Ungültiges PCap-Gerät" + IDS_2097 "Standard 2-Tasten-Joystick(s)" + IDS_2098 "Standard 4-Tasten-Joystick" + IDS_2099 "Standard 6-Tasten-Joystick" + IDS_2100 "Standard 8-Tasten-Joystick" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Ohne" + IDS_2105 "Tastaturbeschleuniger konnten nicht geladen werden." + IDS_2106 "Roheingaben konnten nicht registriert werden." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Diskette %i (%s): %ls" + IDS_2110 "Alle 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\0Fortgeschrittene Sektorimages (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Basissektorimages (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Fluximages (*.FDI)\0*.FDI\0Oberflächenimages (*.86F;*.MFM)\0*.86F;*.MFM\0Alle Dateien (*.*)\0*.*\0" + IDS_2113 "Sind Sie sich sicher, dass Sie einen Hard-Reset für das emulierte System durchführen wollen?" + IDS_2114 "Sind Sie sich sicher, dass Sie 86Box beenden wollen?" + IDS_2115 "Ghostscript konnte nicht initialisiert werden" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "MO-Images (*.IM?;*.MDI)\0*.IM?;*.MDI\0Alle Dateien (*.*)\0*.*\0" + IDS_2118 "Willkommen bei 86Box!" + IDS_2119 "Interner Controller" + IDS_2120 "Beenden" + IDS_2121 "Keine ROMs gefunden" + IDS_2122 "Möchten Sie die Einstellungen speichern?" + IDS_2123 "Dies wird zu einem Hard-Reset des emulierten Systems führen." + IDS_2124 "Speichern" + IDS_2125 "Über 86Box" + IDS_2126 "86Box Version " EMU_VERSION + + IDS_2127 "Ein Emulator für alte Computer\n\nAutoren: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne sowie andere.\n\nWith previous core contributions from Sarah Walker, 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_2128 "OK" + IDS_2129 "Hardware nicht verfügbar" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Bitte stellen Sie sicher, dass " LIB_NAME_PCAP " installiert ist und sie eine " LIB_NAME_PCAP "-kompatible Netzwerkverbindung nutzen." + IDS_2131 "Ungültige Konfiguration" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " wird zur automatischen Konversion von PostScript-Dateien in das PDF-Format benötigt.\n\nSämtliche an den generischen PostScript-Drucker gesendete Dateien werden als PostScript (.ps)-Dateien gesichert." + IDS_2135 "Vollbildmodus wird aktiviert" + IDS_2136 "Diese Nachricht nicht mehr anzeigen" + IDS_2137 "Nicht beenden" + IDS_2138 "Zurücksetzen" + IDS_2139 "Nicht zurücksetzen" + IDS_2140 "MO-Images (*.IM?;*.MDI)\0*.IM?;*.MDI\0Alle Dateien (*.*)\0*.*\0" + IDS_2141 "CD-ROM-Images (*.ISO;*.CUE)\0*.ISO;*.CUE\0Alle Dateien (*.*)\0*.*\0" + IDS_2142 "%hs-Gerätekonfiguration" + IDS_2143 "Monitor im Standbymodus" + IDS_2144 "OpenGL-Shader (*.GLSL)\0*.GLSL\0Alle Dateien (*.*)\0*.*\0" + IDS_2145 "OpenGL-Optionen" + IDS_2146 "Sie laden gerade eine nicht unterstützte Konfiguration" + IDS_2147 "Das Filtern der CPU-Typen basierend auf dem ausgewählten System ist für dieses System deaktiviert.\n\nDies ermöglicht es, dass man eine sonst nicht mit dem ausgewählten System inkompatible CPU auswählen kann. Allerdings kann dies zu Inkompatiblilitäten mit dem BIOS des Systems oder anderen Programmen kommen.\n\nDas Aktivieren dieser Einstellung wird nicht unterstützt und sämtliche Bugreports können als ""invalid"" geschlossen werden." + IDS_2148 "Fortfahren" + IDS_2149 "Kassette: %s" + IDS_2150 "Kassettenimages (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Alle Dateien (*.*)\0*.*\0" + IDS_2151 "Cartridge %i: %ls" + IDS_2152 "Cartridgeimages (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Alle Dateien (*.*)\0*.*\0" + IDS_2153 "Fehler bei der Rendererinitialisierung" + IDS_2154 "Der OpenGL (3.0-Kern)-Renderer konnte nicht initialisiert werden. Bitte benutzen Sie einen anderen Renderer." + IDS_2155 "Fortsetzen" + IDS_2156 "Pausieren" + IDS_2157 "Strg+Alt+Entf drücken" + IDS_2158 "Strg+Alt+Esc drücken" + IDS_2159 "Hard-Reset" + IDS_2160 "ACPI-basiertes Herunterfahren" + IDS_2161 "Optionen" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Festplatte (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLL- oder ESDI CD-ROM-Laufwerke hat es niemals gegeben" + IDS_4100 "Angepasst..." + IDS_4101 "Angepasst (Groß)..." + IDS_4102 "Neue Festplatte hinzufügen" + IDS_4103 "Bestehende Festplatte hinzufügen" + IDS_4104 "HDI-Diskimages können nicht größer als 4 GB groß sein." + IDS_4105 "Festplattenimages können nicht größer als 127 GB groß sein." + IDS_4106 "Festplattenimages (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Alle Dateien (*.*)\0*.*\0" + IDS_4107 "Die Datei konnte nicht gelesen werden" + IDS_4108 "Die Datei konnte nicht beschrieben werden" + IDS_4109 "HDI- oder HDX-Images mit einer Sektorgröße größer als 512 kB werden nicht unterstützt." + IDS_4110 "USB wird noch nicht unterstützt" + IDS_4111 "Die Festplattenimagedatei existiert bereits" + IDS_4112 "Bitte geben Sie einen gültigen Dateinamen ein." + IDS_4113 "Disk-Image wurde erstellt" + IDS_4114 "Bitte stellen Sie sicher, dass die Datei existiert und lesbar ist." + IDS_4115 "Bitte stellen Sie sicher, dass die Datei in ein Verzeichnis mit Schreibberechtigungen gespeichert wird." + IDS_4116 "Festplattenimage ist zu groß" + IDS_4117 "Bitte denken Sie an das Partitionieren und Formatieren des neu erstellten Laufwerks." + IDS_4118 "Die ausgewählte Datei wird überschrieben. Möchten Sie diese Datei nutzen?" + IDS_4119 "Nicht unterstütztes Festplattenimage" + IDS_4120 "Überschreiben" + IDS_4121 "Nicht überschreiben" + IDS_4122 "Rohdatenimages (.img)" + IDS_4123 "HDI-Images (.hdi)" + IDS_4124 "HDX-Images (.hdx)" + IDS_4125 "VHD mit fester Größe (.vhd)" + IDS_4126 "VHD mit dynamischer Größe (.vhd)" + IDS_4127 "Differenzierende VHD (.vhd)" + IDS_4128 "Große Blöcke (2 MB)" + IDS_4129 "Kleine Blöcke (512 KB)" + IDS_4130 "VHD-Dateien (*.VHD)\0*.VHD\0Alle Dateien (*.*)\0*.*\0" + IDS_4131 "Eltern-VHD-Datei bitte auswählen" + IDS_4132 "Dies bedeutet, dass das Elternimage nach der Erstellung des differenzierenden Images erzeugt wurde.\n\nDies kann auch passieren, falls die Image-Dateien verschoben oder kopiert wurden. Ebenso kann auch dies durch einen Bug im Programm, welches das Image erstellt hat, passieren.\n\nMöchten Sie die Zeitstempel korrigieren?" + IDS_4133 "Die Zeitstempel der Eltern- und der Kindesplatte stimmen nicht überein" + IDS_4134 "Der Zeitstempel der VHD konnte nicht korrigiert werden." + 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 "Deaktiviert" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Deaktiviert" + 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 Cluster)" + IDS_5898 "DMF (2048 Cluster)" + IDS_5899 "2,88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3,5-Zoll 128 MB (ISO 10090)" + IDS_5903 "3,5-Zoll 230 MB (ISO 13963)" + IDS_5904 "3,5-Zoll 540 MB (ISO 15498)" + IDS_5905 "3,5-Zoll 640 MB (ISO 15498)" + IDS_5906 "3,5-Zoll 1,3 GB (GigaMO)" + IDS_5907 "3,5-Zoll 2,3 GB (GigaMO 2)" + IDS_5908 "5,25-Zoll 600 MB" + IDS_5909 "5,25-Zoll 650 MB" + IDS_5910 "5,25-Zoll 1 GB" + IDS_5911 "5,25-Zoll 1,3 GB" + + IDS_6144 "Perfekte Drehzahl" + IDS_6145 "1% unterhalb der perfekten Drehzahl" + IDS_6146 "1,5% unterhalb der perfekten Drehzahl" + IDS_6147 "2% unterhalb der perfekten Drehzahl" + + IDS_7168 "(Systemstandard)" +END +#define IDS_LANG_ENUS IDS_7168 + +// German (de-DE) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/dialogs.rc b/src/win/languages/dialogs.rc new file mode 100644 index 0000000000..76a34ba605 --- /dev/null +++ b/src/win/languages/dialogs.rc @@ -0,0 +1,1147 @@ +#define CFG_CHECKBOX_PRI_WIDTH 94 +#define CFG_CHECKBOX_HEIGHT 10 +#define CFG_BTN_WIDTH 46 +#define CFG_BTN_HEIGHT 14 +#define CFG_PANE_LTEXT_PRI_WIDTH 85 +#define CFG_PANE_LTEXT_PRI_WIDTH_2 170 +#define CFG_PANE_LTEXT_PRI_WIDTH_3 255 +#define CFG_PANE_LTEXT_HEIGHT 10 +#define CFG_COMBO_BTN_WIDTH 212 +#define CFG_COMBO_NOBTN_WIDTH CFG_COMBO_BTN_WIDTH + CFG_BTN_WIDTH + 8 +#define CFG_COMBO_BOX_LEFT CFG_PANE_LTEXT_PRI_WIDTH + 10 +#define CFG_COMBO_BTN_LEFT CFG_COMBO_BOX_LEFT + CFG_COMBO_BTN_WIDTH + 8 +#define CFG_COMBO_HEIGHT 120 +#define CFG_LIST_WIDTH 123 +#define CFG_LIST_HEIGHT 212 +#define CFG_PANE_TOP 0 +#define CFG_PANE_LEFT CFG_LIST_WIDTH + 8 +#define CFG_PANE_WIDTH CFG_COMBO_BOX_LEFT + CFG_COMBO_NOBTN_WIDTH +#define CFG_PANE_HEIGHT 221 +#define CFG_HMARGIN 7 +#define CFG_VMARGIN 9 +#define CFG_SYSLISTVIEW32_WIDTH CFG_PANE_WIDTH - 7 + +DLG_PREFERENCES DIALOG DISCARDABLE 0, 0, 240, 118 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION STR_PREFERENCES +FONT FONT_SIZE, FONT_NAME +BEGIN + DEFPUSHBUTTON STR_OK, IDOK, + 123, 97, 50, CFG_BTN_HEIGHT + + PUSHBUTTON STR_CANCEL, IDCANCEL, + 179, 97, 50, CFG_BTN_HEIGHT + + LTEXT STR_LANGUAGE, + 2000, 13, 8, 100, 8 + COMBOBOX IDC_COMBO_LANG, + 13, 18, 213, 22, + CBS_DROPDOWNLIST | CBS_HASSTRINGS + PUSHBUTTON STR_DEFAULT, IDC_BUTTON_DEFAULT, + 162, 32, 60, CFG_BTN_HEIGHT + + LTEXT STR_ICONSET, + 2001, 13, 40, 100, 8 + COMBOBOX IDC_COMBO_ICON, + 13, 50, 213, 22, + CBS_DROPDOWNLIST | CBS_HASSTRINGS + PUSHBUTTON STR_DEFAULT, IDC_BUTTON_DEFICON, + 162, 64, 60, CFG_BTN_HEIGHT + + AUTOCHECKBOX STR_GLOBAL, IDC_CHECKBOX_GLOBAL, + 13, 82, 217, 8, + WS_DISABLED +END + +DLG_SND_GAIN DIALOG DISCARDABLE 0, 0, 113, 136 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION STR_SND_GAIN +FONT FONT_SIZE, FONT_NAME +BEGIN + DEFPUSHBUTTON STR_OK, IDOK, + 57, 7, 50, CFG_BTN_HEIGHT + + PUSHBUTTON STR_CANCEL, IDCANCEL, + 57, 24, 50, CFG_BTN_HEIGHT + + CONTROL STR_GAIN, IDC_SLIDER_GAIN, + "msctls_trackbar32", + TBS_VERT | TBS_BOTH | TBS_AUTOTICKS | WS_TABSTOP, + 15, 20, 20, 109 + CTEXT STR_GAIN,IDT_GAIN, + 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 STR_NEW_FLOPPY +FONT FONT_SIZE, FONT_NAME +BEGIN + DEFPUSHBUTTON STR_OK, IDOK, + 104, 65, 50, CFG_BTN_HEIGHT + + PUSHBUTTON STR_CANCEL, IDCANCEL, + 162, 65, 50, CFG_BTN_HEIGHT + + LTEXT STR_FILE_NAME, IDT_FLP_FILE_NAME, + 7, 6, 44, 12, + SS_CENTERIMAGE + EDITTEXT IDC_EDIT_FILE_NAME, + 53, 5, 150, 14, + ES_AUTOHSCROLL | ES_READONLY + + LTEXT STR_DISK_SIZE, IDT_FLP_DISK_SIZE, + 7, 25, 44, 12, + SS_CENTERIMAGE + COMBOBOX IDC_COMBO_DISK_SIZE, + 53, 25, 166, 14, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "...", IDC_CFILE, + 206, 5, 13, CFG_BTN_HEIGHT + + LTEXT STR_RPM_MODE, IDT_FLP_RPM_MODE, + 7, 45, 44, 12, + SS_CENTERIMAGE + COMBOBOX IDC_COMBO_RPM_MODE, + 53, 45, 166, 14, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_PROGRESS, IDT_FLP_PROGRESS, + 7, 45, 44, 12, + SS_CENTERIMAGE + CONTROL "IMGCreateProgress", IDC_PBAR_IMG_CREATE, + "msctls_progress32", + PBS_SMOOTH | WS_BORDER, + 53, 45, 166, 14 +END + +DLG_SPECIFY_DIM DIALOG DISCARDABLE 0, 0, 175, 66 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION STR_SPECIFY_DIM +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_WIDTH, IDT_WIDTH, + 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 STR_HEIGHT, IDT_HEIGHT, + 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 STR_LOCK_TO_SIZE,IDC_CHECK_LOCK_SIZE, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 7, 26, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + DEFPUSHBUTTON STR_OK,IDOK, + 30, 45, 50, CFG_BTN_HEIGHT + + PUSHBUTTON STR_CANCEL, IDCANCEL, + 99, 45, 50, CFG_BTN_HEIGHT +END + +DLG_CONFIG DIALOG DISCARDABLE 0, 0, CFG_LIST_WIDTH + CFG_PANE_WIDTH + 18, 256 +STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION STR_CONFIG +FONT FONT_SIZE, FONT_NAME +BEGIN + DEFPUSHBUTTON STR_OK, IDOK, + CFG_LIST_WIDTH + CFG_PANE_WIDTH - 108, 235, 50, CFG_BTN_HEIGHT + + PUSHBUTTON STR_CANCEL, IDCANCEL, + CFG_LIST_WIDTH + CFG_PANE_WIDTH - 48 , 235, 50, CFG_BTN_HEIGHT + + CONTROL "List2", IDC_SETTINGSCATLIST, + "SysListView32", + LVS_REPORT | LVS_NOCOLUMNHEADER | LVS_SHOWSELALWAYS | LVS_SINGLESEL | + WS_BORDER | WS_TABSTOP, + CFG_HMARGIN, CFG_VMARGIN, CFG_LIST_WIDTH, CFG_LIST_HEIGHT + + CONTROL "",-1, + "Static", SS_BLACKFRAME | SS_SUNKEN, + 1, 226, CFG_LIST_WIDTH + CFG_PANE_WIDTH + 16, 1 +END + +DLG_CFG_MACHINE DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_MACHINE_TYPE,IDT_MACHINE_TYPE, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MACHINE_TYPE, + CFG_COMBO_BOX_LEFT, 7, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_MACHINE, IDT_MACHINE, + CFG_HMARGIN, 28, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MACHINE, + CFG_COMBO_BOX_LEFT, 26, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_MACHINE, + CFG_COMBO_BTN_LEFT, 25, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_CPU_TYPE, IDT_CPU_TYPE, + CFG_HMARGIN, 47, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_CPU_TYPE, + CFG_COMBO_BOX_LEFT, 45, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_CPU_SPEED, IDT_CPU_SPEED, + 216, 47, 34, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_CPU_SPEED, + 252, 45, 109, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_FPU,IDT_FPU, + CFG_HMARGIN, 66, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_FPU, + CFG_COMBO_BOX_LEFT, 64, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_WAIT_STATES, IDT_WAIT_STATES, + CFG_HMARGIN, 85, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_WS, + CFG_COMBO_BOX_LEFT, 83, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_MEMORY, IDT_MEMORY, + CFG_HMARGIN, 104, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + EDITTEXT IDC_MEMTEXT, + CFG_COMBO_BOX_LEFT, 102, 45, 12, + ES_AUTOHSCROLL | ES_NUMBER + CONTROL "", IDC_MEMSPIN, + "msctls_updown32", + UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, + 138, 101, 12, 12 + LTEXT STR_MB, IDT_MB, + 148, 104, 12, CFG_PANE_LTEXT_HEIGHT + +#ifdef USE_DYNAREC + CONTROL STR_DYNAREC, IDC_CHECK_DYNAREC, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 120, 120, CFG_CHECKBOX_HEIGHT +#endif + + CONTROL STR_SOFTFLOAT, IDC_CHECK_SOFTFLOAT, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 135, 120, CFG_CHECKBOX_HEIGHT + + CONTROL STR_CACHE, IDC_CHECK_CACHE, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 150, 120, CFG_CHECKBOX_HEIGHT + + GROUPBOX STR_TIME_SYNC, IDC_TIME_SYNC, + CFG_HMARGIN, 165, 110, 56 + + CONTROL STR_DISABLED, IDC_RADIO_TS_DISABLED, + "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, + 14, 176, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_ENABLED_LOCAL, IDC_RADIO_TS_LOCAL, + "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, + 14, 190, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_ENABLED_UTC, IDC_RADIO_TS_UTC, + "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, + 14, 204, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT +END + +DLG_CFG_VIDEO DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_VIDEO, IDT_VIDEO, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_VIDEO, + CFG_COMBO_BOX_LEFT, 7, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_VID, + CFG_COMBO_BTN_LEFT, 6, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_VIDEO_2, IDT_VIDEO_2, + CFG_HMARGIN, 28, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_VIDEO_2, + CFG_COMBO_BOX_LEFT, 26, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_VID_2, + CFG_COMBO_BTN_LEFT, 25, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_VOODOO, IDC_CHECK_VOODOO, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 47, 199, CFG_CHECKBOX_HEIGHT + PUSHBUTTON STR_CONFIGURE, IDC_BUTTON_VOODOO, + CFG_COMBO_BTN_LEFT, 45, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_IBM8514, IDC_CHECK_IBM8514, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 66, 199, CFG_CHECKBOX_HEIGHT + + CONTROL STR_XGA, IDC_CHECK_XGA, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 85, 199, CFG_CHECKBOX_HEIGHT + PUSHBUTTON STR_CONFIGURE, IDC_BUTTON_XGA, + CFG_COMBO_BTN_LEFT, 84, CFG_BTN_WIDTH, CFG_BTN_HEIGHT +END + +DLG_CFG_INPUT DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_MOUSE, IDT_MOUSE, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MOUSE, + CFG_COMBO_BOX_LEFT, 7, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_MOUSE, + CFG_COMBO_BTN_LEFT, 6, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_JOYSTICK, IDT_JOYSTICK, + CFG_HMARGIN, 27, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_JOYSTICK, + CFG_COMBO_BOX_LEFT, 25, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + PUSHBUTTON STR_JOY1, IDC_JOY1, + CFG_HMARGIN, 44, 84, CFG_BTN_HEIGHT + + PUSHBUTTON STR_JOY2, IDC_JOY2, + 96, 44, 84, CFG_BTN_HEIGHT + + PUSHBUTTON STR_JOY3, IDC_JOY3, + 187, 44, 84, CFG_BTN_HEIGHT + + PUSHBUTTON STR_JOY4, IDC_JOY4, + 277, 44, 84, CFG_BTN_HEIGHT +END + +DLG_CFG_SOUND DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_SOUND1, IDT_SOUND1, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_SOUND1, + CFG_COMBO_BOX_LEFT, 7, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND1, + CFG_COMBO_BTN_LEFT, 6, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_SOUND2, IDT_SOUND2, + CFG_HMARGIN, 28, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_SOUND2, + CFG_COMBO_BOX_LEFT, 26, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND2, + CFG_COMBO_BTN_LEFT, 25, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_SOUND3, IDT_SOUND3, + CFG_HMARGIN, 48, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_SOUND3, + CFG_COMBO_BOX_LEFT, 46, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND3, + CFG_COMBO_BTN_LEFT, 45, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_SOUND4, IDT_SOUND4, + CFG_HMARGIN, 68, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_SOUND4, + CFG_COMBO_BOX_LEFT, 66, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND4, + CFG_COMBO_BTN_LEFT, 65, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_MIDI_OUT, IDT_MIDI_OUT, + CFG_HMARGIN, 88, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MIDI_OUT, + CFG_COMBO_BOX_LEFT, 86, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, + IDC_CONFIGURE_MIDI_OUT, + CFG_COMBO_BTN_LEFT, 85, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_MIDI_IN, IDT_MIDI_IN, + CFG_HMARGIN, 108, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MIDI_IN, + CFG_COMBO_BOX_LEFT, 105, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_MIDI_IN, + CFG_COMBO_BTN_LEFT, 105, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_MPU401,IDC_CHECK_MPU401, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 126, 199, CFG_CHECKBOX_HEIGHT + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_MPU401, + CFG_COMBO_BTN_LEFT, 125, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_FLOAT, IDC_CHECK_FLOAT, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 138, 194, CFG_CHECKBOX_HEIGHT + + GROUPBOX STR_FM_DRIVER, IDC_FM_DRIVER, + CFG_HMARGIN, 154, 110, 42 + + CONTROL STR_FM_DRV_NUKED, IDC_RADIO_FM_DRV_NUKED, + "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, + 14, 166, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_FM_DRV_YMFM, IDC_RADIO_FM_DRV_YMFM, + "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, + 14, 180, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT +END + +DLG_CFG_NETWORK DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_NET_TYPE, IDT_NET_TYPE, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + LTEXT STR_PCAP, IDT_PCAP, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH - 10, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + LTEXT STR_NET, IDT_NET, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_2 + 20, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + + COMBOBOX IDC_COMBO_NET1_TYPE, + CFG_HMARGIN, 28, 48, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + COMBOBOX IDC_COMBO_PCAP1, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH - 10, 28, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + COMBOBOX IDC_COMBO_NET1, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_2 + 20, 28, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_NET1, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_3 + 50, 27, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + COMBOBOX IDC_COMBO_NET2_TYPE, + CFG_HMARGIN, 49, 48, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + COMBOBOX IDC_COMBO_PCAP2, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH - 10, 49, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + COMBOBOX IDC_COMBO_NET2, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_2 + 20, 49, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_NET2, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_3 + 50, 48, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + COMBOBOX IDC_COMBO_NET3_TYPE, + CFG_HMARGIN, 70, 48, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + COMBOBOX IDC_COMBO_PCAP3, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH - 10, 70, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + COMBOBOX IDC_COMBO_NET3, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_2 + 20, 70, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_NET3, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_3 + 50, 69, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + COMBOBOX IDC_COMBO_NET4_TYPE, + CFG_HMARGIN, 91, 48, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + COMBOBOX IDC_COMBO_PCAP4, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH - 10, 91, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + COMBOBOX IDC_COMBO_NET4, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_2 + 20, 91, 110, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_NET4, + CFG_HMARGIN + CFG_PANE_LTEXT_PRI_WIDTH_3 + 50, 90, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + +END + +DLG_CFG_PORTS DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN +/* + LTEXT STR_COM1, IDT_COM1, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_COM1, + CFG_COMBO_BOX_LEFT, 7, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_COM2, IDT_COM2, + CFG_HMARGIN, 28, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_COM2, + CFG_COMBO_BOX_LEFT, 26, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_COM3, IDT_COM3, + CFG_HMARGIN, 47, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_COM3, + CFG_COMBO_BOX_LEFT, 45, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_COM4, IDT_COM4, + CFG_HMARGIN, 66, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_COM4, + CFG_COMBO_BOX_LEFT, 45, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP +*/ + + LTEXT STR_LPT1, IDT_LPT1, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_LPT1, + CFG_COMBO_BOX_LEFT, 7, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_LPT2, IDT_LPT2, + CFG_HMARGIN, 24, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_LPT2, + CFG_COMBO_BOX_LEFT, 22, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_LPT3, IDT_LPT3, + CFG_HMARGIN, 39, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_LPT3, + CFG_COMBO_BOX_LEFT, 37, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_LPT4, IDT_LPT4, + CFG_HMARGIN, 54, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_LPT4, + CFG_COMBO_BOX_LEFT, 52, CFG_COMBO_NOBTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + CONTROL STR_SERIAL1, IDC_CHECK_SERIAL1, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 71, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_SERIAL2, IDC_CHECK_SERIAL2, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 86, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_SERIAL3, IDC_CHECK_SERIAL3, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 101, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_SERIAL4, IDC_CHECK_SERIAL4, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 116, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_PARALLEL1, IDC_CHECK_PARALLEL1, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 167, 71, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_PARALLEL2, IDC_CHECK_PARALLEL2, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 167, 86, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_PARALLEL3, IDC_CHECK_PARALLEL3, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 167, 101, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_PARALLEL4, IDC_CHECK_PARALLEL4, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 167, 116, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_SERIAL_PASS1, IDC_CHECK_SERIAL_PASS1, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 134, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SERIAL_PASS1, + CFG_COMBO_BTN_LEFT, 131, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_SERIAL_PASS2, IDC_CHECK_SERIAL_PASS2, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 150, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SERIAL_PASS2, + CFG_COMBO_BTN_LEFT, 147, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_SERIAL_PASS3, IDC_CHECK_SERIAL_PASS3, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 165, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SERIAL_PASS3, + CFG_COMBO_BTN_LEFT, 162, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_SERIAL_PASS4, IDC_CHECK_SERIAL_PASS4, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 180, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SERIAL_PASS4, + CFG_COMBO_BTN_LEFT, 177, CFG_BTN_WIDTH, CFG_BTN_HEIGHT +END + +DLG_CFG_STORAGE DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_HDC, IDT_HDC, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_HDC, + CFG_COMBO_BOX_LEFT, 7, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_HDC, + CFG_COMBO_BTN_LEFT, 6, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_FDC, IDT_FDC, + CFG_HMARGIN, 28, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_FDC, + CFG_COMBO_BOX_LEFT, 26, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_FDC, + CFG_COMBO_BTN_LEFT, 25, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_IDE_TER,IDC_CHECK_IDE_TER, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 47, 239, 10 + PUSHBUTTON STR_CONFIGURE, IDC_BUTTON_IDE_TER, + CFG_COMBO_BTN_LEFT, 45, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_IDE_QUA, IDC_CHECK_IDE_QUA, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 66, 239, 10 + PUSHBUTTON STR_CONFIGURE, IDC_BUTTON_IDE_QUA, + CFG_COMBO_BTN_LEFT, 64, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + GROUPBOX STR_SCSI, IDC_GROUP_SCSI, + CFG_HMARGIN, 85, CFG_SYSLISTVIEW32_WIDTH, 93 + + LTEXT STR_SCSI_1, IDT_SCSI_1, + 16, 102, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_SCSI_1, + CFG_COMBO_BOX_LEFT, 100, CFG_COMBO_BTN_WIDTH - 10, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SCSI_1, + CFG_COMBO_BTN_LEFT - 10, 99, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_SCSI_2, IDT_SCSI_2, + 16, 121, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_SCSI_2, + CFG_COMBO_BOX_LEFT, 119, CFG_COMBO_BTN_WIDTH - 10, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SCSI_2, + CFG_COMBO_BTN_LEFT - 10, 118, CFG_BTN_WIDTH,CFG_BTN_HEIGHT + + LTEXT STR_SCSI_3,IDT_SCSI_3, + 16, 140, 64, 10 + COMBOBOX IDC_COMBO_SCSI_3, + CFG_COMBO_BOX_LEFT, 138, CFG_COMBO_BTN_WIDTH - 10, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SCSI_3, + CFG_COMBO_BTN_LEFT - 10, 137, CFG_BTN_WIDTH,CFG_BTN_HEIGHT + + LTEXT STR_SCSI_4, IDT_SCSI_4, + 16, 159, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_SCSI_4, + CFG_COMBO_BOX_LEFT, 157, CFG_COMBO_BTN_WIDTH - 10, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SCSI_4, + CFG_COMBO_BTN_LEFT - 10, 156, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_CASSETTE,IDC_CHECK_CASSETTE, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 185, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT +END + +DLG_CFG_HARD_DISKS DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_HDD, IDT_HDD, + CFG_HMARGIN, CFG_VMARGIN, 258, CFG_PANE_LTEXT_HEIGHT + CONTROL "List1", IDC_LIST_HARD_DISKS, + "SysListView32", + LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | + WS_BORDER | WS_TABSTOP, + CFG_HMARGIN, 18, CFG_SYSLISTVIEW32_WIDTH, 162 + + LTEXT STR_BUS,IDT_BUS, + CFG_HMARGIN, 188, 24, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_HD_BUS, + 33, 186, 40, 12,CBS_DROPDOWNLIST | + WS_VSCROLL | WS_TABSTOP + + LTEXT STR_CHANNEL, IDT_CHANNEL, + 91, 188, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_HD_CHANNEL, + 131, 186, 40, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO_HD_CHANNEL_IDE, + 131, 186, 40, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_ID, IDT_ID, + 91, 188, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_HD_ID, + 131, 186, 70, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_SPEED, IDT_SPEED, + 201, 188, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_HD_SPEED, + 241, 186, 70, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + PUSHBUTTON STR_NEW, IDC_BUTTON_HDD_ADD_NEW, + CFG_HMARGIN, 207, 112, CFG_BTN_HEIGHT + + PUSHBUTTON STR_EXISTING, IDC_BUTTON_HDD_ADD, + 128, 207, 112, CFG_BTN_HEIGHT + + PUSHBUTTON STR_REMOVE, IDC_BUTTON_HDD_REMOVE, + 249, 207, 112, CFG_BTN_HEIGHT + +END + +DLG_CFG_HARD_DISKS_ADD DIALOG DISCARDABLE 0, 0, 239, 151 +STYLE DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Add Hard Disk" +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_FILE_NAME, IDT_FILE_NAME, + 7, 7, 204, 12 + EDITTEXT IDC_EDIT_HD_FILE_NAME, + 7, 18, 173, 12 + PUSHBUTTON STR_SPECIFY, IDC_CFILE, + 187, 18, 44, CFG_BTN_HEIGHT + + LTEXT STR_CYLS, IDT_CYLS, + 7, 37, 42, 12 + EDITTEXT IDC_EDIT_HD_CYL, + 50, 36, 28, 12 + + LTEXT STR_HEADS, IDT_HEADS, + 86, 37, 29, 12 + EDITTEXT IDC_EDIT_HD_HPC, + 122, 36, 28, 12 + + LTEXT STR_SECTORS, IDT_SECTORS, + 164, 37, 33, 12 + EDITTEXT IDC_EDIT_HD_SPT, + 197, 36, 28, 12 + + LTEXT STR_SIZE_MB, IDT_SIZE_MB, + 7, 56, 48, 12 + EDITTEXT IDC_EDIT_HD_SIZE, + 50, 54, 28, 12 + + LTEXT STR_TYPE, IDT_TYPE, + 86, 56, 24, 12 + COMBOBOX IDC_COMBO_HD_TYPE, + 133, 54, 98, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_BUS,IDT_BUS, + 7, 75, 24, 12 + COMBOBOX IDC_COMBO_HD_BUS, + 43, 73, 58, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_CHANNEL, IDT_CHANNEL, + 109, 75, 34, 12 + COMBOBOX IDC_COMBO_HD_CHANNEL, + 144, 73, 87, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_COMBO_HD_CHANNEL_IDE, + 144, 73, 87, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_ID, IDT_ID, + 109, 75, 34, 12 + COMBOBOX IDC_COMBO_HD_ID, + 144, 73, 87, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_IMG_FORMAT, IDT_IMG_FORMAT, + 7, 94, 70, 12 + COMBOBOX IDC_COMBO_HD_IMG_FORMAT, + 78, 92, 153, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_BLOCK_SIZE, IDT_BLOCK_SIZE, + 7, 113, 50, 12 + COMBOBOX IDC_COMBO_HD_BLOCK_SIZE, + 58, 111, 153, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_PROGRESS, IDT_PROGRESS, + 7, 7, 204, 12 + CONTROL "IMGCreateProgress", IDC_PBAR_IMG_CREATE, + "msctls_progress32", + PBS_SMOOTH | WS_BORDER, + 7, 16, 204, 12 + + DEFPUSHBUTTON STR_OK, IDOK, + 75, 129, 50, CFG_BTN_HEIGHT + PUSHBUTTON STR_CANCEL, IDCANCEL, + 132, 129, 50, CFG_BTN_HEIGHT +END + +DLG_CFG_FLOPPY_AND_CDROM_DRIVES DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_FLOPPY_DRIVES, IDT_FLOPPY_DRIVES, + CFG_HMARGIN, CFG_VMARGIN, 258, CFG_PANE_LTEXT_HEIGHT + CONTROL "List1", IDC_LIST_FLOPPY_DRIVES, + "SysListView32", + LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | + WS_BORDER | WS_TABSTOP, + CFG_HMARGIN, 18, CFG_SYSLISTVIEW32_WIDTH, 60 + + LTEXT STR_TYPE, IDT_FDD_TYPE, + CFG_HMARGIN, 87, 24, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_FD_TYPE, + 33, 85, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + CONTROL STR_TURBO, IDC_CHECKTURBO, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 186, 86, 84, CFG_CHECKBOX_HEIGHT + + CONTROL STR_CHECKBPB, IDC_CHECKBPB, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 272, 86, 84, CFG_CHECKBOX_HEIGHT + + LTEXT STR_CDROM_DRIVES, IDT_CD_DRIVES, + CFG_HMARGIN, 107, 258, CFG_PANE_LTEXT_HEIGHT + CONTROL "List1", IDC_LIST_CDROM_DRIVES, + "SysListView32", + LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | + WS_BORDER | WS_TABSTOP, + CFG_HMARGIN, 117, CFG_SYSLISTVIEW32_WIDTH, 60 + + LTEXT STR_BUS, IDT_CD_BUS, + CFG_HMARGIN, 187, 24, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_CD_BUS, + 33, 185, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_CHANNEL, IDT_CD_CHANNEL, + 181, 187, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_CD_CHANNEL_IDE, + 221, 185, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_ID, IDT_CD_ID, + 181, 187, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_CD_ID, + 221, 185, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_CD_SPEED, IDT_CD_SPEED, + CFG_HMARGIN, 207, 34, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_CD_SPEED, + 33, 205, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_TYPE, IDT_CD_TYPE, + 181, 207, 34, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_CD_TYPE, + 221, 205, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + +END + +DLG_CFG_OTHER_REMOVABLE_DEVICES DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + + LTEXT STR_MO_DRIVES, IDT_MO_DRIVES, + CFG_HMARGIN, CFG_VMARGIN, 258, CFG_PANE_LTEXT_HEIGHT + CONTROL "List1", IDC_LIST_MO_DRIVES, + "SysListView32", + LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | + WS_BORDER | WS_TABSTOP, + CFG_HMARGIN, 17, CFG_SYSLISTVIEW32_WIDTH, 60 + + LTEXT STR_BUS, IDT_MO_BUS, + CFG_HMARGIN, 87, 24, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MO_BUS, + 33, 85, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_ID, IDT_MO_ID, + 181, 87, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MO_ID, + 221, 85, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_CHANNEL, IDT_MO_CHANNEL, + 181, 87, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MO_CHANNEL_IDE, + 221, 85, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_TYPE, IDT_MO_TYPE, + CFG_HMARGIN, 107, 24, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_MO_TYPE, + 33, 105, 328, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_ZIP_DRIVES, IDT_ZIP_DRIVES, + CFG_HMARGIN, 127, 258, CFG_PANE_LTEXT_HEIGHT + CONTROL "List1", IDC_LIST_ZIP_DRIVES, + "SysListView32", + LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL | + WS_BORDER | WS_TABSTOP, + CFG_HMARGIN, 137, CFG_SYSLISTVIEW32_WIDTH, 60 + + LTEXT STR_BUS, IDT_ZIP_BUS, + CFG_HMARGIN, 207, 24, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_ZIP_BUS, + 33, 205, 140, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_CHANNEL, IDT_ZIP_CHANNEL, + 181, 207, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_ZIP_CHANNEL_IDE, + 221, 205, 105, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + LTEXT STR_ID, IDT_ZIP_ID, + 181, 207, 38, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_ZIP_ID, + 221, 205, 105, 12, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + + CONTROL STR_250, IDC_CHECK250, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + 329, 206, 44, CFG_CHECKBOX_HEIGHT +END + +DLG_CFG_PERIPHERALS DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT +STYLE DS_CONTROL | WS_CHILD +FONT FONT_SIZE, FONT_NAME +BEGIN + LTEXT STR_ISARTC, IDT_ISARTC, + CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_ISARTC, + CFG_COMBO_BOX_LEFT, 7,CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_ISARTC, + CFG_COMBO_BTN_LEFT, 6, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + GROUPBOX STR_ISAMEM, IDC_GROUP_ISAMEM, + CFG_HMARGIN, 28, CFG_SYSLISTVIEW32_WIDTH, 93 + + LTEXT STR_ISAMEM_1, IDT_ISAMEM_1, + 16, 45, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_ISAMEM_1, + CFG_COMBO_BOX_LEFT, 43, CFG_COMBO_BTN_WIDTH - 10, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_ISAMEM_1, + CFG_COMBO_BTN_LEFT - 10, 42, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_ISAMEM_2,IDT_ISAMEM_2, + 16, 64, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_ISAMEM_2, + CFG_COMBO_BOX_LEFT, 62, CFG_COMBO_BTN_WIDTH - 10, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_ISAMEM_2, + CFG_COMBO_BTN_LEFT - 10, 61, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_ISAMEM_3, IDT_ISAMEM_3, + 16, 83, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_ISAMEM_3, + CFG_COMBO_BOX_LEFT, 81, CFG_COMBO_BTN_WIDTH - 10, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_ISAMEM_3, + CFG_COMBO_BTN_LEFT - 10, 80, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + LTEXT STR_ISAMEM_4, IDT_ISAMEM_4, + 16, 102, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT + COMBOBOX IDC_COMBO_ISAMEM_4, + CFG_COMBO_BOX_LEFT, 100, CFG_COMBO_BTN_WIDTH - 10, CFG_COMBO_HEIGHT, + CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_ISAMEM_4, + CFG_COMBO_BTN_LEFT - 10, 99, CFG_BTN_WIDTH, CFG_BTN_HEIGHT + + CONTROL STR_BUGGER, IDC_CHECK_BUGGER, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 128, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT + + CONTROL STR_POSTCARD,IDC_CHECK_POSTCARD, + "Button", BS_AUTOCHECKBOX | WS_TABSTOP, + CFG_HMARGIN, 146, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT +END + +#undef CFG_CHECKBOX_PRI_WIDTH +#undef CFG_CHECKBOX_HEIGHT +#undef CFG_BTN_WIDTH +#undef CFG_BTN_HEIGHT +#undef CFG_PANE_LTEXT_PRI_WIDTH +#undef CFG_PANE_LTEXT_HEIGHT +#undef CFG_COMBO_BTN_WIDTH +#undef CFG_COMBO_NOBTN_WIDTH +#undef CFG_COMBO_BOX_LEFT +#undef CFG_COMBO_BTN_LEFT +#undef CFG_COMBO_HEIGHT +#undef CFG_LIST_WIDTH +#undef CFG_LIST_HEIGHT +#undef CFG_PANE_TOP +#undef CFG_PANE_LEFT +#undef CFG_PANE_WIDTH +#undef CFG_PANE_HEIGHT +#undef CFG_HMARGIN +#undef CFG_VMARGIN +#undef CFG_SYSLISTVIEW32_WIDTH + + +#undef STR_PREFERENCES +#undef STR_SND_GAIN +#undef STR_NEW_FLOPPY +#undef STR_CONFIG +#undef STR_SPECIFY_DIM + +#undef STR_OK +#undef STR_CANCEL +#undef STR_GLOBAL +#undef STR_DEFAULT +#undef STR_LANGUAGE +#undef STR_ICONSET + +#undef STR_GAIN + +#undef STR_FILE_NAME +#undef STR_DISK_SIZE +#undef STR_RPM_MODE +#undef STR_PROGRESS + +#undef STR_WIDTH +#undef STR_HEIGHT +#undef STR_LOCK_TO_SIZE + +#undef STR_MACHINE_TYPE +#undef STR_MACHINE +#undef STR_CONFIGURE +#undef STR_CPU_TYPE +#undef STR_CPU_SPEED +#undef STR_FPU +#undef STR_WAIT_STATES +#undef STR_MB +#undef STR_MEMORY +#undef STR_TIME_SYNC +#undef STR_DISABLED +#undef STR_ENABLED_LOCAL +#undef STR_ENABLED_UTC +#undef STR_DYNAREC +#undef STR_SOFTFLOAT +#undef STR_CACHE + +#undef STR_VIDEO +#undef STR_VIDEO_2 +#undef STR_VOODOO +#undef STR_IBM8514 +#undef STR_XGA + +#undef STR_MOUSE +#undef STR_JOYSTICK +#undef STR_JOY1 +#undef STR_JOY2 +#undef STR_JOY3 +#undef STR_JOY4 + +#undef STR_SOUND1 +#undef STR_SOUND2 +#undef STR_SOUND3 +#undef STR_SOUND4 +#undef STR_MIDI_OUT +#undef STR_MIDI_IN +#undef STR_MPU401 +#undef STR_FLOAT +#undef STR_FM_DRIVER +#undef STR_FM_DRV_NUKED +#undef STR_FM_DRV_YMFM + +#undef STR_NET_TYPE +#undef STR_PCAP +#undef STR_NET +#undef STR_NET1 +#undef STR_NET2 +#undef STR_NET3 +#undef STR_NET4 + +#undef STR_COM1 +#undef STR_COM2 +#undef STR_COM3 +#undef STR_COM4 +#undef STR_LPT1 +#undef STR_LPT2 +#undef STR_LPT3 +#undef STR_LPT4 +#undef STR_SERIAL1 +#undef STR_SERIAL2 +#undef STR_SERIAL3 +#undef STR_SERIAL4 +#undef STR_PARALLEL1 +#undef STR_PARALLEL2 +#undef STR_PARALLEL3 +#undef STR_PARALLEL4 +#undef STR_SERIAL_PASS1 +#undef STR_SERIAL_PASS2 +#undef STR_SERIAL_PASS3 +#undef STR_SERIAL_PASS4 + +#undef STR_HDC +#undef STR_FDC +#undef STR_IDE_TER +#undef STR_IDE_QUA +#undef STR_SCSI +#undef STR_SCSI_1 +#undef STR_SCSI_2 +#undef STR_SCSI_3 +#undef STR_SCSI_4 +#undef STR_CASSETTE + +#undef STR_HDD +#undef STR_NEW +#undef STR_EXISTING +#undef STR_REMOVE +#undef STR_BUS +#undef STR_CHANNEL +#undef STR_ID +#undef STR_SPEED + +#undef STR_SPECIFY +#undef STR_SECTORS +#undef STR_HEADS +#undef STR_CYLS +#undef STR_SIZE_MB +#undef STR_TYPE +#undef STR_IMG_FORMAT +#undef STR_BLOCK_SIZE + +#undef STR_FLOPPY_DRIVES +#undef STR_TURBO +#undef STR_CHECKBPB +#undef STR_CDROM_DRIVES +#undef STR_CD_SPEED +#undef STR_EARLY + +#undef STR_MO_DRIVES +#undef STR_ZIP_DRIVES +#undef STR_250 + +#undef STR_ISARTC +#undef STR_ISAMEM +#undef STR_ISAMEM_1 +#undef STR_ISAMEM_2 +#undef STR_ISAMEM_3 +#undef STR_ISAMEM_4 +#undef STR_BUGGER +#undef STR_POSTCARD + +#undef FONT_SIZE +#undef FONT_NAME diff --git a/src/win/languages/en-GB.rc b/src/win/languages/en-GB.rc new file mode 100644 index 0000000000..9250e1085f --- /dev/null +++ b/src/win/languages/en-GB.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// English (U.K.) resources + +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK +#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 "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + 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 + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + 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+PgUp", 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 &Colour", IDM_VID_GRAY_RGB + MENUITEM "&RGB Greyscale", 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 "Take s&creenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Preferences...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Enable &Discord integration", IDM_DISCORD +#endif + 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 + 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 + MENUITEM "&Folder...", IDM_CDROM_DIR + 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 + +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 + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Preferences" +#define STR_SND_GAIN "Sound Gain" +#define STR_NEW_FLOPPY "New Image" +#define STR_CONFIG "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_ICONSET "Icon set:" + +#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_CPU_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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Cache" + +#define STR_VIDEO "Video:" +#define STR_VIDEO_2 "Video 2:" +#define STR_VOODOO "Voodoo Graphics" +#define STR_IBM8514 "IBM 8514/A Graphics" +#define STR_XGA "XGA Graphics" + +#define STR_MOUSE "Mouse:" +#define STR_JOYSTICK "Joystick:" +#define STR_JOY1 "Joystick 1..." +#define STR_JOY2 "Joystick 2..." +#define STR_JOY3 "Joystick 3..." +#define STR_JOY4 "Joystick 4..." + +#define STR_SOUND1 "Sound card #1:" +#define STR_SOUND2 "Sound card #2:" +#define STR_SOUND3 "Sound card #3:" +#define STR_SOUND4 "Sound card #4:" +#define STR_MIDI_OUT "MIDI Out Device:" +#define STR_MIDI_IN "MIDI In Device:" +#define STR_MPU401 "Standalone MPU-401" +#define STR_FLOAT "Use FLOAT32 sound" +#define STR_FM_DRIVER "FM synth driver" +#define STR_FM_DRV_NUKED "Nuked (more accurate)" +#define STR_FM_DRV_YMFM "YMFM (faster)" + +#define STR_NET_TYPE "Network type:" +#define STR_PCAP "PCap device:" +#define STR_NET "Network adapter:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "COM1 Device:" +#define STR_COM2 "COM2 Device:" +#define STR_COM3 "COM3 Device:" +#define STR_COM4 "COM4 Device:" +#define STR_LPT1 "LPT1 Device:" +#define STR_LPT2 "LPT2 Device:" +#define STR_LPT3 "LPT3 Device:" +#define STR_LPT4 "LPT4 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_PARALLEL4 "Parallel port 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#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_SPEED "Speed:" + +#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_CD_SPEED "Speed:" + +#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" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Error" + IDS_2050 "Fatal error" + IDS_2051 " - PAUSED" + IDS_2052 "Press Ctrl+Alt+PgDn 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_2081 "Bus" + IDS_2082 "File" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Check BPB" + IDS_2089 "KB" + IDS_2090 "Could not initialize the video renderer." + IDS_2091 "Default" + IDS_2092 "%i Wait state(s)" + IDS_2093 "Type" + IDS_2094 "Failed to set up PCap" + IDS_2095 "No PCap devices found" + IDS_2096 "Invalid PCap device" + IDS_2097 "Standard 2-button joystick(s)" + IDS_2098 "Standard 4-button joystick" + IDS_2099 "Standard 6-button joystick" + IDS_2100 "Standard 8-button joystick" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "None" + IDS_2105 "Unable to load keyboard accelerators." + IDS_2106 "Unable to register raw input." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Floppy %i (%s): %ls" + IDS_2110 "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_2113 "Are you sure you want to hard reset the emulated machine?" + IDS_2114 "Are you sure you want to exit 86Box?" + IDS_2115 "Unable to initialize Ghostscript" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "MO images (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2118 "Welcome to 86Box!" + IDS_2119 "Internal controller" + IDS_2120 "Exit" + IDS_2121 "No ROMs found" + IDS_2122 "Do you want to save the settings?" + IDS_2123 "This will hard reset the emulated machine." + IDS_2124 "Save" + IDS_2125 "About 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." + IDS_2128 "OK" + IDS_2129 "Hardware not available" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Make sure " LIB_NAME_PCAP " is installed and that you are on a " LIB_NAME_PCAP "-compatible network connection." + IDS_2131 "Invalid configuration" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 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_2135 "Entering fullscreen mode" + IDS_2136 "Don't show this message again" + IDS_2137 "Don't exit" + IDS_2138 "Reset" + IDS_2139 "Don't reset" + IDS_2140 "MO images (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2141 "CD-ROM images (*.ISO;*.CUE)\0*.ISO;*.CUE\0All files (*.*)\0*.*\0" + IDS_2142 "%hs Device Configuration" + IDS_2143 "Monitor in sleep mode" + IDS_2144 "OpenGL Shaders (*.GLSL)\0*.GLSL\0All files (*.*)\0*.*\0" + IDS_2145 "OpenGL options" + IDS_2146 "You are loading an unsupported configuration" + IDS_2147 "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_2148 "Continue" + IDS_2149 "Cassette: %s" + IDS_2150 "Cassette images (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0All files (*.*)\0*.*\0" + IDS_2151 "Cartridge %i: %ls" + IDS_2152 "Cartridge images (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0All files (*.*)\0*.*\0" + IDS_2153 "Error initializing renderer" + IDS_2154 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." + IDS_2155 "Resume execution" + IDS_2156 "Pause execution" + IDS_2157 "Press Ctrl+Alt+Del" + IDS_2158 "Press Ctrl+Alt+Esc" + IDS_2159 "Hard reset" + IDS_2160 "ACPI shutdown" + IDS_2161 "Settings" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + 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.K.) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc new file mode 100644 index 0000000000..eb545696ba --- /dev/null +++ b/src/win/languages/en-US.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// 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 "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + 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 + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + 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+PgUp", 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 "Take s&creenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Preferences...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Enable &Discord integration", IDM_DISCORD +#endif + 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 + 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 + MENUITEM "&Folder...", IDM_CDROM_DIR + 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 + +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 + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Preferences" +#define STR_SND_GAIN "Sound Gain" +#define STR_NEW_FLOPPY "New Image" +#define STR_CONFIG "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_ICONSET "Icon set:" + +#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_CPU_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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Cache" + +#define STR_VIDEO "Video:" +#define STR_VIDEO_2 "Video 2:" +#define STR_VOODOO "Voodoo Graphics" +#define STR_IBM8514 "IBM 8514/A Graphics" +#define STR_XGA "XGA Graphics" + +#define STR_MOUSE "Mouse:" +#define STR_JOYSTICK "Joystick:" +#define STR_JOY1 "Joystick 1..." +#define STR_JOY2 "Joystick 2..." +#define STR_JOY3 "Joystick 3..." +#define STR_JOY4 "Joystick 4..." + +#define STR_SOUND1 "Sound card #1:" +#define STR_SOUND2 "Sound card #2:" +#define STR_SOUND3 "Sound card #3:" +#define STR_SOUND4 "Sound card #4:" +#define STR_MIDI_OUT "MIDI Out Device:" +#define STR_MIDI_IN "MIDI In Device:" +#define STR_MPU401 "Standalone MPU-401" +#define STR_FLOAT "Use FLOAT32 sound" +#define STR_FM_DRIVER "FM synth driver" +#define STR_FM_DRV_NUKED "Nuked (more accurate)" +#define STR_FM_DRV_YMFM "YMFM (faster)" + +#define STR_NET_TYPE "Network type:" +#define STR_PCAP "PCap device:" +#define STR_NET "Network adapter:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "COM1 Device:" +#define STR_COM2 "COM2 Device:" +#define STR_COM3 "COM3 Device:" +#define STR_COM4 "COM4 Device:" +#define STR_LPT1 "LPT1 Device:" +#define STR_LPT2 "LPT2 Device:" +#define STR_LPT3 "LPT3 Device:" +#define STR_LPT4 "LPT4 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_PARALLEL4 "Parallel port 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#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_SPEED "Speed:" + +#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_CD_SPEED "Speed:" + +#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" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Error" + IDS_2050 "Fatal error" + IDS_2051 " - PAUSED" + IDS_2052 "Press Ctrl+Alt+PgDn 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_2081 "Bus" + IDS_2082 "File" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Check BPB" + IDS_2089 "KB" + IDS_2090 "Could not initialize the video renderer." + IDS_2091 "Default" + IDS_2092 "%i Wait state(s)" + IDS_2093 "Type" + IDS_2094 "Failed to set up PCap" + IDS_2095 "No PCap devices found" + IDS_2096 "Invalid PCap device" + IDS_2097 "Standard 2-button joystick(s)" + IDS_2098 "Standard 4-button joystick" + IDS_2099 "Standard 6-button joystick" + IDS_2100 "Standard 8-button joystick" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "None" + IDS_2105 "Unable to load keyboard accelerators." + IDS_2106 "Unable to register raw input." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Floppy %i (%s): %ls" + IDS_2110 "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_2113 "Are you sure you want to hard reset the emulated machine?" + IDS_2114 "Are you sure you want to exit 86Box?" + IDS_2115 "Unable to initialize Ghostscript" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "MO images (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2118 "Welcome to 86Box!" + IDS_2119 "Internal controller" + IDS_2120 "Exit" + IDS_2121 "No ROMs found" + IDS_2122 "Do you want to save the settings?" + IDS_2123 "This will hard reset the emulated machine." + IDS_2124 "Save" + IDS_2125 "About 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." + IDS_2128 "OK" + IDS_2129 "Hardware not available" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Make sure " LIB_NAME_PCAP " is installed and that you are on a " LIB_NAME_PCAP "-compatible network connection." + IDS_2131 "Invalid configuration" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 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_2135 "Entering fullscreen mode" + IDS_2136 "Don't show this message again" + IDS_2137 "Don't exit" + IDS_2138 "Reset" + IDS_2139 "Don't reset" + IDS_2140 "MO images (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2141 "CD-ROM images (*.ISO;*.CUE)\0*.ISO;*.CUE\0All files (*.*)\0*.*\0" + IDS_2142 "%hs Device Configuration" + IDS_2143 "Monitor in sleep mode" + IDS_2144 "OpenGL Shaders (*.GLSL)\0*.GLSL\0All files (*.*)\0*.*\0" + IDS_2145 "OpenGL options" + IDS_2146 "You are loading an unsupported configuration" + IDS_2147 "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_2148 "Continue" + IDS_2149 "Cassette: %s" + IDS_2150 "Cassette images (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0All files (*.*)\0*.*\0" + IDS_2151 "Cartridge %i: %ls" + IDS_2152 "Cartridge images (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0All files (*.*)\0*.*\0" + IDS_2153 "Error initializing renderer" + IDS_2154 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." + IDS_2155 "Resume execution" + IDS_2156 "Pause execution" + IDS_2157 "Press Ctrl+Alt+Del" + IDS_2158 "Press Ctrl+Alt+Esc" + IDS_2159 "Hard reset" + IDS_2160 "ACPI shutdown" + IDS_2161 "Settings" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + 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 +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/es-ES.rc b/src/win/languages/es-ES.rc new file mode 100644 index 0000000000..93de60cae8 --- /dev/null +++ b/src/win/languages/es-ES.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Spanish (Spain) resources + +#ifdef _WIN32 +LANGUAGE LANG_SPANISH, SUBLANG_SPANISH +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Acción" + BEGIN + MENUITEM "&Teclado requiere captura", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "CTRL &derecho es ALT izquierdo", 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 "&Pausa", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "&Salir...", IDM_ACTION_EXIT + END + POPUP "&Vista" + BEGIN + MENUITEM "&Ocultar barra de estado", IDM_VID_HIDE_STATUS_BAR + MENUITEM "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Ventana redimensionable", IDM_VID_RESIZE + MENUITEM "&Recordar tamaño y posición", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "Re&nderizador" + BEGIN + MENUITEM "&SDL (Software)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "E&specificar dimensiones...", IDM_VID_SPECIFY_DIM + MENUITEM "F&orzar ratio 4:3", IDM_VID_FORCE43 + POPUP "&Factor de escalado de ventana" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "&Método de filtrado" + BEGIN + MENUITEM "&Más cercano", IDM_VID_FILTER_NEAREST + MENUITEM "&Lineal", IDM_VID_FILTER_LINEAR + END + MENUITEM "&Escalado alta densidad", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Pantalla completa\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "Escalado pantalla completa" + BEGIN + MENUITEM "&Estirar", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Píxeles cuadrados (Mant. aspecto)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Escalado valor entero", IDM_VID_FS_INT + END + POPUP "&Ajustes EGA/(S)VGA" + BEGIN + MENUITEM "&Monitor VGA invertido", IDM_VID_INVERT + POPUP "&Tipo de pantalla VGA" + BEGIN + MENUITEM "RGB &Color", IDM_VID_GRAY_RGB + MENUITEM "RGB &Grises", IDM_VID_GRAY_MONO + MENUITEM "Monitor &Ámbar", IDM_VID_GRAY_AMBER + MENUITEM "Monitor &Verde", IDM_VID_GRAY_GREEN + MENUITEM "Monitor &Blanco", IDM_VID_GRAY_WHITE + END + POPUP "&Conversión a grises" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Media", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "&Overscan CGA/PCjr/Tandy/EGA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "Cambiar contraste para pantalla &monocroma", IDM_VID_CGACON + END + MENUITEM "&Medios", IDM_MEDIA + POPUP "&Herramientas" + BEGIN + MENUITEM "&Ajustes...", IDM_CONFIG + MENUITEM "&Actualizar iconos en barra de estado", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Tomar c&aptura\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Preferencias...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Habilitar integración con &Discord", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Ganancia de sonido...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Comenzar traza\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Terminar traza\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Ayuda" + BEGIN + MENUITEM "&Documentación...", IDM_DOCS + MENUITEM "&Acerca de 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nueva imagen...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Imagen &Existente...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Imagen Existente (&Sólo-lectura)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Grabar", IDM_CASSETTE_RECORD + MENUITEM "&Reproducir", IDM_CASSETTE_PLAY + MENUITEM "&Rebobinar al inicio", IDM_CASSETTE_REWIND + MENUITEM "&Avance rápido al final", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "E&xtraer", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Imagen...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "E&xtraer", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nueva imagen...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Imagen &existente...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Imagen existente (&sólo-lectura)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&xportar a 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "E&xtraer", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Silenciar", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "E&xtraer disco", IDM_CDROM_EMPTY + MENUITEM "&Recargar imagen previa", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Imagen...", IDM_CDROM_IMAGE + MENUITEM "&Carpeta...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nueva imagen...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Imagen &existente...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Imagen existente (&sólo-lectura)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&xtraer", IDM_ZIP_EJECT + MENUITEM "&Recargar imagen previa", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nueva imagen...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Imagen &existente...", IDM_MO_IMAGE_EXISTING + MENUITEM "Imagen existente (&sólo-lectura)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&xtraer", IDM_MO_EJECT + MENUITEM "&Recargar imagen previa", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "&Tasa de refresco objetivo" + BEGIN + MENUITEM "&Sincronizar con vídeo", 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 "&Seleccionar shader...", IDM_VID_GL_SHADER + MENUITEM "&Eliminar shader", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Preferencias" +#define STR_SND_GAIN "Ganancia de Sonido" +#define STR_NEW_FLOPPY "Nueva Imagen" +#define STR_CONFIG "Ajustes" +#define STR_SPECIFY_DIM "Especificar Dimensiones de la Ventana Principal" + +#define STR_OK "Aceptar" +#define STR_CANCEL "Cancelar" +#define STR_GLOBAL "Salvar estos ajustes como por &defecto globalmente" +#define STR_DEFAULT "&Por defecto" +#define STR_LANGUAGE "Idioma:" +#define STR_ICONSET "Juego de iconos:" + +#define STR_GAIN "Ganancia" + +#define STR_FILE_NAME "Nombre de archivo:" +#define STR_DISK_SIZE "Tamaño de disco:" +#define STR_RPM_MODE "Modo RPM:" +#define STR_PROGRESS "Progreso:" + +#define STR_WIDTH "Ancho:" +#define STR_HEIGHT "Alto:" +#define STR_LOCK_TO_SIZE "Bloquear a este tamaño" + +#define STR_MACHINE_TYPE "Tipo de máquina:" +#define STR_MACHINE "Máquina:" +#define STR_CONFIGURE "Configurar" +#define STR_CPU_TYPE "Tipo de CPU:" +#define STR_CPU_SPEED "Velocidad:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "Estados en espera:" +#define STR_MB "MB" +#define STR_MEMORY "Memoria:" +#define STR_TIME_SYNC "Sincronización horaria" +#define STR_DISABLED "Deshabilitado" +#define STR_ENABLED_LOCAL "Habilitado (hora local)" +#define STR_ENABLED_UTC "Habilitado (UTC)" +#define STR_DYNAREC "Recompilador Dinámico" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Caché" + +#define STR_VIDEO "Vídeo:" +#define STR_VIDEO_2 "Vídeo 2:" +#define STR_VOODOO "Voodoo Graphics" +#define STR_IBM8514 "IBM 8514/A Graphics" +#define STR_XGA "XGA Graphics" + +#define STR_MOUSE "Ratón:" +#define STR_JOYSTICK "Mando:" +#define STR_JOY1 "Mando 1..." +#define STR_JOY2 "Mando 2..." +#define STR_JOY3 "Mando 3..." +#define STR_JOY4 "Mando 4..." + +#define STR_SOUND1 "Tarjeta de sonido 1:" +#define STR_SOUND2 "Tarjeta de sonido 2:" +#define STR_SOUND3 "Tarjeta de sonido 3:" +#define STR_SOUND4 "Tarjeta de sonido 4:" +#define STR_MIDI_OUT "Dispositivo MIDI de salida:" +#define STR_MIDI_IN "Dispositivo MIDI de entrada:" +#define STR_MPU401 "MPU-401 independiente" +#define STR_FLOAT "Usar sonido FLOAT32" +#define STR_FM_DRIVER "Controlador de sintet. FM" +#define STR_FM_DRV_NUKED "Nuked (más preciso)" +#define STR_FM_DRV_YMFM "YMFM (más rápido)" + +#define STR_NET_TYPE "Tipo de red:" +#define STR_PCAP "Dispositivo PCap:" +#define STR_NET "Adaptador de red:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Dispositivo COM1:" +#define STR_COM2 "Dispositivo COM2:" +#define STR_COM3 "Dispositivo COM3:" +#define STR_COM4 "Dispositivo COM4:" +#define STR_LPT1 "Dispositivo LPT1:" +#define STR_LPT2 "Dispositivo LPT2:" +#define STR_LPT3 "Dispositivo LPT3:" +#define STR_LPT4 "Dispositivo LPT4:" +#define STR_SERIAL1 "Puerto serie 1" +#define STR_SERIAL2 "Puerto serie 2" +#define STR_SERIAL3 "Puerto serie 3" +#define STR_SERIAL4 "Puerto serie 4" +#define STR_PARALLEL1 "Puerto paralelo 1" +#define STR_PARALLEL2 "Puerto paralelo 2" +#define STR_PARALLEL3 "Puerto paralelo 3" +#define STR_PARALLEL4 "Puerto paralelo 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#define STR_HDC "Controladora HD:" +#define STR_FDC "Controladora FD:" +#define STR_IDE_TER "Tercera controladora IDE" +#define STR_IDE_QUA "Cuarta controladora IDE" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Controladora 1:" +#define STR_SCSI_2 "Controladora 2:" +#define STR_SCSI_3 "Controladora 3:" +#define STR_SCSI_4 "Controladora 4:" +#define STR_CASSETTE "Cassette" + +#define STR_HDD "Discos duros:" +#define STR_NEW "&Nuevo..." +#define STR_EXISTING "&Existente..." +#define STR_REMOVE "E&liminar" +#define STR_BUS "Bus:" +#define STR_CHANNEL "Canal:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "E&specificar..." +#define STR_SECTORS "Sectores:" +#define STR_HEADS "Cabezas:" +#define STR_CYLS "Cilindros:" +#define STR_SIZE_MB "Tamaño (MB):" +#define STR_TYPE "Tipo:" +#define STR_IMG_FORMAT "Formato de imagen:" +#define STR_BLOCK_SIZE "Tamaño de bloque:" + +#define STR_FLOPPY_DRIVES "Unidades de disquete:" +#define STR_TURBO "Temporizaciones Turbo" +#define STR_CHECKBPB "Chequear BPB" +#define STR_CDROM_DRIVES "Unidades de CD-ROM:" +#define STR_CD_SPEED "Velocidad:" + +#define STR_MO_DRIVES "Unidades MO:" +#define STR_ZIP_DRIVES "Unidades ZIP:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA RTC:" +#define STR_ISAMEM "Expansión de Memoria ISA" +#define STR_ISAMEM_1 "Tarjeta 1:" +#define STR_ISAMEM_2 "Tarjeta 2:" +#define STR_ISAMEM_3 "Tarjeta 3:" +#define STR_ISAMEM_4 "Tarjeta 4:" +#define STR_BUGGER "Dispositivo ISABugger" +#define STR_POSTCARD "Tarjeta POST" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Error" + IDS_2050 "Error fatal" + IDS_2051 " - PAUSED" + IDS_2052 "Pulsa Ctrl+Alt+PgDn para volver a modo ventana." + IDS_2053 "Velocidad" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "Imagenes ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box no pudo encontrar ninguna imagen ROM usable.\n\nPor favor descarga un grupo de imágenes y extráelas en el directorio ""roms""." + IDS_2057 "(vacío)" + IDS_2058 "Imagenes ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0All files (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "On" + IDS_2061 "Off" + IDS_2062 "Todas las imagenes (*.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 "La máquina ""%hs"" no está disponible debido a ROMs faltantes en el directorio roms/machines. Cambiando a una máquina disponible." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "La tarjeta de vídeo ""%hs"" no está disponible debido a ROMs faltantes en el directorio roms/machines. Cambiando a una tarjeta de vídeo disponible." + IDS_2065 "Máquina" + IDS_2066 "Vídeo" + IDS_2067 "Dispositivos de Entrada" + IDS_2068 "Sonido" + IDS_2069 "Red" + IDS_2070 "Puertos (COM y LPT)" + IDS_2071 "Controladoras de Almacenamiento" + IDS_2072 "Discos Duros" + IDS_2073 "Disquetes y unidades de CD-ROM" + IDS_2074 "Otros dispositivos extraíbles" + IDS_2075 "Otros periféricos" + IDS_2076 "Imágenes de superficie (*.86F)\0*.86F\0" + IDS_2077 "Haz click para capturar el ratón" + IDS_2078 "Pulsa F8+F12 para liberar el ratón" + IDS_2079 "Pulsa F8+F12 o el botón central para liberar el ratón" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Bus" + IDS_2082 "Archivo" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Chequear BPB" + IDS_2089 "KB" + IDS_2090 "Incapaz de inicializar el renderizador de vídeo." + IDS_2091 "Por defecto" + IDS_2092 "%i estado(s) de Espera" + IDS_2093 "Tipo" + IDS_2094 "Incapaz de configurar PCap" + IDS_2095 "No se encontraron dispositivos PCap" + IDS_2096 "Dispositivo PCap inválido" + IDS_2097 "Mando(s) de 2 botones estándar" + IDS_2098 "Mando de 4 botones estándar" + IDS_2099 "Mando de 6 botones estándar" + IDS_2100 "Mando de 8 botones estándar" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Ninguno" + IDS_2105 "Incapaz de cargar aceleradores de teclado." + IDS_2106 "Incapaz de registrar entrada directa." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Disquete %i (%s): %ls" + IDS_2110 "Todas las Imágenes (*.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_2113 "¿Seguro que quieres resetear la máquina emulada?" + IDS_2114 "¿Seguro que quieres cerrar 86Box?" + IDS_2115 "Incapaz de inicializar Ghostscript" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "Imágenes de MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2118 "¡Bienvenido a 86Box!" + IDS_2119 "Controladora interna" + IDS_2120 "Salir" + IDS_2121 "No se encontraron ROMs" + IDS_2122 "¿Quieres guardar los ajustes?" + IDS_2123 "Se hará hard reset de la máquina emulada." + IDS_2124 "Guardar" + IDS_2125 "Acerca de 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Un emulador de ordenadores antigüos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, y otros.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, y otros.\n\nLiberado bajo la GNU General Public License versión 2 o posterior. Ver LICENSE para más información." + IDS_2128 "Aceptar" + IDS_2129 "Hardware no disponible" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Asegúrate de que " LIB_NAME_PCAP " está instalado y de que estás en una conexión de red compatible con " LIB_NAME_PCAP "." + IDS_2131 "Configuración inválida" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " es necesaria para la conversión automática de archivos PostScript a PDF.\n\nCualquier documento enviado a la impresora genérica postScript se guardará como archivo PostScript (.ps)." + IDS_2135 "Entrando en modo pantalla completa" + IDS_2136 "No mostrar más este mensaje" + IDS_2137 "No salir" + IDS_2138 "Resetear" + IDS_2139 "No resetear" + IDS_2140 "Imágenes de MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2141 "Imágenes de CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0All files (*.*)\0*.*\0" + IDS_2142 "%hs Configuración de Dispositivo" + IDS_2143 "Monitor en modo ahorro" + IDS_2144 "Shaders OpenGL (*.GLSL)\0*.GLSL\0All files (*.*)\0*.*\0" + IDS_2145 "Opciones OpenGL" + IDS_2146 "Estás cargando una configuración no soportada" + IDS_2147 "El Filtrado de tipo de CPU basado en máquina seleccionada está deshabilitado para la esta máquina.\n\nEsto hace posible seleccionar una CPU que sea incompatible con esta máquina. Por ello, pueden aparecer incompatibilidader con la BIOS de la máquina u otro software.\n\nActivar este ajuste no está oficialmente soportado y cualquier reporte de fallo puede ser cerrado como inválido." + IDS_2148 "Continuar" + IDS_2149 "Cassette: %s" + IDS_2150 "Imágenes de Cassette (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0All files (*.*)\0*.*\0" + IDS_2151 "Cartucho %i: %ls" + IDS_2152 "Imágenes de Cartucho (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0All files (*.*)\0*.*\0" + IDS_2153 "Error initializing renderer" + IDS_2154 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." + IDS_2155 "Resume execution" + IDS_2156 "Pause execution" + IDS_2157 "Press Ctrl+Alt+Del" + IDS_2158 "Press Ctrl+Alt+Esc" + IDS_2159 "Hard reset" + IDS_2160 "ACPI shutdown" + IDS_2161 "Settings" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Disco duro (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "Nunca hubo unidades de CD-ROM MFM/RLL o ESDI" + IDS_4100 "A medida..." + IDS_4101 "A medida (grande)..." + IDS_4102 "Añadir Nuevo Disco Duro" + IDS_4103 "Añadir Disco Duro Existente" + IDS_4104 "Las imágenes de disco HDI no pueden superar los 4 GB." + IDS_4105 "Las imágenes de disco no pueden superar los 127 GB." + IDS_4106 "Imágenes de Disco Duro (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0All files (*.*)\0*.*\0" + IDS_4107 "No se pudo leer el archivo" + IDS_4108 "No se pudo escribir el archivo" + IDS_4109 "No se soportan las imágenes HDI o HDX con un tamaño de sector diferente a 512." + IDS_4110 "No se soporta aún el USB" + IDS_4111 "La imagen de disco ya existe" + IDS_4112 "Por favor especifique un nombre de archivo válido." + IDS_4113 "Imagen de disco creada" + IDS_4114 "Asegúrese de que el archivo existe y es leíble." + IDS_4115 "Asegúrese de que el archivo en un directorio con permiso de escritura." + IDS_4116 "Imagen de disco demasiado grande" + IDS_4117 "Recuerde particionar y formatear la nueva unidad." + IDS_4118 "El archivo selecionado será sobreescrito. ¿Está seguro de querer usarlo?" + IDS_4119 "Imagen de disco no soportada" + IDS_4120 "Sobreescribir" + IDS_4121 "No sobreescribir" + IDS_4122 "Imagen plana (.img)" + IDS_4123 "Imagen HDI (.hdi)" + IDS_4124 "Imagen HDX (.hdx)" + IDS_4125 "VHD de tamaño fijo (.vhd)" + IDS_4126 "VHD de tamaño dinámico (.vhd)" + IDS_4127 "VHD diferencial (.vhd)" + IDS_4128 "Bloques grandes (2 MB)" + IDS_4129 "Bloques pequeños (512 KB)" + IDS_4130 "Archivos VHD (*.VHD)\0*.VHD\0All files (*.*)\0*.*\0" + IDS_4131 "Seleccione el VHD padre" + IDS_4132 "Esto puede deberse a que la imagen padre se modificó después de que la imagen diferencial se crease.\n\nTambién puede ocurrir si las imágenes fueron movidas o copiadas, o por un fallo en el programa que creó este disco.\n\n¿Quiere corregir los registros de tiempo?" + IDS_4133 "Las marcas de tiempo del padre e hijo no coinciden" + IDS_4134 "No se pudo corregir la marca de tiempo del 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 "Deshabilitado" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Deshabilitado" + 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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + IDS_6144 "RPM perfectas" + IDS_6145 "1% por debajo de RPM perfectas" + IDS_6146 "1.5% por debajo de RPM perfectas" + IDS_6147 "2% por debajo de RPM perfectas" + + IDS_7168 "(Por defecto del sistema)" +END +#define IDS_LANG_ESES IDS_7168 + +// Spanish (Spain) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc new file mode 100644 index 0000000000..038ee0cd42 --- /dev/null +++ b/src/win/languages/fi-FI.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// 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 "Piilota &työkalupalkki", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + 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 + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + 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+PgUp", 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ävy", 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 "&Kokoonpano...", IDM_CONFIG + MENUITEM "&Päivitä tilapalkin kuvakkeita", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Ota &kuvakaappaus\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Sovellusasetukset...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Käytä &Discord-integraatiota", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Äänitasot...", 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 + POPUP "&Ohje" + BEGIN + MENUITEM "&Ohjekirja...", IDM_DOCS + MENUITEM "&Tietoja 86Boxista...", 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 + MENUITEM "&Kansio...", IDM_CDROM_DIR + 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 + +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 + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Sovellusasetukset" +#define STR_SND_GAIN "Äänen taso" +#define STR_NEW_FLOPPY "Uusi levykuva" +#define STR_CONFIG "Kokoonpano" +#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_ICONSET "Kuvakkeet:" + +#define STR_GAIN "Taso" + +#define STR_FILE_NAME "Tiedostonimi:" +#define STR_DISK_SIZE "Levyn koko:" +#define STR_RPM_MODE "Kierroslukutila:" +#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_CPU_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 "Ei käytössä" +#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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Välimuisti" + +#define STR_VIDEO "Näytönohjain:" +#define STR_VIDEO_2 "Näytönohjain 2:" +#define STR_VOODOO "Voodoo-grafiikkasuoritin" +#define STR_IBM8514 "IBM 8514/A-grafiikkasuoritin" +#define STR_XGA "XGA-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_SOUND1 "Äänikortti 1:" +#define STR_SOUND2 "Äänikortti 2:" +#define STR_SOUND3 "Äänikortti 3:" +#define STR_SOUND4 "Äänikortti 4:" +#define STR_MIDI_OUT "MIDI-ulostulo:" +#define STR_MIDI_IN "MIDI-sisääntulo:" +#define STR_MPU401 "Erillinen MPU-401" +#define STR_FLOAT "Käytä FLOAT32-ääntä" +#define STR_FM_DRIVER "FM-syntetisaattoriohjain" +#define STR_FM_DRV_NUKED "Nuked (tarkempi)" +#define STR_FM_DRV_YMFM "YMFM (nopeampi)" + +#define STR_NET_TYPE "Verkon tyyppi:" +#define STR_PCAP "PCap-laite:" +#define STR_NET "Verkkokortti:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "COM1-laite:" +#define STR_COM2 "COM2-laite:" +#define STR_COM3 "COM3-laite:" +#define STR_COM4 "COM4-laite:" +#define STR_LPT1 "LPT1-laite:" +#define STR_LPT2 "LPT2-laite:" +#define STR_LPT3 "LPT3-laite:" +#define STR_LPT4 "LPT4-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_PARALLEL4 "Rinnakkaisportti 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#define STR_HDC "Kiintolevyohjain:" +#define STR_FDC "Levykeohjain:" +#define STR_IDE_TER "Kolmas IDE-ohjain" +#define STR_IDE_QUA "Neljäs 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_SPEED "Speed:" + +#define STR_SPECIFY "&Määritä..." +#define STR_SECTORS "Sektorit:" +#define STR_HEADS "Lukupää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_CD_SPEED "Nopeus:" + +#define STR_MO_DRIVES "Magneettisoptiset asemat (MO):" +#define STR_ZIP_DRIVES "ZIP-asemat:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA-RTC (kello):" +#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" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Virhe" + IDS_2050 "Vakava virhe" + IDS_2051 " - TAUKO" + IDS_2052 "Paina Ctrl+Alt+PgDn 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\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" + 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_2081 "Väylä" + IDS_2082 "Tiedosto" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "Mt" + IDS_2087 "Speed" + IDS_2088 "Tarkista BPB" + IDS_2089 "kt" + IDS_2090 "Videorenderöijän alustus epäonnistui" + IDS_2091 "Oletus" + IDS_2092 "%i odotustilaa" + IDS_2093 "Tyyppi" + IDS_2094 "PCap-asennus epäonnistui" + IDS_2095 "PCap-laitteita ei löytynyt" + IDS_2096 "Virheellinen PCap-laite" + IDS_2097 "Standardi 2-painikkeinen peliohjain/-ohjaimet" + IDS_2098 "Standardi 4-painikkeinen peliohjain" + IDS_2099 "Standardi 6-painikkeinen peliohjain" + IDS_2100 "Standardi 8-painikkeinen peliohjain" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Ei mikään" + IDS_2105 "Näppäinkiihdyttimien lataus epäonnistui" + IDS_2106 "Raakasyötteen rekisteröinti epäonnistui" + IDS_2107 "%u" + IDS_2108 "%u Mt (CHS: %i, %i, %i)" + IDS_2109 "Levyke %i (%s): %ls" + IDS_2110 "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_2113 "Haluatko varmasti käynnistää emuloidun tietokoneen uudelleen?" + IDS_2114 "Haluatko varmasti sulkea 86Boxin?" + IDS_2115 "Ghostscriptin alustus epäonnistui" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "MO-levykuvat (*.IM?;*.MDI)\0*.IM?;*.MDI\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2118 "Tervetuloa 86Boxiin!" + IDS_2119 "Sisäinen ohjain" + IDS_2120 "Poistu" + IDS_2121 "ROM-tiedostoja ei löytynyt" + IDS_2122 "Tallennetaanko asetukset?" + IDS_2123 "Tämä käynnistää emuloidun tietokoneen uudelleen." + IDS_2124 "Tallenna" + IDS_2125 "Tietoja 86Box:sta" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Vanhojen tietokoneiden emulaattori\n\nTekijät: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne ja muut.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho ja muut.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa." + IDS_2128 "OK" + IDS_2129 "Laitteisto ei ole saatavilla" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Varmista, että " LIB_NAME_PCAP " on asennettu ja että verkkoyhteytesi on " LIB_NAME_PCAP "-yhteensopiva." + IDS_2131 "Virheelliset määritykset" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " vaaditaan PostScript-tiedostojen automaattiseen muuntamiseen PDF-tiedostoiksi.\n\nKaikki geneeriselle PostScript-tulostimelle lähetetyt asiakirjat tallennetaan PostScript (.ps) -tiedostoina." + IDS_2135 "Siirrytään koko näytön tilaan" + IDS_2136 "Älä näytä tätä viestiä uudelleen" + IDS_2137 "Älä poistu" + IDS_2138 "Käynnistä uudelleen" + IDS_2139 "Älä käynnistä uudelleen" + IDS_2140 "MO-levykuvat (*.IM?;*.MDI)\0*.IM?;*.MDI\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2141 "CD-ROM-levykuvat (*.ISO;*.CUE)\0*.ISO;*.CUE\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2142 "%hs - Laitteen määritykset" + IDS_2143 "Näyttö lepotilassa" + IDS_2144 "OpenGL-varjostinohjelmat (*.GLSL)\0*.GLSL\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2145 "OpenGL-asetukset" + IDS_2146 "Olet lataamassa ei-tuettuja määrittelyjä" + IDS_2147 "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_2148 "Jatka" + IDS_2149 "Kasetti: %s" + IDS_2150 "Kasettitiedostot (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2151 "ROM-moduuli %i: %ls" + IDS_2152 "ROM-moduulikuvat (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Kaikki tiedostot (*.*)\0*.*\0" + IDS_2153 "Virhe renderöijän alustuksessa" + IDS_2154 "OpenGL (3.0 Core) -renderöijän alustus epäonnistui. Käytä toista renderöijää." + IDS_2155 "Jatka suoritusta" + IDS_2156 "Pysäytä suoritus" + IDS_2157 "Paina Ctrl+Alt+Del" + IDS_2158 "Paina Ctrl+Alt+Esc" + IDS_2159 "Kylmä uudelleenkäynnistys" + IDS_2160 "ACPI-sammutus" + IDS_2161 "Asetukset" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +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 korvataan. Oletko varma, että haluat käyttää sitä?" + IDS_4119 "Levykuvaa ei tueta" + IDS_4120 "Korvaa" + IDS_4121 "Älä korvaa" + 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 "Ei käytössä" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Ei käytössä" + 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"" 128 Mt (ISO 10090)" + IDS_5903 "3.5"" 230 Mt (ISO 13963)" + IDS_5904 "3.5"" 540 Mt (ISO 15498)" + IDS_5905 "3.5"" 640 Mt (ISO 15498)" + IDS_5906 "3.5"" 1.3 Gt (GigaMO)" + IDS_5907 "3.5"" 2.3 Gt (GigaMO 2)" + IDS_5908 "5.25"" 600 Mt" + IDS_5909 "5.25"" 650 Mt" + IDS_5910 "5.25"" 1 Gt" + IDS_5911 "5.25"" 1.3 Gt" + + 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 +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc new file mode 100644 index 0000000000..d957f0a8f5 --- /dev/null +++ b/src/win/languages/fr-FR.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// French (fr-FR) resources + +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Action" + BEGIN + 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 "&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 "&Quitter...", IDM_ACTION_EXIT + END + POPUP "&Vue" + BEGIN + MENUITEM "&Masquer la barre de status", IDM_VID_HIDE_STATUS_BAR + MENUITEM "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "Fenètre &Retaillable", IDM_VID_RESIZE + MENUITEM "S&auvegarder taille && position", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "Moteur de &rendu vidéo" + BEGIN + MENUITEM "&SDL (Logiciel)", IDM_VID_SDL_SW + MENUITEM "SDL (&Materiel)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Specifier dimensions...", IDM_VID_SPECIFY_DIM + MENUITEM "F&orcer 4:3", IDM_VID_FORCE43 + POPUP "&Echelle facteur" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Methode Filtre" + BEGIN + MENUITEM "&Plus proche", IDM_VID_FILTER_NEAREST + MENUITEM "&Lineaire", IDM_VID_FILTER_LINEAR + END + MENUITEM "Mise à l'échelle Hi&DPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Plein Ecran\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "Mode &Elargi plein écran" + BEGIN + MENUITEM "&Plein écran étiré", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "pixels &Carrés(Keep ratio)", IDM_VID_FS_KEEPRATIO + MENUITEM "Echelle &Entière", IDM_VID_FS_INT + END + POPUP "Réglages E&GA/(S)VGA" + BEGIN + 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 + MENUITEM "Moniteur &Ambre", IDM_VID_GRAY_AMBER + MENUITEM "Moniteur &Vert", IDM_VID_GRAY_GREEN + MENUITEM "Moniteur &Blanc", 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 "&Moyenne", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "CGA/PCjr/Tandy/E&GA/(S)VGA overscan", IDM_VID_OVERSCAN + MENUITEM "Modifier contraste affichage &monochrome", IDM_VID_CGACON + END + MENUITEM "&Media", IDM_MEDIA + POPUP "Ou&tils" + BEGIN + MENUITEM "&Réglages...", IDM_CONFIG + MENUITEM "Mettre à jour la barre de stat&us", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Copie &Ecran\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Préférences...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Activer intégration &Discord", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Gain Son...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Démarrer traces\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Finir traces\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Aide" + BEGIN + MENUITEM "&Documentation...", IDM_DOCS + MENUITEM "&A Propos de 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nouvelle image...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Image &Existante...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Image Existante(&Lecture seule)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + 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&jecter", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Image...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "E&jecter", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nouvelle image...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Image &Existante...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Image Existante(&Lecture seule)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&xport vers 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "E&jecter", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Couper", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "E&jecter", IDM_CDROM_EMPTY + MENUITEM "&Recharger image précedente", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Image...", IDM_CDROM_IMAGE + MENUITEM "&Dossier...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nouvelle image...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Image &Existante...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Image Existante (&Lecture Seule)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&jecter", IDM_ZIP_EJECT + MENUITEM "&Recharger image précédente", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nouvelle image...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Image &Existante...", IDM_MO_IMAGE_EXISTING + MENUITEM "Image Existante (&Lecture Seule)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&jecter", IDM_MO_EJECT + MENUITEM "&Recharger image précédente", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "&Taux de rafraîchissement cible" + BEGIN + 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 "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 + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Préférences" +#define STR_SND_GAIN "Gain son" +#define STR_NEW_FLOPPY "Nouvelle image" +#define STR_CONFIG "Réglages" +#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 "Sauvegarder 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 "Mode RPM:" +#define STR_PROGRESS "Progrès:" + +#define STR_WIDTH "Largeur:" +#define STR_HEIGHT "Hauteur:" +#define STR_LOCK_TO_SIZE "Verrouiller à cette taille" + +#define STR_MACHINE_TYPE "Type de machine:" +#define STR_MACHINE "Machine:" +#define STR_CONFIGURE "Configurer" +#define STR_CPU_TYPE "Type du processeur:" +#define STR_CPU_SPEED "Vitesse:" +#define STR_FPU "FPU:" +#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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Cache" + +#define STR_VIDEO "Vidéo:" +#define STR_VIDEO_2 "Vidéo 2:" +#define STR_VOODOO "Graphique Voodoo" +#define STR_IBM8514 "Graphique IBM 8514/A" +#define STR_XGA "Graphique XGA" + +#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_SOUND1 "Carte son 1:" +#define STR_SOUND2 "Carte son 2:" +#define STR_SOUND3 "Carte son 3:" +#define STR_SOUND4 "Carte son 4:" +#define STR_MIDI_OUT "Sortie MIDI:" +#define STR_MIDI_IN "Entrée MIDI:" +#define STR_MPU401 "MPU-401 autonome" +#define STR_FLOAT "Utiliser le son FLOAT32" +#define STR_FM_DRIVER "Pilote de synthétiseur FM" +#define STR_FM_DRV_NUKED "Nuked (plus précis)" +#define STR_FM_DRV_YMFM "YMFM (plus rapide)" + +#define STR_NET_TYPE "Type de réseau:" +#define STR_PCAP "Dispositif PCap:" +#define STR_NET "Adaptateur de réseau:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Dispositif COM1:" +#define STR_COM2 "Dispositif COM2:" +#define STR_COM3 "Dispositif COM3:" +#define STR_COM4 "Dispositif COM4:" +#define STR_LPT1 "Dispositif LPT1:" +#define STR_LPT2 "Dispositif LPT2:" +#define STR_LPT3 "Dispositif LPT3:" +#define STR_LPT4 "Dispositif LPT4:" +#define STR_SERIAL1 "Port série 1" +#define STR_SERIAL2 "Port série 2" +#define STR_SERIAL3 "Port série 3" +#define STR_SERIAL4 "Port série 4" +#define STR_PARALLEL1 "Port parallèle 1" +#define STR_PARALLEL2 "Port parallèle 2" +#define STR_PARALLEL3 "Port parallèle 3" +#define STR_PARALLEL4 "Port parallèle 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#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 "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 "Disques durs:" +#define STR_NEW "&Nouveau..." +#define STR_EXISTING "&Existant..." +#define STR_REMOVE "&Supprimer" +#define STR_BUS "Bus:" +#define STR_CHANNEL "Canal:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#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 "Format Image:" +#define STR_BLOCK_SIZE "Taille du bloc:" + +#define STR_FLOPPY_DRIVES "Lecteurs de disquettes:" +#define STR_TURBO "Turbo" +#define STR_CHECKBPB "Vérifier BPB" +#define STR_CDROM_DRIVES "Lecterus CD-ROM:" +#define STR_CD_SPEED "Vitesse:" + +#define STR_MO_DRIVES "Lecteurs magnéto-optiques:" +#define STR_ZIP_DRIVES "Lecteurs ZIP:" +#define STR_250 "ZIP 250" + +#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" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Erreur" + IDS_2050 "Erreur fatale" + IDS_2051 " - PAUSED" + IDS_2052 "Appuyez sur Ctrl+Alt+PgDn pour revenir au mode fenêtré." + IDS_2053 "Vitesse" + IDS_2054 "ZIP %03i %i (%s): %ls" + 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 "Activé" + 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 dans le répertoire roms/machines. Basculer vers une machine disponible." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "La carte vidéo ""%hs"" n'est pas disponible en raison de l'absence de ROMs dans le répertoire roms/video. Basculer vers une carte vidéo disponible." + IDS_2065 "Machine" + 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_2081 "Bus" + IDS_2082 "File" + IDS_2083 "C" + IDS_2084 "T" + IDS_2085 "S" + IDS_2086 "Mo" + IDS_2087 "Speed" + IDS_2088 "Vérifier BPB" + IDS_2089 "Ko" + IDS_2090 "Impossible d'initialiser le moteur de rendu vidéo." + IDS_2091 "Défaut" + IDS_2092 "%i état(s) d'attente" + IDS_2093 "Type" + IDS_2094 "Impossible d'initialiser PCap" + IDS_2095 "Aucun dispositif PCap trouvé" + IDS_2096 "Dispositif PCap non valide" + IDS_2097 "Manette(s) standard avec 2 boutons" + IDS_2098 "Manette standard avec 4 boutons" + IDS_2099 "Manette standard avec 6 boutons" + IDS_2100 "Manette standard avec 6 boutons" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Système de contrôle de vol Thrustmaster" + IDS_2104 "Aucun" + IDS_2105 "Impossible de charger les accélérateurs de clavier." + IDS_2106 "Impossible de charger l'entrée raw." + IDS_2107 "%u" + IDS_2108 "%u Mo (CTS: %i, %i, %i)" + IDS_2109 "Disquette %i (%s): %ls" + IDS_2110 "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_2113 "Etes-vous sûr de vouloir réinitialiser la machine émulée ?" + IDS_2114 "Etes-vous sûr de vouloir quitter 86Box?" + IDS_2115 "Impossible d'initialiser Ghostscript" + IDS_2116 "Magnéto-optique %i (%ls): %ls" + IDS_2117 "Images magnéto-optiques (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tous les fichiers (*.*)\0*.*\0" + IDS_2118 "Bienvenue dans 86Box !" + IDS_2119 "Côntrolleur interne" + IDS_2120 "Sortir" + IDS_2121 "Pas de ROMs trouvées" + IDS_2122 "Voulez-vous sauvegarder les paramètres ?" + IDS_2123 "Cela entraînera la réinitialisation complète de la machine émulée." + IDS_2124 "Sauvegarder" + IDS_2125 "À propos de 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Un émulateur de vieux ordinateurs\n\nAuteurs: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, 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_2128 "OK" + IDS_2129 "Matériel non disponible" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Assurez-vous que " LIB_NAME_PCAP " est installé et que vou utilisez une connexion réseau compatible avec " LIB_NAME_PCAP "." + IDS_2131 "Configuration non valide" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 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)." + IDS_2135 "Entrer en mode plein écran" + IDS_2136 "Ne pas montrer ce message à nouveau" + IDS_2137 "Ne pas sortir" + IDS_2138 "Réinitialiser" + IDS_2139 "Ne pas réinitialiser" + IDS_2140 "Images magnéto-optiques (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tous les fichiers (*.*)\0*.*\0" + IDS_2141 "Images CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Tous les fichiers (*.*)\0*.*\0" + IDS_2142 "Configuration du dispositif %hs" + IDS_2143 "Moniteur en mode veille" + IDS_2144 "Shaders OpenGL (*.GLSL)\0*.GLSL\0Tous les fichiers (*.*)\0*.*\0" + IDS_2145 "Options OpenGL" + IDS_2146 "Vous chargez une configuration non prise en charge" + IDS_2147 "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_2148 "Continuer" + IDS_2149 "Cassette: %s" + IDS_2150 "Images cassette (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tous les fichiers (*.*)\0*.*\0" + IDS_2151 "Cartouche %i: %ls" + IDS_2152 "Images cartouche (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Tous les fichiers (*.*)\0*.*\0" + IDS_2153 "Error initializing renderer" + IDS_2154 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." + IDS_2155 "Resume execution" + IDS_2156 "Pause execution" + IDS_2157 "Press Ctrl+Alt+Del" + IDS_2158 "Press Ctrl+Alt+Esc" + IDS_2159 "Hard reset" + IDS_2160 "ACPI shutdown" + IDS_2161 "Settings" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Disque dur (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + 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 avoir une taille supériure à Go." + IDS_4105 "Les images de disque ne peuvent pas avoir un taille supérieure à 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 différente de 512 non sont pas prises en charge." + IDS_4110 "USB n'est pas encore pris en charge." + IDS_4111 "Le fichier de l'image disque existe déjà." + 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 le fichier en cours d'enregistrement se trouve dans un répertoire accessible en écriture." + IDS_4116 "Image 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 disque 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 Mo)" + IDS_4129 "Blocs petits (512 Ko)" + IDS_4130 "Fichiers VHD (*.VHD)\0*.VHD\0Tous les fichiers (*.*)\0*.*\0" + IDS_4131 "Sélectionnez le VHD parent" + IDS_4132 "Il est possible que l'image parente a été modifié après la création de l'image à différenciation.\n\nIl est même possible que les fichiers de l'mage ont été déplacés ou copiés ou il existe un bogue dans le programme que a créé ce disque.\n\nVoulez-vous 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" + 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 "Désactivé" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Désactivé" + IDS_5637 "ATAPI (%01i:%01i)" + IDS_5638 "SCSI (%01i:%02i)" + + IDS_5888 "160 Ko" + IDS_5889 "180 Ko" + IDS_5890 "320 Ko" + IDS_5891 "360 Ko" + IDS_5892 "640 Ko" + IDS_5893 "720 Ko" + IDS_5894 "1.2 Mo" + IDS_5895 "1.25 Mo" + IDS_5896 "1.44 Mo" + IDS_5897 "DMF (cluster 1024)" + IDS_5898 "DMF (cluster 2048)" + IDS_5899 "2.88 Mo" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128 Mo (ISO 10090)" + IDS_5903 "3.5"" 230 Mo (ISO 13963)" + IDS_5904 "3.5"" 540 Mo (ISO 15498)" + IDS_5905 "3.5"" 640 Mo (ISO 15498)" + IDS_5906 "3.5"" 1.3 Go (GigaMO)" + IDS_5907 "3.5"" 2.3 Go (GigaMO 2)" + IDS_5908 "5.25"" 600 Mo" + IDS_5909 "5.25"" 650 Mo" + IDS_5910 "5.25"" 1 Go" + IDS_5911 "5.25"" 1.3 Go" + + 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 "(Défaut du système)" +END +#define IDS_LANG_ENUS IDS_7168 + +// French (F.R.) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc new file mode 100644 index 0000000000..afa5de5dbb --- /dev/null +++ b/src/win/languages/hr-HR.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// 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 "&Radnje" + BEGIN + MENUITEM "&Tipkovnica zahtijeva hvatanje miša", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Desni CTRL je lijevi ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Ponovno pokretanje...", 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 "Iz&laz...", IDM_ACTION_EXIT + END + POPUP "&Pogled" + BEGIN + MENUITEM "&Sakrij statusni redak", IDM_VID_HIDE_STATUS_BAR + MENUITEM "&Sakrij alatni redak", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Prozor s promjenjivim veličinama", IDM_VID_RESIZE + MENUITEM "&Zapamtite veličinu i položaj", 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 + MENUITEM "Open&GL (3.0 jezgra)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Odrediti veličinu...", IDM_VID_SPECIFY_DIM + MENUITEM "&4:3 omjer prikaza", IDM_VID_FORCE43 + POPUP "&Faktor skaliranja 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Metoda filtriranja" + BEGIN + MENUITEM "&Najbliža", IDM_VID_FILTER_NEAREST + MENUITEM "&Linearna", IDM_VID_FILTER_LINEAR + END + MENUITEM "&HiDPI skaliranje", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Cijelozaslonski način\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "&Način cijelozaslonskog rastezanja" + BEGIN + MENUITEM "&Razvuci na cijeli zaslona", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Kvadratni pikseli (zadrži omjer)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Cijelobrojno skaliranje", IDM_VID_FS_INT + END + POPUP "E&GA/(S)VGA postavke" + BEGIN + MENUITEM "&Obrni boje zaslona VGA", IDM_VID_INVERT + POPUP "&Tip zaslona VGA" + BEGIN + MENUITEM "RGB u &boji", IDM_VID_GRAY_RGB + MENUITEM "&RGB u nijansama sive boje", IDM_VID_GRAY_MONO + MENUITEM "&Jantarni zaslon", IDM_VID_GRAY_AMBER + MENUITEM "&Zeleni zaslon", IDM_VID_GRAY_GREEN + MENUITEM "&Bijeli zaslon", IDM_VID_GRAY_WHITE + END + POPUP "&Vrsta konverzije nijansa sive boje" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Prosjek", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "&Višak slike CGA/PCjr/Tandy/EGA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "&Promjeni kontrast za crno-bijeli zaslon", IDM_VID_CGACON + END + MENUITEM "&Mediji", IDM_MEDIA + POPUP "&Alati" + BEGIN + MENUITEM "&Opcije...", IDM_CONFIG + MENUITEM "&Ažuriraj ikone statusnog redka", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Napravi &snimku zaslona\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Postavke...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Omogući integraciju sa programom &Discord", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Pojačanje zvuka...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Z&apočni praćenje\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "&Svrši praćenje\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + 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 "&Postojeća slika...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Postojeća slika (&zaštićena od pisanja)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Snimi", IDM_CASSETTE_RECORD + MENUITEM "&Pokreni", IDM_CASSETTE_PLAY + MENUITEM "P&remotaj na početak", IDM_CASSETTE_REWIND + MENUITEM "&Preskoči do kraja", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Slika...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova slika...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Postojeća slika...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Postojeća slika (&zaštićena od pisanja)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Izvozi u 86F...", 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 sliku", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Slika...", IDM_CDROM_IMAGE + MENUITEM "&Mapa...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova slika...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Postojeća slika...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Postojeća slika (&zaštićena od pisanja)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_ZIP_EJECT + MENUITEM "&Ponovo učitaj prethodnu sliku", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova slika...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Postojeća slika...", IDM_MO_IMAGE_EXISTING + MENUITEM "Postojeća slika (&zaštićena od pisanja)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Izbaci", IDM_MO_EJECT + MENUITEM "&Ponovo učitaj prethodnu sliku", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "&Ciljni broj okvira u sekundi" + BEGIN + MENUITEM "&Sinkroniziraj 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 + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Postavke" +#define STR_SND_GAIN "Pojačavanje zvuka" +#define STR_NEW_FLOPPY "Nova slika" +#define STR_CONFIG "Opcije" +#define STR_SPECIFY_DIM "Odredite glavne dimenzije prozora" + +#define STR_OK "U redu" +#define STR_CANCEL "Otkaži" +#define STR_GLOBAL "Spremite ove postavke kao &globalne zadane postavke" +#define STR_DEFAULT "Zadano" +#define STR_LANGUAGE "Jezik:" +#define STR_ICONSET "Paket ikona:" + +#define STR_GAIN "Pojačavanje" + +#define STR_FILE_NAME "Ime datoteke:" +#define STR_DISK_SIZE "Veličina diska:" +#define STR_RPM_MODE "Način broja okretaja:" +#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 sistema:" +#define STR_MACHINE "Sistem:" +#define STR_CONFIGURE "Namjesti" +#define STR_CPU_TYPE "Tip procesora:" +#define STR_CPU_SPEED "Brzina:" +#define STR_FPU "FPU uređaj:" +#define STR_WAIT_STATES "Stanja čekanja:" +#define STR_MB "MB" +#define STR_MEMORY "Memorija:" +#define STR_TIME_SYNC "Sinkronizacija vremena" +#define STR_DISABLED "Isključeno" +#define STR_ENABLED_LOCAL "Uključeno (lokalno vrijeme)" +#define STR_ENABLED_UTC "Uključeno (UTC)" +#define STR_DYNAREC "Dinamički rekompilator" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Predmemorija" + +#define STR_VIDEO "Video:" +#define STR_VIDEO_2 "Video 2:" +#define STR_VOODOO "Voodoo grafika" +#define STR_IBM8514 "IBM 8514/A grafika" +#define STR_XGA "XGA grafika" + +#define STR_MOUSE "Miš:" +#define STR_JOYSTICK "Palica za igru:" +#define STR_JOY1 "Palica za igru 1..." +#define STR_JOY2 "Palica za igru 2..." +#define STR_JOY3 "Palica za igru 3..." +#define STR_JOY4 "Palica za igru 4..." + +#define STR_SOUND1 "Zvučna kartica 1:" +#define STR_SOUND2 "Zvučna kartica 2:" +#define STR_SOUND3 "Zvučna kartica 3:" +#define STR_SOUND4 "Zvučna kartica 4:" +#define STR_MIDI_OUT "Izlazni uređaj MIDI:" +#define STR_MIDI_IN "Ulazni uređaj MIDI:" +#define STR_MPU401 "Samostalni MPU-401" +#define STR_FLOAT "Koristi FLOAT32 za zvuk" +#define STR_FM_DRIVER "Drajver za FM sintisajzer" +#define STR_FM_DRV_NUKED "Nuked (precizniji)" +#define STR_FM_DRV_YMFM "YMFM (brži)" + +#define STR_NET_TYPE "Tip mreže:" +#define STR_PCAP "Uređaj PCap:" +#define STR_NET "Mrežna kartica:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Uređaj COM1:" +#define STR_COM2 "Uređaj COM2:" +#define STR_COM3 "Uređaj COM3:" +#define STR_COM4 "Uređaj COM4:" +#define STR_LPT1 "Uređaj LPT1:" +#define STR_LPT2 "Uređaj LPT2:" +#define STR_LPT3 "Uređaj LPT3:" +#define STR_LPT4 "Uređaj LPT4:" +#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_PARALLEL4 "Paralelna vrata 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#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 "&Novi..." +#define STR_EXISTING "&Postojeći..." +#define STR_REMOVE "&Ukloni" +#define STR_BUS "Sabirnica:" +#define STR_CHANNEL "Kanal:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Odredi..." +#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 slike:" +#define STR_BLOCK_SIZE "Veličina slike:" + +#define STR_FLOPPY_DRIVES "Disketni pogoni:" +#define STR_TURBO "Turbo vrijemena" +#define STR_CHECKBPB "Provjeraj BPB" +#define STR_CDROM_DRIVES "CD-ROM pogoni:" +#define STR_CD_SPEED "Brzina:" + +#define STR_MO_DRIVES "MO pogoni:" +#define STR_ZIP_DRIVES "ZIP pogoni:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "Sat stvarnog vremena (RTC):" +#define STR_ISAMEM "Proširenje memorije 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 "Uređaj 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 "Greška" + IDS_2050 "Fatalna greška" + IDS_2051 " - PAUSED" + IDS_2052 "Pritisnite Ctrl+Alt+PgDn za povratak u prozorski način rada." + IDS_2053 "Brzina" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP slike (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box nije mogao pronaći upotrebljive ROM datoteke.\n\nMolimte posjetite sknite paket s ROM datotekama i ekstrahirajte paket u ""roms"" mapu." + IDS_2057 "(prazno)" + IDS_2058 "ZIP slike (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Sve datoteke (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Uključeno" + IDS_2061 "Isključeno" + IDS_2062 "Sve slike (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0BOsnovne sektorske slike (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Površinske slike (*.86F)\0*.86F\0" + IDS_2063 "Sistem ""%hs"" nije dostupan jer ne postoje potrebni ROM-ovi u mapu roms/machines. Prebacivanje na dostupno računalo." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Video kartica ""%hs"" nije dostupna jer ne postoje potrebni ROM-ovi u mapu roms/video. Prebacivanje na dostupnu video karticu." + IDS_2065 "Sistem" + IDS_2066 "Video" + IDS_2067 "Ulazni uređaji" + IDS_2068 "Zvuk" + IDS_2069 "Mreža" + IDS_2070 "Vrata (COM & LPT)" + IDS_2071 "Kontroleri za diskove" + 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šinske slike (*.86F)\0*.86F\0" + IDS_2077 "Kliknite da uhvatite miš" + IDS_2078 "Pritisnite F8+F12 za otpustanje miša" + IDS_2079 "Pritisnite F8+F12 ili srednji gumb miša za otpuštanje miša" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Bus" + IDS_2082 "Datoteka" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Provjeri BPB" + IDS_2089 "KB" + IDS_2090 "Nije moguće inicijalizirati renderer." + IDS_2091 "Standard" + IDS_2092 "%i stanje čekanja" + IDS_2093 "Tip" + IDS_2094 "Postavljanje PCap-a nije uspjelo" + IDS_2095 "Nema PCap uređaja" + IDS_2096 "Nevažeći PCap uređaj" + IDS_2097 "Standardna palica za igru s 2 tipke" + IDS_2098 "Standardna palica za igru s 4 tipke" + IDS_2099 "Standardna palica za igru s 6 tipke" + IDS_2100 "Standardna palica za igru s 8 tipke" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Bez" + IDS_2105 "Nije moguće učitati ubrzivače tipkovnice." + IDS_2106 "Nije moguće registrirati neobrađeni unos." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Disketa %i (%s): %ls" + IDS_2110 "Sve 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?\0Flux slike (*.FDI)\0*.FDI\0Površinske slike (*.86F;*.MFM)\0*.86F;*.MFM\0Sve datoteke (*.*)\0*.*\0" + IDS_2113 "Jeste li sigurni da želite hard resetirati emulirani sistem?" + IDS_2114 "Jeste li sigurni da želite zatvoriti 86Box?" + IDS_2115 "Nije moguće inicijalizirati GhostScript" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "MO slike (*.IM?;*.MDI)\0*.IM?;*.MDI\0Svi datoteke (*.*)\0*.*\0" + IDS_2118 "Dobrodošli u 86Box!" + IDS_2119 "Uunutarnji kontroler" + IDS_2120 "Izlazi" + IDS_2121 "Nisu pronađene ROM datoteke" + IDS_2122 "Želite li spremiti postavke?" + IDS_2123 "Ovo će napraviti hard resetiranje emuliranog sistema." + IDS_2124 "Spremaj" + IDS_2125 "O programu 86Box" + IDS_2126 "86Box verzija " EMU_VERSION + + IDS_2127 "Emulator starih računala\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, i drugi.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, i drugi.\n\nPreveo: dob205\n\nObjavljeno pod licencom GNU General Public License, verzija 2 ili novije. Za više informacija pogledajte datoteku LICENCE." + IDS_2128 "U redu" + IDS_2129 "Hardver nije dostupan" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Provjerite je li " LIB_NAME_PCAP " instaliran i jeste li na mreži, kompadibilnoj s " LIB_NAME_PCAP "." + IDS_2131 "Nevažeća konfiguracija" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " je potrebno za automatsku konverziju PostScript datoteke u PDF datoteke.\n\nSvi dokumenti poslani na generički PostScript pisač bit će spremljeni kao PostScript (.ps) datoteke." + IDS_2135 "Ulazim u cijelozaslonski način" + IDS_2136 "Ne pokazi više ovu poruku" + IDS_2137 "Ne izlazi" + IDS_2138 "Resetiraj" + IDS_2139 "Ne resetiraj" + IDS_2140 "MO slike (*.IM?;*.MDI)\0*.IM?;*.MDI\0Sve datoteke (*.*)\0*.*\0" + IDS_2141 "CD-ROM slike (*.ISO;*.CUE)\0*.ISO;*.CUE\0Sve datoteke (*.*)\0*.*\0" + IDS_2142 "Konfiguracija uređaja %hs " + IDS_2143 "Ekran u stanju mirovanja" + IDS_2144 "OpenGL shaderi (*.GLSL)\0*.GLSL\0Sve datoteke (*.*)\0*.*\0" + IDS_2145 "OpenGL opcije" + IDS_2146 "Učitavate nepodržanu konfiguraciju" + IDS_2147 "Filtriranje tipa CPU-a na temelju odabranog sistema onemogućeno je za ovaj emulirani sistem.\n\nOvo omogućuje odabir procesora koji inače nisu kompatibilne s odabranog sistem. Međutim, možete naići na na nekompatibilnosti s BIOS-om sustava 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_2148 "Nastavi" + IDS_2149 "Audio kaseta: %s" + IDS_2150 "Slike audio kasete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Sve datoteke (*.*)\0*.*\0" + IDS_2151 "Kaseta %i: %ls" + IDS_2152 "Slike kasete (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Sve datoteke (*.*)\0*.*\0" + IDS_2153 "Nije moguće inicijalizirati renderer" + IDS_2154 "Nije moguće inicijalizirati OpenGL (3.0 jezgra) renderer. Molimte koristite drugi renderer." + IDS_2155 "Nastavi" + IDS_2156 "Pauziraj" + IDS_2157 "Stisni Ctrl+Alt+Del" + IDS_2158 "Stisni Ctrl+Alt+Esc" + IDS_2159 "Ponovno pokretanje" + IDS_2160 "ACPI bazirano gašenje" + IDS_2161 "Postavke" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Tvrdi disk (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLL ili ESDI CD-ROM pogoni 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 datoteke ne mogu biti veće od 4 GB." + IDS_4105 "Slike tvrdog diska ne mogu biti veće od 127 GB." + IDS_4106 "Slike za tvrde diskove (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Sve datoteke (*.*)\0*.*\0" + IDS_4107 "Nije moguće pročitati datoteku" + IDS_4108 "Nije moguće napisati datoteku" + IDS_4109 "HDI ili HDX slike s veličinom sektora koja nije 512 kB nisu podržane." + IDS_4110 "USB nije još podržano" + IDS_4111 "Slika diska već postoji" + IDS_4112 "Molimte unesite važeći naziv datoteke." + IDS_4113 "Slika je stvorena" + IDS_4114 "Provjerite je li postoji datoteka i je li čitljiva." + IDS_4115 "Provjerite je li se datoteka sprema u mapu s dopuštenjima za pisanje." + IDS_4116 "Slika diska je prevelika" + IDS_4117 "Ne zaboravite stvoriti particije i formatirati ih na novom disku." + IDS_4118 "Odabrana datoteka bit će prebrisana. Jeste li sigurni da želite koristiti ovu daoteku?" + IDS_4119 "Nepodržana slika diska" + IDS_4120 "Prepiši" + IDS_4121 "Ne prepiši" + IDS_4122 "Slika neobrađenih podataka (.img)" + IDS_4123 "HDI slika (.hdi)" + IDS_4124 "HDX slika (.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 slike (*.VHD)\0*.VHD\0Sve datoteke (*.*)\0*.*\0" + IDS_4131 "Izaberi matičnu sliku VHD" + IDS_4132 "To bi moglo značiti da je matična slika promijenjena nakon što je stvorena različita slika.\n\nTo se također može dogoditi ako su slike 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 "Ne mogu popraviti vremensku oznaku slike 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 "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"" 128 MB (ISO 10090)" + IDS_5903 "3,5"" 230 MB (ISO 13963)" + IDS_5904 "3,5"" 540 MB (ISO 15498)" + IDS_5905 "3,5"" 640 MB (ISO 15498)" + IDS_5906 "3,5"" 1.3 GB (GigaMO)" + IDS_5907 "3,5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5,25"" 600 MB" + IDS_5909 "5,25"" 650 MB" + IDS_5910 "5,25"" 1 GB" + IDS_5911 "5,25"" 1.3 GB" + + IDS_6144 "Savršeni broj okretaja u minuti" + 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 "(Zadana postavka operativnog sustava)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Croatian (hr-HR) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc new file mode 100644 index 0000000000..8457845c0d --- /dev/null +++ b/src/win/languages/hu-HU.rc @@ -0,0 +1,641 @@ +//////////////////////////////////////////////////////////////////////////// +// Hungarian resources +// +// Translated by Laci bá', 2021 +// + +//#define TRANSLATORS_NAME "Laci bá'" + +#ifdef _WIN32 +LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Művelet" + BEGIN + MENUITEM "A &billentyűzet elfogást igényel", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "A &jobb oldali CTRL a bal ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "Hardveres &újraindítás...", 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 "&Szüneteltetés", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "&Kilépés...", IDM_ACTION_EXIT + END + POPUP "&Nézet" + BEGIN + MENUITEM "Állapotsor &elrejtése", IDM_VID_HIDE_STATUS_BAR + MENUITEM "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Átméretezhető ablak", IDM_VID_RESIZE + MENUITEM "Méret és pozíció &megjegyzése", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Megjelenítő" + BEGIN + MENUITEM "&SDL (Szoftveres)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardveres)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Méretek kézi megadása...", IDM_VID_SPECIFY_DIM + MENUITEM "&Rögzített 4:3 képarány", IDM_VID_FORCE43 + POPUP "&Ablak méretezési tényező" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Szűrési mód" + BEGIN + MENUITEM "&Szomszédos", IDM_VID_FILTER_NEAREST + MENUITEM "&Lineáris", IDM_VID_FILTER_LINEAR + END + MENUITEM "Hi&DPI méretezés", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Teljes képernyő\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "Teljes képernyős &méretezés" + BEGIN + MENUITEM "&Nyújtás a teljes képernyőre", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Négyzetes képpontok (aránytartás)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Egész tényezős nagyítás", IDM_VID_FS_INT + END + POPUP "E&GA/(S)VGA beállítások" + BEGIN + MENUITEM "&Invertált VGA kijelző", IDM_VID_INVERT + POPUP "VGA képernyő &típusa" + BEGIN + MENUITEM "RGB &színes", IDM_VID_GRAY_RGB + MENUITEM "&RGB szürkeárnyalatos", IDM_VID_GRAY_MONO + MENUITEM "&Gyömbér kijelző", IDM_VID_GRAY_AMBER + MENUITEM "&Zöld kijelző", IDM_VID_GRAY_GREEN + MENUITEM "&Fehér kijelző", IDM_VID_GRAY_WHITE + END + POPUP "Szürkéskála &konzerziós eljárás" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Átlag szerint", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "CGA/PCjr/Tandy/E&GA/(S)VGA túlpásztázás", IDM_VID_OVERSCAN + MENUITEM "Kontraszt illesztése &monokróm kijelzőhöz", IDM_VID_CGACON + END + MENUITEM "&Média", IDM_MEDIA + POPUP "&Eszközök" + BEGIN + MENUITEM "&Konfigurálás...", IDM_CONFIG + MENUITEM "Állapotsori ikonok &frissítése", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "&Képernyőkép készítése\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Beállítások...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "&Discord integráció engedélyezése", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Hangerőszabályzó...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Nyomkövetés megkezdése\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Nyomkövetés befejezése\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Súgó" + BEGIN + MENUITEM "&Dokumentáció...", IDM_DOCS + MENUITEM "A 86Box &névjegye...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Új képfájl létrehozása...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Meglévő képfájl &megnyitása...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Meglévő képfájl megnyitása (&írásvédett)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Felvétel", IDM_CASSETTE_RECORD + MENUITEM "&Lejátszás", IDM_CASSETTE_PLAY + MENUITEM "&Visszatekerés az elejére", IDM_CASSETTE_REWIND + MENUITEM "&Előretekerés a végére", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "&Kiadás", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "Kép&fájl...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "&Kiadás", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Új képfájl létrehozása...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Meglévő képfájl &megnyitása...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Meglévő képfájl megnyitása (&írásvédett)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&xportálás 86F formátumba...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "&Kiadás", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Némítás", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&Kiadás", IDM_CDROM_EMPTY + MENUITEM "Előző képfájl &újratöltése", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Meglévő képfájl &megnyitása...", IDM_CDROM_IMAGE + MENUITEM "&Mappa...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Új képfájl létrehozása...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Meglévő képfájl &megnyitása...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Meglévő képfájl megnyitása (&írásvédett)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "Kiadás", IDM_ZIP_EJECT + MENUITEM "Előző képfájl &újratöltése", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Új képfájl létrehozása...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Meglévő képfájl &megnyitása...", IDM_MO_IMAGE_EXISTING + MENUITEM "Meglévő képfájl megnyitása (&írásvédett)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "Kiadás", IDM_MO_EJECT + MENUITEM "Előző képfájl &újratöltése", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Cél &képkockasebesség" + BEGIN + MENUITEM "&Szinkronizálás a videóval ", 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 "Shader &kiválasztása...", IDM_VID_GL_SHADER + MENUITEM "Shader &eltávolítása", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Beállítások" +#define STR_SND_GAIN "Hangerőszabályzó" +#define STR_NEW_FLOPPY "Új képfájl létrehozása" +#define STR_CONFIG "Konfigurálás" +#define STR_SPECIFY_DIM "Főablak méreteinek megadása" + +#define STR_OK "OK" +#define STR_CANCEL "Mégse" +#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ő" + +#define STR_FILE_NAME "Fájlnév:" +#define STR_DISK_SIZE "Méret:" +#define STR_RPM_MODE "RPM-mód:" +#define STR_PROGRESS "Folyamat:" + +#define STR_WIDTH "Szélesség:" +#define STR_HEIGHT "Magasság:" +#define STR_LOCK_TO_SIZE "Rögzítés a megadott méretre" + +#define STR_MACHINE_TYPE "Géptípus:" +#define STR_MACHINE "Számítógép:" +#define STR_CONFIGURE "Beállítások..." +#define STR_CPU_TYPE "Processzor:" +#define STR_CPU_SPEED "Seb.:" +#define STR_FPU "FPU-egység:" +#define STR_WAIT_STATES "Várak. ciklusok:" +#define STR_MB "MB" +#define STR_MEMORY "Memória:" +#define STR_TIME_SYNC "Idő szinkronizáció" +#define STR_DISABLED "Letiltva" +#define STR_ENABLED_LOCAL "Engedélyezve (helyi idő)" +#define STR_ENABLED_UTC "Engedélyezve (UTC)" +#define STR_DYNAREC "Dinamikus újrafordítás" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Gyorsítótár" + +#define STR_VIDEO "Videokártya:" +#define STR_VIDEO_2 "Videokártya 2:" +#define STR_VOODOO "Voodoo-gyorsítókártya" +#define STR_IBM8514 "IBM 8514/A-gyorsítókártya" +#define STR_XGA "XGA-gyorsítókártya" + +#define STR_MOUSE "Egér:" +#define STR_JOYSTICK "Játékvezérlő:" +#define STR_JOY1 "Játékvez. 1..." +#define STR_JOY2 "Játékvez. 2..." +#define STR_JOY3 "Játékvez. 3..." +#define STR_JOY4 "Játékvez. 4..." + +#define STR_SOUND1 "Hangkártya 1:" +#define STR_SOUND2 "Hangkártya 2:" +#define STR_SOUND3 "Hangkártya 3:" +#define STR_SOUND4 "Hangkártya 4:" +#define STR_MIDI_OUT "MIDI-kimenet:" +#define STR_MIDI_IN "MIDI-bemenet:" +#define STR_MPU401 "Különálló MPU-401" +#define STR_FLOAT "FLOAT32 használata" +#define STR_FM_DRIVER "FM szintetizátor meghajtó" +#define STR_FM_DRV_NUKED "Nuked (pontosabb)" +#define STR_FM_DRV_YMFM "YMFM (gyorsabb)" + +#define STR_NET_TYPE "Hálózati típusa:" +#define STR_PCAP "PCap eszköz:" +#define STR_NET "Hálózati kártya:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "COM1 eszköz:" +#define STR_COM2 "COM2 eszköz:" +#define STR_COM3 "COM3 eszköz:" +#define STR_COM4 "COM4 eszköz:" +#define STR_LPT1 "LPT1 eszköz:" +#define STR_LPT2 "LPT2 eszköz:" +#define STR_LPT3 "LPT3 eszköz:" +#define STR_LPT4 "LPT4 eszköz:" +#define STR_SERIAL1 "Soros port 1" +#define STR_SERIAL2 "Soros port 2" +#define STR_SERIAL3 "Soros port 3" +#define STR_SERIAL4 "Soros port 4" +#define STR_PARALLEL1 "Párhuzamos port 1" +#define STR_PARALLEL2 "Párhuzamos port 2" +#define STR_PARALLEL3 "Párhuzamos port 3" +#define STR_PARALLEL4 "Párhuzamos port 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#define STR_HDC "Merevl.-vezérlő:" +#define STR_FDC "Floppy-vezérlő:" +#define STR_IDE_TER "Harmadlagos IDE-vezérlő" +#define STR_IDE_QUA "Negyedleges IDE-vezérlő" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Gazdaadapt. 1:" +#define STR_SCSI_2 "Gazdaadapt. 2:" +#define STR_SCSI_3 "Gazdaadapt. 3:" +#define STR_SCSI_4 "Gazdaadapt. 4:" +#define STR_CASSETTE "Magnókazetta" + +#define STR_HDD "Merevlemezek:" +#define STR_NEW "&Új..." +#define STR_EXISTING "&Megnyitás..." +#define STR_REMOVE "&Eltávolítás" +#define STR_BUS "Busz:" +#define STR_CHANNEL "Csatorna:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Kiválasztás..." +#define STR_SECTORS "Szektor:" +#define STR_HEADS "Fej:" +#define STR_CYLS "Cilinder:" +#define STR_SIZE_MB "Méret (MB):" +#define STR_TYPE "Típus:" +#define STR_IMG_FORMAT "Formátum:" +#define STR_BLOCK_SIZE "Blokkméret:" + +#define STR_FLOPPY_DRIVES "Floppy-meghajtók:" +#define STR_TURBO "Turbó időzítés" +#define STR_CHECKBPB "BPB ellenőrzés" +#define STR_CDROM_DRIVES "CD-ROM meghajtók:" +#define STR_CD_SPEED "Seb.:" + +#define STR_MO_DRIVES "MO-meghajtók:" +#define STR_ZIP_DRIVES "ZIP-meghajtók:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA RTC (óra):" +#define STR_ISAMEM "ISA memóriabővítők" +#define STR_ISAMEM_1 "Kártya 1:" +#define STR_ISAMEM_2 "Kártya 2:" +#define STR_ISAMEM_3 "Kártya 3:" +#define STR_ISAMEM_4 "Kártya 4:" +#define STR_BUGGER "ISABugger eszköz" +#define STR_POSTCARD "POST kártya" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Hiba" + IDS_2050 "Végzetes hiba" + IDS_2051 " - PAUSED" + IDS_2052 "Használja a Ctrl+Alt+PgDn gombokat az ablakhoz való visszatéréshez." + IDS_2053 "Sebesség" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP-lemezképek (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "A 86Box nem talált használható ROM-képeket\n\nKérem töltse le a ROM készletet és bontsa ki a ""roms"" könyvtárba." + IDS_2057 "(üres)" + IDS_2058 "ZIP-lemezképek (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Minden fájl (*.*)\0*.*\0" + IDS_2059 "Turbó" + IDS_2060 "Bekapcsolva" + IDS_2061 "Kikapcsolva" + IDS_2062 "Minden képfájl (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Alapvető szektor képfájlok (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Felületi képfájlok (*.86F)\0*.86F\0" + IDS_2063 "A számítógép ""%hs"" nem elérhető a ""roms/machines"" mappából hiányzó ROM-képek miatt. Ehelyett egy másik gép kerül futtatásra." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "A videokártya ""%hs"" nem elérhető a ""roms/video"" mappából hiányzó ROM-képek miatt. Ehelyett egy másik kártya kerül futtatásra." + IDS_2065 "Számítógép" + IDS_2066 "Megjelenítő" + IDS_2067 "Beviteli eszközök" + IDS_2068 "Hang" + IDS_2069 "Hálózat" + IDS_2070 "Portok (COM és LPT)" + IDS_2071 "Tárolóvezérlők" + IDS_2072 "Merevlemezek" + IDS_2073 "Floppy és CD-ROM meghajtók" + IDS_2074 "Egyéb cserélhető tárolók" + IDS_2075 "Egyéb perifériák" + IDS_2076 "Felületi képfájlok (*.86F)\0*.86F\0" + IDS_2077 "Kattintson az egér elfogásához" + IDS_2078 "Nyomja meg az F8+F12-t az egér elengédéséhez" + IDS_2079 "Nyomja meg az F8+F12-t vagy a középső gombot az egér elengédéséhez" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Busz" + IDS_2082 "Fájl" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "BPB ellenőrzése" + IDS_2089 "KB" + IDS_2090 "Nem sikerült inicializálni a videó megjelenítőt." + IDS_2091 "Alapértelmezett" + IDS_2092 "%i várakozási ciklus(ok)" + IDS_2093 "Típus" + IDS_2094 "Nem sikerült a PCap beállítása" + IDS_2095 "Nem találhatóak PCap eszközök" + IDS_2096 "Érvénytelen PCap eszköz" + IDS_2097 "Szabványos 2-gombos játékvezérlő(k)" + IDS_2098 "Szabványos 4-gombos játékvezérlő" + IDS_2099 "Szabványos 6-gombos játékvezérlő" + IDS_2100 "Szabványos 8-gombos játékvezérlő" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Nincs" + IDS_2105 "Nem lehet betölteni a billentyűzetgyorsítókat." + IDS_2106 "A közvetlen nyers bevitel regisztrálása nem sikerült." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Floppy %i (%s): %ls" + IDS_2110 "Minden képfájl (*.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\0Továbbfejlesztett szektor képek (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Alapvető szektor képek (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Flux képekfájlok (*.FDI)\0*.FDI\0Felületi képfájlok (*.86F;*.MFM)\0*.86F;*.MFM\0Minden fájl (*.*)\0*.*\0" + IDS_2113 "Biztosan szeretné újraindítani az emulált gépet?" + IDS_2114 "Biztos benne, hogy ki szeretne lépni a 86Box-ból?" + IDS_2115 "Nem sikerült inicializálni a Ghostscript-et" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "MO-képfájlok (*.IM?;*.MDI)\0*.IM?;*.MDI\0Minden fájl (*.*)\0*.*\0" + IDS_2118 "Üdvözli önt az 86Box!" + IDS_2119 "Integrált vezérlő" + IDS_2120 "Kilépés" + IDS_2121 "Nem találhatóak meg a ROM-képek" + IDS_2122 "Szeretné menteni a beállításokat?" + IDS_2123 "Ezzel hardveresen újraindítja az emulált gépet." + IDS_2124 "Mentés" + IDS_2125 "A 86Box névjegye" + IDS_2126 "86Box v" EMU_VERSION + IDS_2127 "Régi számítógépek emulátora\n\nFejlesztők: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, 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_2128 "OK" + IDS_2129 "Hardver nem elérhető" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Győződjön meg hogy a(z) " LIB_NAME_PCAP " telepítve van és jelenleg a " LIB_NAME_PCAP "-kompatibilis kapcsolatot használja." + IDS_2131 "Érvénytelen konfiguráció" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " szükséges a PostScript fájlok PDF formátumba való automatikus konvertálásához.\n\nAz általános PostScript nyomtatóra küldött dokumentumok PostScript (.ps) fájlként kerülnek mentésre." + IDS_2135 "Teljes képernyős módra váltás" + IDS_2136 "Ne jelenítse meg újra ezt az üzenetet " + IDS_2137 "Ne lépjen ki" + IDS_2138 "Újraindítás" + IDS_2139 "Ne indítsa újra" + IDS_2140 "MO-képfájlok (*.IM?;*.MDI)\0*.IM?;*.MDI\0Minden fájl (*.*)\0*.*\0" + IDS_2141 "CD-ROM-képek (*.ISO;*.CUE)\0*.ISO;*.CUE\0Minden fájl (*.*)\0*.*\0" + IDS_2142 "%hs eszközkonfiguráció" + IDS_2143 "Képernyő alvó módban" + IDS_2144 "OpenGL Shaderek (*.GLSL)\0*.GLSL\0Minden fájl (*.*)\0*.*\0" + IDS_2145 "OpenGL beállítások" + IDS_2146 "Egy nem támogatott konfigurációt tölt be" + IDS_2147 "A kiválasztott gépen alapuló CPU-típusszűrés le van tiltva ezen az emulált gépen.\n\nEz lehetővé teszi olyan CPU kiválasztását, amely egyébként nem kompatibilis a kiválasztott géppel. Előfordulhat azonban, hogy nem kompatibilis a gép BIOS-ával vagy más szoftverekkel.\n\nA beállítás engedélyezése hivatalosan nem támogatott, és a benyújtott hibajelentéseket érvénytelenként lezárhatjuk." + IDS_2148 "Folytatás" + IDS_2149 "Magnókazetta: %s" + IDS_2150 "Magnókazetta-képek (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Minden fájl (*.*)\0*.*\0" + IDS_2151 "ROM-kazetta %i: %ls" + IDS_2152 "ROM-kazetta képek (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Minden fájl (*.*)\0*.*\0" + IDS_2153 "Hiba történt a renderelő inicializálásakor" + IDS_2154 "Az OpenGL (3.0 Core) megjelenítő-motort nem sikerült inicializálni. Kérem használjon másik renderelőt." + IDS_2155 "Resume execution" + IDS_2156 "Pause execution" + IDS_2157 "Press Ctrl+Alt+Del" + IDS_2158 "Press Ctrl+Alt+Esc" + IDS_2159 "Hard reset" + IDS_2160 "ACPI shutdown" + IDS_2161 "Settings" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Merevlemez (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLL vagy ESDI CD-ROM meghajtók soha nem léteztek" + IDS_4100 "Egyéni..." + IDS_4101 "Egyéni (nagy)..." + IDS_4102 "Új merevlemez hozzáadása" + IDS_4103 "Meglévő merevlemez hozzáadása" + IDS_4104 "A HDI lemezképek nem lehetnek nagyobbak 4 GB-nál." + IDS_4105 "A lemezképek mérete nem haladhatja meg a 127 GB-ot." + IDS_4106 "Merevlemez-képfájlok (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Minden fájl (*.*)\0*.*\0" + IDS_4107 "A fájl nem olvasható" + IDS_4108 "A fájl nem írható" + IDS_4109 "Az 512-től eltérő szektorméretű HDI vagy HDX képek nem támogatottak." + IDS_4110 "Az USB még nem támogatott" + IDS_4111 "A lemezképfájl már létezik" + IDS_4112 "Adjon meg egy érvényes fájlnevet." + IDS_4113 "A lemezképfájl létrehozásra került" + IDS_4114 "Győződjön meg arról, hogy a fájl létezik és olvasható." + IDS_4115 "Győződjön meg arról, hogy a fájlt egy írható könyvtárba menti." + IDS_4116 "A lemezképfájl túl nagy" + IDS_4117 "Ne felejtse el particionálni és formázni az újonnan létrehozott meghajtót." + IDS_4118 "A kiválasztott fájl felülírásra kerül. Biztos, hogy ezt kívánja használni?" + IDS_4119 "Nem támogatott lemezkép" + IDS_4120 "Felülírás" + IDS_4121 "Ne írja felül" + IDS_4122 "Nyers lemezkép (.img)" + IDS_4123 "HDI-lemezkép (.hdi)" + IDS_4124 "HDX-lemezkép (.hdx)" + IDS_4125 "Rögzített méretű VHD (.vhd)" + IDS_4126 "Dinamikusan bővülő VHD (.vhd)" + IDS_4127 "Különbség-VHD (.vhd)" + IDS_4128 "Nagy blokkméret (2 MB)" + IDS_4129 "Kis blokkméret (512 KB)" + IDS_4130 "VHD fájlok (*.VHD)\0*.VHD\0Minden fájl (*.*)\0*.*\0" + IDS_4131 "Válassza ki a szülő VHD-t" + IDS_4132 "Ez azt jelentheti, hogy a szülőkép módosult az eltérő kép létrehozása után.\n\nEz akkor is előfordulhat, ha a képfájlokat áthelyezték vagy másolták, vagy a lemezt létrehozó program hibája miatt.\n\nSzeretné kijavítani az időbélyegeket?" + IDS_4133 "A szülő- és a gyermeklemez időbélyegei nem egyeznek" + IDS_4134 "Nem sikerült kijavítani a VHD időbélyegét." + 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 "Letiltva" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Letiltva" + 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 klaszter)" + IDS_5898 "DMF (2048 klaszter)" + IDS_5899 "2.88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + IDS_6144 "Tökéletes RPM" + IDS_6145 "1%-kal a tökéletes RPM alatt" + IDS_6146 "1.5%-kal a tökéletes RPM alatt" + IDS_6147 "2%-kal a tökéletes RPM alatt" + + IDS_7168 "(A rendszer nyelve)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Hungarian resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc new file mode 100644 index 0000000000..4bfff216bb --- /dev/null +++ b/src/win/languages/it-IT.rc @@ -0,0 +1,638 @@ +//////////////////////////////////////////////////////////////////////////// +// Italian (IT-it) resources + +#ifdef _WIN32 +LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN +#pragma code_page(65001) +#endif //_WIN32 + +// explorerdotexe +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// 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 "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + 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 + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + 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+PgUp", 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 intera", 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 "Cattura schermata\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Preferenze...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Abilita &integrazione Discord", IDM_DISCORD +#endif + 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 + POPUP "&?" + 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 contro scrittura)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Registra", IDM_CASSETTE_RECORD + 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 "&Espelli", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Immagine...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "&Espelli", 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 contro scrittura)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&sporta in 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "&Espelli", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Muto", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&Espelli", IDM_CDROM_EMPTY + MENUITEM "&Ricarica l'immagine precedente", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Immagine...", IDM_CDROM_IMAGE + MENUITEM "&Cartella...", IDM_CDROM_DIR + 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 contro scrittura)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Espelli", 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 contro scrittura)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Espelli", IDM_MO_EJECT + MENUITEM "&Ricarica l'immagine precedente", IDM_MO_RELOAD + END +END + +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 + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Preferenze" +#define STR_SND_GAIN "Guadagno del suono" +#define STR_NEW_FLOPPY "Nuova immagine" +#define STR_CONFIG "Impostazioni" +#define STR_SPECIFY_DIM "Specifica dimensioni della finestra principale" + +#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:" +#define STR_ICONSET "Pacchetto di icone:" + +#define STR_GAIN "Guadagno" + +#define STR_FILE_NAME "Nome file:" +#define STR_DISK_SIZE "Dimensioni disco:" +#define STR_RPM_MODE "Modalità RPM:" +#define STR_PROGRESS "Progresso:" + +#define STR_WIDTH "Larghezza:" +#define STR_HEIGHT "Altezza:" +#define STR_LOCK_TO_SIZE "Blocca in queste dimensioni" + +#define STR_MACHINE_TYPE "Tipo di piastra madre:" +#define STR_MACHINE "Piastra madre:" +#define STR_CONFIGURE "Configura" +#define STR_CPU_TYPE "Tipo del CPU:" +#define STR_CPU_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" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Cache" + +#define STR_VIDEO "Video:" +#define STR_VIDEO_2 "Video 2:" +#define STR_VOODOO "Grafica Voodoo" +#define STR_IBM8514 "Grafica IBM 8514/A" +#define STR_XGA "Grafica XGA" + +#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_SOUND1 "Scheda audio 1:" +#define STR_SOUND2 "Scheda audio 2:" +#define STR_SOUND3 "Scheda audio 3:" +#define STR_SOUND4 "Scheda audio 4:" +#define STR_MIDI_OUT "Uscita MIDI:" +#define STR_MIDI_IN "Entrata MIDI:" +#define STR_MPU401 "MPU-401 autonomo" +#define STR_FLOAT "Usa suono FLOAT32" +#define STR_FM_DRIVER "Driver sint. FM" +#define STR_FM_DRV_NUKED "Nuked (più accurato)" +#define STR_FM_DRV_YMFM "YMFM (più veloce)" + +#define STR_NET_TYPE "Tipo di rete:" +#define STR_PCAP "Dispositivo PCap:" +#define STR_NET "Scheda di rete:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Dispositivo COM1:" +#define STR_COM2 "Dispositivo COM2:" +#define STR_COM3 "Dispositivo COM3:" +#define STR_COM4 "Dispositivo COM4:" +#define STR_LPT1 "Dispositivo LPT1:" +#define STR_LPT2 "Dispositivo LPT2:" +#define STR_LPT3 "Dispositivo LPT3:" +#define STR_LPT4 "Dispositivo LPT4:" +#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" +#define STR_PARALLEL4 "Porta parallela 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#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" + +#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:" +#define STR_SPEED "Speed:" + +#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:" + +#define STR_FLOPPY_DRIVES "Unità floppy:" +#define STR_TURBO "Turbo" +#define STR_CHECKBPB "Verifica BPB" +#define STR_CDROM_DRIVES "Unità CD-ROM:" +#define STR_CD_SPEED "Veloc.:" + +#define STR_MO_DRIVES "Unità magneto-ottiche:" +#define STR_ZIP_DRIVES "Unità ZIP:" +#define STR_250 "ZIP 250" + +#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" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Errore" + IDS_2050 "Errore fatale" + IDS_2051 " - PAUSED" + IDS_2052 "Usa Ctrl+Alt+PgDn 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 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 nella directory roms/video. Cambiando ad una scheda video disponibile." + IDS_2065 "Piastra madre" + IDS_2066 "Schermo" + IDS_2067 "Dispositivi di entrata" + IDS_2068 "Audio" + IDS_2069 "Rete" + IDS_2070 "Porte (COM & LPT)" + 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 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 +BEGIN + IDS_2081 "Bus" + IDS_2082 "File" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Verifica BPB" + IDS_2089 "KB" + IDS_2090 "Impossibile inizializzare il renderer video." + IDS_2091 "Predefinito" + IDS_2092 "%i stati d'attesa" + IDS_2093 "Tipo" + IDS_2094 "Impossibile impostare PCap" + IDS_2095 "Nessun dispositivo PCap trovato" + IDS_2096 "Dispositivo PCap invalido" + IDS_2097 "Joystick comune da 2 pulsanti" + IDS_2098 "Joystick comune da 4 pulsanti" + IDS_2099 "Joystick comune da 6 pulsanti" + IDS_2100 "Joystick comune da 8 pulsanti" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Nessuno" + IDS_2105 "Impossibile caricare gli acceleratori da tastiera." + IDS_2106 "Impossibile registrare input raw." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Floppy %i (%s): %ls" + IDS_2110 "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_2113 "Sei sicuro di voler riavviare la macchina emulata?" + IDS_2114 "Sei sicuro di voler uscire da 86Box?" + IDS_2115 "Impossibile inizializzare Ghostscript" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "Immagini MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tutti i file (*.*)\0*.*\0" + IDS_2118 "Benvenuti in 86Box!" + IDS_2119 "Controller interno" + IDS_2120 "Esci" + IDS_2121 "Nessune immagini ROM trovate" + IDS_2122 "Vuole salvare queste impostazioni?" + IDS_2123 "Questo riavvierà la macchina emulata." + IDS_2124 "Salva" + IDS_2125 "Informazioni su 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Un emulatore di computer vecchi\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, 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_2128 "OK" + IDS_2129 "Hardware non disponibile" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Controlla se " LIB_NAME_PCAP " è installato e che tu sia connesso ad una connessione " LIB_NAME_PCAP " compatibile." + IDS_2131 "Configurazione invalida" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 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)" + IDS_2135 "Entrando nella modalità schermo intero" + IDS_2136 "Non mostrare più questo messaggio" + IDS_2137 "Non uscire" + IDS_2138 "Riavvia" + IDS_2139 "Non riavviare" + IDS_2140 "Immagini MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tutti i file (*.*)\0*.*\0" + IDS_2141 "Immagini CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Tutti i file (*.*)\0*.*\0" + IDS_2142 "Configurazione del dispositivo %hs" + IDS_2143 "Monitor in modalità riposo" + IDS_2144 "Shader OpenGL (*.GLSL)\0*.GLSL\0Tutti i file (*.*)\0*.*\0" + IDS_2145 "Impostazioni OpenGL" + IDS_2146 "Stai caricando una configurazione non supportata" + IDS_2147 "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_2148 "Continua" + IDS_2149 "Cassetta: %s" + IDS_2150 "Immagini cassetta (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tutti i file (*.*)\0*.*\0" + IDS_2151 "Cartuccia %i: %ls" + IDS_2152 "Immagini cartuccia (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Tutti i file (*.*)\0*.*\0" + IDS_2153 "Error initializing renderer" + IDS_2154 "OpenGL (3.0 Core) renderer could not be initialized. Use another renderer." + IDS_2155 "Resume execution" + IDS_2156 "Pause execution" + IDS_2157 "Press Ctrl+Alt+Del" + IDS_2158 "Press Ctrl+Alt+Esc" + IDS_2159 "Hard reset" + IDS_2160 "ACPI shutdown" + IDS_2161 "Settings" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Hard disk (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + 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" + 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 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" + 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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + 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 +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/ja-JP.rc b/src/win/languages/ja-JP.rc new file mode 100644 index 0000000000..f0bb3e80b8 --- /dev/null +++ b/src/win/languages/ja-JP.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Japanese 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 "ツールバーを隠す(&T)", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "プライマリ以外のモニターを表示(&S)", IDM_VID_MONITORS + 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 + MENUITEM "OpenGL (3.0コア)(&G)", IDM_VID_OPENGL_CORE +#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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + 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+PgUp", 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 "色反転(&I)", IDM_VID_INVERT + POPUP "画面タイプ(&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 "スクリーンショットを撮る(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "環境設定(&P)...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Discord連携機能(&D)", IDM_DISCORD +#endif + 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 + 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 + MENUITEM "フォルダ(&F)...", IDM_CDROM_DIR + 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 + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "目標フレームレート(&F)" + BEGIN + MENUITEM "ビデオと同期(&S)", IDM_VID_GL_FPS_BLITTER + MENUITEM "25 fps(&2)", IDM_VID_GL_FPS_25 + MENUITEM "30 fps(&3)", IDM_VID_GL_FPS_30 + MENUITEM "50 fps(&5)", IDM_VID_GL_FPS_50 + MENUITEM "60 fps(&6)", IDM_VID_GL_FPS_60 + MENUITEM "75 fps(&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 + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "環境設定" +#define STR_SND_GAIN "音量調整" +#define STR_NEW_FLOPPY "新規のイメージ" +#define STR_CONFIG "設定" +#define STR_SPECIFY_DIM "メイン ウィンドウのサイズ指定" + +#define STR_OK "OK" +#define STR_CANCEL "キャンセル" +#define STR_GLOBAL "これらの設定をグローバル既定値として保存(&G)" +#define STR_DEFAULT "既定値(&D)" +#define STR_LANGUAGE "言語:" +#define STR_ICONSET "アイコン セット:" + +#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_CPU_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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "キャッシュ" + +#define STR_VIDEO "ビデオカード:" +#define STR_VIDEO_2 "ビデオカード2:" +#define STR_VOODOO "Voodooグラフィック" +#define STR_IBM8514 "IBM 8514/Aグラフィック" +#define STR_XGA "XGAグラフィック" + +#define STR_MOUSE "マウス:" +#define STR_JOYSTICK "ジョイスティック:" +#define STR_JOY1 "ジョイスティック1..." +#define STR_JOY2 "ジョイスティック2..." +#define STR_JOY3 "ジョイスティック3..." +#define STR_JOY4 "ジョイスティック4..." + +#define STR_SOUND1 "サウンド カード1:" +#define STR_SOUND2 "サウンド カード2:" +#define STR_SOUND3 "サウンド カード3:" +#define STR_SOUND4 "サウンド カード4:" +#define STR_MIDI_OUT "MIDI出力デバイス:" +#define STR_MIDI_IN "MIDI入力デバイス:" +#define STR_MPU401 "独立型MPU-401" +#define STR_FLOAT "FLOAT32サウンドを使用" +#define STR_FM_DRIVER "FMシンセドライバー" +#define STR_FM_DRV_NUKED "Nuked(高精度化)" +#define STR_FM_DRV_YMFM "YMFM(より速く)" + +#define STR_NET_TYPE "ネットワークタイプ:" +#define STR_PCAP "PCapデバイス:" +#define STR_NET "ネットワークアダプター:" +#define STR_NET1 "ネットワーク カード1:" +#define STR_NET2 "ネットワーク カード2:" +#define STR_NET3 "ネットワーク カード3:" +#define STR_NET4 "ネットワーク カード4:" + +#define STR_COM1 "COM1デバイス:" +#define STR_COM2 "COM2デバイス:" +#define STR_COM3 "COM3デバイス:" +#define STR_COM4 "COM4デバイス:" +#define STR_LPT1 "LPT1デバイス:" +#define STR_LPT2 "LPT2デバイス:" +#define STR_LPT3 "LPT3デバイス:" +#define STR_LPT4 "LPT4デバイス:" +#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_PARALLEL4 "パラレル ポート4" +#define STR_SERIAL_PASS1 "シリアル ポート パススルー対応1" +#define STR_SERIAL_PASS2 "シリアル ポート パススルー対応2" +#define STR_SERIAL_PASS3 "シリアル ポート パススルー対応3" +#define STR_SERIAL_PASS4 "シリアル ポート パススルー対応4" + +#define STR_HDC "HDDコントローラー:" +#define STR_FDC "FDDコントローラー:" +#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_SPEED "速度:" + +#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_CD_SPEED "速度:" + +#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+PgDnでウィンドウモードに戻ります。" + 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 "F8+F12キーを押してマウスを解放します" + IDS_2079 "F8+F12キーまたは中クリックでマウスを解放します" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "バス" + IDS_2082 "ファイル" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "BPBチェック" + IDS_2089 "KB" + IDS_2090 "ビデオレンダラーが初期化できません。" + IDS_2091 "既定値" + IDS_2092 "%iつのウェイト ステート" + IDS_2093 "タイプ" + IDS_2094 "PCapのセットアップに失敗しました" + IDS_2095 "PCapデバイスがありません" + IDS_2096 "不正なPCapデバイス" + IDS_2097 "標準ジョイスティック(2ボタン)" + IDS_2098 "標準ジョイスティック(4ボタン)" + IDS_2099 "標準ジョイスティック(6ボタン)" + IDS_2100 "標準ジョイスティック(8ボタン)" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinderパッド" + IDS_2103 "Thrustmaster飛行制御システム" + IDS_2104 "なし" + IDS_2105 "キーボード アクセラレータを読み込めません。" + IDS_2106 "生入力が登録できません。" + IDS_2107 "%u" + IDS_2108 "%u MB (CHS値: %i、%i、%i)" + IDS_2109 "フロッピー %i (%s): %ls" + IDS_2110 "すべてのイメージ (*.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_2113 "使用中のマシンをハードリ セットしますか?" + IDS_2114 "86Boxを終了しますか?" + IDS_2115 "Ghostscriptが初期化できません" + IDS_2116 "光磁気 %i (%ls): %ls" + IDS_2117 "光磁気イメージ (*.IM?;*.MDI)\0*.IM?;*.MDI\0すべてのファイル (*.*)\0*.*\0" + IDS_2118 "86Boxへようこそ!" + IDS_2119 "内蔵コントローラー" + IDS_2120 "終了" + IDS_2121 "ROMが見つかりません" + IDS_2122 "設定を保存しますか?" + IDS_2123 "使用中のマシンがハードリ セットされます。" + IDS_2124 "保存" + IDS_2125 "86Boxのバージョン情報" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "古いパソコンのエミュレーター\n\n著者: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public License version 2以降でリリースされています。詳しくは LICENSE をご覧ください。" + IDS_2128 "OK" + IDS_2129 "ハードウェアが利用できません" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 LIB_NAME_PCAP "がインストールされてるか、" LIB_NAME_PCAP "に対応したネットワークに接続されてるか確認してください。" + IDS_2131 "無効な設定" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 "PostScriptファイルをPDFに自動変換するには" LIB_NAME_GS "が必要です。\n\n汎用PostScriptプリンターに送信された文書は、PostScript (.ps) ファイルとして保存されます。" + IDS_2135 "全画面モードを入力" + IDS_2136 "今後、このメッセージを表示しない" + IDS_2137 "終了しない" + IDS_2138 "リセット" + IDS_2139 "リセットしない" + IDS_2140 "光磁気イメージ (*.IM?;*.MDI)\0*.IM?;*.MDI\0すべてのファイル (*.*)\0*.*\0" + IDS_2141 "CD-ROMイメージ (*.ISO;*.CUE)\0*.ISO;*.CUE\0すべてのファイル (*.*)\0*.*\0" + IDS_2142 "%hs のデバイス設定" + IDS_2143 "モニターのスリープ モード" + IDS_2144 "OpenGLシェーダー (*.GLSL)\0*.GLSL\0すべてのファイル (*.*)\0*.*\0" + IDS_2145 "OpenGL設定" + IDS_2146 "読み込んでいる設定がサポートされません" + IDS_2147 "選択したマシンに基づくCPUタイプのフィルター機能は、使用中のマシンでは無効になっています。\n\nこれにより、選択したマシンと互換性のないCPUが選択できます。しかし、マシンのBIOSや他のソフトウェアと互換性がない場合があります。\n\nこの設定を有効にすることは公式にはサポートされておらず、バグレポートは無効として中止される可能性があります。" + IDS_2148 "続行" + IDS_2149 "カセット: %s" + IDS_2150 "カセット イメージ (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0すべてのファイル (*.*)\0*.*\0" + IDS_2151 "カートリッジ %i: %ls" + IDS_2152 "カートリッジ イメージ (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0すべてのファイル (*.*)\0*.*\0" + IDS_2153 "レンダラーの初期化エラー" + IDS_2154 "OpenGL (3.0コア) レンダラーが初期化できません。別のレンダラーを使用してください。" + IDS_2155 "実行を再開" + IDS_2156 "実行を一時停止" + IDS_2157 "Ctrl+Alt+DELを押す" + IDS_2158 "Ctrl+Alt+Escを押す" + IDS_2159 "ハードリセット" + IDS_2160 "ACPIシャットダウン" + IDS_2161 "設定" + IDS_2162 "タイプ" + IDS_2163 "動的再コンパイル禁止" + IDS_2164 "旧型の動的再コンパイル" + IDS_2165 "新型の動的再コンパイル" + IDS_2166 "「roms/video」ディレクトリにROMがないため、ビデオカード#2「%hs」は使用できません。2枚目のビデオカードを無効にします。" + IDS_2167 "ネットワーク ドライバの初期化に失敗しました。" + IDS_2168 "ネットワーク設定がヌル ドライバに切り替えられます" +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 "Rawイメージ (.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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + IDS_6144 "既定RPM" + IDS_6145 "1%低いRPM" + IDS_6146 "1.5%低いRPM" + IDS_6147 "2%低いRPM" + + IDS_7168 "(システム既定値)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Japanese resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/ko-KR.rc b/src/win/languages/ko-KR.rc new file mode 100644 index 0000000000..6880647dbc --- /dev/null +++ b/src/win/languages/ko-KR.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Korean resources + +#ifdef _WIN32 +LANGUAGE LANG_KOREAN, 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 "툴바 숨기기", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "기본 모니터가 아닌 모니터 표시", IDM_VID_MONITORS + 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 + MENUITEM "OpenGL (3.0 코어)(&G)", IDM_VID_OPENGL_CORE +#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.5배(&0)", IDM_VID_SCALE_1X + MENUITEM "1배(&1)", IDM_VID_SCALE_2X + MENUITEM "1.5배(&5)", IDM_VID_SCALE_3X + MENUITEM "2배(&2)", IDM_VID_SCALE_4X + MENUITEM "&3배", IDM_VID_SCALE_5X + MENUITEM "&4배", IDM_VID_SCALE_6X + MENUITEM "&5배", IDM_VID_SCALE_7X + MENUITEM "&6배", IDM_VID_SCALE_8X + MENUITEM "&7배", IDM_VID_SCALE_9X + MENUITEM "&8배", IDM_VID_SCALE_10X + 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+PgUp", 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 모니터(&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 "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 "스크린샷 찍기(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "환경설정(&P)...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "디스코드 연동 활성화하기(&D)", IDM_DISCORD +#endif + 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 + 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 + MENUITEM "폴더(&F)...", IDM_CDROM_DIR + 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 + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "목표 프레임 레이트(&F)" + BEGIN + MENUITEM "비디오와 동기(&S)", IDM_VID_GL_FPS_BLITTER + MENUITEM "25 fps(&2)", IDM_VID_GL_FPS_25 + MENUITEM "30 fps(&3)", IDM_VID_GL_FPS_30 + MENUITEM "50 fps(&5)", IDM_VID_GL_FPS_50 + MENUITEM "60 fps(&6)", IDM_VID_GL_FPS_60 + MENUITEM "75 fps(&7)", IDM_VID_GL_FPS_75 + END + MENUITEM "수직 동기화(&V)", IDM_VID_GL_VSYNC + MENUITEM "쉐이더 불러오기(&S)...", IDM_VID_GL_SHADER + MENUITEM "쉐이더 끄기(&R)", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "환경설정" +#define STR_SND_GAIN "음량 증폭" +#define STR_NEW_FLOPPY "새 이미지" +#define STR_CONFIG "설정" +#define STR_SPECIFY_DIM "창 크기 지정" + +#define STR_OK "확인" +#define STR_CANCEL "취소" +#define STR_GLOBAL "이 설정들을 전역 기본값으로 저장하기(&G)" +#define STR_DEFAULT "기본값(&D)" +#define STR_LANGUAGE "언어:" +#define STR_ICONSET "아이콘셋:" + +#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_CPU_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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "캐시" + +#define STR_VIDEO "비디오 카드:" +#define STR_VIDEO_2 "비디오 카드 2:" +#define STR_VOODOO "Voodoo 그래픽" +#define STR_IBM8514 "IBM 8514/A 그래픽" +#define STR_XGA "XGA 그래픽" + +#define STR_MOUSE "마우스:" +#define STR_JOYSTICK "조이스틱:" +#define STR_JOY1 "조이스틱 1..." +#define STR_JOY2 "조이스틱 2..." +#define STR_JOY3 "조이스틱 3..." +#define STR_JOY4 "조이스틱 4..." + +#define STR_SOUND1 "사운드 카드 1:" +#define STR_SOUND2 "사운드 카드 2:" +#define STR_SOUND3 "사운드 카드 3:" +#define STR_SOUND4 "사운드 카드 4:" +#define STR_MIDI_OUT "MIDI 출력 장치:" +#define STR_MIDI_IN "MIDI 입력 장치:" +#define STR_MPU401 "MPU-401 단독 사용" +#define STR_FLOAT "FLOAT32 사운드 사용" +#define STR_FM_DRIVER "FM 신디사이저 드라이버" +#define STR_FM_DRV_NUKED "Nuked (더 정확한)" +#define STR_FM_DRV_YMFM "YMFM (더 빠르게)" + +#define STR_NET_TYPE "네트워크 종류:" +#define STR_PCAP "PCap 장치:" +#define STR_NET "네트워크 어댑터:" +#define STR_NET1 "네트워크 카드 1:" +#define STR_NET2 "네트워크 카드 2:" +#define STR_NET3 "네트워크 카드 3:" +#define STR_NET4 "네트워크 카드 4:" + +#define STR_COM1 "COM1 장치:" +#define STR_COM2 "COM2 장치:" +#define STR_COM3 "COM3 장치:" +#define STR_COM4 "COM4 장치:" +#define STR_LPT1 "LPT1 장치:" +#define STR_LPT2 "LPT2 장치:" +#define STR_LPT3 "LPT3 장치:" +#define STR_LPT4 "LPT4 장치:" +#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_PARALLEL4 "병렬 포트 4" +#define STR_SERIAL_PASS1 "직렬 포트 패스쓰루 1" +#define STR_SERIAL_PASS2 "직렬 포트 패스쓰루 2" +#define STR_SERIAL_PASS3 "직렬 포트 패스쓰루 3" +#define STR_SERIAL_PASS4 "직렬 포트 패스쓰루 4" + +#define STR_HDC "HD 컨트롤러:" +#define STR_FDC "FD 컨트롤러:" +#define STR_IDE_TER "제3의 IDE 컨트롤러" +#define STR_IDE_QUA "제4의 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_SPEED "Speed:" + +#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_CD_SPEED "속도:" + +#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 "Malgun Gothic" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "오류" + IDS_2050 "치명적인 오류" + IDS_2051 " - 일시중지" + IDS_2052 "Ctrl+Alt+PgDn 키를 누르면 창 모드로 전환합니다." + 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 디렉토리에 필요한 롬파일이 없어 기종 ""%hs""을(를) 사용할 수 없습니다. 사용 가능한 기종으로 변경합니다." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "roms/video 디렉토리에 필요한 롬파일이 없어 비디오 카드 ""%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_2081 "버스" + IDS_2082 "파일" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "BPB 확인" + IDS_2089 "KB" + IDS_2090 "비디오 렌더러를 초기화할 수 없습니다." + IDS_2091 "기본값" + IDS_2092 "%i 대기 상태" + IDS_2093 "형식" + IDS_2094 "PCap 설정에 실패했습니다" + IDS_2095 "PCap 장치가 없습니다" + IDS_2096 "PCap 장치가 올바르지 않습니다" + IDS_2097 "표준 2버튼 조이스틱" + IDS_2098 "표준 4버튼 조이스틱" + IDS_2099 "표준 6버튼 조이스틱" + IDS_2100 "표준 8버튼 조이스틱" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "없음" + IDS_2105 "키보드 가속기를 불러올 수 없습니다." + IDS_2106 "Raw 입력을 등록할 수 없습니다." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "플로피 %i (%s): %ls" + IDS_2110 "모든 이미지 (*.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_2113 "실행중인 머신을 재시작하시겠습니까?" + IDS_2114 "86Box를 끝내시겠습니까?" + IDS_2115 "Ghostscript를 초기화할 수 없습니다" + IDS_2116 "광자기 %i (%ls): %ls" + IDS_2117 "광자기 이미지 (*.IM?;*.MDI)\0*.IM?;*.MDI\0모든 파일 (*.*)\0*.*\0" + IDS_2118 "86Box에 어서오세요!" + IDS_2119 "내부 컨트롤러" + IDS_2120 "끝내기" + IDS_2121 "ROM을 불러올 수 없습니다" + IDS_2122 "설정을 저장하시겠습니까?" + IDS_2123 "사용중인 머신이 재부팅됩니다." + IDS_2124 "저장" + IDS_2125 "86Box에 대해" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "고전 컴퓨터 에뮬레이터\n\n저자: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public 라이선스 (버전 2 이상)에 의해 배포되었습니다. 자세한 내용은 LICENSE 파일을 읽어 주세요." + IDS_2128 "확인" + IDS_2129 "하드웨어를 이용할 수 없습니다" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 LIB_NAME_PCAP "이 설치되었는지 " LIB_NAME_PCAP "에 대응하는 네트워크에 접속되어 있는지 확인해 주세요." + IDS_2131 "올바르지 않은 설정입니다" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS "은(는) PostScript 파일을 PDF로 자동변환하는 데에 필요합니다.\n\n표준 PostScript 프린터로 보내신 임의의 문서는 PostScript (.ps) 파일로 저장됩니다." + IDS_2135 "전체 화면으로 전환" + IDS_2136 "이 메시지 그만 보기" + IDS_2137 "끝내지 않기" + IDS_2138 "재시작" + IDS_2139 "재시작 안함" + IDS_2140 "광자기 이미지 (*.IM?;*.MDI)\0*.IM?;*.MDI\0모든 파일 (*.*)\0*.*\0" + IDS_2141 "CD-ROM 이미지 (*.ISO;*.CUE)\0*.ISO;*.CUE\0모든 파일 (*.*)\0*.*\0" + IDS_2142 "%hs 장치 설정" + IDS_2143 "모니터 절전 모드" + IDS_2144 "OpenGL 쉐이더 (*.GLSL)\0*.GLSL\0모든 파일 (*.*)\0*.*\0" + IDS_2145 "OpenGL 설정" + IDS_2146 "지원하지 않는 설정입니다" + IDS_2147 "이 에뮬레이트된 기종에 대해 선택한 기종을 기반으로 하는 CPU 종류 필터링이 사용되지 않도록 설정되었습니다.\n\n따라서 선택된 머신과 호환되지 않는 CPU를 선택하실 수 있습니다. 하지만 BIOS 또는 다른 소프트웨어와 호환되지 않을 수 있습니다.\n\n이 설정을 활성화하는 것은 공식적으로 지원되지 않으며, 제출된 버그 보고서는 유효하지 않음으로 닫힐 수 있습니다." + IDS_2148 "계속" + IDS_2149 "카세트: %s" + IDS_2150 "카세트 이미지 (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0모든 파일 (*.*)\0*.*\0" + IDS_2151 "카트리지 %i: %ls" + IDS_2152 "카트리지 이미지 (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0모든 파일 (*.*)\0*.*\0" + IDS_2153 "렌더러 초기화 오류" + IDS_2154 "OpenGL (3.0 Core) 렌더러를 초기화할 수 없습니다. 다른 렌더러를 사용하십시오." + IDS_2155 "실행 재개" + IDS_2156 "실행 일시 중지" + IDS_2157 "Ctrl+Alt+Del" + IDS_2158 "Ctrl+Alt+Esc" + IDS_2159 "재시작" + IDS_2160 "ACPI 종료" + IDS_2161 "설정" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "두번째 비디오카드 ""%hs""는 roms/video 디렉토리에서 ROM이 누락되어 사용할 수 없습니다. 두번째 비디오 카드를 비활성화 합니다." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +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 "Raw 이미지 (.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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + IDS_6144 "완벽한 회전수" + IDS_6145 "1% 낮은 회전수" + IDS_6146 "1.5% 낮은 회전수" + IDS_6147 "2% 낮은 회전수" + + IDS_7168 "(시스템 기본값)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Korean resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/pl-PL.rc b/src/win/languages/pl-PL.rc new file mode 100644 index 0000000000..f0f24823dc --- /dev/null +++ b/src/win/languages/pl-PL.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Polish (pl-PL) resources + +#ifdef _WIN32 +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Akcje" + BEGIN + MENUITEM "&Klawaitura wymaga przechwytu myszy", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Prawy CTRL to lewy Alt", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Twardy 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 "W&yjdź...", IDM_ACTION_EXIT + END + POPUP "&Widok" + BEGIN + MENUITEM "&Ukryj pasek statusu", IDM_VID_HIDE_STATUS_BAR + MENUITEM "Ukryj &pasek narzędzi", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Okno o zmiennym rozmiarze", IDM_VID_RESIZE + MENUITEM "P&amiętaj rozmiar &i pozycję", 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 + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Określ rozmiary...", IDM_VID_SPECIFY_DIM + MENUITEM "&Wymuś proporcje wyświetlania 4:3", IDM_VID_FORCE43 + POPUP "&Czynnik skalowania 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Metoda filtrowania" + BEGIN + MENUITEM "&Nearest", IDM_VID_FILTER_NEAREST + MENUITEM "&Linear", IDM_VID_FILTER_LINEAR + END + MENUITEM "Skalowanie Hi&DPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Pełny ekran\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "Fullscreen &stretch mode" + BEGIN + MENUITEM "&Tryb rozciągania na pełnym ekranie", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Kwadratowe piksele (Zachowaj proporcje)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Skalowanie całkowite", IDM_VID_FS_INT + END + POPUP "Ustawienia E&GA/(S)VGA" + BEGIN + MENUITEM "&Odwrócony monitor VGA", IDM_VID_INVERT + POPUP "Rodzaj ekranu &VGA" + BEGIN + MENUITEM "RGB - &Kolorowy", IDM_VID_GRAY_RGB + MENUITEM "&RGB - Skala szarości", IDM_VID_GRAY_MONO + MENUITEM "&Bursztynowy monitor", IDM_VID_GRAY_AMBER + MENUITEM "&Zielony monitor", IDM_VID_GRAY_GREEN + MENUITEM "&Biały monitor", IDM_VID_GRAY_WHITE + END + POPUP "Typ konwersji &w skali szarości" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Średni", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "Overscan dla CGA/PCjr/Tandy/E&GA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "Zmień kontrast dla &monochromatycznego ekranu", IDM_VID_CGACON + END + MENUITEM "&Nośnik", IDM_MEDIA + POPUP "&Narzędzia" + BEGIN + MENUITEM "&Ustawienia...", IDM_CONFIG + MENUITEM "&Aktualizuj ikony na pasku statusu", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Zrób &zrzut ekranu\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Preferencje...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Włącz integrację z &Discord", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "Wzmocnienie &dźwięku...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Rozpocznij śledzenie\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Zakończ śledzenie\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Pomoc" + BEGIN + MENUITEM "&Dokumentacja...", IDM_DOCS + MENUITEM "&O 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nowy obraz...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Istniejący obraz...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Istniejący obraz (&Chroniony przed zapisem)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Nagraj", IDM_CASSETTE_RECORD + MENUITEM "&Odtwórz", IDM_CASSETTE_PLAY + MENUITEM "&Przewiń do początku", IDM_CASSETTE_REWIND + MENUITEM "&Przewiń do końca", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "W&yjmij", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Obraz...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "W&yjmij", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nowy obraz...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Istniejący obraz...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Istniejący obraz (&Chroniony przed zapisem)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&ksportuj do 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "W&yjmij", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Ścisz", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "P&usty", IDM_CDROM_EMPTY + MENUITEM "&Przeładuj poprzedni obraz", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Obraz...", IDM_CDROM_IMAGE + MENUITEM "&Teczka...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nowy obraz...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Istniejący obraz...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Istniejący obraz (&Chroniony przed zapisem)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "W&yjmij", IDM_ZIP_EJECT + MENUITEM "&Przeładuj poprzedni obraz", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nowy obraz...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Istniejący obraz...", IDM_MO_IMAGE_EXISTING + MENUITEM "Istniejący obraz (&Chroniony przed zapisem)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "W&yjmij", IDM_MO_EJECT + MENUITEM "&Przeładuj poprzedni obraz", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Docelowa &liczba klatek na sekundę" + BEGIN + MENUITEM "&Zsynchronizuj z wideo", 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 "&Wybierz shader...", IDM_VID_GL_SHADER + MENUITEM "&Usuń shader", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Preferencje" +#define STR_SND_GAIN "Wzmocnienie dźwięku" +#define STR_NEW_FLOPPY "Nowy obraz" +#define STR_CONFIG "Ustawienia" +#define STR_SPECIFY_DIM "Określ rozmiary okna" + +#define STR_OK "OK" +#define STR_CANCEL "Anuluj" +#define STR_GLOBAL "Zapisz ustawienia jako &globalne ustawienia domyślne" +#define STR_DEFAULT "&Domyślny" +#define STR_LANGUAGE "Język:" +#define STR_ICONSET "Zestaw ikon:" + +#define STR_GAIN "Wzmacniacz" + +#define STR_FILE_NAME "Nazwa pliku:" +#define STR_DISK_SIZE "Rozmiar dysku:" +#define STR_RPM_MODE "Tryb RPM:" +#define STR_PROGRESS "Postęp:" + +#define STR_WIDTH "Szerokość:" +#define STR_HEIGHT "Wysokość:" +#define STR_LOCK_TO_SIZE "Stały rozmiar" + +#define STR_MACHINE_TYPE "Rodzaj maszyny:" +#define STR_MACHINE "Maszyna:" +#define STR_CONFIGURE "Konfiguruj" +#define STR_CPU_TYPE "Rodzaj procesora:" +#define STR_CPU_SPEED "Szybkość:" +#define STR_FPU "Jednostka FPU:" +#define STR_WAIT_STATES "Stany oczekiwania:" +#define STR_MB "MB" +#define STR_MEMORY "Pamięć:" +#define STR_TIME_SYNC "Synchronizacja czasu" +#define STR_DISABLED "Wyłączona" +#define STR_ENABLED_LOCAL "Włączona (czas lokalny)" +#define STR_ENABLED_UTC "Włączona (UTC)" +#define STR_DYNAREC "Dynamiczny rekompilator" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Podręczna" + +#define STR_VIDEO "Wideo:" +#define STR_VIDEO_2 "Wideo 2:" +#define STR_VOODOO "Grafika Voodoo" +#define STR_IBM8514 "Grafika IBM 8514/A" +#define STR_XGA "Grafika XGA" + +#define STR_MOUSE "Mysz:" +#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_SOUND1 "Karta dźwiękowa 1:" +#define STR_SOUND2 "Karta dźwiękowa 2:" +#define STR_SOUND3 "Karta dźwiękowa 3:" +#define STR_SOUND4 "Karta dźwiękowa 4:" +#define STR_MIDI_OUT "Urządzenie wyjściowe MIDI:" +#define STR_MIDI_IN "Urządzenie wejściowe MIDI:" +#define STR_MPU401 "Samodzielne urządzenie MPU-401" +#define STR_FLOAT "Użyj dźwięku FLOAT32" +#define STR_FM_DRIVER "Sterownik syntezy FM" +#define STR_FM_DRV_NUKED "Nuked (dokładniejszy)" +#define STR_FM_DRV_YMFM "YMFM (szybszy)" + +#define STR_NET_TYPE "Rodzaj sieci:" +#define STR_PCAP "Urządzenie PCap:" +#define STR_NET "Karta sieciowa:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Urządzenie COM1:" +#define STR_COM2 "Urządzenie COM2:" +#define STR_COM3 "Urządzenie COM3:" +#define STR_COM4 "Urządzenie COM4:" +#define STR_LPT1 "Urządzenie LPT1:" +#define STR_LPT2 "Urządzenie LPT2:" +#define STR_LPT3 "Urządzenie LPT3:" +#define STR_LPT4 "Urządzenie LPT4:" +#define STR_SERIAL1 "Port szeregowy 1" +#define STR_SERIAL2 "Port szeregowy 2" +#define STR_SERIAL3 "Port szeregowy 3" +#define STR_SERIAL4 "Port Szeregowy 4" +#define STR_PARALLEL1 "Port równoległy 1" +#define STR_PARALLEL2 "Port równoległy 2" +#define STR_PARALLEL3 "Port równoległy 3" +#define STR_PARALLEL4 "Port równoległy 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#define STR_HDC "Kontroler dysku twardego:" +#define STR_FDC "Kontroler dyskietek:" +#define STR_IDE_TER "Trzeciorzędowy kontroler IDE" +#define STR_IDE_QUA "Czwartorzędowy kontroler IDE" +#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 "Kaseta" + +#define STR_HDD "Dyski twarde:" +#define STR_NEW "&Nowy..." +#define STR_EXISTING "&Istniejący..." +#define STR_REMOVE "&Usuń" +#define STR_BUS "Magistrala:" +#define STR_CHANNEL "Kanał:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Określ..." +#define STR_SECTORS "Sektory:" +#define STR_HEADS "Głowice:" +#define STR_CYLS "Cylindry:" +#define STR_SIZE_MB "Rozmiar (MB):" +#define STR_TYPE "Rodzaj:" +#define STR_IMG_FORMAT "Format obrazu:" +#define STR_BLOCK_SIZE "Rozmiar bloku:" + +#define STR_FLOPPY_DRIVES "Napędy dyskietek:" +#define STR_TURBO "Rozrządy Turbo" +#define STR_CHECKBPB "Sprawdzaj BPB" +#define STR_CDROM_DRIVES "Napędy CD-ROM:" +#define STR_CD_SPEED "Szybkość:" + +#define STR_MO_DRIVES "Napędy MO:" +#define STR_ZIP_DRIVES "Napędy ZIP:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA RTC:" +#define STR_ISAMEM "Rozszerzenie pamięci ISA" +#define STR_ISAMEM_1 "Karta 1:" +#define STR_ISAMEM_2 "Karta 2:" +#define STR_ISAMEM_3 "Karta 3:" +#define STR_ISAMEM_4 "Karta 4:" +#define STR_BUGGER "Urządzenie ISABugger" +#define STR_POSTCARD "Karta POST" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Błąd" + IDS_2050 "Fatalny błąd" + IDS_2051 " - PAUSED" + IDS_2052 "Naciśnij klawisze Ctrl+Alt+PgDn aby wrócić to trybu okna." + IDS_2053 "Szybkość" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "Obrazy ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box nie może znaleźć obrazów ROM nadających się do użytku.\n\nProszę pobrać zestaw obrazów ROM ze strony download, i rozpakować je do katalogu ""roms""." + IDS_2057 "(pusty)" + IDS_2058 "Obrazy ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Wszystkie pliki (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Włącz" + IDS_2061 "Wyłącz" + IDS_2062 "Wszystkie obrazy (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Podstawowe obrazy sektorów(*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Obrazy powierzchniowe (*.86F)\0*.86F\0" + IDS_2063 "Maszyna ""%hs"" nie jest dostępna, ponieważ brakuje obrazów ROM w katalogu roms/machines. Przełączanie na dostępną maszynę." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Karta wideo ""%hs"" nie jest dostępna, ponieważ brakuje obrazów ROM w katalogu roms/video. Przełączanie na dostępną kartę wideo." + IDS_2065 "Maszyna" + IDS_2066 "Ekran" + IDS_2067 "Urządzenia wejściowe" + IDS_2068 "Dźwięk" + IDS_2069 "Sieć" + IDS_2070 "Porty (COM & LPT)" + IDS_2071 "Kontrolery pamięci" + IDS_2072 "Dyski twarde" + IDS_2073 "Napędy dyskietek i CD-ROM" + IDS_2074 "Inne urządzenia wymienne" + IDS_2075 "Inne urządzenia peryferyjne" + IDS_2076 "Obrazy powierzchniowe (*.86F)\0*.86F\0" + IDS_2077 "Kliknij w celu przechwycenia myszy" + IDS_2078 "Naciśnij klawisze F8+F12 w celu uwolnienia myszy" + IDS_2079 "Naciśnij klawisze F8+F12 lub środkowy przycisk w celu uwolnienia myszy" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Magistrala" + IDS_2082 "Plik" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Sprawdzaj BPB" + IDS_2089 "KB" + IDS_2090 "Nie można zainicjować renderera wideo." + IDS_2091 "Domyślny" + IDS_2092 "%i Stany oczekiwania" + IDS_2093 "Rodzaj" + IDS_2094 "Nie udało się ustawić PCap" + IDS_2095 "Nie znaleziono urządzeń PCap" + IDS_2096 "Nieprawidłowe urządzenie PCap" + IDS_2097 "Standardowe joysticki 2-przyciskowe" + IDS_2098 "Standardowy joystick 4-przyciskowy" + IDS_2099 "Standardowy joystick 6-przyciskowy" + IDS_2100 "Standardowy joystick 8-przyciskowy" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Żaden" + IDS_2105 "Nie można załadować akceleratorów klawiaturowych." + IDS_2106 "Nie można zarejestrować surowych danych wejściowych." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Dyskietka %i (%s): %ls" + IDS_2110 "Wszystkie obrazy (*.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\0Zaawansowane obrazy sektorów (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Podstawowe obrazy sektorów (*.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\0Obrazy powierzchniowe (*.86F;*.MFM)\0*.86F;*.MFM\0All files (*.*)\0*.*\0" + IDS_2113 "Jesteś pewien że chcesz wykonać twardy reset emulowanej maszyny?" + IDS_2114 "Jesteś pewien że chcesz zakończyć 86Box?" + IDS_2115 "Nie można zainicjować Ghostscript" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "Obrazy MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2118 "Witamy w 86Box!" + IDS_2119 "Kontroler wewnętrzny" + IDS_2120 "Zakończ" + IDS_2121 "Nie znaleziono obrazów ROM" + IDS_2122 "Czy chcesz zapisać ustawienia?" + IDS_2123 "To spowoduje twardy reset wirtualnej maszyny." + IDS_2124 "Zapisz" + IDS_2125 "O 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Emulator starych komputerów\n\nAutorzy: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, i inni.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, i inni.\n\nPrzetłumaczony przez: Fanta-Shokata\n\nWydany na licencji GNU General Public License w wersji 2 lub nowszej. Zobacz LICENSE aby uzyskać więcej informacji." + IDS_2128 "OK" + IDS_2129 "Sprzęt niedostępny" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Sprawdź, czy " LIB_NAME_PCAP " jest zainstalowany i czy posiadasz połączenie sieciowe kompatybilne z " LIB_NAME_PCAP "." + IDS_2131 "Nieprawidłowa konfiguracja" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " jest wymagany do automatycznej konwersji plików PostScript do PDF.\n\nDokumenty wysłane do ogólnej drukarki PostScript zostaną zapisane jako pliki PostScript (.ps)." + IDS_2135 "Przechodzenie do trybu pełnoekranowego" + IDS_2136 "Nie pokazuj więcej tego komunikatu" + IDS_2137 "Nie kończ" + IDS_2138 "Przywróć" + IDS_2139 "Nie przywracaj" + IDS_2140 "Obrazy MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2141 "Obrazy CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0All files (*.*)\0*.*\0" + IDS_2142 "Konfiguracja urządzenia %hs" + IDS_2143 "Monitor w trybie czuwania" + IDS_2144 "Shadery OpenGL (*.GLSL)\0*.GLSL\0Wszystkie pliki (*.*)\0*.*\0" + IDS_2145 "Opcje OpenGL" + IDS_2146 "Ładujesz nieobsługiwaną konfigurację" + IDS_2147 "Wybór rodzaju procesora oparty na wybranej maszynie jest wyłączony dla tej emulowanej maszyny.\n\nPozwala to na wybór procesora który jest niekompatybilny z wybraną maszyną. Jednak możesz napotkać niezgodności z BIOS-em maszyny lub innym oprogramowaniem.\n\nAktywacja tego ustawienia nie jest wspierana i każde zgłoszenie błędu może zostać zamknięte jako nieważne." + IDS_2148 "Kontynuuj" + IDS_2149 "Kaseta: %s" + IDS_2150 "Obrazy kaset (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Wszystkie pliki (*.*)\0*.*\0" + IDS_2151 "Kartrydż %i: %ls" + IDS_2152 "Obrazy kartrydżu (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Wszystkie pliki (*.*)\0*.*\0" + IDS_2153 "Błąd inicjalizacji renderera" + IDS_2154 "Nie można zainicjować renderera OpenGL (3.0 Core). Użyj innego." + IDS_2155 "Wznów wykonywanie" + IDS_2156 "Zatrzymaj wykonywanie" + IDS_2157 "Naciśnij Ctrl+Alt+Del" + IDS_2158 "Naciśnij Ctrl+Alt+Esc" + IDS_2159 "Twardy reset" + IDS_2160 "Wyłączenie ACPI" + IDS_2161 "Ustawienia" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Dysk twardy (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "Napędy CD-ROM MFM/RLL lub ESDI nigdy nie istniały" + IDS_4100 "Niestandardowy..." + IDS_4101 "Niestandardowy (duży)..." + IDS_4102 "Dodaj nowy dysk twardy" + IDS_4103 "Dodaj istniejący dysk twardy" + IDS_4104 "Obrazy dysków HDI nie mogą być większe niż 4 GB." + IDS_4105 "Obrazy dysków nie mogą być większe niż 127 GB." + IDS_4106 "Obrazy dysku twardego (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Wszystkie pliki (*.*)\0*.*\0" + IDS_4107 "Nie można odczytać pliku" + IDS_4108 "Nie można zapisać pliku" + IDS_4109 "Obrazy HDI lub HDX z rozmiarem sektora innym niż 512 nie są wspierane." + IDS_4110 "USB nie jest jeszcze wspierane" + IDS_4111 "Plik obrazu dysku już istnieje" + IDS_4112 "Określ prawidłową nazwę pliku." + IDS_4113 "Utworzono obraz dysku" + IDS_4114 "Sprawdź, czy plik istnieje i nadaje się do odczytu." + IDS_4115 "Sprawdź, czy plik jest zapiyswany w katalogu z możliwością zapisu." + IDS_4116 "Obraz dysku jest za duży" + IDS_4117 "Nie zapomnij o partycjonowaniu i sformatowaniu nowo utworzego dysku" + IDS_4118 "Wybrany plik zostanie nadpisany. Czy na pewno chcesz użyć tego pliku?" + IDS_4119 "Niewspierany obraz dysku" + IDS_4120 "Nadpisz" + IDS_4121 "Nie nadpisuj" + IDS_4122 "Obraz surowy (.img)" + IDS_4123 "Obraz HDI (.hdi)" + IDS_4124 "Obraz HDX (.hdx)" + IDS_4125 "VHD o stałym rozmiarze (.vhd)" + IDS_4126 "VHD o dynamicznym rozmiarze (.vhd)" + IDS_4127 "VHD różnicujący (.vhd)" + IDS_4128 "Duże bloki (2 MB)" + IDS_4129 "Małe bloki (512 KB)" + IDS_4130 "Pliki VHD (*.VHD)\0*.VHD\0Wszystkie pliki (*.*)\0*.*\0" + IDS_4131 "Wybierz nadrzędny plik VHD" + IDS_4132 "Może to oznaczać, że obraz nadrzędny został zmodyfikowany po utworzeniu obrazu różnicującego.\n\nMoże się to również zdarzyć, jeśli pliki obrazów zostały przeniesione lub skopiowane, lub wystąpił błąd w programie, który utworzył ten dysk\n\nCzy chcesz naprawić sygnatury czasowe?" + IDS_4133 "Sygnatury czasowe dysku nadrzędnego i podrzędnego nie zgadzają się" + IDS_4134 "Nie można naprawić sygnatury czasowej 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 "Wyłączony" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Wyłączony" + 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 (klaster 1024)" + IDS_5898 "DMF (klaster 2048)" + IDS_5899 "2,88 MB" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1,3 GB (GigaMO)" + IDS_5907 "3.5"" 2,3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1,3 GB" + + IDS_6144 "Idealne obroty" + IDS_6145 "1% poniżej idealnych obrotów" + IDS_6146 "1.5% poniżej idealnych obrotów" + IDS_6147 "2% poniżej idealnych obrotów" + + IDS_7168 "(Domyślne ustawienie systemowe)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Polish (pl-PL) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc new file mode 100644 index 0000000000..5471ad5d40 --- /dev/null +++ b/src/win/languages/pt-BR.rc @@ -0,0 +1,640 @@ +//////////////////////////////////////////////////////////////////////////// +// Portuguese (pt-BR) resources +// +// Translated by Altieres Lima da Silva, 2021 +// + +#ifdef _WIN32 +LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Ação" + BEGIN + MENUITEM "&Teclado requer captura", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "CTRL &direito é o ALT esquerdo", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Reinicialização completa...", 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 "&Pausar", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "&Sair...", IDM_ACTION_EXIT + END + POPUP "&Exibir" + BEGIN + MENUITEM "&Ocultar barra de status", IDM_VID_HIDE_STATUS_BAR + MENUITEM "Ocultar &barra de ferramenta", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Mostrar monitores não-primários", IDM_VID_MONITORS + MENUITEM "&Janela redimensionável", IDM_VID_RESIZE + MENUITEM "&Lembrar tamanho e posição", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Renderizador" + BEGIN + MENUITEM "&SDL (Software)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (Núcleo 3.0)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Especificar as dimensões...", IDM_VID_SPECIFY_DIM + MENUITEM "F&orçar proporção de tela em 4:3", IDM_VID_FORCE43 + POPUP "&Fator de redimensionamento da janela" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Método de filtragem" + BEGIN + MENUITEM "&Mais próximo", IDM_VID_FILTER_NEAREST + MENUITEM "&Linear", IDM_VID_FILTER_LINEAR + END + MENUITEM "Escala Hi&DPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Tela cheia\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "Modo de &redimensionamento da tela cheia" + BEGIN + MENUITEM "&Tela cheia esticada", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "Pixel&s quadrados (manter proporção)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Redimensionamento com valores inteiros", IDM_VID_FS_INT + END + POPUP "Configurações E&GA/(S)VGA" + BEGIN + MENUITEM "Monitor VGA &invertido", IDM_VID_INVERT + POPUP "&Tipo de tela VGA" + BEGIN + MENUITEM "&Cores RGB", IDM_VID_GRAY_RGB + MENUITEM "Tons de cinza &RGB", IDM_VID_GRAY_MONO + MENUITEM "Monitor &âmbar", IDM_VID_GRAY_AMBER + MENUITEM "Monitor &verde", IDM_VID_GRAY_GREEN + MENUITEM "Monitor &branco", IDM_VID_GRAY_WHITE + END + POPUP "Tipo de &conversão de tons de cinza" + 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 + END + END + MENUITEM SEPARATOR + MENUITEM "Overscan do CGA/PCjr/Tandy/E&GA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "Alterar contraste para exibição &monocromática", IDM_VID_CGACON + END + MENUITEM "&Mídia", IDM_MEDIA + POPUP "&Ferramentas" + BEGIN + MENUITEM "&Configurações...", IDM_CONFIG + MENUITEM "&Atualizar ícones da barra de status", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Capturar &tela\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Preferências...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Ativar integração com o &Discord", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Ganho de som...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Inicio do rastreamento\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Fim do rastreamento\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Ajuda" + BEGIN + MENUITEM "&Documentação...", IDM_DOCS + MENUITEM "&Sobre o 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova imagem...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Imagem existente...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Imagem existente (&protegida contra escrita)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Gravar", IDM_CASSETTE_RECORD + MENUITEM "&Reproduzir", IDM_CASSETTE_PLAY + MENUITEM "&Rebobinar até o começo", IDM_CASSETTE_REWIND + MENUITEM "&Avançar até o fim", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Imagem...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova imagem...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Imagem existente...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Imagem existente (&protegida contra escrita)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&xportar para 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Sem som", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&Vazio", IDM_CDROM_EMPTY + MENUITEM "&Recarregar imagem anterior", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Imagem...", IDM_CDROM_IMAGE + MENUITEM "&Pasta...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova imagem...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Imagem existente...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Imagem existente (&protegida contra escrita)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_ZIP_EJECT + MENUITEM "&Recarregar imagem anterior", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova imagem...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Imagem existente...", IDM_MO_IMAGE_EXISTING + MENUITEM "Imagem existente (&protegida contra escrita)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_MO_EJECT + MENUITEM "&Recarregar imagem anterior", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "&Taxa de quadro pretendida" + BEGIN + MENUITEM "&Sincronizar com vídeo", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 qps", IDM_VID_GL_FPS_25 + MENUITEM "&30 qps", IDM_VID_GL_FPS_30 + MENUITEM "&50 qps", IDM_VID_GL_FPS_50 + MENUITEM "&60 qps", IDM_VID_GL_FPS_60 + MENUITEM "&75 qps", IDM_VID_GL_FPS_75 + END + MENUITEM "Sincronização &vertical", IDM_VID_GL_VSYNC + MENUITEM "&Selecionar shader...", IDM_VID_GL_SHADER + MENUITEM "&Remover shader", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Preferências" +#define STR_SND_GAIN "Ganho de som" +#define STR_NEW_FLOPPY "Nova imagem de disquete" +#define STR_CONFIG "Configurações" +#define STR_SPECIFY_DIM "Especifique as dimensões da janela principal" + +#define STR_OK "OK" +#define STR_CANCEL "Cancelar" +#define STR_GLOBAL "Usar estas configurações como &padrões globais" +#define STR_DEFAULT "&Padrão" +#define STR_LANGUAGE "Idioma:" +#define STR_ICONSET "Pacote de ícones:" + +#define STR_GAIN "Ganho" + +#define STR_FILE_NAME "Nome:" +#define STR_DISK_SIZE "Tamanho:" +#define STR_RPM_MODE "Modo RPM:" +#define STR_PROGRESS "Progresso:" + +#define STR_WIDTH "Largura:" +#define STR_HEIGHT "Altura:" +#define STR_LOCK_TO_SIZE "Travar nesse tamanho" + +#define STR_MACHINE_TYPE "Tipo de máquina:" +#define STR_MACHINE "Máquina:" +#define STR_CONFIGURE "Configurar" +#define STR_CPU_TYPE "Tipo de CPU:" +#define STR_CPU_SPEED "Veloc.:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "Estados de espera:" +#define STR_MB "MB" +#define STR_MEMORY "Memória:" +#define STR_TIME_SYNC "Sincronização da hora" +#define STR_DISABLED "Desativar" +#define STR_ENABLED_LOCAL "Ativar (hora local)" +#define STR_ENABLED_UTC "Ativar (UTC)" +#define STR_DYNAREC "Recompilador dinâmico" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Cache" + +#define STR_VIDEO "Vídeo:" +#define STR_VIDEO_2 "Vídeo 2:" +#define STR_VOODOO "3DFX Voodoo" +#define STR_IBM8514 "Gráficos IBM 8514/A" +#define STR_XGA "Gráficos XGA" + +#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_SOUND1 "Placa de som 1:" +#define STR_SOUND2 "Placa de som 2:" +#define STR_SOUND3 "Placa de som 3:" +#define STR_SOUND4 "Placa de som 4:" +#define STR_MIDI_OUT "Disp. saída MIDI:" +#define STR_MIDI_IN "Disp. entrada MIDI:" +#define STR_MPU401 "MPU-401 autônomo" +#define STR_FLOAT "Usar som FLOAT32" +#define STR_FM_DRIVER "Controlador de sint. FM" +#define STR_FM_DRV_NUKED "Nuked (mais preciso)" +#define STR_FM_DRV_YMFM "YMFM (mais rápido)" + +#define STR_NET_TYPE "Tipo de rede:" +#define STR_PCAP "Dispositivo PCap:" +#define STR_NET "Adaptador de rede:" +#define STR_NET1 "Placa de rede 1:" +#define STR_NET2 "Placa de rede 2:" +#define STR_NET3 "Placa de rede 3:" +#define STR_NET4 "Placa de rede 4:" + +#define STR_COM1 "Dispositivo COM1:" +#define STR_COM2 "Dispositivo COM2:" +#define STR_COM3 "Dispositivo COM3:" +#define STR_COM4 "Dispositivo COM4:" +#define STR_LPT1 "Dispositivo LPT1:" +#define STR_LPT2 "Dispositivo LPT2:" +#define STR_LPT3 "Dispositivo LPT3:" +#define STR_LPT4 "Dispositivo LPT4:" +#define STR_SERIAL1 "Porta serial 1" +#define STR_SERIAL2 "Porta serial 2" +#define STR_SERIAL3 "Porta serial 3" +#define STR_SERIAL4 "Porta serial 4" +#define STR_PARALLEL1 "Porta paralela 1" +#define STR_PARALLEL2 "Porta paralela 2" +#define STR_PARALLEL3 "Porta paralela 3" +#define STR_PARALLEL4 "Porta paralela 4" +#define STR_SERIAL_PASS1 "Encaminhamento de porta serial 1" +#define STR_SERIAL_PASS2 "Encaminhamento de porta serial 2" +#define STR_SERIAL_PASS3 "Encaminhamento de porta serial 3" +#define STR_SERIAL_PASS4 "Encaminhamento de porta serial 4" + +#define STR_HDC "Controlador HD:" +#define STR_FDC "Controlador FD:" +#define STR_IDE_TER "Controlador IDE terciário" +#define STR_IDE_QUA "Controlador IDE quaternário" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Controlador 1:" +#define STR_SCSI_2 "Controlador 2:" +#define STR_SCSI_3 "Controlador 3:" +#define STR_SCSI_4 "Controlador 4:" +#define STR_CASSETTE "Cassete" + +#define STR_HDD "Discos rígidos:" +#define STR_NEW "&Novo..." +#define STR_EXISTING "&Existente..." +#define STR_REMOVE "&Remover" +#define STR_BUS "Bar.:" +#define STR_CHANNEL "Canal:" +#define STR_ID "ID:" +#define STR_SPEED "Velocidade:" + +#define STR_SPECIFY "&Especificar..." +#define STR_SECTORS "Setores:" +#define STR_HEADS "Cabeças:" +#define STR_CYLS "Cilindros:" +#define STR_SIZE_MB "Tamanho (MB):" +#define STR_TYPE "Tipo:" +#define STR_IMG_FORMAT "Formato:" +#define STR_BLOCK_SIZE "Blocos:" + +#define STR_FLOPPY_DRIVES "Unidades de disquete:" +#define STR_TURBO "Turbo" +#define STR_CHECKBPB "Verificar BPB" +#define STR_CDROM_DRIVES "Unidades de CD-ROM:" +#define STR_CD_SPEED "Veloc.:" + +#define STR_MO_DRIVES "Unidades magneto-ópticas:" +#define STR_ZIP_DRIVES "Unidades ZIP:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "RTC ISA:" +#define STR_ISAMEM "Expansão de memória ISA" +#define STR_ISAMEM_1 "Placa 1:" +#define STR_ISAMEM_2 "Placa 2:" +#define STR_ISAMEM_3 "Placa 3:" +#define STR_ISAMEM_4 "Placa 4:" +#define STR_BUGGER "Dispositivo ISABugger" +#define STR_POSTCARD "Placa de diagnóstico" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Erro" + IDS_2050 "Erro fatal" + IDS_2051 " - PAUSADO" + IDS_2052 "Use Ctrl+Alt+PgDn 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" + IDS_2056 "O 86Box não conseguiu encontrar nenhuma imagem de ROM utilizável.\n\nPor favor, baixe um conjunto de ROM e extraia no diretório ""roms""." + IDS_2057 "(vazio)" + IDS_2058 "Imagens ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0Todos os arquivos (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Lig." + IDS_2061 "Desl." + IDS_2062 "Todas as imagens (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Imagens de setor básico (*.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 está disponível devido à falta de ROMs no diretório roms/machines. Mudando para uma máquina disponível." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "A placa de vídeo ""%hs"" não está disponível devido à falta de ROMs no diretório roms/video. Mudando para uma placa de vídeo disponível." + IDS_2065 "Máquina" + IDS_2066 "Vídeo" + IDS_2067 "Dispositivos de entrada" + IDS_2068 "Som" + IDS_2069 "Rede" + IDS_2070 "Portas (COM & LPT)" + IDS_2071 "Controladores de armaz." + IDS_2072 "Discos rígidos" + IDS_2073 "Disquete & CD-ROM" + IDS_2074 "Dispos. removíveis" + IDS_2075 "Outros periféricos" + IDS_2076 "Imagens de superfície (*.86F)\0*.86F\0" + IDS_2077 "Clique para capturar o mouse" + IDS_2078 "Aperte F8+F12 para liberar o mouse" + IDS_2079 "Aperte F8+F12 ou botão do meio para liberar o mouse" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Barramento" + IDS_2082 "Arquivo" + IDS_2083 "CI" + IDS_2084 "CA" + IDS_2085 "SE" + IDS_2086 "MB" + IDS_2087 "Velocidade" + IDS_2088 "Verificar BPB" + IDS_2089 "KB" + IDS_2090 "Não foi possível inicializar o renderizador de vídeo." + IDS_2091 "Padrão" + IDS_2092 "%i estado(s) de espera" + IDS_2093 "Tipo" + IDS_2094 "Não foi possível configurar o PCap" + IDS_2095 "Nenhum dispositivo PCap encontrado" + IDS_2096 "Dispositivo PCap inválido" + IDS_2097 "Joystick padrão de 2 botões" + IDS_2098 "Joystick padrão de 4 botões" + IDS_2099 "Joystick padrão de 6 botões" + IDS_2100 "Joystick padrão de 8 botões" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Sistema de Controle de Voo Thrustmaster" + IDS_2104 "Nada" + IDS_2105 "Não foi possível carregar os aceleradores do teclado." + IDS_2106 "Não foi possível registrar a entrada bruta." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Disquete %i (%s): %ls" + IDS_2110 "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 de setor avançado (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Imagens de setor básico (*.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 arquivos (*.*)\0*.*\0" + IDS_2113 "Tem certeza de que deseja reiniciar completamente a máquina emulada?" + IDS_2114 "Tem certeza de que deseja sair do 86Box?" + IDS_2115 "Não é possível inicializar o Ghostscript" + IDS_2116 "Magneto-óptico %i (%ls): %ls" + IDS_2117 "Imagens magneto-ópticas (*.IM?;*.MDI)\0*.IM?;*.MDI\0Todos os arquivos (*.*)\0*.*\0" + IDS_2118 "Bem-vindo ao 86Box!" + IDS_2119 "Controlador interno" + IDS_2120 "Sair" + IDS_2121 "Nenhum ROM encontrada" + IDS_2122 "Você deseja salvar as configurações?" + IDS_2123 "Isto fará com que a máquina emulada seja reinicializada." + IDS_2124 "Salvar" + IDS_2125 "Sobre o 86Box" + IDS_2126 "86Box versão" EMU_VERSION + + IDS_2127 "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, e outros.\n\nWith previous core contributions from Sarah Walker, 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_2128 "OK" + IDS_2129 "Hardware não disponível" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "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_2131 "Configuração inválida" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " é necessário para a conversão automática de arquivos PostScript para PDF.\n\nQualquer documento enviado para a impressora genérica PostScript será salvo como arquivos PostScript (.ps)." + IDS_2135 "Entrando no modo de tela cheia" + IDS_2136 "Não exibir esta mensagem novamente" + IDS_2137 "Não sair" + IDS_2138 "Reiniciar" + IDS_2139 "Não reiniciar" + IDS_2140 "Imagens magneto-ópticas (*.IM?;*.MDI)\0*.IM?;*.MDI\0Todos os arquivos (*.*)\0*.*\0" + IDS_2141 "Imagens de CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Todos os arquivos (*.*)\0*.*\0" + IDS_2142 "Configuração do dispositivo %hs" + IDS_2143 "Monitor em modo de suspensão" + IDS_2144 "Shaders OpenGL (*.GLSL)\0*.GLSL\0Todos os arquivos (*.*)\0*.*\0" + IDS_2145 "Opções do OpenGL" + IDS_2146 "Você está carregando uma configuração não suportada" + IDS_2147 "A filtragem do tipo CPU baseada na máquina selecionada é desativada para esta máquina emulada.\n\nIsto torna possível escolher uma CPU que de outra forma seria incompatível com a máquina selecionada. Entretanto, você pode encontrar incompatibilidades com a BIOS da máquina ou outro software.\n\nA ativação desta configuração não é oficialmente suportada e qualquer relatório de erro arquivado pode ser fechado como inválido." + IDS_2148 "Continuar" + IDS_2149 "Cassete: %s" + IDS_2150 "Imagens de cassete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Todos os arquivos (*.*)\0*.*\0" + IDS_2151 "Cartucho %i: %ls" + IDS_2152 "Imagens de cartucho (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Todos os arquivos (*.*)\0*.*\0" + IDS_2153 "Erro ao inicializar o renderizador" + IDS_2154 "O renderizador OpenGL (Núcleo 3.0) não pôde ser inicializado. Use outro renderizador." + IDS_2155 "Continuar a execução" + IDS_2156 "Pausar a execução" + IDS_2157 "Pressionar Ctrl+Alt+Del" + IDS_2158 "Pressionar Ctrl+Alt+Esc" + IDS_2159 "Reinicialização completa" + IDS_2160 "Desligamento por ACPI" + IDS_2161 "Configurações" + IDS_2162 "Tipo" + IDS_2163 "Sem recompilador dinâmico" + IDS_2164 "Recompilador dinâmico antigo" + IDS_2165 "Novo recompilador dinâmico" + IDS_2166 "A placa de vídeo #2 ""%hs"" não está disponível devido à ausência de ROMs no diretório roms/video. Desabilitando a segunda placa de vídeo." + IDS_2167 "Falha ao inicializar o driver de rede" + IDS_2168 "A configuração de rede será alterada para o driver nulo" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Disco rígido (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "As unidades de CD-ROM MFM/RLL ou ESDI nunca existiram" + IDS_4100 "Personalizado..." + 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 maiores do que 4GB." + IDS_4105 "As imagens de disco não podem ser maiores do que 127GB." + IDS_4106 "Imagens de disco rígido (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Todos os arquivos (*.*)\0*.*\0" + IDS_4107 "Não foi possível ler o arquivo" + IDS_4108 "Não foi possível escrever o arquivo" + IDS_4109 "Imagens HDI ou HDX com um tamanho de setor que não seja 512 não são suportadas." + IDS_4110 "O USB ainda não é suportado" + IDS_4111 "Esta imagem existe" + IDS_4112 "Digite um nome de arquivo válido." + IDS_4113 "A imagem foi criada com sucesso" + IDS_4114 "Certifique-se de que o arquivo existe e é legível." + IDS_4115 "Certifique-se de que o arquivo está sendo salvo em um diretório gravável." + IDS_4116 "A imagem do disco é muito grande" + IDS_4117 "Lembre-se de particionar e formatar a unidade recém-criada." + IDS_4118 "O arquivo selecionado será sobrescrito. Você tem certeza de que deseja usá-lo?" + IDS_4119 "Imagem de disco sem suporte" + IDS_4120 "Sobrescrever" + IDS_4121 "Não sobrescrever" + IDS_4122 "Imagem bruta (.img)" + IDS_4123 "Imagem HDI (.hdi)" + IDS_4124 "Imagem HDX (.hdx)" + IDS_4125 "VHD de tamanho fixo (.vhd)" + IDS_4126 "VHD de tamanho dinâmico (.vhd)" + IDS_4127 "VHD diferencial (.vhd)" + IDS_4128 "Blocos grandes (2 MB)" + IDS_4129 "Blocos pequenos (512 KB)" + IDS_4130 "Arquivos VHD (*.VHD)\0*.VHD\0Todos os arquivos (*.*)\0*.*\0" + IDS_4131 "Selecione o VHD pai" + IDS_4132 "Isto pode significar que a imagem de origem foi modificada após a criação da imagem diferencial.\n\nTambém pode acontecer caso os arquivos de imagem tenham sido movidos ou copiados, ou por um erro no programa que criou este disco.\n\nVocê quer consertar os marcadores de tempo?" + IDS_4133 "A data/hora dos arquivos de pais e filhos não correspondem" + IDS_4134 "Não foi possível consertar o carimbo de data/hora da 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 "Desativado" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Desativado" + 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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + IDS_6144 "RPM perfeita" + IDS_6145 "1% abaixo das RPM perfeita" + IDS_6146 "1.5% abaixo das RPM perfeita" + IDS_6147 "2% abaixo das RPM perfeita" + + IDS_7168 "(Padrão do sistema)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Portuguese (pt-BR) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc new file mode 100644 index 0000000000..470b9d5bda --- /dev/null +++ b/src/win/languages/pt-PT.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Portuguese (Portugal) resources + +#ifdef _WIN32 +LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Ação" + BEGIN + MENUITEM "&Teclado requere captura", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&CTRL direito é ALT esquerdo",IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Reinicialização completa...",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 "&Sair...", IDM_ACTION_EXIT + END + POPUP "&Ver" + BEGIN + MENUITEM "&Ocultar barra de estado", IDM_VID_HIDE_STATUS_BAR + MENUITEM "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Janela redimensionável", IDM_VID_RESIZE + MENUITEM "&Lembrar tamanho e posição", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Renderizador" + BEGIN + MENUITEM "&SDL (Software)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (Núcleo 3.0)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + 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" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Método de filtragem" + BEGIN + MENUITEM "&Mais próximo", IDM_VID_FILTER_NEAREST + MENUITEM "&Linear", IDM_VID_FILTER_LINEAR + END + MENUITEM "Escala Hi&DPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "E&crã cheio\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "Modo &de estiramento em ecrã cheio" + BEGIN + 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 + END + POPUP "Definições E&GA/(S)VGA" + BEGIN + MENUITEM "Monitor VGA &invertido", IDM_VID_INVERT + POPUP "&Tipo de ecrã VGA" + BEGIN + MENUITEM "&Cores RGB", IDM_VID_GRAY_RGB + MENUITEM "&RGB em escala de cinzentos", IDM_VID_GRAY_MONO + MENUITEM "Monitor âmb&ar", IDM_VID_GRAY_AMBER + MENUITEM "Monitor &verde", IDM_VID_GRAY_GREEN + MENUITEM "Monitor &branco", IDM_VID_GRAY_WHITE + END + POPUP "Tipo de &conversão para escala de cinzentos" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + 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ã monocromático", IDM_VID_CGACON + END + MENUITEM "&Media", IDM_MEDIA + POPUP "&Ferramentas" + BEGIN + MENUITEM "&Definições...", IDM_CONFIG + MENUITEM "&Atualizar ícones da barra de estado", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Gravar imagem de ecrã\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Preferências...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Ativar integração com &Discord", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Ganho de som...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Iniciar o rastreio\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Terminar o rastreio\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Ajuda" + BEGIN + MENUITEM "&Documentação...", IDM_DOCS + MENUITEM "&Acerca do 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova imagem...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Imagem &existente...", IDM_CASSETTE_IMAGE_EXISTING + 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 o fim", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Imagem...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova imagem...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Imagem &existente...", IDM_FLOPPY_IMAGE_EXISTING + 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&jetar", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Mute", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&CDROM vazio", IDM_CDROM_EMPTY + MENUITEM "&Recarregar imagem anterior", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Imagem...", IDM_CDROM_IMAGE + MENUITEM "&Pasta...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova imagem...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Imagem &existente...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Imagem existente (&Proteção contra escrita)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_ZIP_EJECT + MENUITEM "&Recarregar imagem anterior", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Nova imagem...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "Imagem &existente...", IDM_MO_IMAGE_EXISTING + MENUITEM "Imagem existente (&Proteção contra escrita)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "E&jetar", IDM_MO_EJECT + MENUITEM "&Recarregar imagem anterior", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "&Taxa de quadros de destino" + BEGIN + MENUITEM "&Sincronizar com vídeo", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 q/s", IDM_VID_GL_FPS_25 + MENUITEM "&30 q/s", IDM_VID_GL_FPS_30 + MENUITEM "&50 q/s", IDM_VID_GL_FPS_50 + MENUITEM "&60 q/s", IDM_VID_GL_FPS_60 + MENUITEM "&75 q/s", IDM_VID_GL_FPS_75 + END + MENUITEM "&VSync", IDM_VID_GL_VSYNC + MENUITEM "&Selecionar shader...", IDM_VID_GL_SHADER + MENUITEM "&Remover shader", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Preferências" +#define STR_SND_GAIN "Ganho de som" +#define STR_NEW_FLOPPY "Nova imagem" +#define STR_CONFIG "Definições" +#define STR_SPECIFY_DIM "Especificar dimensões da janela principal" + +#define STR_OK "OK" +#define STR_CANCEL "Cancelar" +#define STR_GLOBAL "Guardar estas definições como padrões &globais" +#define STR_DEFAULT "&Padrão" +#define STR_LANGUAGE "Idioma:" +#define STR_ICONSET "Pacote de ícones:" + +#define STR_GAIN "Ganho" + +#define STR_FILE_NAME "Nome:" +#define STR_DISK_SIZE "Tamanho:" +#define STR_RPM_MODE "Modo RPM:" +#define STR_PROGRESS "Progresso:" + +#define STR_WIDTH "Largura:" +#define STR_HEIGHT "Altura:" +#define STR_LOCK_TO_SIZE "Fixar neste tamanho" + +#define STR_MACHINE_TYPE "Tipo de máquina:" +#define STR_MACHINE "Máquina:" +#define STR_CONFIGURE "Configurar" +#define STR_CPU_TYPE "Tipo do CPU:" +#define STR_CPU_SPEED "Velocidade:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "Estados de espera:" +#define STR_MB "MB" +#define STR_MEMORY "Memória:" +#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)" +#define STR_DYNAREC "Recompilador dinâmico" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Cache" + +#define STR_VIDEO "Vídeo:" +#define STR_VIDEO_2 "Vídeo 2:" +#define STR_VOODOO "Gráficos Voodoo" +#define STR_IBM8514 "Gráficos IBM 8514/A" +#define STR_XGA "Gráficos XGA" + +#define STR_MOUSE "Rato:" +#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_SOUND1 "Placa de som 1:" +#define STR_SOUND2 "Placa de som 2:" +#define STR_SOUND3 "Placa de som 3:" +#define STR_SOUND4 "Placa de som 4:" +#define STR_MIDI_OUT "Disp. saída MIDI:" +#define STR_MIDI_IN "Disp. entrada MIDI:" +#define STR_MPU401 "MPU-401 autónomo" +#define STR_FLOAT "Utilizar som FLOAT32" +#define STR_FM_DRIVER "Controlador de sint. FM" +#define STR_FM_DRV_NUKED "Nuked (mais exacto)" +#define STR_FM_DRV_YMFM "YMFM (mais rápido)" + +#define STR_NET_TYPE "Tipo de rede:" +#define STR_PCAP "Dispositivo PCap:" +#define STR_NET "Placa de rede:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Dispositivo COM1:" +#define STR_COM2 "Dispositivo COM2:" +#define STR_COM3 "Dispositivo COM3:" +#define STR_COM4 "Dispositivo COM4:" +#define STR_LPT1 "Dispositivo LPT1:" +#define STR_LPT2 "Dispositivo LPT2:" +#define STR_LPT3 "Dispositivo LPT3:" +#define STR_LPT4 "Dispositivo LPT4:" +#define STR_SERIAL1 "Porta de série 1" +#define STR_SERIAL2 "Porta de série 2" +#define STR_SERIAL3 "Porta de série 3" +#define STR_SERIAL4 "Porta de série 4" +#define STR_PARALLEL1 "Porta paralela 1" +#define STR_PARALLEL2 "Porta paralela 2" +#define STR_PARALLEL3 "Porta paralela 3" +#define STR_PARALLEL4 "Porta paralela 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#define STR_HDC "Controlador HD:" +#define STR_FDC "Controlador FD:" +#define STR_IDE_TER "Controlador IDE terciário" +#define STR_IDE_QUA "Controlador IDE quaternário" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Controlador 1:" +#define STR_SCSI_2 "Controlador 2:" +#define STR_SCSI_3 "Controlador 3:" +#define STR_SCSI_4 "Controlador 4:" +#define STR_CASSETTE "Cassete" + +#define STR_HDD "Discos rígidos:" +#define STR_NEW "&Novo..." +#define STR_EXISTING "&Existente..." +#define STR_REMOVE "&Remover" +#define STR_BUS "Barram.:" +#define STR_CHANNEL "Canal:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Especificar..." +#define STR_SECTORS "Sectores:" +#define STR_HEADS "Cabeças:" +#define STR_CYLS "Cilindros:" +#define STR_SIZE_MB "Tamanho (MB):" +#define STR_TYPE "Tipo:" +#define STR_IMG_FORMAT "Formato de imagem:" +#define STR_BLOCK_SIZE "Tamanho de bloco:" + +#define STR_FLOPPY_DRIVES "Unidades de disquete:" +#define STR_TURBO "Velocidade turbo" +#define STR_CHECKBPB "Verificar BPB" +#define STR_CDROM_DRIVES "Unidades CD-ROM:" +#define STR_CD_SPEED "Velocidade:" + +#define STR_MO_DRIVES "Unidades magneto-ópticas:" +#define STR_ZIP_DRIVES "Unidades ZIP:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA RTC:" +#define STR_ISAMEM "Expansão de memória ISA" +#define STR_ISAMEM_1 "Placa 1:" +#define STR_ISAMEM_2 "Placa 2:" +#define STR_ISAMEM_3 "Placa 3:" +#define STR_ISAMEM_4 "Placa 4:" +#define STR_BUGGER "Dispositivo ISABugger" +#define STR_POSTCARD "Placa POST" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Erro" + IDS_2050 "Erro fatal" + IDS_2051 " - PAUSED" + IDS_2052 "Pressione Ctrl+Alt+PgDn 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 "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 "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 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 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" + IDS_2068 "Som" + IDS_2069 "Rede" + IDS_2070 "Portas (COM e LPT)" + IDS_2071 "Dispositivos de armazenamento" + IDS_2072 "Discos rígidos" + IDS_2073 "Unidades de disquete e CD-ROM" + IDS_2074 "Outros dispostivos removíveis" + IDS_2075 "Outros dispositivos" + IDS_2076 "Imagens de superfície (*.86F)\0*.86F\0" + IDS_2077 "Clique para capturar o rato" + IDS_2078 "Pressione F8+F12 para soltar o rato" + IDS_2079 "Pressione F8+F12 ou tecla média para soltar o rato" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Barramento" + IDS_2082 "Ficheiro" + IDS_2083 "C" + IDS_2084 "C" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Verificar BPB" + IDS_2089 "KB" + IDS_2090 "Não foi possível inicializar o renderizador vídeo." + IDS_2091 "Padrão" + IDS_2092 "%i estado(s) de espera" + IDS_2093 "Tipo" + IDS_2094 "Falha na configuração de PCap" + IDS_2095 "Não foi encontrado um dispositivo PCap" + IDS_2096 "Dispositivo PCap inválido" + IDS_2097 "Joystick(s) standard de 2 botões" + IDS_2098 "Joystick(s) standard de 4 botões" + IDS_2099 "Joystick(s) standard de 6 botões" + IDS_2100 "Joystick(s) standard de 8 botões" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Nenhum" + IDS_2105 "Não foi possível inicializar os aceleradores de teclado." + IDS_2106 "Não foi possível registar a entrada bruta." + IDS_2107 "%u" + IDS_2108 "%u MB (CCS: %i, %i, %i)" + IDS_2109 "Disquete %i (%s): %ls" + IDS_2110 "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_2113 "Tem a certeza de que quer um reinício completo da máquina emulada?" + IDS_2114 "Tem a certeza de que quer sair do 86Box?" + IDS_2115 "Não foi possível inicializar o Ghostscript" + IDS_2116 "Magneto-óptico %i (%ls): %ls" + IDS_2117 "Imagens magneto-ópticas (*.IM?;*.MDI)\0*.IM?;*.MDI\0Todas as imagens (*.*)\0*.*\0" + IDS_2118 "Bem-vindos ao 86Box!" + IDS_2119 "Controlador interno" + IDS_2120 "Sair" + IDS_2121 "Não foi encontrada nenhuma ROM" + IDS_2122 "Deseja guardar as definições?" + IDS_2123 "Isto irá causar um reinício completo da máquina emulada." + IDS_2124 "Guardar" + IDS_2125 "Acerca do 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, 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_2128 "OK" + IDS_2129 "Hardware não disponível" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "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_2131 "Configuração inválida" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 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)." + IDS_2135 "A entrar no modo de ecrã cheio" + IDS_2136 "Não mostrar mais esta mensagem" + IDS_2137 "Não sair" + IDS_2138 "Reiniciar" + IDS_2139 "Não reiniciar" + IDS_2140 "Imagens magneto-ópticas (*.IM?;*.MDI)\0*.IM?;*.MDI\0Todos os ficheiros (*.*)\0*.*\0" + IDS_2141 "Imagens CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Todos os ficheiros (*.*)\0*.*\0" + IDS_2142 "Configuração de dispositivo %hs" + IDS_2143 "Ecrã em modo de sono" + IDS_2144 "Shaders OpenGL (*.GLSL)\0*.GLSL\0Todos os ficheiros (*.*)\0*.*\0" + IDS_2145 "Opções de OpenGL" + IDS_2146 "Está a carregar uma configuração sem suporte!" + IDS_2147 "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_2148 "Continuar" + IDS_2149 "Cassete: %s" + IDS_2150 "Imagens de cassete (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Todos os ficheiros (*.*)\0*.*\0" + IDS_2151 "Cartucho %i: %ls" + IDS_2152 "Imagens de cartucho (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Todos os ficheiros (*.*)\0*.*\0" + IDS_2153 "Erro na inicialização do renderizador" + IDS_2154 "Não foi possível inicializar o renderizador OpenGL (3.0 Core). Utilize outro renderizador." + IDS_2155 "Retomar execução" + IDS_2156 "Pausar execução" + IDS_2157 "Ctrl+Alt+Del" + IDS_2158 "Ctrl+Alt+Esc" + IDS_2159 "Reinicialização completa" + IDS_2160 "Encerramento ACPI" + IDS_2161 "Definições" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Disco rígido (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "Unidades CD-ROM com barramento MFM/RLL ou ESDI nunca existiram!" + IDS_4100 "Personalizado..." + 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 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 "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 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 guardado numa pasta editável." + IDS_4116 "Imagem de disco muito grande" + 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 sobrescrever" + IDS_4122 "Imagem bruta (.img)" + IDS_4123 "Imagem HDI (.hdi)" + IDS_4124 "Imagem HDX (.hdx)" + IDS_4125 "VHD com tamanho fixo (.vhd)" + IDS_4126 "VHD com tamanho dinâmico (.vhd)" + IDS_4127 "VHD diferenciador (.vhd)" + IDS_4128 "Blocos grandes (2 MB)" + 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 "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" + + 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 "Desativado" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Desativado" + 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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + 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 do sistema)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Portuguese (Portugal) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/ru-RU.rc b/src/win/languages/ru-RU.rc new file mode 100644 index 0000000000..cba4d22373 --- /dev/null +++ b/src/win/languages/ru-RU.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Russian resources + +#ifdef _WIN32 +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Действие" + BEGIN + MENUITEM "&Клавиатура требует захвата", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Правый CTRL - это левый ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Холодная перезагрузка...", 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 "&Пауза", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "&Выход...", IDM_ACTION_EXIT + END + POPUP "&Вид" + BEGIN + MENUITEM "&Скрыть строку состояния", IDM_VID_HIDE_STATUS_BAR + MENUITEM "С&крыть панель инструментов", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Изменяемый размер окна", IDM_VID_RESIZE + MENUITEM "&Запомнить размер и положение", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Рендеринг" + BEGIN + MENUITEM "&SDL (Software)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (3.0)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "&Указать размеры...", IDM_VID_SPECIFY_DIM + MENUITEM "У&становить соотношение сторон 4:3", IDM_VID_FORCE43 + POPUP "&Масштаб окна" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Метод фильтрации" + BEGIN + MENUITEM "&Ближайший", IDM_VID_FILTER_NEAREST + MENUITEM "&Линейный", IDM_VID_FILTER_LINEAR + END + MENUITEM "Масштабирование Hi&DPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Полноэкранный режим\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "&Растягивание в полноэкранном режиме" + BEGIN + MENUITEM "&На весь экран", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Квадратные пиксели (сохранить соотношение)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Целочисленное масштабирование", IDM_VID_FS_INT + END + POPUP "Настройки E&GA/(S)VGA" + BEGIN + MENUITEM "&Инвертировать цвета VGA", IDM_VID_INVERT + POPUP "&Тип экрана VGA" + BEGIN + MENUITEM "RGB &цветной", IDM_VID_GRAY_RGB + MENUITEM "&RGB монохромный", IDM_VID_GRAY_MONO + MENUITEM "&Янтарный оттенок", IDM_VID_GRAY_AMBER + MENUITEM "&Зелёный оттенок", IDM_VID_GRAY_GREEN + MENUITEM "&Белый оттенок", IDM_VID_GRAY_WHITE + END + POPUP "Тип монохромного &конвертирования" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Усреднённый", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "Вылеты развёртки CGA/PCjr/Tandy/E&GA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "Изменить контрастность &монохромного дисплея", IDM_VID_CGACON + END + MENUITEM "&Носители", IDM_MEDIA + POPUP "&Инструменты" + BEGIN + MENUITEM "&Настройки машины...", IDM_CONFIG + MENUITEM "&Обновление значков строки состояния", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Сделать с&криншот\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Параметры...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Включить интеграцию &Discord", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Усиление звука...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Начать трассировку\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Завершить трассировку\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Помощь" + BEGIN + MENUITEM "&Документация...", IDM_DOCS + MENUITEM "&О программе 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Новый образ...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Выбрать образ...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Выбрать образ (&Защита от записи)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Запись", IDM_CASSETTE_RECORD + MENUITEM "&Воспроизведение", IDM_CASSETTE_PLAY + MENUITEM "&Перемотка на начало", IDM_CASSETTE_REWIND + MENUITEM "&Перемотка в конец", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "И&звлечь", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Образ...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "И&звлечь", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Новый образ...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Выбрать образ...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Выбрать образ (&Защита от записи)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "Э&кспорт в 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "И&звлечь", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "О&тключить звук", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "П&устой", IDM_CDROM_EMPTY + MENUITEM "&Снова загрузить предыдущий образ", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Образ...", IDM_CDROM_IMAGE + MENUITEM "&Папка...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Новый образ...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Выбрать образ...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Выбрать образ (&Защита от записи)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "И&звлечь", IDM_ZIP_EJECT + MENUITEM "&Снова загрузить предыдущий образ", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Новый образ...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Выбрать образ...", IDM_MO_IMAGE_EXISTING + MENUITEM "Выбрать образ (&Защита от записи)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "И&звлечь", IDM_MO_EJECT + MENUITEM "&Снова загрузить предыдущий образ", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Целевая &частота кадров" + BEGIN + MENUITEM "&Синхронизация с видео", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 кадров в секунду", IDM_VID_GL_FPS_25 + MENUITEM "&30 кадров в секунду", IDM_VID_GL_FPS_30 + MENUITEM "&50 кадров в секунду", IDM_VID_GL_FPS_50 + MENUITEM "&60 кадров в секунду", IDM_VID_GL_FPS_60 + MENUITEM "&75 кадров в секунду", IDM_VID_GL_FPS_75 + END + MENUITEM "&VSync", IDM_VID_GL_VSYNC + MENUITEM "&Выбрать шейдер...", IDM_VID_GL_SHADER + MENUITEM "&Удалить шейдер", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Параметры" +#define STR_SND_GAIN "Усиление звука" +#define STR_NEW_FLOPPY "Новый образ" +#define STR_CONFIG "Настройки" +#define STR_SPECIFY_DIM "Указать размеры главного окна" + +#define STR_OK "OK" +#define STR_CANCEL "Отмена" +#define STR_GLOBAL "Сохранить эти параметры как &глобальные по умолчанию" +#define STR_DEFAULT "&По умолчанию" +#define STR_LANGUAGE "Язык:" +#define STR_ICONSET "Набор иконок:" + +#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 "Тип ЦП:" +#define STR_CPU_SPEED "Скорость:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "Циклы ожидания:" +#define STR_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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "кэш" + +#define STR_VIDEO "Видеокарта:" +#define STR_VIDEO_2 "Видеокарта 2:" +#define STR_VOODOO "Ускоритель Voodoo" +#define STR_IBM8514 "Ускоритель IBM 8514/A" +#define STR_XGA "Ускоритель XGA" + +#define STR_MOUSE "Мышь:" +#define STR_JOYSTICK "Джойстик:" +#define STR_JOY1 "Джойстик 1..." +#define STR_JOY2 "Джойстик 2..." +#define STR_JOY3 "Джойстик 3..." +#define STR_JOY4 "Джойстик 4..." + +#define STR_SOUND1 "Звуковая карта 1:" +#define STR_SOUND2 "Звуковая карта 2:" +#define STR_SOUND3 "Звуковая карта 3:" +#define STR_SOUND4 "Звуковая карта 4:" +#define STR_MIDI_OUT "MIDI Out устр-во:" +#define STR_MIDI_IN "MIDI In устр-во:" +#define STR_MPU401 "Отдельный MPU-401" +#define STR_FLOAT "FLOAT32 звук" +#define STR_FM_DRIVER "Драйвер FM-синтезатора" +#define STR_FM_DRV_NUKED "Nuked (более точный)" +#define STR_FM_DRV_YMFM "YMFM (быстрей)" + +#define STR_NET_TYPE "Тип сети:" +#define STR_PCAP "Устройство PCap:" +#define STR_NET "Сетевая карта:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Устройство COM1:" +#define STR_COM2 "Устройство COM2:" +#define STR_COM3 "Устройство COM3:" +#define STR_COM4 "Устройство COM4:" +#define STR_LPT1 "Устройство LPT1:" +#define STR_LPT2 "Устройство LPT2:" +#define STR_LPT3 "Устройство LPT3:" +#define STR_LPT4 "Устройство LPT4:" +#define STR_SERIAL1 "Последов. порт COM1" +#define STR_SERIAL2 "Последов. порт COM2" +#define STR_SERIAL3 "Последов. порт COM3" +#define STR_SERIAL4 "Последов. порт COM4" +#define STR_PARALLEL1 "Параллельный порт LPT1" +#define STR_PARALLEL2 "Параллельный порт LPT2" +#define STR_PARALLEL3 "Параллельный порт LPT3" +#define STR_PARALLEL4 "Параллельный порт LPT4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#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 "&Создать..." +#define STR_EXISTING "&Выбрать..." +#define STR_REMOVE "&Убрать" +#define STR_BUS "Шина:" +#define STR_CHANNEL "Канал:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Указать..." +#define STR_SECTORS "Сектора:" +#define STR_HEADS "Головки:" +#define STR_CYLS "Цилиндры:" +#define STR_SIZE_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_CD_SPEED "Скорость:" + +#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 "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Ошибка" + IDS_2050 "Неустранимая ошибка" + IDS_2051 " - ПАУЗА" + IDS_2052 "Нажмите Ctrl+Alt+PgDn для возврата в оконный режим." + IDS_2053 "Скорость" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "Образы ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box не смог найти ни одного подходящего для использования файла с ПЗУ.\n\nПожалуйста скачайте набор ПЗУ и извлеките его в каталог ""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?\0Surface образы (*.86F)\0*.86F\0" + IDS_2063 "Системная плата ""%hs"" недоступна из-за отсутствия файла её ПЗУ в каталоге roms/machines. Переключение на доступную системную плату." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Видеокарта ""%hs"" недоступна из-за отсутствия файла её ПЗУ в каталоге roms/video. Переключение на доступную видеокарту." + 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 "Образы Surface (*.86F)\0*.86F\0" + IDS_2077 "Щёлкните мышью для захвата курсора" + IDS_2078 "Нажмите F8+F12 чтобы освободить курсор" + IDS_2079 "Нажмите F8+F12 или среднюю кнопку мыши чтобы освободить курсор" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Шина" + IDS_2082 "Файл" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "МБ" + IDS_2087 "Speed" + IDS_2088 "Проверять BPB" + IDS_2089 "КБ" + IDS_2090 "Не удалось инициализировать рендерер видео." + IDS_2091 "По умолчанию" + IDS_2092 "%i WS" + IDS_2093 "Тип" + IDS_2094 "Не удалось настроить PCap" + IDS_2095 "Устройства PCap не найдены" + IDS_2096 "Неверное устройство PCap" + IDS_2097 "Стандартный 2-кнопочный джойстик" + IDS_2098 "Стандартный 4-кнопочный джойстик" + IDS_2099 "Стандартный 6-кнопочный джойстик" + IDS_2100 "Стандартный 8-кнопочный джойстик" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Система управления полетом Thrustmaster" + IDS_2104 "Нет" + IDS_2105 "Невозможно загрузить ускорители клавиатуры." + IDS_2106 "Невозможно зарегистрировать необработанный (RAW) ввод." + IDS_2107 "%u" + IDS_2108 "%u МБ (CHS: %i, %i, %i)" + IDS_2109 "Дисковод %i (%s): %ls" + IDS_2110 "Все образы (*.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Образы Flux (*.FDI)\0*.FDI\0Образы Surface (*.86F;*.MFM)\0*.86F;*.MFM\0Все файлы (*.*)\0*.*\0" + IDS_2113 "Вы уверены, что хотите выполнить холодную перезагрузку эмулируемой машины?" + IDS_2114 "Вы уверены, что хотите выйти из 86Box?" + IDS_2115 "Невозможно инициализировать Ghostscript" + IDS_2116 "Магнитооптический %i (%ls): %ls" + IDS_2117 "Образы магнитооптических дисков (*.IM?;*.MDI)\0*.IM?;*.MDI\0Все файлы (*.*)\0*.*\0" + IDS_2118 "Добро пожаловать в 86Box!" + IDS_2119 "Встроенный контроллер" + IDS_2120 "Выход" + IDS_2121 "ПЗУ не найдены" + IDS_2122 "Хотите ли вы сохранить настройки?" + IDS_2123 "Это приведет к холодной перезагрузке эмулируемой машины." + IDS_2124 "Сохранить" + IDS_2125 "О 86Box" + IDS_2126 "86Box v." EMU_VERSION + + IDS_2127 "Эмулятор старых компьютеров\n\nАвторы: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nВыпускается под лицензией GNU General Public License версии 2 или более поздней. Дополнительную информацию см. в файле LICENSE." + IDS_2128 "OK" + IDS_2129 "Оборудование недоступно" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Убедитесь, что " LIB_NAME_PCAP " установлен и ваше сетевое соединение, совместимо с " LIB_NAME_PCAP "." + IDS_2131 "Недопустимая конфигурация" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " требуется для автоматического преобразования файлов PostScript в PDF.\n\nВсе документы, отправленные на общий принтер PostScript, будут сохранены в виде файлов PostScript (.ps)." + IDS_2135 "Вход в полноэкранный режим" + IDS_2136 "Больше не показывать это сообщение" + IDS_2137 "Не выходить" + IDS_2138 "Перезагрузить" + IDS_2139 "Не перезагружать" + IDS_2140 "Образы магнитооптических дисков (*.IM?;*.MDI)\0*.IM?;*.MDI\0Все файлы (*.*)\0*.*\0" + IDS_2141 "Образы CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Все файлы (*.*)\0*.*\0" + IDS_2142 "Конфигурация устройства %hs" + IDS_2143 "Монитор в спящем режиме" + IDS_2144 "Шейдеры OpenGL (*.GLSL)\0*.GLSL\0Все файлы (*.*)\0*.*\0" + IDS_2145 "Параметры OpenGL" + IDS_2146 "Вы загружаете неподдерживаемую конфигурацию" + IDS_2147 "Выбор типов ЦП для этой системной платы на данной эмулируемой машине отключен.\n\nЭто позволяет выбрать процессор, который в противном случае несовместим с выбранной материнской платой. Однако, вы можете столкнуться с несовместимостью с BIOS материнской платы или другим ПО.\n\nВключение этого параметра официально не поддерживается, и все поданные отчеты об ошибках могут быть закрыты как недействительные." + IDS_2148 "Продолжить" + IDS_2149 "Кассета: %s" + IDS_2150 "Образы кассет (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Все файлы (*.*)\0*.*\0" + IDS_2151 "Картридж %i: %ls" + IDS_2152 "Образы картриджей (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Все файлы (*.*)\0*.*\0" + IDS_2153 "Ошибка инициализации рендерера" + IDS_2154 "Невозможно инициализировать рендерер OpenGL (3.0). Пожалуйста, используйте другой рендерер." + IDS_2155 "Возобновить выполнение" + IDS_2156 "Приостановить выполнение" + IDS_2157 "Нажать Ctrl+Alt+Del" + IDS_2158 "Нажать Ctrl+Alt+Esc" + IDS_2159 "Холодная перезагрузка" + IDS_2160 "Сигнал завершения ACPI" + IDS_2161 "Настройки машины" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +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 ГБ." + IDS_4105 "Размер образов дисков не может превышать 127 ГБ." + IDS_4106 "Образы жёстких дисков (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Все файлы (*.*)\0*.*\0" + IDS_4107 "Невозможно прочитать файл" + IDS_4108 "Невозможно записать файл" + IDS_4109 "Образы HDI или HDX с размером сектора, отличным от 512, не поддерживаются." + 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 "RAW образ (.img)" + IDS_4123 "Образ HDI (.hdi)" + IDS_4124 "Образ HDX (.hdx)" + IDS_4125 "VHD фиксированного размера (.vhd)" + IDS_4126 "VHD динамического размера (.vhd)" + IDS_4127 "Дифференцированный образ VHD (.vhd)" + IDS_4128 "Большие блоки (2 МБ)" + IDS_4129 "Маленькие блоки (512 КБ)" + 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 кБ" + IDS_5889 "180 кБ" + IDS_5890 "320 кБ" + IDS_5891 "360 кБ" + IDS_5892 "640 кБ" + IDS_5893 "720 кБ" + IDS_5894 "1.2 МБ" + IDS_5895 "1.25 МБ" + IDS_5896 "1.44 МБ" + IDS_5897 "DMF (кластер 1024)" + IDS_5898 "DMF (кластер 2048)" + IDS_5899 "2.88 МБ" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128 МБ (ISO 10090)" + IDS_5903 "3.5"" 230 МБ (ISO 13963)" + IDS_5904 "3.5"" 540 МБ (ISO 15498)" + IDS_5905 "3.5"" 640 МБ (ISO 15498)" + IDS_5906 "3.5"" 1.3 ГБ (GigaMO)" + IDS_5907 "3.5"" 2.3 ГБ (GigaMO 2)" + IDS_5908 "5.25"" 600 МБ" + IDS_5909 "5.25"" 650 МБ" + IDS_5910 "5.25"" 1 ГБ" + IDS_5911 "5.25"" 1.3 ГБ" + + IDS_6144 "Точный RPM" + IDS_6145 "На 1% медленнее точного RPM" + IDS_6146 "На 1.5% медленнее точного RPM" + IDS_6147 "На 2% медленнее точного RPM" + + IDS_7168 "(Системный)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Russian resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/sl-SI.rc b/src/win/languages/sl-SI.rc new file mode 100644 index 0000000000..38142ec349 --- /dev/null +++ b/src/win/languages/sl-SI.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// 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 "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + 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 + MENUITEM "Open&GL (Jedro 3.0)", IDM_VID_OPENGL_CORE +#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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + 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+PgUp", 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 "&Zajemi posnetek zaslona\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Možnosti...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Omogoči integracijo s programom &Discord", IDM_DISCORD +#endif + 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 + 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 + MENUITEM "&Mapa...", IDM_CDROM_DIR + 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 + +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 + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Možnosti" +#define STR_SND_GAIN "Ojačanje zvoka" +#define STR_NEW_FLOPPY "Nova slika" +#define STR_CONFIG "Nastavitve" +#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_ICONSET "Komplet ikon:" + +#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_CPU_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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Predpomnilnik" + +#define STR_VIDEO "Video:" +#define STR_VIDEO_2 "Video 2:" +#define STR_VOODOO "Voodoo grafika" +#define STR_IBM8514 "IBM 8514/A grafika" +#define STR_XGA "XGA 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_SOUND1 "Zvočna kartica 1:" +#define STR_SOUND2 "Zvočna kartica 2:" +#define STR_SOUND3 "Zvočna kartica 3:" +#define STR_SOUND4 "Zvočna kartica 4:" +#define STR_MIDI_OUT "Izhodna naprava MIDI:" +#define STR_MIDI_IN "Vhodna naprava MIDI:" +#define STR_MPU401 "Samostojen MPU-401" +#define STR_FLOAT "Uporabi FLOAT32 za zvok" +#define STR_FM_DRIVER "Gonilnik sintetizacije FM" +#define STR_FM_DRV_NUKED "Nuked (točnejši)" +#define STR_FM_DRV_YMFM "YMFM (hitrejši)" + +#define STR_NET_TYPE "Vrsta omrežja:" +#define STR_PCAP "Naprava PCap:" +#define STR_NET "Omrežna kartica:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "Naprava COM1:" +#define STR_COM2 "Naprava COM2:" +#define STR_COM3 "Naprava COM3:" +#define STR_COM4 "Naprava COM4:" +#define STR_LPT1 "Naprava LPT1:" +#define STR_LPT2 "Naprava LPT2:" +#define STR_LPT3 "Naprava LPT3:" +#define STR_LPT4 "Naprava LPT4:" +#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_PARALLEL4 "Paralelna vrata 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#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_SPEED "Speed:" + +#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 "Preverjaj BPB" +#define STR_CDROM_DRIVES "Pogoni CD-ROM:" +#define STR_CD_SPEED "Hitrost:" + +#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 " - PAUSED" + IDS_2052 "Pritisnite Ctrl+Alt+PgDn 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_2081 "Vodilo" + IDS_2082 "Datoteka" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "Preveri BPB" + IDS_2089 "KB" + IDS_2090 "Ne morem inicializirati pogona upodabljanja." + IDS_2091 "Privzeto" + IDS_2092 "%i stanj čakanja" + IDS_2093 "Vrsta" + IDS_2094 "Nastavitev PCap ni uspela" + IDS_2095 "Nobena naprava PCap ni bila najdena" + IDS_2096 "Neveljavna naprava PCap" + IDS_2097 "Standardna krmilna palica z 2 gumboma" + IDS_2098 "Standardna krmilna palica s 4 gumbi" + IDS_2099 "Standardna krmilna palica s 6 gumbi" + IDS_2100 "Standardna krmilna palica z 8 gumbi" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "Brez" + IDS_2105 "Ne morem naložiti pospeševalnikov tipkovnice." + IDS_2106 "Ne morem registrirati neobdelanega vnosa." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Disketa %i (%s): %ls" + IDS_2110 "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_2113 "Ste prepričani, da želite ponovno zagnati emulirani sistem?" + IDS_2114 "Ste prepričani, da želite zapreti 86Box?" + IDS_2115 "Ne morem inicializirati Ghostscript" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "Slike MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Vse datoteke (*.*)\0*.*\0" + IDS_2118 "Dobrodošli v 86Box!" + IDS_2119 "Notranji krmilnik" + IDS_2120 "Izhod" + IDS_2121 "Nobeni ROM-i niso bili najdeni" + IDS_2122 "Želite shraniti nastavitve?" + IDS_2123 "To bo ponovno zagnalo emuliran sistem." + IDS_2124 "Shrani" + IDS_2125 "O programu 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Emulator starih računalnikov\n\nAvtorji: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne in drugi.\n\nWith previous core contributions from Sarah Walker, 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_2128 "V redu" + IDS_2129 "Strojna oprema ni na voljo" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Prepičajte se, da je nameščen " LIB_NAME_PCAP " in da ste na omrežni povezavi, združljivi z " LIB_NAME_PCAP + IDS_2131 "Neveljavna konfiguracija" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 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." + IDS_2135 "Preklapljam v celozaslonski način" + IDS_2136 "Ne pokaži več tega sporočila" + IDS_2137 "Prekliči izhod" + IDS_2138 "Resetiraj" + IDS_2139 "Ne resetiraj" + IDS_2140 "Slike MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0Vse datoteke (*.*)\0*.*\0" + IDS_2141 "Slike CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Vse datoteke (*.*)\0*.*\0" + IDS_2142 "Konfiguracija naprave %hs" + IDS_2143 "Zaslon v načinu spanja" + IDS_2144 "Senčilniki OpenGL (*.GLSL)\0*.GLSL\0Vse datoteke (*.*)\0*.*\0" + IDS_2145 "Možnosti OpenGL" + IDS_2146 "Nalagate nepodprto konfiguracijo" + IDS_2147 "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_2148 "Nadaljuj" + IDS_2149 "Kaseta: %s" + IDS_2150 "Slike kaset (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Vse datoteke (*.*)\0*.*\0" + IDS_2151 "Spominski vložek %i: %ls" + IDS_2152 "Slike spominskega vložka (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Vse datoteke (*.*)\0*.*\0" + IDS_2153 "Napaka pri zagonu sistema za upodabljanje" + IDS_2154 "Sistema za upodabljanje OpenGL (3.0 Core) ni bilo mogoče zagnati. Uporabite drug sistem za upodabljanje." + IDS_2155 "Nadaljuj izvajanje" + IDS_2156 "Prekini izvajanje" + IDS_2157 "Press Ctrl+Alt+Del" + IDS_2158 "Press Ctrl+Alt+Esc" + IDS_2159 "Ponovni zagon" + IDS_2160 "Zaustavitev ACPI" + IDS_2161 "Nastavitve" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +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 slike 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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + 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 +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/tr-TR.rc b/src/win/languages/tr-TR.rc new file mode 100644 index 0000000000..a49c2184fb --- /dev/null +++ b/src/win/languages/tr-TR.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Turkish (TR) resources + +#ifdef _WIN32 +LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Komutlar" + BEGIN + MENUITEM "&Klavye sadece fare yakalandığında çalışsın", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Sağ CTRL tuşunu sol ALT tuşu olarak ayarla", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Makineyi yeniden başlat...", 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 "&Duraklat", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "Emülatörden &çık...", IDM_ACTION_EXIT + END + POPUP "&Görüntüleme" + BEGIN + MENUITEM "&Durum çubuğunu gizle", IDM_VID_HIDE_STATUS_BAR + MENUITEM "Hide &toolbar", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Yeniden boyutlandırılabilir pencere", IDM_VID_RESIZE + MENUITEM "&Pencere boyut ve pozisyonunu hatırla", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&İşleyici" + BEGIN + MENUITEM "&SDL (Yazılım)", IDM_VID_SDL_SW + MENUITEM "SDL (&Donanım)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (3.0 Core)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "Pencere &boyutunu belirle...", IDM_VID_SPECIFY_DIM + MENUITEM "&4:3 görüntüleme oranına zorla", IDM_VID_FORCE43 + POPUP "Pencere &ölçek çarpanı" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "&Filtre metodu" + BEGIN + MENUITEM "&Nearest (En yakın)", IDM_VID_FILTER_NEAREST + MENUITEM "&Linear (Doğrusal)", IDM_VID_FILTER_LINEAR + END + MENUITEM "Hi&DPI ölçeklemesi", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Tam ekran\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "Tam ekran &germe modu" + BEGIN + MENUITEM "&Tam ekrana ger", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Kare piksel (ölçeği koru)", IDM_VID_FS_KEEPRATIO + MENUITEM "Tam &sayı ölçeklemesi", IDM_VID_FS_INT + END + POPUP "EGA/&(S)VGA ayarları" + BEGIN + MENUITEM "Ters &renk VGA monitör", IDM_VID_INVERT + POPUP "VGA ekran &tipi" + BEGIN + MENUITEM "RGB (&renkli)", IDM_VID_GRAY_RGB + MENUITEM "RGB (&gri tonlama)", IDM_VID_GRAY_MONO + MENUITEM "&Kehribar rengi monitör", IDM_VID_GRAY_AMBER + MENUITEM "&Yeşil renk monitör", IDM_VID_GRAY_GREEN + MENUITEM "&Beyaz renk monitör", IDM_VID_GRAY_WHITE + END + POPUP "&Gri tonlama dönüştürme tipi" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Ortalama", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "CGA/PCjr/Tandy/E&GA/(S)VGA aşırı taraması", IDM_VID_OVERSCAN + MENUITEM "Gri to&nlamalı görüntü için kontrastı değiştir", IDM_VID_CGACON + END + MENUITEM "&Medya", IDM_MEDIA + POPUP "&Araçlar" + BEGIN + MENUITEM "&Ayarlar...", IDM_CONFIG + MENUITEM "Durum &çubuğu ikonlarını güncelle", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "&Ekran görüntüsü al\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Tercihler...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "&Discord entegrasyonunu etkinleştir", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Ses yükseltici...", 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 + POPUP "&Yardım" + BEGIN + MENUITEM "&Dökümanlar...", IDM_DOCS + MENUITEM "&86Box Hakkında...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Yeni imaj oluştur...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&İmaj seç...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "İmaj &seç (Yazma-korumalı)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Kaydet", IDM_CASSETTE_RECORD + MENUITEM "&Oynat", IDM_CASSETTE_PLAY + MENUITEM "&Başlangıca geri sar", IDM_CASSETTE_REWIND + MENUITEM "Sona doğru &ileri sar", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "&Çıkar", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&İmaj...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "&Çıkar", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Yeni imaj oluştur...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&İmaj seç...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "İmaj &seç (Yazma-korumalı)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&86F dosyası olarak aktar...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "&Çıkar", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Sesi kapat", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "İmajı &çıkar", IDM_CDROM_EMPTY + MENUITEM "&Önceki imajı seç", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&İmaj seç...", IDM_CDROM_IMAGE + MENUITEM "&Klasör...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Yeni imaj...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&İmaj seç...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "İmaj &seç (Yazma-korumalı)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Çıkar", IDM_ZIP_EJECT + MENUITEM "&Önceki imajı seç", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Yeni imaj...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&İmaj seç...", IDM_MO_IMAGE_EXISTING + MENUITEM "İmaj &seç (Yazma-korumalı)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Çıkar", IDM_MO_EJECT + MENUITEM "&Önceki imajı seç", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Hedef &kare oranı" + BEGIN + MENUITEM "Video ile &senkronize et", 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 "Gölgelendirici &seç...", IDM_VID_GL_SHADER + MENUITEM "&Gölgelendiriciyi kaldır", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Tercihler" +#define STR_SND_GAIN "Ses Artırma" +#define STR_NEW_FLOPPY "Yeni İmaj" +#define STR_CONFIG "Ayarlar" +#define STR_SPECIFY_DIM "Ana Pencere Boyutunu Belirle" + +#define STR_OK "Tamam" +#define STR_CANCEL "İptal et" +#define STR_GLOBAL "Bu ayarları &varsayılan olarak kaydet" +#define STR_DEFAULT "&Varsayılan" +#define STR_LANGUAGE "Dil:" +#define STR_ICONSET "Simge seti:" + +#define STR_GAIN "Artırma" + +#define STR_FILE_NAME "Dosya adı:" +#define STR_DISK_SIZE "Disk boyutu:" +#define STR_RPM_MODE "RPM modu:" +#define STR_PROGRESS "İşlem:" + +#define STR_WIDTH "Genişlik:" +#define STR_HEIGHT "Yükseklik:" +#define STR_LOCK_TO_SIZE "Bu boyuta kilitle" + +#define STR_MACHINE_TYPE "Makine türü:" +#define STR_MACHINE "Makine:" +#define STR_CONFIGURE "Ayarla" +#define STR_CPU_TYPE "CPU türü:" +#define STR_CPU_SPEED "Hız:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "Bekleme süreleri:" +#define STR_MB "MB" +#define STR_MEMORY "Bellek:" +#define STR_TIME_SYNC "Zaman senkronizasyonu" +#define STR_DISABLED "Devre dışı" +#define STR_ENABLED_LOCAL "Etkin (yerel zaman)" +#define STR_ENABLED_UTC "Etkin (UTC)" +#define STR_DYNAREC "Dinamik Derleyici" +#define STR_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "Önbellek" + +#define STR_VIDEO "Ekran kartı:" +#define STR_VIDEO_2 "Ekran kartı 2:" +#define STR_VOODOO "Voodoo Grafikleri" +#define STR_IBM8514 "IBM 8514/A Grafikleri" +#define STR_XGA "XGA Grafikleri" + +#define STR_MOUSE "Fare:" +#define STR_JOYSTICK "Oyun kolu:" +#define STR_JOY1 "Oyun kolu 1..." +#define STR_JOY2 "Oyun kolu 2..." +#define STR_JOY3 "Oyun kolu 3..." +#define STR_JOY4 "Oyun kolu 4..." + +#define STR_SOUND1 "Ses kartı 1:" +#define STR_SOUND2 "Ses kartı 2:" +#define STR_SOUND3 "Ses kartı 3:" +#define STR_SOUND4 "Ses kartı 4:" +#define STR_MIDI_OUT "MIDI Çıkış Cihazı:" +#define STR_MIDI_IN "MIDI Giriş Cihazı:" +#define STR_MPU401 "Bağımsız MPU-401" +#define STR_FLOAT "FLOAT32 ses kullan" +#define STR_FM_DRIVER "FM sentez sürücüsü" +#define STR_FM_DRV_NUKED "Nuked (daha doğru)" +#define STR_FM_DRV_YMFM "YMFM (daha hızlı)" + +#define STR_NET_TYPE "Ağ tipi:" +#define STR_PCAP "PCap cihazı:" +#define STR_NET "Ağ cihazı:" +#define STR_NET1 "Network card 1:" +#define STR_NET2 "Network card 2:" +#define STR_NET3 "Network card 3:" +#define STR_NET4 "Network card 4:" + +#define STR_COM1 "COM1 Cihazı:" +#define STR_COM2 "COM2 Cihazı:" +#define STR_COM3 "COM3 Cihazı:" +#define STR_COM4 "COM4 Cihazı:" +#define STR_LPT1 "LPT1 Cihazı:" +#define STR_LPT2 "LPT2 Cihazı:" +#define STR_LPT3 "LPT3 Cihazı:" +#define STR_LPT4 "LPT4 Cihazı:" +#define STR_SERIAL1 "Seri port 1" +#define STR_SERIAL2 "Seri port 2" +#define STR_SERIAL3 "Seri port 3" +#define STR_SERIAL4 "Seri port 4" +#define STR_PARALLEL1 "Paralel port 1" +#define STR_PARALLEL2 "Paralel port 2" +#define STR_PARALLEL3 "Paralel port 3" +#define STR_PARALLEL4 "Paralel port 4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#define STR_HDC "HD Kontrolcüsü:" +#define STR_FDC "FD Kontrolcüsü:" +#define STR_IDE_TER "Üçlü IDE Kontrolcüsü" +#define STR_IDE_QUA "Dörtlü IDE Kontrolcüsü" +#define STR_SCSI "SCSI" +#define STR_SCSI_1 "Kontrolcü 1:" +#define STR_SCSI_2 "Kontrolcü 2:" +#define STR_SCSI_3 "Kontrolcü 3:" +#define STR_SCSI_4 "Kontrolcü 4:" +#define STR_CASSETTE "Kaset" + +#define STR_HDD "Hard diskler:" +#define STR_NEW "&Yeni..." +#define STR_EXISTING "&Var olan..." +#define STR_REMOVE "&Kaldır" +#define STR_BUS "Veri yolu:" +#define STR_CHANNEL "Kanal:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Belirle..." +#define STR_SECTORS "Sektörler:" +#define STR_HEADS "Veri Kafaları:" +#define STR_CYLS "Silindirler:" +#define STR_SIZE_MB "Boyut (MB):" +#define STR_TYPE "Tip:" +#define STR_IMG_FORMAT "İmaj Düzeni:" +#define STR_BLOCK_SIZE "Blok Boyutu:" + +#define STR_FLOPPY_DRIVES "Disket sürücüleri:" +#define STR_TURBO "Turbo zamanlamaları" +#define STR_CHECKBPB "BPB'yi denetle" +#define STR_CDROM_DRIVES "CD-ROM sürücüleri:" +#define STR_CD_SPEED "Hız:" + +#define STR_MO_DRIVES "MO sürücüleri:" +#define STR_ZIP_DRIVES "ZIP sürücüleri:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA RTC:" +#define STR_ISAMEM "ISA Bellek Artırma" +#define STR_ISAMEM_1 "Kart 1:" +#define STR_ISAMEM_2 "Kart 2:" +#define STR_ISAMEM_3 "Kart 3:" +#define STR_ISAMEM_4 "Kart 4:" +#define STR_BUGGER "ISABugger cihazı" +#define STR_POSTCARD "POST kartı" + +#define FONT_SIZE 9 +#define FONT_NAME "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Hata" + IDS_2050 "Kritik hata" + IDS_2051 " - PAUSED" + IDS_2052 "Pencere moduna geri dönmek için Ctrl+Alt+PgDn tuşlarına basın." + IDS_2053 "Hız" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "ZIP imajları (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box hiç bir kullanılabilir ROM imajı bulamadı.\n\nLütfen ROM setini indirin ve onu ""Roms"" klasörüne çıkarın." + IDS_2057 "(empty)" + IDS_2058 "ZIP imajları (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0All files (*.*)\0*.*\0" + IDS_2059 "Turbo" + IDS_2060 "Açık" + IDS_2061 "Kapalı" + IDS_2062 "Tüm imajlar (*.86F;*.DSK;*.FLP;*.IM?;*.*FD?)\0*.86F;*.DSK;*.FLP;*.IM?;*.*FD?\0Basit sektör imajları (*.DSK;*.FLP;*.IM?;*.*FD?)\0*.DSK;*.FLP;*.IM?;*.IMG;*.*FD?\0Yüzey imajları (*.86F)\0*.86F\0" + IDS_2063 """%hs"" makinesi roms/machines klasöründe mevcut olmayan ROM imajı yüzünden mevcut değil. Mevcut olan bir makineye geçiş yapılıyor." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 """%hs"" ekran kartı roms/video klasöründe mevcut olmayan ROM imajı yüzünden mevcut değil. Mevcut olan bir ekran kartına geçiş yapılıyor." + IDS_2065 "Makine" + IDS_2066 "Görüntü" + IDS_2067 "Giriş aygıtları" + IDS_2068 "Ses" + IDS_2069 "Ağ" + IDS_2070 "Portlar (COM & LPT)" + IDS_2071 "Depolama kontrolcüleri" + IDS_2072 "Hard diskler" + IDS_2073 "Disket & CD-ROM sürücüleri" + IDS_2074 "Diğer kaldırılabilir cihazlar" + IDS_2075 "Diğer cihazlar" + IDS_2076 "Yüzey imajları (*.86F)\0*.86F\0" + IDS_2077 "Farenin yakalanması için tıklayın" + IDS_2078 "Farenin bırakılması için F8+F12 tuşlarına basın" + IDS_2079 "Farenin bırakılması için F8+F12 veya farenin orta tuşuna basın" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Veri yolu" + IDS_2082 "Dosya" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "BPB'yi kontrol et" + IDS_2089 "KB" + IDS_2090 "Video işleyici başlatılamadı." + IDS_2091 "Varsayılan" + IDS_2092 "%i Bekleme durumları" + IDS_2093 "Tür" + IDS_2094 "PCap ayarlanamadı" + IDS_2095 "Herhangi bir PCap cihazı bulunamadı" + IDS_2096 "Geçersiz PCap cihazı" + IDS_2097 "Standart 2-button oyun kolları" + IDS_2098 "Standart 4-button oyun kolu" + IDS_2099 "Standart 6-button oyun kolu" + IDS_2100 "Standart 8-button oyun kolu" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Kontrol Sistemi" + IDS_2104 "Hiçbiri" + IDS_2105 "Klavye ivdirgeçleri yüklenemedi." + IDS_2106 "Ham girdi kaydedilemedi." + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "Disket %i (%s): %ls" + IDS_2110 "Tüm imajlar (*.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\0Gelişmiş sektör imajları (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Basit sektör imajları (*.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\0Yüzey imajları (*.86F;*.MFM)\0*.86F;*.MFM\0All files (*.*)\0*.*\0" + IDS_2113 "Emüle edilen makineyi yeniden başlatmak istediğinizden emin misiniz?" + IDS_2114 "86Box'tan çıkmak istediğinize emin misiniz?" + IDS_2115 "Ghostscript başlatılamadı" + IDS_2116 "MO %i (%ls): %ls" + IDS_2117 "MO imajları (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2118 "86Box'a hoşgeldiniz!" + IDS_2119 "Dahili kontrolcü" + IDS_2120 "Çıkış" + IDS_2121 "Hiçbir ROM imajı bulunamadı" + IDS_2122 "Ayarları kaydetmek istediğinizden emin misiniz?" + IDS_2123 "Bu makineyi yeniden başlatacak." + IDS_2124 "Kaydet" + IDS_2125 "86Box Hakkında" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "Bir eski bilgisayar emülatörü\n\nYapanlar: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, ve diğerleri.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, ve diğerleri.\n\nGNU Genel Kamu Lisansı versiyon 2 veya sonrası altında yayınlanmıştır. Daha fazla bilgi için LICENSE'ı gözden geçirin." + IDS_2128 "Tamam" + IDS_2129 "Donanım mevcut değil" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "" LIB_NAME_PCAP " kurulu olduğundan ve " LIB_NAME_PCAP "-uyumlu bir internet ağında bulunduğunuzdan emin olun." + IDS_2131 "Geçersiz konfigürasyon" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " PostScript dosyalarının otomatik olarak PDF dosyalarına çevirilmesi için gereklidir.\n\nGenel PostScript yazıcısına gönderilen tüm dökümanlar PostScript (.ps) dosyaları olarak kaydedilecektir." + IDS_2135 "Tam ekran moduna geçiliyor" + IDS_2136 "Bu mesajı bir daha gösterme" + IDS_2137 "Çıkış yapma" + IDS_2138 "Yeniden başlat" + IDS_2139 "Yeniden başlatma" + IDS_2140 "MO imajları (*.IM?;*.MDI)\0*.IM?;*.MDI\0Tüm dosyalar (*.*)\0*.*\0" + IDS_2141 "CD-ROM imajları (*.ISO;*.CUE)\0*.ISO;*.CUE\0Tüm dosyalar (*.*)\0*.*\0" + IDS_2142 "%hs Cihaz Konfigürasyonu" + IDS_2143 "Monitör uyku modunda" + IDS_2144 "OpenGL Gölgelendiricileri (*.GLSL)\0*.GLSL\0Tüm dosyalar (*.*)\0*.*\0" + IDS_2145 "OpenGL ayarları" + IDS_2146 "Desteklenmeyen bir konfigürasyon yüklüyorsunuz" + IDS_2147 "Seçtiğiniz makineye uygun CPU (işlemci) türü filtrelemesi bu emülasyon için devre dışı bırakıldı.\n\nBu, normalde seçilen makine ile uyumlu olmayan bir CPU seçmenizi mümkün kılmaktadır. Ancak, bundan dolayı seçilen makinenin BIOS'u veya diğer yazılımlar ile uyumsuzluk sorunu yaşayabilirsiniz.\n\nBu filtrelemeyi devre dışı bırakmak emülatör tarafından resmi olarak desteklenmemektedir ve açtığınız bug (hata) raporları geçersiz olarak kapatılabilir." + IDS_2148 "Devam et" + IDS_2149 "Kaset: %s" + IDS_2150 "Kaset imajları (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Tüm dosyalar (*.*)\0*.*\0" + IDS_2151 "Kartuş %i: %ls" + IDS_2152 "Kartuş imajları (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Tüm dosyalar (*.*)\0*.*\0" + IDS_2153 "Oluşturucu başlatılırken hata oluştu" + IDS_2154 "OpenGL (3.0 Core) görüntüleyici başlatılamadı. Başka bir görüntüleyici kullanın." + IDS_2155 "Yürütmeye devam et" + IDS_2156 "Yürütmeyi duraklat" + IDS_2157 "Ctrl+Alt+Del" + IDS_2158 "Ctrl+Alt+Esc" + IDS_2159 "Makineyi yeniden başlat" + IDS_2160 "ACPI kapatma" + IDS_2161 "Ayarlar" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_4096 "Hard disk (%s)" + IDS_4097 "%01i:%01i" + IDS_4098 "%01i" + IDS_4099 "MFM/RLL veya ESDI CD-ROM sürücüleri hiçbir zaman var olmamıştır" + IDS_4100 "Diğer..." + IDS_4101 "Diğer (büyük)..." + IDS_4102 "Yeni Hard Disk Dosyası Oluştur" + IDS_4103 "Var Olan Hard Disk Dosyası Ekle" + IDS_4104 "HDI disk imajları 4 GB'tan daha büyük olamaz." + IDS_4105 "Disk imajları 127 GB'tan daha büyük olamaz." + IDS_4106 "Hard disk imajları (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Tüm dosyalar (*.*)\0*.*\0" + IDS_4107 "Dosya okunamıyor" + IDS_4108 "Dosyanın üzerine yazılamıyor" + IDS_4109 "512 dışında sektör boyutu olan HDI veya HDX imajları desteklenmemektedir." + IDS_4110 "USB şu anda desteklenmemektedir" + IDS_4111 "Disk imaj dosyası zaten var olmakta" + IDS_4112 "Lütfen geçerli bir dosya ismi belirleyin." + IDS_4113 "Disk imajı oluşturuldu" + IDS_4114 "Dosyanın var olduğuna ve okunabildiğine emin olun." + IDS_4115 "Dosyanın yazılabilir bir klasöre kaydedildiğinden emin olun." + IDS_4116 "Disk imajı çok büyük" + IDS_4117 "Yeni oluşturulan diski bölmeyi ve formatlamayı unutmayın." + IDS_4118 "Seçili dosyanın üzerine yazılacaktır. Bunu yapmak istediğinizden emin misiniz?" + IDS_4119 "Desteklenmeyen disk imajı" + IDS_4120 "Üzerine yaz" + IDS_4121 "Üzerine yazma" + IDS_4122 "Ham imaj (.img)" + IDS_4123 "HDI imajı (.hdi)" + IDS_4124 "HDX imajı (.hdx)" + IDS_4125 "Sabit-boyutlu VHD (.vhd)" + IDS_4126 "Dinamik-boyutlu VHD (.vhd)" + IDS_4127 "Differencing VHD (.vhd)" + IDS_4128 "Büyük bloklar (2 MB)" + IDS_4129 "Küçük bloklar (512 KB)" + IDS_4130 "VHD dosyaları (*.VHD)\0*.VHD\0Tüm dosyalar (*.*)\0*.*\0" + IDS_4131 "Ana VHD dosyasını seçin" + IDS_4132 "Bu, farkı alınan imaj oluşturulduktan sonra ana imaj dosyasının düzenlendiği anlamına geliyor olabilir.\n\nBu durum ayrıca imaj dosyaları kopyalandığında veya yerleri değiştirildiğinde veya imaj dosyalarını oluşturan programdaki bir hatadan dolayı olmuş olabilir.\n\nZaman damgalarını düzeltmek ister misiniz?" + IDS_4133 "Ana ve ek disk zaman damgaları uyuşmuyor" + IDS_4134 "VHD zaman damgası düzeltilemedi." + 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 "Devre dışı" + IDS_5381 "ATAPI" + IDS_5382 "SCSI" + + IDS_5632 "Devre dışı" + 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"" 128 MB (ISO 10090)" + IDS_5903 "3.5"" 230 MB (ISO 13963)" + IDS_5904 "3.5"" 540 MB (ISO 15498)" + IDS_5905 "3.5"" 640 MB (ISO 15498)" + IDS_5906 "3.5"" 1.3 GB (GigaMO)" + IDS_5907 "3.5"" 2.3 GB (GigaMO 2)" + IDS_5908 "5.25"" 600 MB" + IDS_5909 "5.25"" 650 MB" + IDS_5910 "5.25"" 1 GB" + IDS_5911 "5.25"" 1.3 GB" + + IDS_6144 "Mükemmel RPM" + IDS_6145 "mükemmel RPM değerinin 1% altı" + IDS_6146 "mükemmel RPM değerinin 1.5% altı" + IDS_6147 "mükemmel RPM değerinin 2% altı" + + IDS_7168 "(Sistem Varsayılanı)" +END +#define IDS_LANG_TRTR IDS_7168 + +// Turkish (TR) resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/uk-UA.rc b/src/win/languages/uk-UA.rc new file mode 100644 index 0000000000..98ef1763ad --- /dev/null +++ b/src/win/languages/uk-UA.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Ukrainian resources + +#ifdef _WIN32 +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT +#pragma code_page(65001) +#endif //_WIN32 + +#define AUTHORS + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +MainMenu MENU DISCARDABLE +BEGIN + POPUP "&Дія" + BEGIN + MENUITEM "&Клавіатура потребує захвату", IDM_ACTION_KBD_REQ_CAPTURE + MENUITEM "&Правий CTRL - це лівий ALT", IDM_ACTION_RCTRL_IS_LALT + MENUITEM SEPARATOR + MENUITEM "&Холодне перезавантаження...", 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 "&Пауза", IDM_ACTION_PAUSE + MENUITEM SEPARATOR + MENUITEM "&Вихід...", IDM_ACTION_EXIT + END + POPUP "&Вигляд" + BEGIN + MENUITEM "&Приховати рядок стану", IDM_VID_HIDE_STATUS_BAR + MENUITEM "&Приховати панель інструментів", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "&Show non-primary monitors", IDM_VID_MONITORS + MENUITEM "&Змінний розмір вікна", IDM_VID_RESIZE + MENUITEM "&Запам'ятати розмір і становище", IDM_VID_REMEMBER + MENUITEM SEPARATOR + POPUP "&Рендеринг" + BEGIN + MENUITEM "&SDL (Software)", IDM_VID_SDL_SW + MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW + MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL + MENUITEM "Open&GL (3.0)", IDM_VID_OPENGL_CORE +#ifdef USE_VNC + MENUITEM "&VNC", IDM_VID_VNC +#endif + END + MENUITEM SEPARATOR + MENUITEM "&Вказати розміри...", IDM_VID_SPECIFY_DIM + MENUITEM "&Встановити відношення сторін 4:3", IDM_VID_FORCE43 + POPUP "&Масштаб вікна" + 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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + END + POPUP "Метод фільтрації" + BEGIN + MENUITEM "&Найближчий", IDM_VID_FILTER_NEAREST + MENUITEM "&Лінійний", IDM_VID_FILTER_LINEAR + END + MENUITEM "Масштабування Hi&DPI", IDM_VID_HIDPI + MENUITEM SEPARATOR + MENUITEM "&Повноекранний режим\tCtrl+Alt+PgUp", IDM_VID_FULLSCREEN + POPUP "&Розстягування у повноекранному режимі" + BEGIN + MENUITEM "&На весь екран", IDM_VID_FS_FULL + MENUITEM "&4:3", IDM_VID_FS_43 + MENUITEM "&Квадратні пікселі (зберегти відношення)", IDM_VID_FS_KEEPRATIO + MENUITEM "&Цілісночисленне масштабування", IDM_VID_FS_INT + END + POPUP "Налаштування E&GA/(S)VGA" + BEGIN + MENUITEM "&Інвертувати кольори VGA", IDM_VID_INVERT + POPUP "&Тип екрана VGA" + BEGIN + MENUITEM "RGB &кольоровий", IDM_VID_GRAY_RGB + MENUITEM "&RGB монохромний", IDM_VID_GRAY_MONO + MENUITEM "&Бурштиновий відтінок", IDM_VID_GRAY_AMBER + MENUITEM "&Зелений відтінок", IDM_VID_GRAY_GREEN + MENUITEM "&Білий відтінок", IDM_VID_GRAY_WHITE + END + POPUP "Тип монохромного &конвертування" + BEGIN + MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601 + MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709 + MENUITEM "&Усереднений", IDM_VID_GRAYCT_AVE + END + END + MENUITEM SEPARATOR + MENUITEM "Вильоти розгортки CGA/PCjr/Tandy/E&GA/(S)VGA", IDM_VID_OVERSCAN + MENUITEM "Змінити контрастність &монохромного дисплея", IDM_VID_CGACON + END + MENUITEM "&Носії", IDM_MEDIA + POPUP "&Інструменти" + BEGIN + MENUITEM "&Налаштування машини...", IDM_CONFIG + MENUITEM "&Обновлення значків рядка стану", IDM_UPDATE_ICONS + MENUITEM SEPARATOR + MENUITEM "Зробити &знімок\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "&Параметри...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "Увімкнути інтеграцію &Discord", IDM_DISCORD +#endif + MENUITEM SEPARATOR + MENUITEM "&Посилення звуку...", IDM_SND_GAIN +#ifdef MTR_ENABLED + MENUITEM SEPARATOR + MENUITEM "Почати трасування\tCtrl+T", IDM_ACTION_BEGIN_TRACE + MENUITEM "Завершити трасування\tCtrl+T", IDM_ACTION_END_TRACE +#endif + END + POPUP "&Допомога" + BEGIN + MENUITEM "&Документація...", IDM_DOCS + MENUITEM "&Про програму 86Box...", IDM_ABOUT + END +END + +StatusBarMenu MENU DISCARDABLE +BEGIN + MENUITEM SEPARATOR +END + +CassetteSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Новий образ...", IDM_CASSETTE_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Вибрати образ...", IDM_CASSETTE_IMAGE_EXISTING + MENUITEM "Вибрати образ (&Захист від запису)...", IDM_CASSETTE_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Запис", IDM_CASSETTE_RECORD + MENUITEM "&Відтворення", IDM_CASSETTE_PLAY + MENUITEM "&Перемотування на початок", IDM_CASSETTE_REWIND + MENUITEM "&Перемотування у кінець", IDM_CASSETTE_FAST_FORWARD + MENUITEM SEPARATOR + MENUITEM "&Вилучити", IDM_CASSETTE_EJECT + END +END + +CartridgeSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Образ...", IDM_CARTRIDGE_IMAGE + MENUITEM SEPARATOR + MENUITEM "&Вилучити", IDM_CARTRIDGE_EJECT + END +END + +FloppySubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Новий образ...", IDM_FLOPPY_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Вибрати образ...", IDM_FLOPPY_IMAGE_EXISTING + MENUITEM "Вибрати образ (&Захист від запису)...", IDM_FLOPPY_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Експорт в 86F...", IDM_FLOPPY_EXPORT_TO_86F + MENUITEM SEPARATOR + MENUITEM "&Вилучити", IDM_FLOPPY_EJECT + END +END + +CdromSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Відключити звук", IDM_CDROM_MUTE + MENUITEM SEPARATOR + MENUITEM "&Пустий", IDM_CDROM_EMPTY + MENUITEM "&Знову завантажити попередній образ", IDM_CDROM_RELOAD + MENUITEM SEPARATOR + MENUITEM "&Образ...", IDM_CDROM_IMAGE + MENUITEM "&Тека...", IDM_CDROM_DIR + END +END + +ZIPSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Новий образ...", IDM_ZIP_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Вибрати образ...", IDM_ZIP_IMAGE_EXISTING + MENUITEM "Вибрати образ (&Захист від запису)...", IDM_ZIP_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Вилучити", IDM_ZIP_EJECT + MENUITEM "&Знову завантажити попередній образ", IDM_ZIP_RELOAD + END +END + +MOSubmenu MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Новий образ...", IDM_MO_IMAGE_NEW + MENUITEM SEPARATOR + MENUITEM "&Вибрати образ...", IDM_MO_IMAGE_EXISTING + MENUITEM "Вибрати образ (&Захист від запису)...", IDM_MO_IMAGE_EXISTING_WP + MENUITEM SEPARATOR + MENUITEM "&Вилучити", IDM_MO_EJECT + MENUITEM "&Знову завантажити попередній образ", IDM_MO_RELOAD + END +END + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "Цільова &частота кадрів" + BEGIN + MENUITEM "&Синхронізація з відео", IDM_VID_GL_FPS_BLITTER + MENUITEM "&25 кадрів в секунду", IDM_VID_GL_FPS_25 + MENUITEM "&30 кадрів в секунду", IDM_VID_GL_FPS_30 + MENUITEM "&50 кадрів в секунду", IDM_VID_GL_FPS_50 + MENUITEM "&60 кадрів в секунду", IDM_VID_GL_FPS_60 + MENUITEM "&75 кадрів в секунду", IDM_VID_GL_FPS_75 + END + MENUITEM "&VSync", IDM_VID_GL_VSYNC + MENUITEM "&Вибрати шейдер...", IDM_VID_GL_SHADER + MENUITEM "&Видалити шейдер", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "Параметри" +#define STR_SND_GAIN "Посилення звуку" +#define STR_NEW_FLOPPY "Новий образ" +#define STR_CONFIG "Налаштування" +#define STR_SPECIFY_DIM "Вказати розміри головного вікна" + +#define STR_OK "OK" +#define STR_CANCEL "Відміна" +#define STR_GLOBAL "Зберегти ці параметри як &глобальні за замовчуванням" +#define STR_DEFAULT "&За замовчуванням" +#define STR_LANGUAGE "Мова:" +#define STR_ICONSET "Набір іконок:" + +#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 "Тип ЦП:" +#define STR_CPU_SPEED "Швидкість:" +#define STR_FPU "FPU:" +#define STR_WAIT_STATES "Цикли очікування:" +#define STR_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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "кеш" + +#define STR_VIDEO "Відеокарта:" +#define STR_VIDEO_2 "Відеокарта 2:" +#define STR_VOODOO "Прискорювач Voodoo" +#define STR_IBM8514 "Прискорювач IBM 8514/A" +#define STR_XGA "Прискорювач XGA" + +#define STR_MOUSE "Миша:" +#define STR_JOYSTICK "Джойстик:" +#define STR_JOY1 "Джойстик 1..." +#define STR_JOY2 "Джойстик 2..." +#define STR_JOY3 "Джойстик 3..." +#define STR_JOY4 "Джойстик 4..." + +#define STR_SOUND1 "Звукова карта 1:" +#define STR_SOUND2 "Звукова карта 2:" +#define STR_SOUND3 "Звукова карта 3:" +#define STR_SOUND4 "Звукова карта 4:" +#define STR_MIDI_OUT "MIDI Out при-ій:" +#define STR_MIDI_IN "MIDI In при-ій:" +#define STR_MPU401 "Окремий MPU-401" +#define STR_FLOAT "FLOAT32 звук" +#define STR_FM_DRIVER "Драйвер FM-синтезатора" +#define STR_FM_DRV_NUKED "Nuked (більш точний)" +#define STR_FM_DRV_YMFM "YMFM (швидший)" + +#define STR_NET_TYPE "Тип мережі:" +#define STR_PCAP "Пристрій PCap:" +#define STR_NET "Мережевий адаптер:" +#define STR_NET1 "Мережева карта 1:" +#define STR_NET2 "Мережева карта 2:" +#define STR_NET3 "Мережева карта 3:" +#define STR_NET4 "Мережева карта 4:" + +#define STR_COM1 "Пристрій COM1:" +#define STR_COM2 "Пристрій COM2:" +#define STR_COM3 "Пристрій COM3:" +#define STR_COM4 "Пристрій COM4:" +#define STR_LPT1 "Пристрій LPT1:" +#define STR_LPT2 "Пристрій LPT2:" +#define STR_LPT3 "Пристрій LPT3:" +#define STR_LPT4 "Пристрій LPT4:" +#define STR_SERIAL1 "Послідов. порт COM1" +#define STR_SERIAL2 "Послідов. порт COM2" +#define STR_SERIAL3 "Послідов. порт COM3" +#define STR_SERIAL4 "Послідов. порт COM4" +#define STR_PARALLEL1 "Паралельний порт LPT1" +#define STR_PARALLEL2 "Паралельний порт LPT2" +#define STR_PARALLEL3 "Паралельний порт LPT3" +#define STR_PARALLEL4 "Паралельний порт LPT4" +#define STR_SERIAL_PASS1 "Serial port passthrough 1" +#define STR_SERIAL_PASS2 "Serial port passthrough 2" +#define STR_SERIAL_PASS3 "Serial port passthrough 3" +#define STR_SERIAL_PASS4 "Serial port passthrough 4" + +#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 "&Створити..." +#define STR_EXISTING "&Вибрати..." +#define STR_REMOVE "&Прибрати" +#define STR_BUS "Шина:" +#define STR_CHANNEL "Канал:" +#define STR_ID "ID:" +#define STR_SPEED "Speed:" + +#define STR_SPECIFY "&Вказати..." +#define STR_SECTORS "Сектора:" +#define STR_HEADS "Головки:" +#define STR_CYLS "Циліндри:" +#define STR_SIZE_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_CD_SPEED "Швидкість:" + +#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 "Segoe UI" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "Помилка" + IDS_2050 "Непереробна помилка" + IDS_2051 " - PAUSED" + IDS_2052 "Натисніть Ctrl+Alt+PgDn для повернення у віконний режим." + IDS_2053 "Швидкість" + IDS_2054 "ZIP %03i %i (%s): %ls" + IDS_2055 "Образи ZIP (*.IM?;*.ZDI)\0*.IM?;*.ZDI\0" + IDS_2056 "86Box не зміг знайти жодного відповідного для використання файлу з ПЗУ.\n\nБудь ласка завантажте набір ПЗУ і витягніть його в каталог ""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 "Системна плата ""%hs"" недоступна через відсутність файлу її ПЗУ в каталозі roms/machines. Переключення на доступну системну плату." +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2064 "Відеокарта ""%hs"" недоступна через відсутність файлу її ПЗУ в каталозі roms/video. Переключення на доступну відеокарту." + 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 "Образи Surface (*.86F)\0*.86F\0" + IDS_2077 "Клацніть мишею для захвату курсора" + IDS_2078 "Натисніть F8+F12, щоб звільнити курсор" + IDS_2079 "Натисніть F8+F12 або середню кнопку миші, щоб звільнити курсор" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_2081 "Шина" + IDS_2082 "Файл" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "МБ" + IDS_2087 "Speed" + IDS_2088 "Перевіряти BPB" + IDS_2089 "КБ" + IDS_2090 "Не вдалося ініціалізувати рендер відео." + IDS_2091 "За замовчуванням" + IDS_2092 "%i WS" + IDS_2093 "Тип" + IDS_2094 "Не вдалося налаштувати PCap" + IDS_2095 "Пристрої PCap не знайдені" + IDS_2096 "Невірний пристрій PCap" + IDS_2097 "Стандартний 2-кнопковий джойстик" + IDS_2098 "Стандартний 4-кнопковий джойстик" + IDS_2099 "Стандартний 6-кнопковий джойстик" + IDS_2100 "Стандартний 8-кнопковий джойстик" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Система управління польотом Thrustmaster" + IDS_2104 "Ні" + IDS_2105 "Неможливо завантажити прискорювачі клавіатури." + IDS_2106 "Неможливо зарреєструвати необроблене (RAW) введення." + IDS_2107 "%u" + IDS_2108 "%u МБ (CHS: %i, %i, %i)" + IDS_2109 "Дисковод %i (%s): %ls" + IDS_2110 "Усі образи (*.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Образи Flux (*.FDI)\0*.FDI\0Образи Surface (*.86F;*.MFM)\0*.86F;*.MFM\0Усі файли (*.*)\0*.*\0" + IDS_2113 "Ви впевнені, що хочете виконати холодне перезавантаження емульованої машини?" + IDS_2114 "Ви впевнені, що хочете вийти з 86Box?" + IDS_2115 "Неможливо ініціалізувати Ghostscript" + IDS_2116 "Магнітооптичний %i (%ls): %ls" + IDS_2117 "Образи магнітооптичних дисків (*.IM?;*.MDI)\0*.IM?;*.MDI\0Усі файлі (*.*)\0*.*\0" + IDS_2118 "Ласкаво просимо в 86Box!" + IDS_2119 "Вбудований контролер" + IDS_2120 "Вихід" + IDS_2121 "ПЗУ не знайдені" + IDS_2122 "Чи бажаєте ви зберегти налаштування?" + IDS_2123 "Це призведе до холодної перезагрузки емульованої машини." + IDS_2124 "Зберегти" + IDS_2125 "Про 86Box" + IDS_2126 "86Box v." EMU_VERSION + + IDS_2127 "Емулятор старих комп'ютерів\n\nАвтори: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nВипускаєтся під ліцензією GNU General Public License версії 2 або більше пізніше. Додадкову інформацію см. у файлі LICENSE." + IDS_2128 "OK" + IDS_2129 "Обладнання недоступне" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "Переконайтесь, що " LIB_NAME_PCAP " встановлений і ваше мережеве з'єднання, сумісне з " LIB_NAME_PCAP "." + IDS_2131 "Неприпустима конфігурація" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " потрібно для автоматичного перетворення файлів PostScript в PDF.\n\nсі документи, відправлені на загальний принтер PostScript, будуть збережені у вигляді файлів PostScript (.ps)." + IDS_2135 "Вхід у повноекранний режим" + IDS_2136 "Більше не показувати це повідомлення" + IDS_2137 "Не виходити" + IDS_2138 "Перезавантажити" + IDS_2139 "Не перезавантажувати" + IDS_2140 "Образи магнітооптичних дисків (*.IM?;*.MDI)\0*.IM?;*.MDI\0Усі файли (*.*)\0*.*\0" + IDS_2141 "Образи CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Усі файли (*.*)\0*.*\0" + IDS_2142 "Конфігурація пристрою %hs" + IDS_2143 "Монітор у сплячому режимі" + IDS_2144 "Шейдери OpenGL (*.GLSL)\0*.GLSL\0Усі файли (*.*)\0*.*\0" + IDS_2145 "Параметри OpenGL" + IDS_2146 "Ви завантажуєте непідтримувану конфігурацію" + IDS_2147 "Вибір типів ЦП для цієї системної плати на даній емульованій машині відключено.\n\nЦе дозволяє вибрати процесор, який в іншому випадку не сумісний з вибраною материнською платою. Однак, ви можете зіткнутися з несумісністю з BIOS материнської плати або іншим ПО.\n\nВключення цього параметра офіційно не підтримується, і всі подані звіти про помилки можуть бути закриті як недійсні." + IDS_2148 "Продовжити" + IDS_2149 "Касета: %s" + IDS_2150 "Образи касет (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Усі файли (*.*)\0*. *\0" + IDS_2151 "Картридж %i: %ls" + IDS_2152 "Образи картриджів (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Усі файли (*.*)\0*.*\0" + IDS_2153 "Помилка ініціалізації рендерера" + IDS_2154 "Неможливо ініціалізувати рендерер OpenGL (3.0). Будь ласка, використовуйте інший рендерер." + IDS_2155 "Відновити виконання" + IDS_2156 "Призупинити виконання" + IDS_2157 "Натиснути Ctrl+Alt+Del" + IDS_2158 "Натиснути Ctrl+Alt+Esc" + IDS_2159 "Холодне перезавантаження" + IDS_2160 "Сигнал завершення ACPI" + IDS_2161 "Налаштування машини" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Відеокарта #2 ""%hs"" недоступна через відсутність файлу її ПЗУ в каталозі roms/video. Відключення другої відеокарти." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +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 ГБ." + IDS_4105 "Розмір образів дисків не може перевищувати 127 ГБ." + IDS_4106 "Образи жорстких дисків (*.HD?;*.IM?;*.VHD)\0*.HD?;*.IM?;*.VHD\0Усі файли (*.*)\0*.*\0 " + IDS_4107 "Неможливо прочитати файл" + IDS_4108 "Неможливо записати файл" + IDS_4109 "Образи HDI або HDX з розміром сектора, відмінним від 512, не підтримуються." + 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 "RAW образ (.img)" + IDS_4123 "Образ HDI (.hdi)" + IDS_4124 "Образ HDX (.hdx)" + IDS_4125 "VHD фіксованого розміру (.vhd)" + IDS_4126 "VHD динамічного розміру (.vhd)" + IDS_4127 "Диференційований образ VHD (.vhd)" + IDS_4128 "Великі блоки (2 МБ)" + IDS_4129 "Маленькі блоки (512 КБ)" + 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 кБ" + IDS_5889 "180 кБ" + IDS_5890 "320 кБ" + IDS_5891 "360 кБ" + IDS_5892 "640 кБ" + IDS_5893 "720 кБ" + IDS_5894 "1.2 МБ" + IDS_5895 "1.25 МБ" + IDS_5896 "1.44 МБ" + IDS_5897 "DMF (кластер 1024)" + IDS_5898 "DMF (кластер 2048)" + IDS_5899 "2.88 МБ" + IDS_5900 "ZIP 100" + IDS_5901 "ZIP 250" + IDS_5902 "3.5"" 128 МБ (ISO 10090)" + IDS_5903 "3.5"" 230 МБ (ISO 13963)" + IDS_5904 "3.5"" 540 МБ (ISO 15498)" + IDS_5905 "3.5"" 640 МБ (ISO 15498)" + IDS_5906 "3.5"" 1.3 ГБ (GigaMO)" + IDS_5907 "3.5"" 2.3 ГБ (GigaMO 2)" + IDS_5908 "5.25"" 600 МБ" + IDS_5909 "5.25"" 650 МБ" + IDS_5910 "5.25"" 1 ГБ" + IDS_5911 "5.25"" 1.3 ГБ" + + IDS_6144 "Точний RPM" + IDS_6145 "На 1% повільніше точного RPM" + IDS_6146 "На 1.5% повільніше точного RPM" + IDS_6147 "На 2% повільніше точного RPM" + + IDS_7168 "(Системний)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Ukrainian resources +//////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc new file mode 100644 index 0000000000..18a1420a21 --- /dev/null +++ b/src/win/languages/zh-CN.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// 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(&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 "隐藏工具栏(&T)", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "显示次要显示器(&S)", IDM_VID_MONITORS + 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 + MENUITEM "OpenGL (3.0 核心)(&G)", IDM_VID_OPENGL_CORE +#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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + 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+PgUp", 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 "EGA/(S)VGA 设置(&G)" + 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 "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 "截图(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "首选项(&P)...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "启用 Discord 集成(&D)", IDM_DISCORD +#endif + 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 + 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 + MENUITEM "文件夹(&F)...", IDM_CDROM_DIR + 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 + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "目标帧率(&F)" + BEGIN + MENUITEM "与视频同步(&S)", IDM_VID_GL_FPS_BLITTER + MENUITEM "25 fps(&2)", IDM_VID_GL_FPS_25 + MENUITEM "30 fps(&3)", IDM_VID_GL_FPS_30 + MENUITEM "50 fps(&5)", IDM_VID_GL_FPS_50 + MENUITEM "60 fps(&6)", IDM_VID_GL_FPS_60 + MENUITEM "75 fps(&7)", IDM_VID_GL_FPS_75 + END + MENUITEM "垂直同步(&V)", IDM_VID_GL_VSYNC + MENUITEM "选择着色器(&S)...", IDM_VID_GL_SHADER + MENUITEM "移除着色器(&R)", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "首选项" +#define STR_SND_GAIN "音量增益" +#define STR_NEW_FLOPPY "新建映像" +#define STR_CONFIG "设置" +#define STR_SPECIFY_DIM "指定主窗口大小" + +#define STR_OK "确定" +#define STR_CANCEL "取消" +#define STR_GLOBAL "将以上设置存储为全局默认值(&G)" +#define STR_DEFAULT "默认(&D)" +#define STR_LANGUAGE "语言:" +#define STR_ICONSET "图标集:" + +#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_CPU_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 "启用 (协调世界时)" +#define STR_DYNAREC "动态重编译器" +#define STR_SOFTFLOAT "软浮点 FPU" +#define STR_CACHE "高速缓冲存储器" + +#define STR_VIDEO "显卡:" +#define STR_VIDEO_2 "显卡 2:" +#define STR_VOODOO "Voodoo 显卡" +#define STR_IBM8514 "IBM 8514/A 显卡" +#define STR_XGA "XGA 显卡" + +#define STR_MOUSE "鼠标:" +#define STR_JOYSTICK "操纵杆:" +#define STR_JOY1 "操纵杆 1..." +#define STR_JOY2 "操纵杆 2..." +#define STR_JOY3 "操纵杆 3..." +#define STR_JOY4 "操纵杆 4..." + +#define STR_SOUND1 "声卡 1:" +#define STR_SOUND2 "声卡 2:" +#define STR_SOUND3 "声卡 3:" +#define STR_SOUND4 "声卡 4:" +#define STR_MIDI_OUT "MIDI 输出设备:" +#define STR_MIDI_IN "MIDI 输入设备:" +#define STR_MPU401 "独立 MPU-401" +#define STR_FLOAT "使用单精度浮点 (FLOAT32)" +#define STR_FM_DRIVER "调频合成器驱动器" +#define STR_FM_DRV_NUKED "Nuked (更准确)" +#define STR_FM_DRV_YMFM "YMFM (更快)" + +#define STR_NET_TYPE "网络类型:" +#define STR_PCAP "PCap 设备:" +#define STR_NET "网络适配器:" +#define STR_NET1 "网卡 1:" +#define STR_NET2 "网卡 2:" +#define STR_NET3 "网卡 3:" +#define STR_NET4 "网卡 4:" + +#define STR_COM1 "COM1 设备:" +#define STR_COM2 "COM2 设备:" +#define STR_COM3 "COM3 设备:" +#define STR_COM4 "COM4 设备:" +#define STR_LPT1 "LPT1 设备:" +#define STR_LPT2 "LPT2 设备:" +#define STR_LPT3 "LPT3 设备:" +#define STR_LPT4 "LPT4 设备:" +#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_PARALLEL4 "并口 4" +#define STR_SERIAL_PASS1 "串口直通 1" +#define STR_SERIAL_PASS2 "串口直通 2" +#define STR_SERIAL_PASS3 "串口直通 3" +#define STR_SERIAL_PASS4 "串口直通 4" + +#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_SPEED "速度:" + +#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 "光盘驱动器:" +#define STR_CD_SPEED "速度:" + +#define STR_MO_DRIVES "磁光盘驱动器:" +#define STR_ZIP_DRIVES "ZIP 驱动器:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA 实时时钟:" +#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 "Microsoft YaHei" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "错误" + IDS_2050 "致命错误" + IDS_2051 " - 已暂停" + IDS_2052 "按下 Ctrl+Alt+PgDn 返回到窗口模式。" + 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 "加速" + 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_2081 "总线" + IDS_2082 "文件" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "速度" + IDS_2088 "检查 BPB" + IDS_2089 "KB" + IDS_2090 "无法初始化视频渲染器。" + IDS_2091 "默认" + IDS_2092 "%i 等待状态 (WS)" + IDS_2093 "类型" + IDS_2094 "设置 PCap 失败" + IDS_2095 "未找到 PCap 设备" + IDS_2096 "无效 PCap 设备" + IDS_2097 "标准 2 键操纵杆" + IDS_2098 "标准 4 键操纵杆" + IDS_2099 "标准 6 键操纵杆" + IDS_2100 "标准 8 键操纵杆" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "无" + IDS_2105 "无法加载键盘加速器。" + IDS_2106 "无法注册原始输入。" + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "软盘 %i (%s): %ls" + IDS_2110 "所有映像 (*.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 映像 (*.FDI)\0*.FDI\0表面映像 (*.86F;*.MFM)\0*.86F;*.MFM\0所有文件 (*.*)\0*.*\0" + IDS_2113 "确定要硬重置模拟器吗?" + IDS_2114 "确定要退出 86Box 吗?" + IDS_2115 "无法初始化 Ghostscript" + IDS_2116 "磁光盘 %i (%ls): %ls" + IDS_2117 "磁光盘映像 (*.IM?;*.MDI)\0*.IM?;*.MDI\0所有文件 (*.*)\0*.*\0" + IDS_2118 "欢迎使用 86Box!" + IDS_2119 "内部控制器" + IDS_2120 "退出" + IDS_2121 "找不到 ROM" + IDS_2122 "要保存设置吗?" + IDS_2123 "此操作将硬重置模拟器。" + IDS_2124 "保存" + IDS_2125 "关于 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "一个旧式计算机模拟器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布。详情见 LICENSE 文件。" + IDS_2128 "确定" + IDS_2129 "硬件不可用" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "请确认 " LIB_NAME_PCAP " 已安装且使用兼容 " LIB_NAME_PCAP " 的网络连接。" + IDS_2131 "无效配置" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " 是将 PostScript 文件转换为 PDF 所需要的库。\n\n使用通用 PostScript 打印机打印的文档将被保存为 PostScript (.ps) 文件。" + IDS_2135 "正在进入全屏模式" + IDS_2136 "不再显示此消息" + IDS_2137 "不退出" + IDS_2138 "重置" + IDS_2139 "不重置" + IDS_2140 "磁光盘映像 (*.IM?;*.MDI)\0*.IM?;*.MDI\0所有文件 (*.*)\0*.*\0" + IDS_2141 "光盘映像 (*.ISO;*.CUE)\0*.ISO;*.CUE\0所有文件 (*.*)\0*.*\0" + IDS_2142 "%hs 设备配置" + IDS_2143 "显示器处在睡眠状态" + IDS_2144 "OpenGL 着色器 (*.GLSL)\0*.GLSL\0所有文件 (*.*)\0*.*\0" + IDS_2145 "OpenGL 选项" + IDS_2146 "正在载入一个不受支持的配置" + IDS_2147 "此模拟计算机禁用了基于选定计算机的 CPU 类型过滤。\n\n能够选中与所选机器本不兼容的 CPU,但是可能会遇到与机器 BIOS 或其他软件不兼容的问题。\n\n启用此设置不受官方支持,并且提交的任何错误报告可能会视为无效而关闭。" + IDS_2148 "继续" + IDS_2149 "磁带: %s" + IDS_2150 "磁带映像 (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0所有文件 (*.*)\0*.*\0" + IDS_2151 "卡带 %i: %ls" + IDS_2152 "卡带映像 (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0所有文件 (*.*)\0*.*\0" + IDS_2153 "初始化渲染器时出错" + IDS_2154 "无法初始化 OpenGL (3.0 核心) 渲染器。请使用其他渲染器。" + IDS_2155 "恢复执行" + IDS_2156 "暂停执行" + IDS_2157 "按下 Ctrl+Alt+Del" + IDS_2158 "按下 Ctrl+Alt+Esc" + IDS_2159 "硬重置" + IDS_2160 "ACPI 关机" + IDS_2161 "设置" + IDS_2162 "类型" + IDS_2163 "无动态重编译" + IDS_2164 "旧式动态重编译" + IDS_2165 "新式动态重编译" + IDS_2166 "由于 roms/video 文件夹中缺少合适的 ROM,显卡 #2 ""%hs"" 不可用。将禁用第二张显卡。" + IDS_2167 "初始化网络驱动程序失败" + IDS_2168 "网络配置将切换为空驱动程序" +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 磁盘映像不能超过 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 "光盘 %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 英寸 128 MB (ISO 10090)" + IDS_5903 "3.5 英寸 230 MB (ISO 13963)" + IDS_5904 "3.5 英寸 540 MB (ISO 15498)" + IDS_5905 "3.5 英寸 640 MB (ISO 15498)" + IDS_5906 "3.5 英寸 1.3 GB (GigaMO)" + IDS_5907 "3.5 英寸 2.3 GB (GigaMO 2)" + IDS_5908 "5.25 英寸 600 MB" + IDS_5909 "5.25 英寸 650 MB" + IDS_5910 "5.25 英寸 1 GB" + IDS_5911 "5.25 英寸 1.3 GB" + + 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 +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/languages/zh-TW.rc b/src/win/languages/zh-TW.rc new file mode 100644 index 0000000000..eaa24e09c2 --- /dev/null +++ b/src/win/languages/zh-TW.rc @@ -0,0 +1,637 @@ +//////////////////////////////////////////////////////////////////////////// +// Traditional Chinese resources + +#ifdef _WIN32 +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL +#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 "隱藏工具列(&T)", IDM_VID_HIDE_TOOLBAR + MENUITEM SEPARATOR + MENUITEM "Show non-primary monitors(&S)", IDM_VID_MONITORS + 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 + MENUITEM "OpenGL (3.0 核心)(&G)", IDM_VID_OPENGL_CORE +#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 + MENUITEM "&3x", IDM_VID_SCALE_5X + MENUITEM "&4x", IDM_VID_SCALE_6X + MENUITEM "&5x", IDM_VID_SCALE_7X + MENUITEM "&6x", IDM_VID_SCALE_8X + MENUITEM "&7x", IDM_VID_SCALE_9X + MENUITEM "&8x", IDM_VID_SCALE_10X + 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+PgUp", 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 "EGA/(S)VGA 設定(&G)" + 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 "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 "擷圖(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "偏好設定(&P)...", IDM_PREFERENCES +#ifdef DISCORD + MENUITEM "啟用 Discord 整合(&D)", IDM_DISCORD +#endif + 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 + 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 + MENUITEM "資料夾(&F)...", IDM_CDROM_DIR + 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 + +VidGLSubMenu MENU DISCARDABLE +BEGIN + POPUP "目標幀率(&F)" + BEGIN + MENUITEM "與視訊同步(&S)", IDM_VID_GL_FPS_BLITTER + MENUITEM "25 fps(&2)", IDM_VID_GL_FPS_25 + MENUITEM "30 fps(&3)", IDM_VID_GL_FPS_30 + MENUITEM "50 fps(&5)", IDM_VID_GL_FPS_50 + MENUITEM "60 fps(&6)", IDM_VID_GL_FPS_60 + MENUITEM "75 fps(&7)", IDM_VID_GL_FPS_75 + END + MENUITEM "垂直同步(&V)", IDM_VID_GL_VSYNC + MENUITEM "選取著色器(&S)...", IDM_VID_GL_SHADER + MENUITEM "移除著色器(&R)", IDM_VID_GL_NOSHADER +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +#define STR_PREFERENCES "偏好設定" +#define STR_SND_GAIN "音量增益" +#define STR_NEW_FLOPPY "新增映像" +#define STR_CONFIG "設定" +#define STR_SPECIFY_DIM "指定主視窗大小" + +#define STR_OK "確定" +#define STR_CANCEL "取消" +#define STR_GLOBAL "將以上設定存儲為全局預設值(&G)" +#define STR_DEFAULT "預設(&D)" +#define STR_LANGUAGE "語言:" +#define STR_ICONSET "圖示集:" + +#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_CPU_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_SOFTFLOAT "Softfloat FPU" +#define STR_CACHE "高速缓冲存储器" + +#define STR_VIDEO "顯示卡:" +#define STR_VIDEO_2 "顯示卡 2:" +#define STR_VOODOO "Voodoo Graphics" +#define STR_IBM8514 "IBM 8514/A Graphics" +#define STR_XGA "XGA Graphics" + +#define STR_MOUSE "滑鼠:" +#define STR_JOYSTICK "搖桿:" +#define STR_JOY1 "搖桿 1..." +#define STR_JOY2 "搖桿 2..." +#define STR_JOY3 "搖桿 3..." +#define STR_JOY4 "搖桿 4..." + +#define STR_SOUND1 "音效卡 1:" +#define STR_SOUND2 "音效卡 2:" +#define STR_SOUND3 "音效卡 3:" +#define STR_SOUND4 "音效卡 4:" +#define STR_MIDI_OUT "MIDI 輸出裝置:" +#define STR_MIDI_IN "MIDI 輸入裝置:" +#define STR_MPU401 "獨立 MPU-401" +#define STR_FLOAT "使用單精度浮點 (FLOAT32)" +#define STR_FM_DRIVER "調頻合成器驅動器" +#define STR_FM_DRV_NUKED "Nuked (更準確)" +#define STR_FM_DRV_YMFM "YMFM (更快)" + +#define STR_NET_TYPE "網路類型:" +#define STR_PCAP "PCap 裝置:" +#define STR_NET "網路配接器:" +#define STR_NET1 "網路卡 1:" +#define STR_NET2 "網路卡 2:" +#define STR_NET3 "網路卡 3:" +#define STR_NET4 "網路卡 4:" + +#define STR_COM1 "COM1 裝置:" +#define STR_COM2 "COM2 裝置:" +#define STR_COM3 "COM3 裝置:" +#define STR_COM4 "COM4 裝置:" +#define STR_LPT1 "LPT1 裝置:" +#define STR_LPT2 "LPT2 裝置:" +#define STR_LPT3 "LPT3 裝置:" +#define STR_LPT4 "LPT4 裝置:" +#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_PARALLEL4 "並列埠 4" +#define STR_SERIAL_PASS1 "序列埠直通 1" +#define STR_SERIAL_PASS2 "序列埠直通 2" +#define STR_SERIAL_PASS3 "序列埠直通 3" +#define STR_SERIAL_PASS4 "序列埠直通 4" + +#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_SPEED "Speed:" + +#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 "光碟機:" +#define STR_CD_SPEED "速度:" + +#define STR_MO_DRIVES "磁光碟機:" +#define STR_ZIP_DRIVES "ZIP 磁碟機:" +#define STR_250 "ZIP 250" + +#define STR_ISARTC "ISA 實時時鐘:" +#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 "Microsoft JhengHei" + +#include "dialogs.rc" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + 2048 "86Box" + IDS_2049 "錯誤" + IDS_2050 "致命錯誤" + IDS_2051 " - 已暫停" + IDS_2052 "按下 Ctrl+Alt+PgDn 返回到視窗模式。" + 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 "加速" + 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_2081 "匯流排" + IDS_2082 "檔案" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Speed" + IDS_2088 "檢查 BPB" + IDS_2089 "KB" + IDS_2090 "無法初始化視訊渲染器。" + IDS_2091 "預設" + IDS_2092 "%i 等待狀態 (WS)" + IDS_2093 "類型" + IDS_2094 "設定 PCap 失敗" + IDS_2095 "未找到 PCap 裝置" + IDS_2096 "無效 PCap 裝置" + IDS_2097 "標準 2 鍵搖桿" + IDS_2098 "標準 4 鍵搖桿" + IDS_2099 "標準 6 鍵搖桿" + IDS_2100 "標準 8 鍵搖桿" + IDS_2101 "CH Flightstick Pro" + IDS_2102 "Microsoft SideWinder Pad" + IDS_2103 "Thrustmaster Flight Control System" + IDS_2104 "無" + IDS_2105 "無法載入鍵盤加速器。" + IDS_2106 "無法註冊原始輸入。" + IDS_2107 "%u" + IDS_2108 "%u MB (CHS: %i, %i, %i)" + IDS_2109 "軟碟 %i (%s): %ls" + IDS_2110 "所有映像 (*.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 映像 (*.FDI)\0*.FDI\0表面映像 (*.86F;*.MFM)\0*.86F;*.MFM\0所有檔案 (*.*)\0*.*\0" + IDS_2113 "確定要硬重設模擬器嗎?" + IDS_2114 "確定要退出 86Box 嗎?" + IDS_2115 "無法初始化 Ghostscript" + IDS_2116 "磁光碟 %i (%ls): %ls" + IDS_2117 "磁光碟映像 (*.IM?;*.MDI)\0*.IM?;*.MDI\0所有檔案 (*.*)\0*.*\0" + IDS_2118 "歡迎使用 86Box!" + IDS_2119 "內部控制器" + IDS_2120 "退出" + IDS_2121 "找不到 ROM" + IDS_2122 "要儲存設定嗎?" + IDS_2123 "此操作將硬重設模擬器。" + IDS_2124 "儲存" + IDS_2125 "關於 86Box" + IDS_2126 "86Box v" EMU_VERSION + + IDS_2127 "一個舊式電腦模擬器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\n本軟體依據 GNU 通用公共授權第二版或更新版本發布。詳情見 LICENSE 檔案。" + IDS_2128 "確定" + IDS_2129 "硬體不可用" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2130 "請確認 " LIB_NAME_PCAP " 已安裝且使用相容 " LIB_NAME_PCAP " 的網路連線。" + IDS_2131 "無效設定" +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2133 LIB_NAME_GS " 是將 PostScript 檔案轉換為 PDF 所需要的庫。\n\n使用通用 PostScript 印表機列印的文件將被儲存為 PostScript (.ps) 檔案。" + IDS_2135 "正在進入全螢幕模式" + IDS_2136 "不要再顯示此消息" + IDS_2137 "不退出" + IDS_2138 "重設" + IDS_2139 "不重設" + IDS_2140 "磁光碟映像 (*.IM?;*.MDI)\0*.IM?;*.MDI\0所有檔案 (*.*)\0*.*\0" + IDS_2141 "光碟映像 (*.ISO;*.CUE)\0*.ISO;*.CUE\0所有檔案 (*.*)\0*.*\0" + IDS_2142 "%hs 裝置設定" + IDS_2143 "顯示器處在睡眠狀態" + IDS_2144 "OpenGL 著色器 (*.GLSL)\0*.GLSL\0所有檔案 (*.*)\0*.*\0" + IDS_2145 "OpenGL 選項" + IDS_2146 "正在載入一個不受支援的設定" + IDS_2147 "此模擬電腦停用了基於選定電腦的 CPU 類型過濾。\n\n能夠選中與所選機器本不相容的 CPU,但是可能會遇到與機器 BIOS 或其他軟體不相容的問題。\n\n啟用此設定不受官方支援,並且提交的任何錯誤報告可能會視為無效而關閉。" + IDS_2148 "繼續" + IDS_2149 "磁帶: %s" + IDS_2150 "磁帶映像 (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0所有檔案 (*.*)\0*.*\0" + IDS_2151 "卡帶 %i: %ls" + IDS_2152 "卡帶映像 (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0所有檔案 (*.*)\0*.*\0" + IDS_2153 "初始化渲染器時出錯" + IDS_2154 "無法初始化 OpenGL (3.0 核心) 渲染器。請使用其他渲染器。" + IDS_2155 "恢復執行" + IDS_2156 "暫停執行" + IDS_2157 "按下 Ctrl+Alt+Del" + IDS_2158 "按下 Ctrl+Alt+Esc" + IDS_2159 "硬重設" + IDS_2160 "ACPI 關機" + IDS_2161 "設定" + IDS_2162 "Type" + IDS_2163 "No Dynarec" + IDS_2164 "Old Dynarec" + IDS_2165 "New Dynarec" + IDS_2166 "Video card #2 ""%hs"" is not available due to missing ROMs in the roms/video directory. Disabling the second video card." + IDS_2167 "Failed to initialize network driver" + IDS_2168 "The network configuration will be switched to the null driver" +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 磁碟映像不能超過 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 "光碟 %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 英吋 128 MB (ISO 10090)" + IDS_5903 "3.5 英吋 230 MB (ISO 13963)" + IDS_5904 "3.5 英吋 540 MB (ISO 15498)" + IDS_5905 "3.5 英吋 640 MB (ISO 15498)" + IDS_5906 "3.5 英吋 1.3 GB (GigaMO)" + IDS_5907 "3.5 英吋 2.3 GB (GigaMO 2)" + IDS_5908 "5.25 英吋 600 MB" + IDS_5909 "5.25 英吋 650 MB" + IDS_5910 "5.25 英吋 1 GB" + IDS_5911 "5.25 英吋 1.3 GB" + + IDS_6144 "標準轉速 (RPM)" + IDS_6145 "低於標準轉速的 1%" + IDS_6146 "低於標準轉速的 1.5%" + IDS_6147 "低於標準轉速的 2%" + + IDS_7168 "(系統預設)" +END +#define IDS_LANG_ENUS IDS_7168 + +// Traditional Chinese resources +///////////////////////////////////////////////////////////////////////////// diff --git a/src/win/win_settings.c b/src/win/win_settings.c new file mode 100644 index 0000000000..00b30bf5cc --- /dev/null +++ b/src/win/win_settings.c @@ -0,0 +1,5719 @@ +/* + * 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. + * + * Windows 86Box Settings dialog handler. + * + * + * + * Authors: Miran Grca, + * David Hrdlička, + * Jasmine Iwanek, + * + * Copyright 2016-2019 Miran Grca. + * Copyright 2018-2019 David Hrdlička. + * Copyright 2021 Laci bá' + * Copyright 2021-2023 Jasmine Iwanek. + */ +#define UNICODE +#define BITMAP WINDOWS_BITMAP +#include +#include +#include +#undef BITMAP +#ifdef ENABLE_SETTINGS_LOG +# include +#endif +#include +#include +#include +#include +#include +#include +#include <86box/86box.h> +#include <86box/config.h> +#include "cpu.h" +#include <86box/mem.h> +#include <86box/rom.h> +#include <86box/device.h> +#include <86box/timer.h> +#include <86box/cassette.h> +#include <86box/nvr.h> +#include <86box/machine.h> +#include <86box/gameport.h> +#include <86box/isamem.h> +#include <86box/isartc.h> +#include <86box/lpt.h> +#include <86box/mouse.h> +#include <86box/serial.h> +#include <86box/scsi.h> +#include <86box/scsi_device.h> +#include <86box/cdrom.h> +#include <86box/hdd.h> +#include <86box/hdc.h> +#include <86box/hdc_ide.h> +#include <86box/zip.h> +#include <86box/mo.h> +#include <86box/fdd.h> +#include <86box/fdc.h> +#include <86box/fdc_ext.h> +#include <86box/thread.h> +#include <86box/network.h> +#include <86box/sound.h> +#include <86box/midi.h> +#include <86box/snd_mpu401.h> +#include <86box/snd_opl.h> +#include <86box/video.h> +#include <86box/vid_xga_device.h> +#include <86box/plat.h> +#include <86box/ui.h> +#include <86box/win.h> +#include <86box/serial_passthrough.h> +#include "../disk/minivhd/minivhd.h" + +/* Icon, Bus, File, C, H, S, Size, Speed */ +#define C_COLUMNS_HARD_DISKS 7 + +#define C_COLUMNS_FLOPPY_DRIVES 3 +#define C_COLUMNS_CDROM_DRIVES 3 +#define C_COLUMNS_MO_DRIVES 2 +#define C_COLUMNS_ZIP_DRIVES 2 + +static int first_cat = 0; + +/* Machine category */ +static int temp_machine_type; +static int temp_machine; +static int temp_cpu; +static int temp_wait_states; +static int temp_fpu; +static int temp_sync; +static cpu_family_t *temp_cpu_f; +static uint32_t temp_mem_size; +#ifdef USE_DYNAREC +static int temp_dynarec; +#endif +static int temp_fpu_softfloat; +static int temp_cache; + +/* Video category */ +static int temp_gfxcard[2]; +static int temp_ibm8514; +static int temp_voodoo; +static int temp_xga; + +/* Input devices category */ +static int temp_mouse; +static int temp_joystick; + +/* Sound category */ +static int temp_sound_card[SOUND_CARD_MAX]; +static int temp_midi_output_device; +static int temp_midi_input_device; +static int temp_mpu401; +static int temp_float; +static int temp_fm_driver; + +/* Network category */ +static int temp_net_type[NET_CARD_MAX]; +static uint16_t temp_net_card[NET_CARD_MAX]; +static char temp_pcap_dev[NET_CARD_MAX][128]; + +/* Ports category */ +static int temp_lpt_devices[PARALLEL_MAX]; +static uint8_t temp_serial[SERIAL_MAX]; +static uint8_t temp_lpt[PARALLEL_MAX]; +static int temp_serial_passthrough_enabled[SERIAL_MAX]; + +/* Other peripherals category */ +static int temp_fdc_card; +static int temp_hdc; +static int temp_ide_ter; +static int temp_ide_qua; +static int temp_cassette; +static int temp_scsi_card[SCSI_BUS_MAX]; +static int temp_bugger; +static int temp_postcard; +static int temp_isartc; +static int temp_isamem[ISAMEM_MAX]; + +static uint8_t temp_deviceconfig; + +/* Hard disks category */ +static hard_disk_t temp_hdd[HDD_NUM]; + +/* Floppy drives category */ +static int temp_fdd_types[FDD_NUM]; +static int temp_fdd_turbo[FDD_NUM]; +static int temp_fdd_check_bpb[FDD_NUM]; + +/* Other removable devices category */ +static cdrom_t temp_cdrom[CDROM_NUM]; +static zip_drive_t temp_zip_drives[ZIP_NUM]; +static mo_drive_t temp_mo_drives[MO_NUM]; + +static HWND hwndParentDialog; +static HWND hwndChildDialog; + +static uint32_t displayed_category = 0; + +extern int is486; +static int listtomachinetype[256]; +static int listtomachine[256]; +static int listtocpufamily[256]; +static int listtocpu[256]; +static int settings_list_to_device[2][256]; +static int settings_list_to_fdc[20]; +static int settings_list_to_midi[20]; +static int settings_list_to_midi_in[20]; +static int settings_list_to_hdc[20]; + +static int max_spt = 63; +static int max_hpc = 255; +static int max_tracks = 266305; +static uint64_t mfm_tracking; +static uint64_t esdi_tracking; +static uint64_t xta_tracking; +static uint64_t ide_tracking; +static uint64_t scsi_tracking[8]; +static uint64_t size; +static int hd_listview_items; +static int hdc_id_to_listview_index[HDD_NUM]; +static int no_update = 0; +static int existing = 0; +static int chs_enabled = 0; +static int lv1_current_sel; +static int lv2_current_sel; +static int hard_disk_added = 0; +static int next_free_id = 0; +static int selection = 127; +static int spt; +static int hpc; +static int tracks; +static int ignore_change = 0; + +static hard_disk_t new_hdd; +static hard_disk_t *hdd_ptr; + +static wchar_t hd_file_name[512]; +static WCHAR device_name[512]; + +static int +settings_get_check(HWND hdlg, int id) +{ + return SendMessage(GetDlgItem(hdlg, id), BM_GETCHECK, 0, 0); +} + +static int +settings_get_cur_sel(HWND hdlg, int id) +{ + return SendMessage(GetDlgItem(hdlg, id), CB_GETCURSEL, 0, 0); +} + +static void +settings_set_check(HWND hdlg, int id, int val) +{ + SendMessage(GetDlgItem(hdlg, id), BM_SETCHECK, val, 0); +} + +static void +settings_set_cur_sel(HWND hdlg, int id, int val) +{ + SendMessage(GetDlgItem(hdlg, id), CB_SETCURSEL, val, 0); +} + +static void +settings_reset_content(HWND hdlg, int id) +{ + SendMessage(GetDlgItem(hdlg, id), CB_RESETCONTENT, 0, 0); +} + +static void +settings_add_string(HWND hdlg, int id, LPARAM string) +{ + SendMessage(GetDlgItem(hdlg, id), CB_ADDSTRING, 0, string); +} + +static void +settings_enable_window(HWND hdlg, int id, int condition) +{ + EnableWindow(GetDlgItem(hdlg, id), condition ? TRUE : FALSE); +} + +static void +settings_show_window(HWND hdlg, int id, int condition) +{ + HWND h; + + h = GetDlgItem(hdlg, id); + EnableWindow(h, condition ? TRUE : FALSE); + ShowWindow(h, condition ? SW_SHOW : SW_HIDE); +} + +static void +settings_listview_enable_styles(HWND hdlg, int id) +{ + HWND h; + + h = GetDlgItem(hdlg, id); + SetWindowTheme(h, L"Explorer", NULL); + ListView_SetExtendedListViewStyle(h, LVS_EX_FULLROWSELECT | LVS_EX_DOUBLEBUFFER); +} + +static void +settings_listview_select(HWND hdlg, int id, int selection) +{ + HWND h; + + h = GetDlgItem(hdlg, id); + ListView_SetItemState(h, selection, LVIS_FOCUSED | LVIS_SELECTED, 0x000F); +} + +static void +settings_process_messages(void) +{ + MSG msg; + while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE | PM_NOYIELD)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } +} + +static BOOL +image_list_init(HWND hdlg, int id, const uint8_t *icon_ids) +{ + HICON hiconItem; + HIMAGELIST hSmall; + HWND hwndList = GetDlgItem(hdlg, id); + + int i = 0; + + hSmall = ListView_GetImageList(hwndList, LVSIL_SMALL); + if (hSmall != 0) + ImageList_Destroy(hSmall); + + hSmall = ImageList_Create(win_get_system_metrics(SM_CXSMICON, dpi), + win_get_system_metrics(SM_CYSMICON, dpi), + ILC_MASK | ILC_COLOR32, 1, 1); + + while (1) { + if (icon_ids[i] == 0) + break; + + hiconItem = hIcon[icon_ids[i]]; + ImageList_AddIcon(hSmall, hiconItem); + + i++; + } + + ListView_SetImageList(hwndList, hSmall, LVSIL_SMALL); + + return TRUE; +} + +/* Show a MessageBox dialog. This is nasty, I know. --FvK */ +static int +settings_msgbox_header(int flags, void *header, void *message) +{ + HWND h; + int i; + + h = hwndMain; + hwndMain = hwndParentDialog; + + i = ui_msgbox_header(flags, header, message); + + hwndMain = h; + + return i; +} + +static int +settings_msgbox_ex(int flags, void *header, void *message, void *btn1, void *btn2, void *btn3) +{ + HWND h; + int i; + + h = hwndMain; + hwndMain = hwndParentDialog; + + i = ui_msgbox_ex(flags, header, message, btn1, btn2, btn3); + + hwndMain = h; + + return i; +} + +/* This does the initial read of global variables into the temporary ones. */ +static void +win_settings_init(void) +{ + int i = 0; + + /* Machine category */ + temp_machine_type = machine_get_type(machine); + temp_machine = machine; + temp_cpu_f = cpu_f; + temp_wait_states = cpu_waitstates; + temp_cpu = cpu; + temp_mem_size = mem_size; +#ifdef USE_DYNAREC + temp_dynarec = cpu_use_dynarec; +#endif + temp_fpu_softfloat = fpu_softfloat; + temp_cache = cache; + temp_fpu = fpu_type; + temp_sync = time_sync; + + /* Video category */ + temp_gfxcard[0] = gfxcard[0]; + temp_gfxcard[1] = gfxcard[1]; + temp_voodoo = voodoo_enabled; + temp_ibm8514 = ibm8514_standalone_enabled; + temp_xga = xga_standalone_enabled; + + /* Input devices category */ + temp_mouse = mouse_type; + temp_joystick = joystick_type; + + /* Sound category */ + for (i = 0; i < SOUND_CARD_MAX; i++) + temp_sound_card[i] = sound_card_current[i]; + temp_midi_output_device = midi_output_device_current; + temp_midi_input_device = midi_input_device_current; + temp_mpu401 = mpu401_standalone_enable; + temp_float = sound_is_float; + temp_fm_driver = fm_driver; + + /* Network category */ + for (i = 0; i < NET_CARD_MAX; i++) { + temp_net_type[i] = net_cards_conf[i].net_type; + memset(temp_pcap_dev[i], 0, sizeof(temp_pcap_dev[i])); +#ifdef ENABLE_SETTINGS_LOG + assert(sizeof(temp_pcap_dev[i]) == sizeof(net_cards_conf[i].host_dev_name)); +#endif + memcpy(temp_pcap_dev[i], net_cards_conf[i].host_dev_name, sizeof(net_cards_conf[i].host_dev_name)); + temp_net_card[i] = net_cards_conf[i].device_num; + } + + /* Ports category */ + for (i = 0; i < PARALLEL_MAX; i++) { + temp_lpt_devices[i] = lpt_ports[i].device; + temp_lpt[i] = lpt_ports[i].enabled; + } + for (i = 0; i < SERIAL_MAX; i++) { + temp_serial[i] = com_ports[i].enabled; + temp_serial_passthrough_enabled[i] = serial_passthrough_enabled[i]; + } + + /* Storage devices category */ + for (i = 0; i < SCSI_BUS_MAX; i++) + temp_scsi_card[i] = scsi_card_current[i]; + temp_fdc_card = fdc_type; + temp_hdc = hdc_current; + temp_ide_ter = ide_ter_enabled; + temp_ide_qua = ide_qua_enabled; + temp_cassette = cassette_enable; + + mfm_tracking = xta_tracking = esdi_tracking = ide_tracking = 0; + for (i = 0; i < SCSI_LUN_MAX; i++) + scsi_tracking[i] = 0; + + /* Hard disks category */ + memcpy(temp_hdd, hdd, HDD_NUM * sizeof(hard_disk_t)); + for (i = 0; i < HDD_NUM; i++) { + if (hdd[i].bus == HDD_BUS_MFM) + mfm_tracking |= (1 << (hdd[i].mfm_channel << 3)); + else if (hdd[i].bus == HDD_BUS_XTA) + xta_tracking |= (1 << (hdd[i].xta_channel << 3)); + else if (hdd[i].bus == HDD_BUS_ESDI) + esdi_tracking |= (1 << (hdd[i].esdi_channel << 3)); + else if ((hdd[i].bus == HDD_BUS_IDE) || (hdd[i].bus == HDD_BUS_ATAPI)) + ide_tracking |= (1 << (hdd[i].ide_channel << 3)); + else if (hdd[i].bus == HDD_BUS_SCSI) + scsi_tracking[hdd[i].scsi_id >> 3] |= (1 << ((hdd[i].scsi_id & 0x07) << 3)); + } + + /* Floppy drives category */ + for (i = 0; i < FDD_NUM; i++) { + temp_fdd_types[i] = fdd_get_type(i); + temp_fdd_turbo[i] = fdd_get_turbo(i); + temp_fdd_check_bpb[i] = fdd_get_check_bpb(i); + } + + /* Other removable devices category */ + memcpy(temp_cdrom, cdrom, CDROM_NUM * sizeof(cdrom_t)); + for (i = 0; i < CDROM_NUM; i++) { + if (cdrom[i].bus_type == CDROM_BUS_ATAPI) + ide_tracking |= (2 << (cdrom[i].ide_channel << 3)); + else if (cdrom[i].bus_type == CDROM_BUS_SCSI) + scsi_tracking[cdrom[i].scsi_device_id >> 3] |= (1 << ((cdrom[i].scsi_device_id & 0x07) << 3)); + } + memcpy(temp_zip_drives, zip_drives, ZIP_NUM * sizeof(zip_drive_t)); + for (i = 0; i < ZIP_NUM; i++) { + if (zip_drives[i].bus_type == ZIP_BUS_ATAPI) + ide_tracking |= (4 << (zip_drives[i].ide_channel << 3)); + else if (zip_drives[i].bus_type == ZIP_BUS_SCSI) + scsi_tracking[zip_drives[i].scsi_device_id >> 3] |= (1 << ((zip_drives[i].scsi_device_id & 0x07) << 3)); + } + memcpy(temp_mo_drives, mo_drives, MO_NUM * sizeof(mo_drive_t)); + for (i = 0; i < MO_NUM; i++) { + if (mo_drives[i].bus_type == MO_BUS_ATAPI) + ide_tracking |= (1 << (mo_drives[i].ide_channel << 3)); + else if (mo_drives[i].bus_type == MO_BUS_SCSI) + scsi_tracking[mo_drives[i].scsi_device_id >> 3] |= (1 << ((mo_drives[i].scsi_device_id & 0x07) << 3)); + } + + /* Other peripherals category */ + temp_bugger = bugger_enabled; + temp_postcard = postcard_enabled; + temp_isartc = isartc_type; + + /* ISA memory boards. */ + for (i = 0; i < ISAMEM_MAX; i++) + temp_isamem[i] = isamem_type[i]; + + temp_deviceconfig = 0; +} + +/* This returns 1 if any variable has changed, 0 if not. */ +static int +win_settings_changed(void) +{ + int i = 0; + + /* Machine category */ + i = i || (machine != temp_machine); + i = i || (cpu_f != temp_cpu_f); + i = i || (cpu_waitstates != temp_wait_states); + i = i || (cpu != temp_cpu); + i = i || (mem_size != temp_mem_size); +#ifdef USE_DYNAREC + i = i || (temp_dynarec != cpu_use_dynarec); +#endif + i = i || (temp_fpu_softfloat != fpu_softfloat); + i = i || (temp_cache != cache); + i = i || (temp_fpu != fpu_type); + i = i || (temp_sync != time_sync); + + /* Video category */ + i = i || (gfxcard[0] != temp_gfxcard[0]); + i = i || (gfxcard[1] != temp_gfxcard[1]); + i = i || (voodoo_enabled != temp_voodoo); + i = i || (ibm8514_standalone_enabled != temp_ibm8514); + i = i || (xga_standalone_enabled != temp_xga); + + /* Input devices category */ + i = i || (mouse_type != temp_mouse); + i = i || (joystick_type != temp_joystick); + + /* Sound category */ + for (uint8_t j = 0; j < SOUND_CARD_MAX; j++) + i = i || (sound_card_current[j] != temp_sound_card[j]); + i = i || (midi_output_device_current != temp_midi_output_device); + i = i || (midi_input_device_current != temp_midi_input_device); + i = i || (mpu401_standalone_enable != temp_mpu401); + i = i || (sound_is_float != temp_float); + i = i || (fm_driver != temp_fm_driver); + + /* Network category */ + for (uint8_t j = 0; j < NET_CARD_MAX; j++) { + i = i || (net_cards_conf[j].net_type != temp_net_type[j]); + i = i || strcmp(temp_pcap_dev[j], net_cards_conf[j].host_dev_name); + i = i || (net_cards_conf[j].device_num != temp_net_card[j]); + } + + /* Ports category */ + for (uint8_t j = 0; j < PARALLEL_MAX; j++) { + i = i || (temp_lpt_devices[j] != lpt_ports[j].device); + i = i || (temp_lpt[j] != lpt_ports[j].enabled); + } + for (uint8_t j = 0; j < SERIAL_MAX; j++) { + i = i || (temp_serial[j] != com_ports[j].enabled); + i = i || (temp_serial_passthrough_enabled[i] != serial_passthrough_enabled[i]); + } + + /* Storage devices category */ + for (uint8_t j = 0; j < SCSI_BUS_MAX; j++) + i = i || (temp_scsi_card[j] != scsi_card_current[j]); + i = i || (fdc_type != temp_fdc_card); + i = i || (hdc_current != temp_hdc); + i = i || (temp_ide_ter != ide_ter_enabled); + i = i || (temp_ide_qua != ide_qua_enabled); + i = i || (temp_cassette != cassette_enable); + + /* Hard disks category */ + i = i || memcmp(hdd, temp_hdd, HDD_NUM * sizeof(hard_disk_t)); + + /* Floppy drives category */ + for (uint8_t j = 0; j < FDD_NUM; j++) { + i = i || (temp_fdd_types[j] != fdd_get_type(j)); + i = i || (temp_fdd_turbo[j] != fdd_get_turbo(j)); + i = i || (temp_fdd_check_bpb[j] != fdd_get_check_bpb(j)); + } + + /* Other removable devices category */ + i = i || memcmp(cdrom, temp_cdrom, CDROM_NUM * sizeof(cdrom_t)); + i = i || memcmp(zip_drives, temp_zip_drives, ZIP_NUM * sizeof(zip_drive_t)); + i = i || memcmp(mo_drives, temp_mo_drives, MO_NUM * sizeof(mo_drive_t)); + + /* Other peripherals category */ + i = i || (temp_bugger != bugger_enabled); + i = i || (temp_postcard != postcard_enabled); + i = i || (temp_isartc != isartc_type); + + /* ISA memory boards. */ + for (uint8_t j = 0; j < ISAMEM_MAX; j++) + i = i || (temp_isamem[j] != isamem_type[j]); + + i = i || !!temp_deviceconfig; + + return i; +} + +/* This saves the settings back to the global variables. */ +static void +win_settings_save(void) +{ + pc_reset_hard_close(); + + /* Machine category */ + machine = temp_machine; + cpu_f = temp_cpu_f; + cpu_waitstates = temp_wait_states; + cpu = temp_cpu; + mem_size = temp_mem_size; +#ifdef USE_DYNAREC + cpu_use_dynarec = temp_dynarec; +#endif + fpu_softfloat = temp_fpu_softfloat; + cache = temp_cache; + fpu_type = temp_fpu; + time_sync = temp_sync; + + /* Video category */ + gfxcard[0] = temp_gfxcard[0]; + gfxcard[1] = temp_gfxcard[1]; + voodoo_enabled = temp_voodoo; + ibm8514_standalone_enabled = temp_ibm8514; + xga_standalone_enabled = temp_xga; + + /* Input devices category */ + mouse_type = temp_mouse; + joystick_type = temp_joystick; + + /* Sound category */ + for (uint8_t i = 0; i < SOUND_CARD_MAX; i++) + sound_card_current[i] = temp_sound_card[i]; + midi_output_device_current = temp_midi_output_device; + midi_input_device_current = temp_midi_input_device; + mpu401_standalone_enable = temp_mpu401; + sound_is_float = temp_float; + fm_driver = temp_fm_driver; + + /* Network category */ + for (uint8_t i = 0; i < NET_CARD_MAX; i++) { + net_cards_conf[i].net_type = temp_net_type[i]; + memset(net_cards_conf[i].host_dev_name, '\0', sizeof(net_cards_conf[i].host_dev_name)); + strcpy(net_cards_conf[i].host_dev_name, temp_pcap_dev[i]); + net_cards_conf[i].device_num = temp_net_card[i]; + } + + /* Ports category */ + for (uint8_t i = 0; i < PARALLEL_MAX; i++) { + lpt_ports[i].device = temp_lpt_devices[i]; + lpt_ports[i].enabled = temp_lpt[i]; + } + for (uint8_t i = 0; i < SERIAL_MAX; i++) { + com_ports[i].enabled = temp_serial[i]; + serial_passthrough_enabled[i] = temp_serial_passthrough_enabled[i]; + } + + /* Storage devices category */ + for (uint8_t i = 0; i < SCSI_BUS_MAX; i++) + scsi_card_current[i] = temp_scsi_card[i]; + hdc_current = temp_hdc; + fdc_type = temp_fdc_card; + ide_ter_enabled = temp_ide_ter; + ide_qua_enabled = temp_ide_qua; + cassette_enable = temp_cassette; + + /* Hard disks category */ + memcpy(hdd, temp_hdd, HDD_NUM * sizeof(hard_disk_t)); + for (uint8_t i = 0; i < HDD_NUM; i++) + hdd[i].priv = NULL; + + /* Floppy drives category */ + for (uint8_t i = 0; i < FDD_NUM; i++) { + fdd_set_type(i, temp_fdd_types[i]); + fdd_set_turbo(i, temp_fdd_turbo[i]); + fdd_set_check_bpb(i, temp_fdd_check_bpb[i]); + } + + /* Removable devices category */ + memcpy(cdrom, temp_cdrom, CDROM_NUM * sizeof(cdrom_t)); + for (uint8_t i = 0; i < CDROM_NUM; i++) { + cdrom[i].is_dir = 0; + cdrom[i].priv = NULL; + cdrom[i].ops = NULL; + cdrom[i].image = NULL; + cdrom[i].insert = NULL; + cdrom[i].close = NULL; + cdrom[i].get_volume = NULL; + cdrom[i].get_channel = NULL; + } + memcpy(zip_drives, temp_zip_drives, ZIP_NUM * sizeof(zip_drive_t)); + for (uint8_t i = 0; i < ZIP_NUM; i++) { + zip_drives[i].fp = NULL; + zip_drives[i].priv = NULL; + } + memcpy(mo_drives, temp_mo_drives, MO_NUM * sizeof(mo_drive_t)); + for (uint8_t i = 0; i < MO_NUM; i++) { + mo_drives[i].fp = NULL; + mo_drives[i].priv = NULL; + } + + /* Other peripherals category */ + bugger_enabled = temp_bugger; + postcard_enabled = temp_postcard; + isartc_type = temp_isartc; + + /* ISA memory boards. */ + for (uint8_t i = 0; i < ISAMEM_MAX; i++) + isamem_type[i] = temp_isamem[i]; + + /* Mark configuration as changed. */ + config_changed = 2; + + pc_reset_hard_init(); +} + +static void +win_settings_machine_recalc_softfloat(HWND hdlg) +{ + if (temp_fpu == FPU_NONE) { + settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, FALSE); + settings_enable_window(hdlg, IDC_CHECK_SOFTFLOAT, FALSE); + } else { + settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? TRUE : temp_fpu_softfloat)); + settings_enable_window(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? FALSE : TRUE)); + } +} + +static void +win_settings_machine_recalc_fpu(HWND hdlg) +{ + int c; + int type; + LPTSTR lptsTemp; + const char *stransi; + + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + settings_reset_content(hdlg, IDC_COMBO_FPU); + c = 0; + while (1) { + stransi = fpu_get_name_from_index(temp_cpu_f, temp_cpu, c); + type = fpu_get_type_from_index(temp_cpu_f, temp_cpu, c); + if (!stransi) + break; + + mbstowcs(lptsTemp, stransi, strlen(stransi) + 1); + settings_add_string(hdlg, IDC_COMBO_FPU, (LPARAM) (LPCSTR) lptsTemp); + if (!c || (type == temp_fpu)) + settings_set_cur_sel(hdlg, IDC_COMBO_FPU, c); + + c++; + } + + settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? TRUE : temp_fpu_softfloat));\ + settings_set_check(hdlg, IDC_CHECK_CACHE, temp_cache); + settings_enable_window(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? FALSE : TRUE)); + + settings_enable_window(hdlg, IDC_COMBO_FPU, c > 1); + + temp_fpu = fpu_get_type_from_index(temp_cpu_f, temp_cpu, settings_get_cur_sel(hdlg, IDC_COMBO_FPU)); + + win_settings_machine_recalc_softfloat(hdlg); +} + +static void +win_settings_machine_recalc_cpu(HWND hdlg) +{ + int cpu_type; +#ifdef USE_DYNAREC + int cpu_flags; +#endif + + cpu_type = temp_cpu_f->cpus[temp_cpu].cpu_type; + settings_enable_window(hdlg, IDC_COMBO_WS, (cpu_type >= CPU_286) && (cpu_type <= CPU_386DX)); + +#ifdef USE_DYNAREC + cpu_flags = temp_cpu_f->cpus[temp_cpu].cpu_flags; + if (!(cpu_flags & CPU_SUPPORTS_DYNAREC) && (cpu_flags & CPU_REQUIRES_DYNAREC)) + fatal("Attempting to select a CPU that requires the recompiler and does not support it at the same time\n"); + if (!(cpu_flags & CPU_SUPPORTS_DYNAREC) || ((cpu_flags & CPU_REQUIRES_DYNAREC) && !cpu_override)) { + if (!(cpu_flags & CPU_SUPPORTS_DYNAREC)) + temp_dynarec = 0; + if (cpu_flags & CPU_REQUIRES_DYNAREC) + temp_dynarec = 1; + settings_set_check(hdlg, IDC_CHECK_DYNAREC, temp_dynarec); + settings_enable_window(hdlg, IDC_CHECK_DYNAREC, FALSE); + } else { + settings_set_check(hdlg, IDC_CHECK_DYNAREC, temp_dynarec); + settings_enable_window(hdlg, IDC_CHECK_DYNAREC, TRUE); + } +#endif + + win_settings_machine_recalc_fpu(hdlg); +} + +static void +win_settings_machine_recalc_cpu_m(HWND hdlg) +{ + int c; + int i; + int first_eligible = -1; + int current_eligible = 0; + int last_eligible = 0; + LPTSTR lptsTemp; + const char *stransi; + + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + settings_reset_content(hdlg, IDC_COMBO_CPU_SPEED); + c = i = 0; + while (temp_cpu_f->cpus[c].cpu_type != 0) { + if (cpu_is_eligible(temp_cpu_f, c, temp_machine)) { + stransi = (char *) temp_cpu_f->cpus[c].name; + mbstowcs(lptsTemp, stransi, strlen(stransi) + 1); + settings_add_string(hdlg, IDC_COMBO_CPU_SPEED, (LPARAM) (LPCSTR) lptsTemp); + + if (first_eligible == -1) + first_eligible = i; + if (temp_cpu == c) + current_eligible = i; + last_eligible = i; + + listtocpu[i++] = c; + } + c++; + } + if (i == 0) + fatal("No eligible CPUs for the selected family\n"); + settings_enable_window(hdlg, IDC_COMBO_CPU_SPEED, i != 1); + if (current_eligible < first_eligible) + current_eligible = first_eligible; + else if (current_eligible > last_eligible) + current_eligible = last_eligible; + temp_cpu = listtocpu[current_eligible]; + settings_set_cur_sel(hdlg, IDC_COMBO_CPU_SPEED, current_eligible); + + win_settings_machine_recalc_cpu(hdlg); + + free(lptsTemp); +} + +static void +win_settings_machine_recalc_machine(HWND hdlg) +{ + HWND h; + int c; + int i; + int current_eligible; + LPTSTR lptsTemp; + char *stransi; + UDACCEL accel; + const device_t *d; + + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + d = (device_t *) machine_get_device(temp_machine); + settings_enable_window(hdlg, IDC_CONFIGURE_MACHINE, d && d->config); + + settings_reset_content(hdlg, IDC_COMBO_CPU_TYPE); + c = i = 0; + current_eligible = -1; + while (cpu_families[c].package != 0) { + if (cpu_family_is_eligible(&cpu_families[c], temp_machine)) { + stransi = malloc(strlen((char *) cpu_families[c].manufacturer) + strlen((char *) cpu_families[c].name) + 2); + sprintf(stransi, "%s %s", (char *) cpu_families[c].manufacturer, (char *) cpu_families[c].name); + mbstowcs(lptsTemp, stransi, strlen(stransi) + 1); + free(stransi); + settings_add_string(hdlg, IDC_COMBO_CPU_TYPE, (LPARAM) (LPCSTR) lptsTemp); + if (&cpu_families[c] == temp_cpu_f) + current_eligible = i; + listtocpufamily[i++] = c; + } + c++; + } + if (i == 0) + fatal("No eligible CPU families for the selected machine\n"); + settings_enable_window(hdlg, IDC_COMBO_CPU_TYPE, TRUE); + if (current_eligible == -1) { + temp_cpu_f = (cpu_family_t *) &cpu_families[listtocpufamily[0]]; + settings_set_cur_sel(hdlg, IDC_COMBO_CPU_TYPE, 0); + } else { + settings_set_cur_sel(hdlg, IDC_COMBO_CPU_TYPE, current_eligible); + } + settings_enable_window(hdlg, IDC_COMBO_CPU_TYPE, i != 1); + + win_settings_machine_recalc_cpu_m(hdlg); + + if (machine_get_ram_granularity(temp_machine) & 1023) { + /* KB granularity */ + h = GetDlgItem(hdlg, IDC_MEMSPIN); + SendMessage(h, UDM_SETRANGE, 0, (machine_get_min_ram(temp_machine) << 16) | machine_get_max_ram(temp_machine)); + + accel.nSec = 0; + accel.nInc = machine_get_ram_granularity(temp_machine); + SendMessage(h, UDM_SETACCEL, 1, (LPARAM) &accel); + + SendMessage(h, UDM_SETPOS, 0, temp_mem_size); + + h = GetDlgItem(hdlg, IDC_TEXT_MB); + SendMessage(h, WM_SETTEXT, 0, win_get_string(IDS_KB)); + } else { + /* MB granularity */ + h = GetDlgItem(hdlg, IDC_MEMSPIN); + SendMessage(h, UDM_SETRANGE, 0, (machine_get_min_ram(temp_machine) << 6) | (machine_get_max_ram(temp_machine) >> 10)); + + accel.nSec = 0; + accel.nInc = machine_get_ram_granularity(temp_machine) >> 10; + + SendMessage(h, UDM_SETACCEL, 1, (LPARAM) &accel); + + SendMessage(h, UDM_SETPOS, 0, temp_mem_size >> 10); + + h = GetDlgItem(hdlg, IDC_TEXT_MB); + SendMessage(h, WM_SETTEXT, 0, win_get_string(IDS_MB)); + } + + settings_enable_window(hdlg, IDC_MEMSPIN, machine_get_min_ram(temp_machine) != machine_get_max_ram(temp_machine)); + settings_enable_window(hdlg, IDC_MEMTEXT, machine_get_min_ram(temp_machine) != machine_get_max_ram(temp_machine)); + + free(lptsTemp); +} + +static char * +machine_type_get_internal_name(int id) +{ + if (id < MACHINE_TYPE_MAX) + return ""; + else + return NULL; +} + +int +machine_type_available(int id) +{ + int c = 0; + + if ((id > 0) && (id < MACHINE_TYPE_MAX)) { + while (machine_get_internal_name_ex(c) != NULL) { + if (machine_available(c) && (machine_get_type(c) == id)) + return 1; + c++; + } + } + + return 0; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_machine_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + HWND h; + HWND h2; + int c; + int d; + int old_machine_type; + LPTSTR lptsTemp; + char *stransi; + + switch (message) { + case WM_INITDIALOG: + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_MACHINE_TYPE); + memset(listtomachinetype, 0x00, sizeof(listtomachinetype)); + while (machine_type_get_internal_name(c) != NULL) { + if (machine_type_available(c)) { + stransi = (char *) machine_types[c].name; + mbstowcs(lptsTemp, stransi, strlen(stransi) + 1); + settings_add_string(hdlg, IDC_COMBO_MACHINE_TYPE, (LPARAM) lptsTemp); + listtomachinetype[d] = c; + if (c == temp_machine_type) + settings_set_cur_sel(hdlg, IDC_COMBO_MACHINE_TYPE, d); + d++; + } + c++; + } + + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_MACHINE); + memset(listtomachine, 0x00, sizeof(listtomachine)); + while (machine_get_internal_name_ex(c) != NULL) { + if (machine_available(c) && (machine_get_type(c) == temp_machine_type)) { + stransi = (char *) machine_getname_ex(c); + mbstowcs(lptsTemp, stransi, strlen(stransi) + 1); + settings_add_string(hdlg, IDC_COMBO_MACHINE, (LPARAM) lptsTemp); + listtomachine[d] = c; + if (c == temp_machine) + settings_set_cur_sel(hdlg, IDC_COMBO_MACHINE, d); + d++; + } + c++; + } + + settings_add_string(hdlg, IDC_COMBO_WS, win_get_string(IDS_DEFAULT)); + for (c = 0; c < 8; c++) { /* TODO */ + wsprintf(lptsTemp, plat_get_string(IDS_WS), c); + settings_add_string(hdlg, IDC_COMBO_WS, (LPARAM) lptsTemp); + } + + settings_set_cur_sel(hdlg, IDC_COMBO_WS, temp_wait_states); + +#ifdef USE_DYNAREC + settings_set_check(hdlg, IDC_CHECK_DYNAREC, 0); +#endif + + settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, 0); + settings_set_check(hdlg, IDC_CHECK_CACHE, 0); + + h = GetDlgItem(hdlg, IDC_MEMSPIN); + h2 = GetDlgItem(hdlg, IDC_MEMTEXT); + SendMessage(h, UDM_SETBUDDY, (WPARAM) h2, 0); + + if (temp_sync & TIME_SYNC_ENABLED) { + if (temp_sync & TIME_SYNC_UTC) + settings_set_check(hdlg, IDC_RADIO_TS_UTC, BST_CHECKED); + else + settings_set_check(hdlg, IDC_RADIO_TS_LOCAL, BST_CHECKED); + } else + settings_set_check(hdlg, IDC_RADIO_TS_DISABLED, BST_CHECKED); + + win_settings_machine_recalc_machine(hdlg); + + free(lptsTemp); + + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_COMBO_MACHINE_TYPE: + if (HIWORD(wParam) == CBN_SELCHANGE) { + old_machine_type = temp_machine_type; + temp_machine_type = listtomachinetype[settings_get_cur_sel(hdlg, IDC_COMBO_MACHINE_TYPE)]; + + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + settings_reset_content(hdlg, IDC_COMBO_MACHINE); + c = d = 0; + memset(listtomachine, 0x00, sizeof(listtomachine)); + while (machine_get_internal_name_ex(c) != NULL) { + if (machine_available(c) && (machine_get_type(c) == temp_machine_type)) { + stransi = (char *) machine_getname_ex(c); + mbstowcs(lptsTemp, stransi, strlen(stransi) + 1); + settings_add_string(hdlg, IDC_COMBO_MACHINE, (LPARAM) lptsTemp); + listtomachine[d] = c; + if (c == temp_machine) + settings_set_cur_sel(hdlg, IDC_COMBO_MACHINE, d); + d++; + } + c++; + } + if (old_machine_type != temp_machine_type) { + settings_set_cur_sel(hdlg, IDC_COMBO_MACHINE, 0); + temp_machine = listtomachine[0]; + + win_settings_machine_recalc_machine(hdlg); + } + + free(lptsTemp); + } + break; + case IDC_COMBO_MACHINE: + if (HIWORD(wParam) == CBN_SELCHANGE) { + temp_machine = listtomachine[settings_get_cur_sel(hdlg, IDC_COMBO_MACHINE)]; + win_settings_machine_recalc_machine(hdlg); + } + break; + case IDC_COMBO_CPU_TYPE: + if (HIWORD(wParam) == CBN_SELCHANGE) { + temp_cpu_f = (cpu_family_t *) &cpu_families[listtocpufamily[settings_get_cur_sel(hdlg, IDC_COMBO_CPU_TYPE)]]; + temp_cpu = 0; + win_settings_machine_recalc_cpu_m(hdlg); + } + break; + case IDC_COMBO_CPU_SPEED: + if (HIWORD(wParam) == CBN_SELCHANGE) { + temp_cpu = listtocpu[settings_get_cur_sel(hdlg, IDC_COMBO_CPU_SPEED)]; + win_settings_machine_recalc_cpu(hdlg); + } + break; + case IDC_COMBO_FPU: + if (HIWORD(wParam) == CBN_SELCHANGE) { + temp_fpu = fpu_get_type_from_index(temp_cpu_f, temp_cpu, + settings_get_cur_sel(hdlg, IDC_COMBO_FPU)); + } + win_settings_machine_recalc_softfloat(hdlg); + break; + case IDC_CONFIGURE_MACHINE: + temp_machine = listtomachine[settings_get_cur_sel(hdlg, IDC_COMBO_MACHINE)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) machine_get_device(temp_machine)); + break; + } + + return FALSE; + + case WM_SAVESETTINGS: + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + stransi = (char *) malloc(512); + +#ifdef USE_DYNAREC + temp_dynarec = settings_get_check(hdlg, IDC_CHECK_DYNAREC); +#endif + + temp_fpu_softfloat = settings_get_check(hdlg, IDC_CHECK_SOFTFLOAT); + + temp_cache = settings_get_check(hdlg, IDC_CHECK_CACHE); + + if (settings_get_check(hdlg, IDC_RADIO_TS_DISABLED)) + temp_sync = TIME_SYNC_DISABLED; + + if (settings_get_check(hdlg, IDC_RADIO_TS_LOCAL)) + temp_sync = TIME_SYNC_ENABLED; + + if (settings_get_check(hdlg, IDC_RADIO_TS_UTC)) + temp_sync = TIME_SYNC_ENABLED | TIME_SYNC_UTC; + + temp_wait_states = settings_get_cur_sel(hdlg, IDC_COMBO_WS); + + h = GetDlgItem(hdlg, IDC_MEMTEXT); + SendMessage(h, WM_GETTEXT, 255, (LPARAM) lptsTemp); + wcstombs(stransi, lptsTemp, 512); + sscanf(stransi, "%u", &temp_mem_size); + if (!(machine_get_ram_granularity(temp_machine) & 1023)) + temp_mem_size = temp_mem_size << 10; + temp_mem_size &= ~(machine_get_ram_granularity(temp_machine) - 1); + if (temp_mem_size < machine_get_min_ram(temp_machine)) + temp_mem_size = machine_get_min_ram(temp_machine); + else if (temp_mem_size > machine_get_max_ram(temp_machine)) + temp_mem_size = machine_get_max_ram(temp_machine); + free(stransi); + free(lptsTemp); + + default: + return FALSE; + } + + return FALSE; +} + +static void +generate_device_name(const device_t *device, const char *internal_name, int bus) +{ + char temp[512]; + const WCHAR *wtemp; + + memset(device_name, 0x00, 512 * sizeof(WCHAR)); + memset(temp, 0x00, 512); + + if (!strcmp(internal_name, "none")) { + /* Translate "None". */ + wtemp = (WCHAR *) win_get_string(IDS_2104); + memcpy(device_name, wtemp, (wcslen(wtemp) + 1) * sizeof(WCHAR)); + return; + } else if (!strcmp(internal_name, "internal")) + memcpy(temp, "Internal", 9); + else + device_get_name(device, bus, temp); + + mbstowcs(device_name, temp, strlen(temp) + 1); +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + int c = 0; + int d = 0; + int e; + + switch (message) { + case WM_INITDIALOG: + // Primary Video Card + settings_reset_content(hdlg, IDC_COMBO_VIDEO); + + while (1) { + /* Skip "internal" if machine doesn't have it. */ + if ((c == 1) && !machine_has_flags(temp_machine, MACHINE_VIDEO)) { + c++; + continue; + } + + generate_device_name(video_card_getdevice(c), video_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if (video_card_available(c) && device_is_valid(video_card_getdevice(c), temp_machine)) { + if (c == 0) // "None" + settings_add_string(hdlg, IDC_COMBO_VIDEO, win_get_string(IDS_2104)); + else if (c == 1) // "Internal" + settings_add_string(hdlg, IDC_COMBO_VIDEO, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_VIDEO, (LPARAM) device_name); + settings_list_to_device[0][d] = c; + if ((c == 0) || (c == temp_gfxcard[0])) + settings_set_cur_sel(hdlg, IDC_COMBO_VIDEO, d); + d++; + } + + c++; + + settings_process_messages(); + } + + settings_enable_window(hdlg, IDC_COMBO_VIDEO, !machine_has_flags(temp_machine, MACHINE_VIDEO_ONLY)); + e = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)]; + settings_enable_window(hdlg, IDC_CONFIGURE_VID, video_card_has_config(e)); + + // Secondary Video Card + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_VIDEO_2); + + while (1) { + /* Skip "internal" if machine doesn't have it. */ + if ((c == 1) && !machine_has_flags(temp_machine, MACHINE_VIDEO)) { + c++; + continue; + } + + generate_device_name(video_card_getdevice(c), video_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if ((c > 1) && (video_card_get_flags(c) == video_card_get_flags(temp_gfxcard[0]))) { + c++; + continue; + } + + if (video_card_available(c) && device_is_valid(video_card_getdevice(c), temp_machine)) { + if (c == 0) // "None" + settings_add_string(hdlg, IDC_COMBO_VIDEO_2, win_get_string(IDS_2104)); + else if (c == 1) // "Internal" + settings_add_string(hdlg, IDC_COMBO_VIDEO_2, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_VIDEO_2, (LPARAM) device_name); + settings_list_to_device[1][d] = c; + if ((c == 0) || (c == temp_gfxcard[1])) + settings_set_cur_sel(hdlg, IDC_COMBO_VIDEO_2, d); + d++; + } + + c++; + + settings_process_messages(); + } + + settings_enable_window(hdlg, IDC_COMBO_VIDEO_2, !machine_has_flags(temp_machine, MACHINE_VIDEO_ONLY)); + e = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)]; + settings_enable_window(hdlg, IDC_CONFIGURE_VID_2, video_card_has_config(e)); + + settings_enable_window(hdlg, IDC_CHECK_VOODOO, machine_has_bus(temp_machine, MACHINE_BUS_PCI)); + settings_set_check(hdlg, IDC_CHECK_VOODOO, temp_voodoo); + settings_enable_window(hdlg, IDC_BUTTON_VOODOO, machine_has_bus(temp_machine, MACHINE_BUS_PCI) && temp_voodoo); + + settings_enable_window(hdlg, IDC_CHECK_IBM8514, machine_has_bus(temp_machine, MACHINE_BUS_ISA16) || machine_has_bus(temp_machine, MACHINE_BUS_MCA)); + settings_set_check(hdlg, IDC_CHECK_IBM8514, temp_ibm8514); + + settings_enable_window(hdlg, IDC_CHECK_XGA, machine_has_bus(temp_machine, MACHINE_BUS_ISA16) || machine_has_bus(temp_machine, MACHINE_BUS_MCA)); + settings_set_check(hdlg, IDC_CHECK_XGA, temp_xga); + settings_enable_window(hdlg, IDC_BUTTON_XGA, (machine_has_bus(temp_machine, MACHINE_BUS_ISA16) || machine_has_bus(temp_machine, MACHINE_BUS_MCA)) && temp_xga); + + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_COMBO_VIDEO: + temp_gfxcard[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)]; + settings_enable_window(hdlg, IDC_CONFIGURE_VID, video_card_has_config(temp_gfxcard[0])); + + // Secondary Video Card + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_VIDEO_2); + + while (1) { + /* Skip "internal" if machine doesn't have it. */ + if ((c == 1) && !machine_has_flags(temp_machine, MACHINE_VIDEO)) { + c++; + continue; + } + + generate_device_name(video_card_getdevice(c), video_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if ((c > 1) && (video_card_get_flags(c) == video_card_get_flags(temp_gfxcard[0]))) { + c++; + continue; + } + + if (video_card_available(c) && device_is_valid(video_card_getdevice(c), temp_machine)) { + if (c == 0) // "None" + settings_add_string(hdlg, IDC_COMBO_VIDEO_2, win_get_string(IDS_2104)); + else if (c == 1) // "Internal" + settings_add_string(hdlg, IDC_COMBO_VIDEO_2, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_VIDEO_2, (LPARAM) device_name); + settings_list_to_device[1][d] = c; + if ((c == 0) || (c == temp_gfxcard[1])) + settings_set_cur_sel(hdlg, IDC_COMBO_VIDEO_2, d); + d++; + } + + c++; + + settings_process_messages(); + } + + settings_enable_window(hdlg, IDC_COMBO_VIDEO_2, !machine_has_flags(temp_machine, MACHINE_VIDEO_ONLY)); + e = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)]; + settings_enable_window(hdlg, IDC_CONFIGURE_VID_2, video_card_has_config(e)); + break; + + case IDC_COMBO_VIDEO_2: + temp_gfxcard[1] = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)]; + settings_enable_window(hdlg, IDC_CONFIGURE_VID_2, video_card_has_config(temp_gfxcard[1])); + break; + + case IDC_CHECK_VOODOO: + temp_voodoo = settings_get_check(hdlg, IDC_CHECK_VOODOO); + settings_enable_window(hdlg, IDC_BUTTON_VOODOO, temp_voodoo); + break; + + case IDC_CHECK_IBM8514: + temp_ibm8514 = settings_get_check(hdlg, IDC_CHECK_IBM8514); + break; + + case IDC_CHECK_XGA: + temp_xga = settings_get_check(hdlg, IDC_CHECK_XGA); + settings_enable_window(hdlg, IDC_BUTTON_XGA, temp_xga); + break; + + case IDC_BUTTON_VOODOO: + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) &voodoo_device); + break; + + case IDC_BUTTON_XGA: + if (machine_has_bus(temp_machine, MACHINE_BUS_MCA) > 0) + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) &xga_device); + else + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) &xga_isa_device); + break; + + case IDC_CONFIGURE_VID: + temp_gfxcard[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) video_card_getdevice(temp_gfxcard[0])); + break; + + case IDC_CONFIGURE_VID_2: + temp_gfxcard[1] = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) video_card_getdevice(temp_gfxcard[1])); + break; + } + return FALSE; + + case WM_SAVESETTINGS: + temp_gfxcard[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)]; + temp_gfxcard[1] = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)]; + temp_voodoo = settings_get_check(hdlg, IDC_CHECK_VOODOO); + temp_ibm8514 = settings_get_check(hdlg, IDC_CHECK_IBM8514); + temp_xga = settings_get_check(hdlg, IDC_CHECK_XGA); + + default: + return FALSE; + } + return FALSE; +} + +static int +mouse_valid(int num, int m) +{ + const device_t *dev; + + if ((num == MOUSE_TYPE_INTERNAL) && !machine_has_flags(m, MACHINE_MOUSE)) + return 0; + + dev = mouse_get_device(num); + return (device_is_valid(dev, m)); +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_input_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + wchar_t str[128]; + const char *joy_name; + int c; + int d; + + switch (message) { + case WM_INITDIALOG: + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_MOUSE); + for (c = 0; c < mouse_get_ndev(); c++) { + if (mouse_valid(c, temp_machine)) { + generate_device_name(mouse_get_device(c), mouse_get_internal_name(c), 0); + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_MOUSE, win_get_string(IDS_2104)); + else if (c == 1) + settings_add_string(hdlg, IDC_COMBO_MOUSE, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_MOUSE, (LPARAM) device_name); + settings_list_to_device[0][d] = c; + if ((c == 0) || (c == temp_mouse)) + settings_set_cur_sel(hdlg, IDC_COMBO_MOUSE, d); + d++; + } + } + + settings_enable_window(hdlg, IDC_CONFIGURE_MOUSE, mouse_has_config(temp_mouse)); + + c = 0; + joy_name = joystick_get_name(c); + while (joy_name) { + mbstowcs(str, joy_name, strlen(joy_name) + 1); + settings_add_string(hdlg, IDC_COMBO_JOYSTICK, (LPARAM) str); + + c++; + joy_name = joystick_get_name(c); + } + settings_enable_window(hdlg, IDC_COMBO_JOYSTICK, TRUE); + settings_set_cur_sel(hdlg, IDC_COMBO_JOYSTICK, temp_joystick); + + for (c = 0; c < 4; c++) + settings_enable_window(hdlg, IDC_JOY1 + c, joystick_get_max_joysticks(temp_joystick) > c); + + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_COMBO_MOUSE: + temp_mouse = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_MOUSE)]; + settings_enable_window(hdlg, IDC_CONFIGURE_MOUSE, mouse_has_config(temp_mouse)); + break; + + case IDC_CONFIGURE_MOUSE: + temp_mouse = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_MOUSE)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) mouse_get_device(temp_mouse)); + break; + + case IDC_COMBO_JOYSTICK: + temp_joystick = settings_get_cur_sel(hdlg, IDC_COMBO_JOYSTICK); + + for (c = 0; c < MAX_JOYSTICKS; c++) + settings_enable_window(hdlg, IDC_JOY1 + c, joystick_get_max_joysticks(temp_joystick) > c); + break; + + case IDC_JOY1: + case IDC_JOY2: + case IDC_JOY3: + case IDC_JOY4: + temp_joystick = settings_get_cur_sel(hdlg, IDC_COMBO_JOYSTICK); + temp_deviceconfig |= joystickconfig_open(hdlg, LOWORD(wParam) - IDC_JOY1, temp_joystick); + break; + } + return FALSE; + + case WM_SAVESETTINGS: + temp_mouse = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_MOUSE)]; + temp_joystick = settings_get_cur_sel(hdlg, IDC_COMBO_JOYSTICK); + + default: + return FALSE; + } + return FALSE; +} + +static int +mpu401_present(void) +{ + return temp_mpu401 ? 1 : 0; +} + +int +mpu401_standalone_allow(void) +{ + const char *mdout; + const char *mdin; + + if (!machine_has_bus(temp_machine, MACHINE_BUS_ISA) && !machine_has_bus(temp_machine, MACHINE_BUS_MCA)) + return 0; + + mdout = midi_out_device_get_internal_name(temp_midi_output_device); + mdin = midi_in_device_get_internal_name(temp_midi_input_device); + + if (mdout != NULL) { + if (!strcmp(mdout, "none") && !strcmp(mdin, "none")) + return 0; + } + + return 1; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + uint16_t c; + uint16_t d; + LPTSTR lptsTemp; + const device_t *sound_dev[SOUND_CARD_MAX]; + + switch (message) { + case WM_INITDIALOG: + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_SOUND1); + while (1) { + /* Skip "internal" if machine doesn't have it. */ + if ((c == 1) && !machine_has_flags(temp_machine, MACHINE_SOUND)) { + c++; + continue; + } + + generate_device_name(sound_card_getdevice(c), sound_card_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if (sound_card_available(c)) { + sound_dev[0] = sound_card_getdevice(c); + + if (device_is_valid(sound_dev[0], temp_machine)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_SOUND1, win_get_string(IDS_2104)); + else if (c == 1) + settings_add_string(hdlg, IDC_COMBO_SOUND1, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_SOUND1, (LPARAM) device_name); + settings_list_to_device[0][d] = c; + if ((c == 0) || (c == temp_sound_card[0])) + settings_set_cur_sel(hdlg, IDC_COMBO_SOUND1, d); + d++; + } + } + + c++; + } + + settings_enable_window(hdlg, IDC_COMBO_SOUND1, d); + settings_enable_window(hdlg, IDC_CONFIGURE_SND1, sound_card_has_config(temp_sound_card[0])); + + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_SOUND2); + while (1) { + /* Skip "internal" */ + if (c == 1) { + c++; + continue; + } + + generate_device_name(sound_card_getdevice(c), sound_card_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if (sound_card_available(c)) { + sound_dev[1] = sound_card_getdevice(c); + + if (device_is_valid(sound_dev[1], temp_machine)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_SOUND2, win_get_string(IDS_2104)); + else if (c == 1) + settings_add_string(hdlg, IDC_COMBO_SOUND2, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_SOUND2, (LPARAM) device_name); + settings_list_to_device[0][d] = c; + if ((c == 0) || (c == temp_sound_card[1])) + settings_set_cur_sel(hdlg, IDC_COMBO_SOUND2, d); + d++; + } + } + + c++; + } + + settings_enable_window(hdlg, IDC_COMBO_SOUND2, d); + settings_enable_window(hdlg, IDC_CONFIGURE_SND2, sound_card_has_config(temp_sound_card[1])); + + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_SOUND3); + while (1) { + /* Skip "internal" */ + if (c == 1) { + c++; + continue; + } + + generate_device_name(sound_card_getdevice(c), sound_card_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if (sound_card_available(c)) { + sound_dev[2] = sound_card_getdevice(c); + + if (device_is_valid(sound_dev[2], temp_machine)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_SOUND3, win_get_string(IDS_2104)); + else if (c == 1) + settings_add_string(hdlg, IDC_COMBO_SOUND3, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_SOUND3, (LPARAM) device_name); + settings_list_to_device[0][d] = c; + if ((c == 0) || (c == temp_sound_card[2])) + settings_set_cur_sel(hdlg, IDC_COMBO_SOUND3, d); + d++; + } + } + + c++; + } + + settings_enable_window(hdlg, IDC_COMBO_SOUND3, d); + settings_enable_window(hdlg, IDC_CONFIGURE_SND3, sound_card_has_config(temp_sound_card[2])); + + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_SOUND4); + while (1) { + /* Skip "internal" */ + if (c == 1) { + c++; + continue; + } + + generate_device_name(sound_card_getdevice(c), sound_card_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if (sound_card_available(c)) { + sound_dev[3] = sound_card_getdevice(c); + + if (device_is_valid(sound_dev[3], temp_machine)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_SOUND4, win_get_string(IDS_2104)); + else if (c == 1) + settings_add_string(hdlg, IDC_COMBO_SOUND4, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_SOUND4, (LPARAM) device_name); + settings_list_to_device[0][d] = c; + if ((c == 0) || (c == temp_sound_card[3])) + settings_set_cur_sel(hdlg, IDC_COMBO_SOUND4, d); + d++; + } + } + + c++; + } + + settings_enable_window(hdlg, IDC_COMBO_SOUND4, d); + settings_enable_window(hdlg, IDC_CONFIGURE_SND4, sound_card_has_config(temp_sound_card[3])); + + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_MIDI_OUT); + while (1) { + generate_device_name(midi_out_device_getdevice(c), midi_out_device_get_internal_name(c), 0); + + if (!device_name[0]) + break; + + if (midi_out_device_available(c)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_MIDI_OUT, win_get_string(IDS_2104)); + else + settings_add_string(hdlg, IDC_COMBO_MIDI_OUT, (LPARAM) device_name); + settings_list_to_midi[d] = c; + if ((c == 0) || (c == temp_midi_output_device)) + settings_set_cur_sel(hdlg, IDC_COMBO_MIDI_OUT, d); + d++; + } + + c++; + } + + settings_enable_window(hdlg, IDC_CONFIGURE_MIDI_OUT, midi_out_device_has_config(temp_midi_output_device)); + + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_MIDI_IN); + while (1) { + generate_device_name(midi_in_device_getdevice(c), midi_in_device_get_internal_name(c), 0); + + if (!device_name[0]) + break; + + if (midi_in_device_available(c)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_MIDI_IN, win_get_string(IDS_2104)); + else + settings_add_string(hdlg, IDC_COMBO_MIDI_IN, (LPARAM) device_name); + settings_list_to_midi_in[d] = c; + if ((c == 0) || (c == temp_midi_input_device)) + settings_set_cur_sel(hdlg, IDC_COMBO_MIDI_IN, d); + d++; + } + + c++; + } + + settings_enable_window(hdlg, IDC_CONFIGURE_MIDI_IN, midi_in_device_has_config(temp_midi_input_device)); + settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401); + settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow()); + settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401); + settings_set_check(hdlg, IDC_CHECK_FLOAT, temp_float); + + if (temp_fm_driver == FM_DRV_YMFM) + settings_set_check(hdlg, IDC_RADIO_FM_DRV_YMFM, BST_CHECKED); + else + settings_set_check(hdlg, IDC_RADIO_FM_DRV_NUKED, BST_CHECKED); + + free(lptsTemp); + + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_COMBO_SOUND1: + temp_sound_card[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND1)]; + settings_enable_window(hdlg, IDC_CONFIGURE_SND1, sound_card_has_config(temp_sound_card[0])); + settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401); + settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow()); + settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401); + break; + + case IDC_CONFIGURE_SND1: + temp_sound_card[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND1)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card[0])); + break; + + case IDC_COMBO_SOUND2: + temp_sound_card[1] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND2)]; + settings_enable_window(hdlg, IDC_CONFIGURE_SND2, sound_card_has_config(temp_sound_card[1])); + settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401); + settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow()); + settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401); + break; + + case IDC_CONFIGURE_SND2: + temp_sound_card[1] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND2)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card[1])); + break; + + case IDC_COMBO_SOUND3: + temp_sound_card[2] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND3)]; + settings_enable_window(hdlg, IDC_CONFIGURE_SND3, sound_card_has_config(temp_sound_card[2])); + settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401); + settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow()); + settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401); + break; + + case IDC_CONFIGURE_SND3: + temp_sound_card[2] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND3)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card[2])); + break; + + case IDC_COMBO_SOUND4: + temp_sound_card[3] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND4)]; + settings_enable_window(hdlg, IDC_CONFIGURE_SND4, sound_card_has_config(temp_sound_card[3])); + settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401); + settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow()); + settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401); + break; + + case IDC_CONFIGURE_SND4: + temp_sound_card[3] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND4)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card[3])); + break; + + case IDC_COMBO_MIDI_OUT: + temp_midi_output_device = settings_list_to_midi[settings_get_cur_sel(hdlg, IDC_COMBO_MIDI_OUT)]; + settings_enable_window(hdlg, IDC_CONFIGURE_MIDI_OUT, midi_out_device_has_config(temp_midi_output_device)); + settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401); + settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow()); + settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401); + break; + + case IDC_CONFIGURE_MIDI_OUT: + temp_midi_output_device = settings_list_to_midi[settings_get_cur_sel(hdlg, IDC_COMBO_MIDI_OUT)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) midi_out_device_getdevice(temp_midi_output_device)); + break; + + case IDC_COMBO_MIDI_IN: + temp_midi_input_device = settings_list_to_midi_in[settings_get_cur_sel(hdlg, IDC_COMBO_MIDI_IN)]; + settings_enable_window(hdlg, IDC_CONFIGURE_MIDI_IN, midi_in_device_has_config(temp_midi_input_device)); + settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401); + settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow()); + settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401); + break; + + case IDC_CONFIGURE_MIDI_IN: + temp_midi_input_device = settings_list_to_midi_in[settings_get_cur_sel(hdlg, IDC_COMBO_MIDI_IN)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) midi_in_device_getdevice(temp_midi_input_device)); + break; + + case IDC_CHECK_MPU401: + temp_mpu401 = settings_get_check(hdlg, IDC_CHECK_MPU401); + + settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_present()); + break; + + case IDC_CONFIGURE_MPU401: + temp_deviceconfig |= deviceconfig_open(hdlg, machine_has_bus(temp_machine, MACHINE_BUS_MCA) ? (void *) &mpu401_mca_device : (void *) &mpu401_device); + break; + } + return FALSE; + + case WM_SAVESETTINGS: + temp_sound_card[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND1)]; + temp_sound_card[1] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND2)]; + temp_sound_card[2] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND3)]; + temp_sound_card[3] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND4)]; + temp_midi_output_device = settings_list_to_midi[settings_get_cur_sel(hdlg, IDC_COMBO_MIDI_OUT)]; + temp_midi_input_device = settings_list_to_midi_in[settings_get_cur_sel(hdlg, IDC_COMBO_MIDI_IN)]; + temp_mpu401 = settings_get_check(hdlg, IDC_CHECK_MPU401); + temp_float = settings_get_check(hdlg, IDC_CHECK_FLOAT); + if (settings_get_check(hdlg, IDC_RADIO_FM_DRV_NUKED)) + temp_fm_driver = FM_DRV_NUKED; + if (settings_get_check(hdlg, IDC_RADIO_FM_DRV_YMFM)) + temp_fm_driver = FM_DRV_YMFM; + default: + return FALSE; + } + return FALSE; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_ports_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + int c; + int i; + const char *s; + LPTSTR lptsTemp; + + switch (message) { + case WM_INITDIALOG: + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + for (i = 0; i < PARALLEL_MAX; i++) { + c = 0; + while (1) { + s = (char *) lpt_device_get_name(c); + + if (!s) + break; + + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_LPT1 + i, win_get_string(IDS_2104)); + else { + mbstowcs(lptsTemp, s, strlen(s) + 1); + settings_add_string(hdlg, IDC_COMBO_LPT1 + i, (LPARAM) lptsTemp); + } + + c++; + } + settings_set_cur_sel(hdlg, IDC_COMBO_LPT1 + i, temp_lpt_devices[i]); + + settings_set_check(hdlg, IDC_CHECK_PARALLEL1 + i, temp_lpt[i]); + settings_enable_window(hdlg, IDC_COMBO_LPT1 + i, temp_lpt[i]); + } + + for (i = 0; i < SERIAL_MAX; i++) { + settings_set_check(hdlg, IDC_CHECK_SERIAL1 + i, temp_serial[i]); + settings_set_check(hdlg, IDC_CHECK_SERIAL_PASS1 + i, temp_serial_passthrough_enabled[i]); + } + + free(lptsTemp); + + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_CHECK_PARALLEL1: + case IDC_CHECK_PARALLEL2: + case IDC_CHECK_PARALLEL3: + case IDC_CHECK_PARALLEL4: + i = LOWORD(wParam) - IDC_CHECK_PARALLEL1; + settings_enable_window(hdlg, IDC_COMBO_LPT1 + i, + settings_get_check(hdlg, IDC_CHECK_PARALLEL1 + i) == BST_CHECKED); + break; + } + break; + + case WM_SAVESETTINGS: + for (i = 0; i < PARALLEL_MAX; i++) { + temp_lpt_devices[i] = settings_get_cur_sel(hdlg, IDC_COMBO_LPT1 + i); + temp_lpt[i] = settings_get_check(hdlg, IDC_CHECK_PARALLEL1 + i); + } + + for (i = 0; i < SERIAL_MAX; i++) { + temp_serial[i] = settings_get_check(hdlg, IDC_CHECK_SERIAL1 + i); + temp_serial_passthrough_enabled[i] = settings_get_check(hdlg, IDC_CHECK_SERIAL_PASS1 + i); + } + + default: + return FALSE; + } + return FALSE; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_storage_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + int c; + int d; + int e; + int is_at; + LPTSTR lptsTemp; + char *stransi; + const device_t *scsi_dev; + const device_t *fdc_dev; + const device_t *hdc_dev; + + switch (message) { + case WM_INITDIALOG: + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + stransi = (char *) malloc(512); + + /*HD controller config*/ + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_HDC); + while (1) { + /* Skip "internal" if machine doesn't have it. */ + if ((c == 1) && !machine_has_flags(temp_machine, MACHINE_HDC)) { + c++; + continue; + } + + generate_device_name(hdc_get_device(c), hdc_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if (hdc_available(c)) { + hdc_dev = hdc_get_device(c); + + if (device_is_valid(hdc_dev, temp_machine)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_HDC, win_get_string(IDS_2104)); + else if (c == 1) + settings_add_string(hdlg, IDC_COMBO_HDC, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_HDC, (LPARAM) device_name); + settings_list_to_hdc[d] = c; + if ((c == 0) || (c == temp_hdc)) + settings_set_cur_sel(hdlg, IDC_COMBO_HDC, d); + d++; + } + } + + c++; + } + + settings_enable_window(hdlg, IDC_COMBO_HDC, d); + settings_enable_window(hdlg, IDC_CONFIGURE_HDC, hdc_has_config(temp_hdc)); + + /*FD controller config*/ + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_FDC); + while (1) { + generate_device_name(fdc_card_getdevice(c), fdc_card_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if (fdc_card_available(c)) { + fdc_dev = fdc_card_getdevice(c); + + if (device_is_valid(fdc_dev, temp_machine)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_FDC, win_get_string(IDS_2119)); + else + settings_add_string(hdlg, IDC_COMBO_FDC, (LPARAM) device_name); + settings_list_to_fdc[d] = c; + if ((c == 0) || (c == temp_fdc_card)) + settings_set_cur_sel(hdlg, IDC_COMBO_FDC, d); + d++; + } + } + + c++; + } + + settings_enable_window(hdlg, IDC_COMBO_FDC, d); + settings_enable_window(hdlg, IDC_CONFIGURE_FDC, fdc_card_has_config(temp_fdc_card)); + + /*SCSI config*/ + c = d = 0; + for (e = 0; e < SCSI_BUS_MAX; e++) + settings_reset_content(hdlg, IDC_COMBO_SCSI_1 + e); + while (1) { + generate_device_name(scsi_card_getdevice(c), scsi_card_get_internal_name(c), 1); + + if (!device_name[0]) + break; + + if (scsi_card_available(c)) { + scsi_dev = scsi_card_getdevice(c); + + if (device_is_valid(scsi_dev, temp_machine)) { + for (e = 0; e < SCSI_BUS_MAX; e++) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_SCSI_1 + e, win_get_string(IDS_2104)); + else + settings_add_string(hdlg, IDC_COMBO_SCSI_1 + e, (LPARAM) device_name); + + if ((c == 0) || (c == temp_scsi_card[e])) + settings_set_cur_sel(hdlg, IDC_COMBO_SCSI_1 + e, d); + } + + settings_list_to_device[0][d] = c; + d++; + } + } + + c++; + } + + for (c = 0; c < SCSI_BUS_MAX; c++) { + settings_enable_window(hdlg, IDC_COMBO_SCSI_1 + c, d); + settings_enable_window(hdlg, IDC_CONFIGURE_SCSI_1 + c, scsi_card_has_config(temp_scsi_card[c])); + } + is_at = IS_AT(temp_machine); + settings_enable_window(hdlg, IDC_CHECK_IDE_TER, is_at); + settings_enable_window(hdlg, IDC_BUTTON_IDE_TER, is_at && temp_ide_ter); + settings_enable_window(hdlg, IDC_CHECK_IDE_QUA, is_at); + settings_enable_window(hdlg, IDC_BUTTON_IDE_QUA, is_at && temp_ide_qua); + settings_enable_window(hdlg, IDC_CHECK_CASSETTE, machine_has_bus(temp_machine, MACHINE_BUS_CASSETTE)); + settings_set_check(hdlg, IDC_CHECK_IDE_TER, temp_ide_ter); + settings_set_check(hdlg, IDC_CHECK_IDE_QUA, temp_ide_qua); + settings_set_check(hdlg, IDC_CHECK_CASSETTE, (temp_cassette && machine_has_bus(temp_machine, MACHINE_BUS_CASSETTE))); + + free(stransi); + free(lptsTemp); + + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_CONFIGURE_FDC: + temp_fdc_card = settings_list_to_fdc[settings_get_cur_sel(hdlg, IDC_COMBO_FDC)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) fdc_card_getdevice(temp_fdc_card)); + break; + + case IDC_COMBO_FDC: + temp_fdc_card = settings_list_to_fdc[settings_get_cur_sel(hdlg, IDC_COMBO_FDC)]; + settings_enable_window(hdlg, IDC_CONFIGURE_FDC, fdc_card_has_config(temp_fdc_card)); + break; + + case IDC_CONFIGURE_HDC: + temp_hdc = settings_list_to_hdc[settings_get_cur_sel(hdlg, IDC_COMBO_HDC)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) hdc_get_device(temp_hdc)); + break; + + case IDC_COMBO_HDC: + temp_hdc = settings_list_to_hdc[settings_get_cur_sel(hdlg, IDC_COMBO_HDC)]; + settings_enable_window(hdlg, IDC_CONFIGURE_HDC, hdc_has_config(temp_hdc)); + break; + + case IDC_CONFIGURE_SCSI_1 ... IDC_CONFIGURE_SCSI_4: + c = LOWORD(wParam) - IDC_CONFIGURE_SCSI_1; + temp_scsi_card[c] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SCSI_1 + c)]; + temp_deviceconfig |= deviceconfig_inst_open(hdlg, (void *) scsi_card_getdevice(temp_scsi_card[c]), c + 1); + break; + + case IDC_COMBO_SCSI_1 ... IDC_COMBO_SCSI_4: + c = LOWORD(wParam) - IDC_COMBO_SCSI_1; + temp_scsi_card[c] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SCSI_1 + c)]; + settings_enable_window(hdlg, IDC_CONFIGURE_SCSI_1 + c, scsi_card_has_config(temp_scsi_card[c])); + break; + + case IDC_CHECK_IDE_TER: + temp_ide_ter = settings_get_check(hdlg, IDC_CHECK_IDE_TER); + settings_enable_window(hdlg, IDC_BUTTON_IDE_TER, temp_ide_ter); + break; + + case IDC_BUTTON_IDE_TER: + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) &ide_ter_device); + break; + + case IDC_CHECK_IDE_QUA: + temp_ide_qua = settings_get_check(hdlg, IDC_CHECK_IDE_QUA); + settings_enable_window(hdlg, IDC_BUTTON_IDE_QUA, temp_ide_qua); + break; + + case IDC_BUTTON_IDE_QUA: + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) &ide_qua_device); + break; + } + return FALSE; + + case WM_SAVESETTINGS: + temp_hdc = settings_list_to_hdc[settings_get_cur_sel(hdlg, IDC_COMBO_HDC)]; + temp_fdc_card = settings_list_to_fdc[settings_get_cur_sel(hdlg, IDC_COMBO_FDC)]; + for (c = 0; c < SCSI_BUS_MAX; c++) + temp_scsi_card[c] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SCSI_1 + c)]; + temp_ide_ter = settings_get_check(hdlg, IDC_CHECK_IDE_TER); + temp_ide_qua = settings_get_check(hdlg, IDC_CHECK_IDE_QUA); + temp_cassette = settings_get_check(hdlg, IDC_CHECK_CASSETTE); + + default: + return FALSE; + } + return FALSE; +} + +static void +network_recalc_combos(HWND hdlg) +{ + ignore_change = 1; + + for (uint8_t i = 0; i < NET_CARD_MAX; i++) { + settings_enable_window(hdlg, IDC_COMBO_PCAP1 + i, temp_net_type[i] == NET_TYPE_PCAP); + settings_enable_window(hdlg, IDC_COMBO_NET1 + i, + (temp_net_type[i] == NET_TYPE_SLIRP) || ((temp_net_type[i] == NET_TYPE_PCAP) && (network_dev_to_id(temp_pcap_dev[i]) > 0))); + settings_enable_window(hdlg, IDC_CONFIGURE_NET1 + i, network_card_has_config(temp_net_card[i]) && ((temp_net_type[i] == NET_TYPE_SLIRP) || ((temp_net_type[i] == NET_TYPE_PCAP) && (network_dev_to_id(temp_pcap_dev[i]) > 0)))); + } + + ignore_change = 0; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_network_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + int c; + int d; + LPTSTR lptsTemp; + + switch (message) { + case WM_INITDIALOG: + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + for (uint8_t i = 0; i < NET_CARD_MAX; i++) { + settings_add_string(hdlg, IDC_COMBO_NET1_TYPE + i, (LPARAM) L"Null Driver"); + settings_add_string(hdlg, IDC_COMBO_NET1_TYPE + i, (LPARAM) L"SLiRP"); + settings_add_string(hdlg, IDC_COMBO_NET1_TYPE + i, (LPARAM) L"PCap"); + settings_set_cur_sel(hdlg, IDC_COMBO_NET1_TYPE + i, temp_net_type[i]); + settings_enable_window(hdlg, IDC_COMBO_PCAP1 + i, temp_net_type[i] == NET_TYPE_PCAP); + + for (c = 0; c < network_ndev; c++) { + mbstowcs(lptsTemp, network_devs[c].description, strlen(network_devs[c].description) + 1); + settings_add_string(hdlg, IDC_COMBO_PCAP1 + i, (LPARAM) lptsTemp); + } + settings_set_cur_sel(hdlg, IDC_COMBO_PCAP1 + i, network_dev_to_id(temp_pcap_dev[i])); + + /* NIC config */ + c = d = 0; + settings_reset_content(hdlg, IDC_COMBO_NET1 + i); + while (1) { + generate_device_name(network_card_getdevice(c), network_card_get_internal_name(c), 1); + + if (device_name[0] == L'\0') + break; + + if (network_card_available(c) && device_is_valid(network_card_getdevice(c), temp_machine)) { + if (c == 0) + settings_add_string(hdlg, IDC_COMBO_NET1 + i, win_get_string(IDS_2104)); + else + settings_add_string(hdlg, IDC_COMBO_NET1 + i, (LPARAM) device_name); + settings_list_to_device[0][d] = c; + if ((c == 0) || (c == temp_net_card[i])) + settings_set_cur_sel(hdlg, IDC_COMBO_NET1 + i, d); + d++; + } + + c++; + } + + settings_enable_window(hdlg, IDC_COMBO_NET1 + i, d); + network_recalc_combos(hdlg); + } + free(lptsTemp); + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_COMBO_NET1_TYPE: + if (ignore_change) + return FALSE; + + temp_net_type[0] = settings_get_cur_sel(hdlg, IDC_COMBO_NET1_TYPE); + network_recalc_combos(hdlg); + break; + case IDC_COMBO_NET2_TYPE: + if (ignore_change) + return FALSE; + + temp_net_type[1] = settings_get_cur_sel(hdlg, IDC_COMBO_NET2_TYPE); + network_recalc_combos(hdlg); + break; + case IDC_COMBO_NET3_TYPE: + if (ignore_change) + return FALSE; + + temp_net_type[2] = settings_get_cur_sel(hdlg, IDC_COMBO_NET3_TYPE); + network_recalc_combos(hdlg); + break; + case IDC_COMBO_NET4_TYPE: + if (ignore_change) + return FALSE; + + temp_net_type[3] = settings_get_cur_sel(hdlg, IDC_COMBO_NET4_TYPE); + network_recalc_combos(hdlg); + break; + + case IDC_COMBO_PCAP1: + if (ignore_change) + return FALSE; + + memset(temp_pcap_dev[0], '\0', sizeof(temp_pcap_dev[0])); + strcpy(temp_pcap_dev[0], network_devs[settings_get_cur_sel(hdlg, IDC_COMBO_PCAP1)].device); + network_recalc_combos(hdlg); + break; + case IDC_COMBO_PCAP2: + if (ignore_change) + return FALSE; + + memset(temp_pcap_dev[1], '\0', sizeof(temp_pcap_dev[1])); + strcpy(temp_pcap_dev[1], network_devs[settings_get_cur_sel(hdlg, IDC_COMBO_PCAP2)].device); + network_recalc_combos(hdlg); + break; + case IDC_COMBO_PCAP3: + if (ignore_change) + return FALSE; + + memset(temp_pcap_dev[2], '\0', sizeof(temp_pcap_dev[2])); + strcpy(temp_pcap_dev[2], network_devs[settings_get_cur_sel(hdlg, IDC_COMBO_PCAP3)].device); + network_recalc_combos(hdlg); + break; + case IDC_COMBO_PCAP4: + if (ignore_change) + return FALSE; + + memset(temp_pcap_dev[3], '\0', sizeof(temp_pcap_dev[3])); + strcpy(temp_pcap_dev[3], network_devs[settings_get_cur_sel(hdlg, IDC_COMBO_PCAP4)].device); + network_recalc_combos(hdlg); + break; + + case IDC_COMBO_NET1: + if (ignore_change) + return FALSE; + + temp_net_card[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET1)]; + network_recalc_combos(hdlg); + break; + case IDC_COMBO_NET2: + if (ignore_change) + return FALSE; + + temp_net_card[1] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET2)]; + network_recalc_combos(hdlg); + break; + case IDC_COMBO_NET3: + if (ignore_change) + return FALSE; + + temp_net_card[2] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET3)]; + network_recalc_combos(hdlg); + break; + case IDC_COMBO_NET4: + if (ignore_change) + return FALSE; + + temp_net_card[3] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET4)]; + network_recalc_combos(hdlg); + break; + + case IDC_CONFIGURE_NET1: + if (ignore_change) + return FALSE; + + temp_net_card[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET1)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) network_card_getdevice(temp_net_card[0])); + break; + case IDC_CONFIGURE_NET2: + if (ignore_change) + return FALSE; + + temp_net_card[1] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET2)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) network_card_getdevice(temp_net_card[1])); + break; + case IDC_CONFIGURE_NET3: + if (ignore_change) + return FALSE; + + temp_net_card[2] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET3)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) network_card_getdevice(temp_net_card[2])); + break; + case IDC_CONFIGURE_NET4: + if (ignore_change) + return FALSE; + + temp_net_card[3] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET4)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) network_card_getdevice(temp_net_card[3])); + break; + } + return FALSE; + + case WM_SAVESETTINGS: + for (uint8_t i = 0; i < NET_CARD_MAX; i++) { + temp_net_type[i] = settings_get_cur_sel(hdlg, IDC_COMBO_NET1_TYPE + i); + memset(temp_pcap_dev[i], '\0', sizeof(temp_pcap_dev[i])); + strcpy(temp_pcap_dev[i], network_devs[settings_get_cur_sel(hdlg, IDC_COMBO_PCAP1 + i)].device); + temp_net_card[i] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_NET1 + i)]; + } + default: + return FALSE; + } + + return FALSE; +} + +static void +normalize_hd_list(void) +{ + hard_disk_t ihdd[HDD_NUM]; + int j = 0; + + memset(ihdd, 0x00, HDD_NUM * sizeof(hard_disk_t)); + + for (uint8_t i = 0; i < HDD_NUM; i++) { + if (temp_hdd[i].bus != HDD_BUS_DISABLED) { + memcpy(&(ihdd[j]), &(temp_hdd[i]), sizeof(hard_disk_t)); + j++; + } + } + + memcpy(temp_hdd, ihdd, HDD_NUM * sizeof(hard_disk_t)); +} + +static int +get_selected_hard_disk(HWND hdlg) +{ + int hard_disk = -1; + int j = 0; + HWND h; + + if (hd_listview_items == 0) + return 0; + + for (int i = 0; i < hd_listview_items; i++) { + h = GetDlgItem(hdlg, IDC_LIST_HARD_DISKS); + j = ListView_GetItemState(h, i, LVIS_SELECTED); + if (j) + hard_disk = i; + } + + return hard_disk; +} + +static void +add_locations(HWND hdlg) +{ + LPTSTR lptsTemp; + int i = 0; + + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + for (i = 0; i < 6; i++) + settings_add_string(hdlg, IDC_COMBO_HD_BUS, win_get_string(IDS_4352 + i)); + + for (i = 0; i < 2; i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4097), i >> 1, i & 1); + settings_add_string(hdlg, IDC_COMBO_HD_CHANNEL, (LPARAM) lptsTemp); + } + + for (i = 0; i < (SCSI_BUS_MAX * SCSI_ID_MAX); i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4135), i >> 4, i & 15); + settings_add_string(hdlg, IDC_COMBO_HD_ID, (LPARAM) lptsTemp); + } + + for (i = 0; i < (IDE_BUS_MAX * IDE_CHAN_MAX); i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4097), i >> 1, i & 1); + settings_add_string(hdlg, IDC_COMBO_HD_CHANNEL_IDE, (LPARAM) lptsTemp); + } + + free(lptsTemp); +} + +static uint8_t +next_free_binary_channel(uint64_t *tracking) +{ + for (int64_t i = 0; i < 2; i++) { + if (!(*tracking & (0xffLL << (i << 3LL)))) + return i; + } + + return 2; +} + +static uint8_t +next_free_ide_channel(void) +{ + for (int64_t i = 0; i < (IDE_BUS_MAX * IDE_CHAN_MAX); i++) { + if (!(ide_tracking & (0xffLL << (i << 3LL)))) + return i; + } + + return 7; +} + +static void +next_free_scsi_id(uint8_t *id) +{ + for (int64_t i = 0; i < (SCSI_BUS_MAX * SCSI_ID_MAX); i++) { + if (!(scsi_tracking[i >> 3] & (0xffLL << ((i & 0x07) << 3LL)))) { + *id = i; + return; + } + } + + *id = 6; +} + +static void +recalc_location_controls(HWND hdlg, int is_add_dlg, int assign_id) +{ + int bus = 0; + + for (uint16_t i = IDT_CHANNEL; i <= IDT_ID; i++) + settings_show_window(hdlg, i, FALSE); + settings_show_window(hdlg, IDC_COMBO_HD_CHANNEL, FALSE); + settings_show_window(hdlg, IDC_COMBO_HD_ID, FALSE); + settings_show_window(hdlg, IDC_COMBO_HD_CHANNEL_IDE, FALSE); + + if ((hd_listview_items > 0) || is_add_dlg) { + bus = settings_get_cur_sel(hdlg, IDC_COMBO_HD_BUS) + 1; + + switch (bus) { + case HDD_BUS_MFM: /* MFM */ + settings_show_window(hdlg, IDT_CHANNEL, TRUE); + settings_show_window(hdlg, IDC_COMBO_HD_CHANNEL, TRUE); + + if (assign_id) + temp_hdd[lv1_current_sel].mfm_channel = next_free_binary_channel(&mfm_tracking); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL, is_add_dlg ? new_hdd.mfm_channel : temp_hdd[lv1_current_sel].mfm_channel); + break; + case HDD_BUS_XTA: /* XTA */ + settings_show_window(hdlg, IDT_CHANNEL, TRUE); + settings_show_window(hdlg, IDC_COMBO_HD_CHANNEL, TRUE); + + if (assign_id) + temp_hdd[lv1_current_sel].xta_channel = next_free_binary_channel(&xta_tracking); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL, is_add_dlg ? new_hdd.xta_channel : temp_hdd[lv1_current_sel].xta_channel); + break; + case HDD_BUS_ESDI: /* ESDI */ + settings_show_window(hdlg, IDT_CHANNEL, TRUE); + settings_show_window(hdlg, IDC_COMBO_HD_CHANNEL, TRUE); + + if (assign_id) + temp_hdd[lv1_current_sel].esdi_channel = next_free_binary_channel(&esdi_tracking); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL, is_add_dlg ? new_hdd.esdi_channel : temp_hdd[lv1_current_sel].esdi_channel); + break; + case HDD_BUS_IDE: /* IDE */ + case HDD_BUS_ATAPI: /* ATAPI */ + settings_show_window(hdlg, IDT_CHANNEL, TRUE); + settings_show_window(hdlg, IDC_COMBO_HD_CHANNEL_IDE, TRUE); + + if (assign_id) + temp_hdd[lv1_current_sel].ide_channel = next_free_ide_channel(); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL_IDE, is_add_dlg ? new_hdd.ide_channel : temp_hdd[lv1_current_sel].ide_channel); + break; + case HDD_BUS_SCSI: /* SCSI */ + settings_show_window(hdlg, IDT_ID, TRUE); + settings_show_window(hdlg, IDT_LUN, TRUE); + settings_show_window(hdlg, IDC_COMBO_HD_ID, TRUE); + + if (assign_id) + next_free_scsi_id((is_add_dlg ? &(new_hdd.scsi_id) : &(temp_hdd[lv1_current_sel].scsi_id))); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_ID, is_add_dlg ? new_hdd.scsi_id : temp_hdd[lv1_current_sel].scsi_id); + } + } + + settings_show_window(hdlg, IDT_BUS, (hd_listview_items != 0) || is_add_dlg); + settings_show_window(hdlg, IDC_COMBO_HD_BUS, (hd_listview_items != 0) || is_add_dlg); +} + +static int +bus_full(uint64_t *tracking, int count) +{ + int full = 0; + + switch (count) { + default: + case 2: + full = (*tracking & 0xFF00LL); + full = full && (*tracking & 0x00FFLL); + break; + case 8: + full = (*tracking & 0xFF00000000000000LL); + full = full && (*tracking & 0x00FF000000000000LL); + full = full && (*tracking & 0x0000FF0000000000LL); + full = full && (*tracking & 0x000000FF00000000LL); + full = full && (*tracking & 0x00000000FF000000LL); + full = full && (*tracking & 0x0000000000FF0000LL); + full = full && (*tracking & 0x000000000000FF00LL); + full = full && (*tracking & 0x00000000000000FFLL); + break; + } + + return full; +} + +static void +recalc_next_free_id(HWND hdlg) +{ + int i; + int enable_add = 0; + int c_mfm = 0; + int c_esdi = 0; + int c_xta = 0; + int c_ide = 0; + int c_atapi = 0; + int c_scsi = 0; + + next_free_id = -1; + + for (i = 0; i < HDD_NUM; i++) { + if (temp_hdd[i].bus == HDD_BUS_MFM) + c_mfm++; + else if (temp_hdd[i].bus == HDD_BUS_ESDI) + c_esdi++; + else if (temp_hdd[i].bus == HDD_BUS_XTA) + c_xta++; + else if (temp_hdd[i].bus == HDD_BUS_IDE) + c_ide++; + else if (temp_hdd[i].bus == HDD_BUS_ATAPI) + c_atapi++; + else if (temp_hdd[i].bus == HDD_BUS_SCSI) + c_scsi++; + } + + for (i = 0; i < HDD_NUM; i++) { + if (temp_hdd[i].bus == HDD_BUS_DISABLED) { + next_free_id = i; + break; + } + } + + enable_add = enable_add || (next_free_id >= 0); + enable_add = enable_add && ((c_mfm < MFM_NUM) || (c_esdi < ESDI_NUM) || (c_xta < XTA_NUM) || (c_ide < IDE_NUM) || (c_ide < ATAPI_NUM) || (c_scsi < SCSI_NUM)); + enable_add = enable_add && (!bus_full(&mfm_tracking, 2) || !bus_full(&esdi_tracking, 2) || !bus_full(&xta_tracking, 2) || !bus_full(&ide_tracking, IDE_CHAN_MAX * IDE_BUS_MAX) || + !bus_full(&(scsi_tracking[0]), 8) || !bus_full(&(scsi_tracking[1]), 8) || !bus_full(&(scsi_tracking[2]), 8) || !bus_full(&(scsi_tracking[3]), 8) || + !bus_full(&(scsi_tracking[4]), 8) || !bus_full(&(scsi_tracking[5]), 8) || !bus_full(&(scsi_tracking[6]), 8) || !bus_full(&(scsi_tracking[7]), 8)); + + settings_enable_window(hdlg, IDC_BUTTON_HDD_ADD_NEW, enable_add); + settings_enable_window(hdlg, IDC_BUTTON_HDD_ADD, enable_add); + settings_enable_window(hdlg, IDC_BUTTON_HDD_REMOVE, + (c_mfm != 0) || (c_esdi != 0) || (c_xta != 0) || (c_ide != 0) || (c_atapi != 0) || (c_scsi != 0)); +} + +static void +win_settings_hard_disks_update_item(HWND hdlg, int i, int column) +{ + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_HARD_DISKS); + LVITEM lvI; + WCHAR szText[256]; + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + lvI.iSubItem = column; + lvI.iItem = i; + + if (column == 0) { /* Bus */ + switch (temp_hdd[i].bus) { + case HDD_BUS_MFM: + wsprintf(szText, plat_get_string(IDS_4608), temp_hdd[i].mfm_channel >> 1, temp_hdd[i].mfm_channel & 1); + break; + case HDD_BUS_XTA: + wsprintf(szText, plat_get_string(IDS_4609), temp_hdd[i].xta_channel >> 1, temp_hdd[i].xta_channel & 1); + break; + case HDD_BUS_ESDI: + wsprintf(szText, plat_get_string(IDS_4610), temp_hdd[i].esdi_channel >> 1, temp_hdd[i].esdi_channel & 1); + break; + case HDD_BUS_IDE: + wsprintf(szText, plat_get_string(IDS_4611), temp_hdd[i].ide_channel >> 1, temp_hdd[i].ide_channel & 1); + break; + case HDD_BUS_ATAPI: + wsprintf(szText, plat_get_string(IDS_4612), temp_hdd[i].ide_channel >> 1, temp_hdd[i].ide_channel & 1); + break; + case HDD_BUS_SCSI: + wsprintf(szText, plat_get_string(IDS_4613), temp_hdd[i].scsi_id >> 4, temp_hdd[i].scsi_id & 15); + break; + } + lvI.pszText = szText; + lvI.iImage = 0; + } else if (column == 1) { /* File */ + if (!strnicmp(temp_hdd[i].fn, usr_path, strlen(usr_path))) + mbstoc16s(szText, temp_hdd[i].fn + strlen(usr_path), sizeof_w(szText)); + else + mbstoc16s(szText, temp_hdd[i].fn, sizeof_w(szText)); + lvI.pszText = szText; + lvI.iImage = 0; + } else if (column == 2) { /* Cylinders */ + wsprintf(szText, plat_get_string(IDS_4098), temp_hdd[i].tracks); + lvI.pszText = szText; + lvI.iImage = 0; + } else if (column == 3) { /* Heads */ + wsprintf(szText, plat_get_string(IDS_4098), temp_hdd[i].hpc); + lvI.pszText = szText; + lvI.iImage = 0; + } else if (column == 4) { /* Sectors */ + wsprintf(szText, plat_get_string(IDS_4098), temp_hdd[i].spt); + lvI.pszText = szText; + lvI.iImage = 0; + } else if (column == 5) { /* Size (MB) */ + wsprintf(szText, plat_get_string(IDS_4098), (temp_hdd[i].tracks * temp_hdd[i].hpc * temp_hdd[i].spt) >> 11); + lvI.pszText = szText; + lvI.iImage = 0; + } else if (column == 6) { /* Speed (RPM) */ + mbstoc16s(szText, hdd_preset_getname(temp_hdd[i].speed_preset), sizeof_w(szText)); + lvI.pszText = szText; + lvI.iImage = 0; + } + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; +} + +static BOOL +win_settings_hard_disks_recalc_list(HWND hdlg) +{ + LVITEM lvI; + int j = 0; + WCHAR szText[256]; + WCHAR usr_path_w[1024]; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_HARD_DISKS); + + mbstoc16s(usr_path_w, usr_path, sizeof_w(usr_path_w)); + + hd_listview_items = 0; + lv1_current_sel = -1; + + ListView_DeleteAllItems(hwndList); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + for (uint8_t i = 0; i < HDD_NUM; i++) { + if (temp_hdd[i].bus > 0) { + hdc_id_to_listview_index[i] = j; + lvI.iSubItem = 0; + + /* Bus */ + switch (temp_hdd[i].bus) { + case HDD_BUS_MFM: + wsprintf(szText, plat_get_string(IDS_4608), temp_hdd[i].mfm_channel >> 1, temp_hdd[i].mfm_channel & 1); + break; + case HDD_BUS_XTA: + wsprintf(szText, plat_get_string(IDS_4609), temp_hdd[i].xta_channel >> 1, temp_hdd[i].xta_channel & 1); + break; + case HDD_BUS_ESDI: + wsprintf(szText, plat_get_string(IDS_4610), temp_hdd[i].esdi_channel >> 1, temp_hdd[i].esdi_channel & 1); + break; + case HDD_BUS_IDE: + wsprintf(szText, plat_get_string(IDS_4611), temp_hdd[i].ide_channel >> 1, temp_hdd[i].ide_channel & 1); + break; + case HDD_BUS_ATAPI: + wsprintf(szText, plat_get_string(IDS_4612), temp_hdd[i].ide_channel >> 1, temp_hdd[i].ide_channel & 1); + break; + case HDD_BUS_SCSI: + wsprintf(szText, plat_get_string(IDS_4613), temp_hdd[i].scsi_id >> 4, temp_hdd[i].scsi_id & 15); + break; + } + lvI.pszText = szText; + lvI.iItem = j; + lvI.iImage = 0; + + if (ListView_InsertItem(hwndList, &lvI) == -1) + return FALSE; + + /* File */ + lvI.iSubItem = 1; + if (!strnicmp(temp_hdd[i].fn, usr_path, strlen(usr_path))) + mbstoc16s(szText, temp_hdd[i].fn + strlen(usr_path), sizeof_w(szText)); + else + mbstoc16s(szText, temp_hdd[i].fn, sizeof_w(szText)); + lvI.pszText = szText; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + + /* Cylinders */ + lvI.iSubItem = 2; + wsprintf(szText, plat_get_string(IDS_4098), temp_hdd[i].tracks); + lvI.pszText = szText; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + + /* Heads */ + lvI.iSubItem = 3; + wsprintf(szText, plat_get_string(IDS_4098), temp_hdd[i].hpc); + lvI.pszText = szText; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + + /* Sectors */ + lvI.iSubItem = 4; + wsprintf(szText, plat_get_string(IDS_4098), temp_hdd[i].spt); + lvI.pszText = szText; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + + /* Size (MB) */ + lvI.iSubItem = 5; + wsprintf(szText, plat_get_string(IDS_4098), (temp_hdd[i].tracks * temp_hdd[i].hpc * temp_hdd[i].spt) >> 11); + lvI.pszText = szText; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + + /* Speed (RPM) */ + lvI.iSubItem = 6; + mbstoc16s(szText, hdd_preset_getname(temp_hdd[i].speed_preset), sizeof_w(szText)); + lvI.pszText = szText; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + + j++; + } else + hdc_id_to_listview_index[i] = -1; + } + + hd_listview_items = j; + + return TRUE; +} + +#define C_COLUMNS_HARD_DISKS_BUS 104 +#define C_COLUMNS_HARD_DISKS_FILE 254 +#define C_COLUMNS_HARD_DISKS_CYLS 50 +#define C_COLUMNS_HARD_DISKS_HEADS 26 +#define C_COLUMNS_HARD_DISKS_SECT 32 +#define C_COLUMNS_HARD_DISKS_SIZE 50 +#define C_COLUMNS_HARD_DISKS_SPEED 100 + +static void +win_settings_hard_disks_resize_columns(HWND hdlg) +{ + /* Bus, File, Cylinders, Heads, Sectors, Size */ + int width[C_COLUMNS_HARD_DISKS] = { + C_COLUMNS_HARD_DISKS_BUS, + C_COLUMNS_HARD_DISKS_FILE, + C_COLUMNS_HARD_DISKS_CYLS, + C_COLUMNS_HARD_DISKS_HEADS, + C_COLUMNS_HARD_DISKS_SECT, + C_COLUMNS_HARD_DISKS_SIZE, + C_COLUMNS_HARD_DISKS_SPEED + }; + int total = 0; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_HARD_DISKS); + RECT r; + + GetWindowRect(hwndList, &r); + for (int iCol = 0; iCol < (C_COLUMNS_HARD_DISKS - 1); iCol++) { + width[iCol] = MulDiv(width[iCol], dpi, 96); + total += width[iCol]; + ListView_SetColumnWidth(hwndList, iCol, MulDiv(width[iCol], dpi, 96)); + } + width[C_COLUMNS_HARD_DISKS - 1] = (r.right - r.left) - 4 - total; + ListView_SetColumnWidth(hwndList, C_COLUMNS_HARD_DISKS - 1, width[C_COLUMNS_HARD_DISKS - 1]); +} + +static BOOL +win_settings_hard_disks_init_columns(HWND hdlg) +{ + LVCOLUMN lvc; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_HARD_DISKS); + + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; + + for (int iCol = 0; iCol < C_COLUMNS_HARD_DISKS; iCol++) { + lvc.iSubItem = iCol; + lvc.pszText = plat_get_string(IDS_BUS + iCol); + + switch (iCol) { + case 0: /* Bus */ + lvc.cx = C_COLUMNS_HARD_DISKS_BUS; + lvc.fmt = LVCFMT_LEFT; + break; + case 1: /* File */ + lvc.cx = C_COLUMNS_HARD_DISKS_FILE; + lvc.fmt = LVCFMT_LEFT; + break; + case 2: /* Cylinders */ + lvc.cx = C_COLUMNS_HARD_DISKS_CYLS; + lvc.fmt = LVCFMT_RIGHT; + break; + case 3: /* Heads */ + lvc.cx = C_COLUMNS_HARD_DISKS_HEADS; + lvc.fmt = LVCFMT_RIGHT; + break; + case 4: /* Sectors */ + lvc.cx = C_COLUMNS_HARD_DISKS_SECT; + lvc.fmt = LVCFMT_RIGHT; + break; + case 5: /* Size (MB) */ + lvc.cx = C_COLUMNS_HARD_DISKS_SIZE; + lvc.fmt = LVCFMT_RIGHT; + break; + case 6: /* Speed (RPM) */ + lvc.cx = C_COLUMNS_HARD_DISKS_SPEED; + lvc.fmt = LVCFMT_RIGHT; + break; + } + + if (ListView_InsertColumn(hwndList, iCol, &lvc) == -1) + return FALSE; + } + + win_settings_hard_disks_resize_columns(hdlg); + return TRUE; +} + +static void +get_edit_box_contents(HWND hdlg, int id, uint32_t *val) +{ + HWND h; + WCHAR szText[256]; + char stransi[256]; + + h = GetDlgItem(hdlg, id); + SendMessage(h, WM_GETTEXT, 255, (LPARAM) szText); + wcstombs(stransi, szText, 256); + sscanf(stransi, "%u", val); +} + +static void +set_edit_box_contents(HWND hdlg, int id, uint32_t val) +{ + HWND h; + WCHAR szText[256]; + + h = GetDlgItem(hdlg, id); + wsprintf(szText, plat_get_string(IDS_2107), val); + SendMessage(h, WM_SETTEXT, wcslen(szText), (LPARAM) szText); +} + +static void +set_edit_box_text_contents(HWND hdlg, int id, WCHAR *text) +{ + HWND h = GetDlgItem(hdlg, id); + SendMessage(h, WM_SETTEXT, wcslen(text), (LPARAM) text); +} + +static void +get_edit_box_text_contents(HWND hdlg, int id, WCHAR *text_buffer, int buffer_size) +{ + HWND h = GetDlgItem(hdlg, id); + SendMessage(h, WM_GETTEXT, (WPARAM) buffer_size, (LPARAM) text_buffer); +} + +static int +hdconf_initialize_hdt_combo(HWND hdlg) +{ + uint64_t temp_size = 0; + uint32_t size_mb = 0; + WCHAR szText[256]; + + selection = 127; + + for (uint8_t i = 0; i < 127; i++) { + temp_size = ((uint64_t) hdd_table[i][0]) * hdd_table[i][1] * hdd_table[i][2]; + size_mb = (uint32_t) (temp_size >> 11LL); + wsprintf(szText, plat_get_string(IDS_2108), size_mb, hdd_table[i][0], hdd_table[i][1], hdd_table[i][2]); + settings_add_string(hdlg, IDC_COMBO_HD_TYPE, (LPARAM) szText); + if ((tracks == (int) hdd_table[i][0]) && (hpc == (int) hdd_table[i][1]) && (spt == (int) hdd_table[i][2])) + selection = i; + } + settings_add_string(hdlg, IDC_COMBO_HD_TYPE, win_get_string(IDS_4100)); + settings_add_string(hdlg, IDC_COMBO_HD_TYPE, win_get_string(IDS_4101)); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_TYPE, selection); + return selection; +} + +static void +recalc_selection(HWND hdlg) +{ + selection = 127; + for (uint8_t i = 0; i < 127; i++) { + if ((tracks == (int) hdd_table[i][0]) && (hpc == (int) hdd_table[i][1]) && (spt == (int) hdd_table[i][2])) + selection = i; + } + if ((selection == 127) && (hpc == 16) && (spt == 63)) + selection = 128; + settings_set_cur_sel(hdlg, IDC_COMBO_HD_TYPE, selection); +} + +HWND vhd_progress_hdlg; + +static void +vhd_progress_callback(uint32_t current_sector, UNUSED(uint32_t total_sectors)) +{ + MSG msg; + HWND h = GetDlgItem(vhd_progress_hdlg, IDC_PBAR_IMG_CREATE); + SendMessage(h, PBM_SETPOS, current_sector, (LPARAM) 0); + while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE | PM_NOYIELD)) { + TranslateMessage(&msg); + DispatchMessage(&msg); + } +} + +/* If the disk geometry requested in the 86Box GUI is not compatible with the internal VHD geometry, + * we adjust it to the next-largest size that is compatible. On average, this will be a difference + * of about 21 MB, and should only be necessary for VHDs larger than 31.5 GB, so should never be more + * than a tenth of a percent change in size. + */ +static void +adjust_86box_geometry_for_vhd(MVHDGeom *_86box_geometry, MVHDGeom *vhd_geometry) +{ + if (_86box_geometry->cyl <= 65535) { + vhd_geometry->cyl = _86box_geometry->cyl; + vhd_geometry->heads = _86box_geometry->heads; + vhd_geometry->spt = _86box_geometry->spt; + return; + } + + int desired_sectors = _86box_geometry->cyl * _86box_geometry->heads * _86box_geometry->spt; + if (desired_sectors > 267321600) + desired_sectors = 267321600; + + int remainder = desired_sectors % 85680; /* 8560 is the LCM of 1008 (63*16) and 4080 (255*16) */ + if (remainder > 0) + desired_sectors += (85680 - remainder); + + _86box_geometry->cyl = desired_sectors / (16 * 63); + _86box_geometry->heads = 16; + _86box_geometry->spt = 63; + + vhd_geometry->cyl = desired_sectors / (16 * 255); + vhd_geometry->heads = 16; + vhd_geometry->spt = 255; +} + +static void +adjust_vhd_geometry_for_86box(MVHDGeom *vhd_geometry) +{ + if (vhd_geometry->spt <= 63) + return; + + int desired_sectors = vhd_geometry->cyl * vhd_geometry->heads * vhd_geometry->spt; + if (desired_sectors > 267321600) + desired_sectors = 267321600; + + int remainder = desired_sectors % 85680; /* 8560 is the LCM of 1008 (63*16) and 4080 (255*16) */ + if (remainder > 0) + desired_sectors -= remainder; + + vhd_geometry->cyl = desired_sectors / (16 * 63); + vhd_geometry->heads = 16; + vhd_geometry->spt = 63; +} + +static MVHDGeom +create_drive_vhd_fixed(char *filename, int cyl, int heads, int spt) +{ + MVHDGeom _86box_geometry = { .cyl = cyl, .heads = heads, .spt = spt }; + MVHDGeom vhd_geometry; + adjust_86box_geometry_for_vhd(&_86box_geometry, &vhd_geometry); + + HWND h = GetDlgItem(vhd_progress_hdlg, IDC_PBAR_IMG_CREATE); + settings_show_window(vhd_progress_hdlg, IDT_FILE_NAME, FALSE); + settings_show_window(vhd_progress_hdlg, IDC_EDIT_HD_FILE_NAME, FALSE); + settings_show_window(vhd_progress_hdlg, IDC_CFILE, FALSE); + settings_show_window(vhd_progress_hdlg, IDC_PBAR_IMG_CREATE, TRUE); + settings_enable_window(vhd_progress_hdlg, IDT_PROGRESS, TRUE); + SendMessage(h, PBM_SETRANGE32, (WPARAM) 0, (LPARAM) vhd_geometry.cyl * vhd_geometry.heads * vhd_geometry.spt); + SendMessage(h, PBM_SETPOS, (WPARAM) 0, (LPARAM) 0); + + int vhd_error = 0; + MVHDMeta *vhd = mvhd_create_fixed(filename, vhd_geometry, &vhd_error, vhd_progress_callback); + if (vhd == NULL) { + _86box_geometry.cyl = 0; + _86box_geometry.heads = 0; + _86box_geometry.spt = 0; + } else { + mvhd_close(vhd); + } + + return _86box_geometry; +} + +static MVHDGeom +create_drive_vhd_dynamic(char *filename, int cyl, int heads, int spt, int blocksize) +{ + MVHDGeom _86box_geometry = { .cyl = cyl, .heads = heads, .spt = spt }; + MVHDGeom vhd_geometry; + adjust_86box_geometry_for_vhd(&_86box_geometry, &vhd_geometry); + int vhd_error = 0; + MVHDCreationOptions options; + options.block_size_in_sectors = blocksize; + options.path = filename; + options.size_in_bytes = 0; + options.geometry = vhd_geometry; + options.type = MVHD_TYPE_DYNAMIC; + + MVHDMeta *vhd = mvhd_create_ex(options, &vhd_error); + if (vhd == NULL) { + _86box_geometry.cyl = 0; + _86box_geometry.heads = 0; + _86box_geometry.spt = 0; + } else { + mvhd_close(vhd); + } + + return _86box_geometry; +} + +static MVHDGeom +create_drive_vhd_diff(char *filename, char *parent_filename, int blocksize) +{ + int vhd_error = 0; + MVHDCreationOptions options; + options.block_size_in_sectors = blocksize; + options.path = filename; + options.parent_path = parent_filename; + options.type = MVHD_TYPE_DIFF; + + MVHDMeta *vhd = mvhd_create_ex(options, &vhd_error); + MVHDGeom vhd_geometry; + if (vhd == NULL) { + vhd_geometry.cyl = 0; + vhd_geometry.heads = 0; + vhd_geometry.spt = 0; + } else { + vhd_geometry = mvhd_get_geometry(vhd); + + if (vhd_geometry.spt > 63) { + vhd_geometry.cyl = mvhd_calc_size_sectors(&vhd_geometry) / (16 * 63); + vhd_geometry.heads = 16; + vhd_geometry.spt = 63; + } + + mvhd_close(vhd); + } + + return vhd_geometry; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_hard_disks_add_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + HWND h; + FILE *fp; + uint32_t temp; + uint32_t i = 0; + uint32_t sector_size = 512; + uint32_t zero = 0; + uint32_t base = 0x1000; + uint64_t signature = 0xD778A82044445459LL; + uint64_t r = 0; + char *big_buf; + char hd_file_name_multibyte[1200]; + int b = 0; + int vhd_error = 0; + uint8_t channel = 0; + uint8_t id = 0; + wchar_t *twcs; + int img_format; + int block_size; + WCHAR text_buf[256]; + RECT rect; + POINT point; + int dlg_height_adjust; + + switch (message) { + case WM_INITDIALOG: + memset(hd_file_name, 0, sizeof(hd_file_name)); + + hdd_ptr = &(temp_hdd[next_free_id]); + + SetWindowText(hdlg, plat_get_string((existing & 1) ? IDS_4103 : IDS_4102)); + + no_update = 1; + spt = (existing & 1) ? 0 : 17; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, spt); + hpc = (existing & 1) ? 0 : 15; + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, hpc); + tracks = (existing & 1) ? 0 : 1023; + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, tracks); + size = (tracks * hpc * spt) << 9; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20LL)); + hdconf_initialize_hdt_combo(hdlg); + + settings_add_string(hdlg, IDC_COMBO_HD_IMG_FORMAT, win_get_string(IDS_4122)); + settings_add_string(hdlg, IDC_COMBO_HD_IMG_FORMAT, win_get_string(IDS_4123)); + settings_add_string(hdlg, IDC_COMBO_HD_IMG_FORMAT, win_get_string(IDS_4124)); + settings_add_string(hdlg, IDC_COMBO_HD_IMG_FORMAT, win_get_string(IDS_4125)); + settings_add_string(hdlg, IDC_COMBO_HD_IMG_FORMAT, win_get_string(IDS_4126)); + settings_add_string(hdlg, IDC_COMBO_HD_IMG_FORMAT, win_get_string(IDS_4127)); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_IMG_FORMAT, 0); + + settings_add_string(hdlg, IDC_COMBO_HD_BLOCK_SIZE, win_get_string(IDS_4128)); + settings_add_string(hdlg, IDC_COMBO_HD_BLOCK_SIZE, win_get_string(IDS_4129)); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_BLOCK_SIZE, 0); + + settings_show_window(hdlg, IDC_COMBO_HD_BLOCK_SIZE, FALSE); + settings_show_window(hdlg, IDT_BLOCK_SIZE, FALSE); + + if (existing & 1) { + settings_enable_window(hdlg, IDC_EDIT_HD_SPT, FALSE); + settings_enable_window(hdlg, IDC_EDIT_HD_HPC, FALSE); + settings_enable_window(hdlg, IDC_EDIT_HD_CYL, FALSE); + settings_enable_window(hdlg, IDC_EDIT_HD_SIZE, FALSE); + settings_enable_window(hdlg, IDC_COMBO_HD_TYPE, FALSE); + settings_show_window(hdlg, IDC_COMBO_HD_IMG_FORMAT, FALSE); + settings_show_window(hdlg, IDT_IMG_FORMAT, FALSE); + + /* adjust window size */ + GetWindowRect(hdlg, &rect); + OffsetRect(&rect, -rect.left, -rect.top); + dlg_height_adjust = rect.bottom / 5; + SetWindowPos(hdlg, NULL, 0, 0, rect.right, rect.bottom - dlg_height_adjust, SWP_NOMOVE | SWP_NOREPOSITION | SWP_NOZORDER); + h = GetDlgItem(hdlg, IDOK); + GetWindowRect(h, &rect); + point.x = rect.left; + point.y = rect.top; + ScreenToClient(hdlg, &point); + SetWindowPos(h, NULL, point.x, point.y - dlg_height_adjust, 0, 0, SWP_NOSIZE | SWP_NOREPOSITION | SWP_NOZORDER); + h = GetDlgItem(hdlg, IDCANCEL); + GetWindowRect(h, &rect); + point.x = rect.left; + point.y = rect.top; + ScreenToClient(hdlg, &point); + SetWindowPos(h, NULL, point.x, point.y - dlg_height_adjust, 0, 0, SWP_NOSIZE | SWP_NOREPOSITION | SWP_NOZORDER); + + chs_enabled = 0; + } else + chs_enabled = 1; + + add_locations(hdlg); + hdd_ptr->bus = HDD_BUS_IDE; + max_spt = 255; + max_hpc = 255; + settings_set_cur_sel(hdlg, IDC_COMBO_HD_BUS, hdd_ptr->bus - 1); + max_tracks = 266305; + recalc_location_controls(hdlg, 1, 0); + + channel = next_free_ide_channel(); + next_free_scsi_id(&id); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL, 0); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_ID, id); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL_IDE, channel); + + new_hdd.mfm_channel = next_free_binary_channel(&mfm_tracking); + new_hdd.esdi_channel = next_free_binary_channel(&esdi_tracking); + new_hdd.xta_channel = next_free_binary_channel(&xta_tracking); + new_hdd.ide_channel = channel; + new_hdd.scsi_id = id; + + settings_enable_window(hdlg, IDC_EDIT_HD_FILE_NAME, FALSE); + settings_show_window(hdlg, IDT_PROGRESS, FALSE); + settings_show_window(hdlg, IDC_PBAR_IMG_CREATE, FALSE); + + no_update = 0; + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + hdd_ptr->bus = settings_get_cur_sel(hdlg, IDC_COMBO_HD_BUS) + 1; + + /* Make sure no file name is allowed with removable SCSI hard disks. */ + if (wcslen(hd_file_name) == 0) { + hdd_ptr->bus = HDD_BUS_DISABLED; + settings_msgbox_header(MBX_ERROR, (wchar_t *) IDS_2131, (wchar_t *) IDS_4112); + return TRUE; + } + + get_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, &(hdd_ptr->spt)); + get_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, &(hdd_ptr->hpc)); + get_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, &(hdd_ptr->tracks)); + spt = hdd_ptr->spt; + hpc = hdd_ptr->hpc; + tracks = hdd_ptr->tracks; + + switch (hdd_ptr->bus) { + case HDD_BUS_MFM: + hdd_ptr->mfm_channel = settings_get_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL); + break; + case HDD_BUS_ESDI: + hdd_ptr->esdi_channel = settings_get_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL); + break; + case HDD_BUS_XTA: + hdd_ptr->xta_channel = settings_get_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL); + break; + case HDD_BUS_IDE: + case HDD_BUS_ATAPI: + hdd_ptr->ide_channel = settings_get_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL_IDE); + break; + case HDD_BUS_SCSI: + hdd_ptr->scsi_id = settings_get_cur_sel(hdlg, IDC_COMBO_HD_ID); + break; + } + + memset(hdd_ptr->fn, 0, sizeof(hdd_ptr->fn)); + c16stombs(hdd_ptr->fn, hd_file_name, sizeof(hdd_ptr->fn)); + strcpy(hd_file_name_multibyte, hdd_ptr->fn); + + sector_size = 512; + + if (!(existing & 1) && (wcslen(hd_file_name) > 0)) { + if (size > 0x1FFFFFFE00LL) { + settings_msgbox_header(MBX_ERROR, (wchar_t *) IDS_4116, (wchar_t *) IDS_4105); + return TRUE; + } + + img_format = settings_get_cur_sel(hdlg, IDC_COMBO_HD_IMG_FORMAT); + if (img_format < IMG_FMT_VHD_FIXED) { + fp = _wfopen(hd_file_name, L"wb"); + } else { + fp = (FILE *) 0; + } + + if (img_format == IMG_FMT_HDI) { /* HDI file */ + if (size >= 0x100000000LL) { + fclose(fp); + settings_msgbox_header(MBX_ERROR, (wchar_t *) IDS_4116, (wchar_t *) IDS_4104); + return TRUE; + } + + fwrite(&zero, 1, 4, fp); /* 00000000: Zero/unknown */ + fwrite(&zero, 1, 4, fp); /* 00000004: Zero/unknown */ + fwrite(&base, 1, 4, fp); /* 00000008: Offset at which data starts */ + fwrite(&size, 1, 4, fp); /* 0000000C: Full size of the data (32-bit) */ + fwrite(§or_size, 1, 4, fp); /* 00000010: Sector size in bytes */ + fwrite(&spt, 1, 4, fp); /* 00000014: Sectors per cylinder */ + fwrite(&hpc, 1, 4, fp); /* 00000018: Heads per cylinder */ + fwrite(&tracks, 1, 4, fp); /* 0000001C: Cylinders */ + + for (i = 0; i < 0x3f8; i++) + fwrite(&zero, 1, 4, fp); + } else if (img_format == IMG_FMT_HDX) { /* HDX file */ + fwrite(&signature, 1, 8, fp); /* 00000000: Signature */ + fwrite(&size, 1, 8, fp); /* 00000008: Full size of the data (64-bit) */ + fwrite(§or_size, 1, 4, fp); /* 00000010: Sector size in bytes */ + fwrite(&spt, 1, 4, fp); /* 00000014: Sectors per cylinder */ + fwrite(&hpc, 1, 4, fp); /* 00000018: Heads per cylinder */ + fwrite(&tracks, 1, 4, fp); /* 0000001C: Cylinders */ + fwrite(&zero, 1, 4, fp); /* 00000020: [Translation] Sectors per cylinder */ + fwrite(&zero, 1, 4, fp); /* 00000004: [Translation] Heads per cylinder */ + } else if (img_format >= IMG_FMT_VHD_FIXED) { /* VHD file */ + MVHDGeom _86box_geometry; + block_size = settings_get_cur_sel(hdlg, IDC_COMBO_HD_BLOCK_SIZE) == 0 ? MVHD_BLOCK_LARGE : MVHD_BLOCK_SMALL; + switch (img_format) { + case IMG_FMT_VHD_FIXED: + vhd_progress_hdlg = hdlg; + _86box_geometry = create_drive_vhd_fixed(hd_file_name_multibyte, tracks, hpc, spt); + break; + case IMG_FMT_VHD_DYNAMIC: + _86box_geometry = create_drive_vhd_dynamic(hd_file_name_multibyte, tracks, hpc, spt, block_size); + break; + case IMG_FMT_VHD_DIFF: + if (file_dlg_w(hdlg, plat_get_string(IDS_4130), L"", plat_get_string(IDS_4131), 0)) { + return TRUE; + } + _86box_geometry = create_drive_vhd_diff(hd_file_name_multibyte, openfilestring, block_size); + break; + } + + if (img_format != IMG_FMT_VHD_DIFF) + settings_msgbox_header(MBX_INFO, (wchar_t *) IDS_4113, (wchar_t *) IDS_4117); + + hdd_ptr->tracks = _86box_geometry.cyl; + hdd_ptr->hpc = _86box_geometry.heads; + hdd_ptr->spt = _86box_geometry.spt; + + hard_disk_added = 1; + EndDialog(hdlg, 0); + return TRUE; + } + + big_buf = (char *) malloc(1048576); + memset(big_buf, 0, 1048576); + + r = size >> 20; + size &= 0xfffff; + + if (size || r) { + settings_show_window(hdlg, IDT_FILE_NAME, FALSE); + settings_show_window(hdlg, IDC_EDIT_HD_FILE_NAME, FALSE); + settings_show_window(hdlg, IDC_CFILE, FALSE); + settings_show_window(hdlg, IDC_PBAR_IMG_CREATE, TRUE); + settings_enable_window(hdlg, IDT_PROGRESS, TRUE); + + h = GetDlgItem(hdlg, IDC_PBAR_IMG_CREATE); + SendMessage(h, PBM_SETRANGE32, (WPARAM) 0, (LPARAM) r); + SendMessage(h, PBM_SETPOS, (WPARAM) 0, (LPARAM) 0); + } + + h = GetDlgItem(hdlg, IDC_PBAR_IMG_CREATE); + + if (size) { + if (fp) { + fwrite(big_buf, 1, size, fp); + } + SendMessage(h, PBM_SETPOS, (WPARAM) 1, (LPARAM) 0); + } + + if (r) { + for (i = 0; i < r; i++) { + if (fp) { + fwrite(big_buf, 1, 1048576, fp); + } + SendMessage(h, PBM_SETPOS, (i + 1), (LPARAM) 0); + + settings_process_messages(); + } + } + + free(big_buf); + + if (fp) { + fclose(fp); + } + settings_msgbox_header(MBX_INFO, (wchar_t *) IDS_4113, (wchar_t *) IDS_4117); + } + + hard_disk_added = 1; + EndDialog(hdlg, 0); + return TRUE; + + case IDCANCEL: + hard_disk_added = 0; + hdd_ptr->bus = HDD_BUS_DISABLED; + EndDialog(hdlg, 0); + return TRUE; + + case IDC_CFILE: + if (!file_dlg_w(hdlg, plat_get_string(IDS_4106), L"", NULL, !(existing & 1))) { + if (!wcschr(wopenfilestring, L'.')) { + if (wcslen(wopenfilestring) && (wcslen(wopenfilestring) <= 256)) { + twcs = &wopenfilestring[wcslen(wopenfilestring)]; + twcs[0] = L'.'; + twcs[1] = L'i'; + twcs[2] = L'm'; + twcs[3] = L'g'; + } + } + + if (!(existing & 1)) { + fp = _wfopen(wopenfilestring, L"rb"); + if (fp != NULL) { + fclose(fp); + if (settings_msgbox_ex(MBX_QUESTION_YN, (wchar_t *) IDS_4111, (wchar_t *) IDS_4118, (wchar_t *) IDS_4120, (wchar_t *) IDS_4121, NULL) != 0) /* yes */ + return FALSE; + } + } + + fp = _wfopen(wopenfilestring, (existing & 1) ? L"rb" : L"wb"); + if (fp == NULL) { +hdd_add_file_open_error: + fclose(fp); + settings_msgbox_header(MBX_ERROR, (existing & 1) ? (wchar_t *) IDS_4114 : (wchar_t *) IDS_4115, (existing & 1) ? (wchar_t *) IDS_4107 : (wchar_t *) IDS_4108); + return TRUE; + } + if (existing & 1) { + if (image_is_hdi(openfilestring) || image_is_hdx(openfilestring, 1)) { + fseeko64(fp, 0x10, SEEK_SET); + fread(§or_size, 1, 4, fp); + if (sector_size != 512) { + settings_msgbox_header(MBX_ERROR, (wchar_t *) IDS_4119, (wchar_t *) IDS_4109); + fclose(fp); + return TRUE; + } + spt = hpc = tracks = 0; + fread(&spt, 1, 4, fp); + fread(&hpc, 1, 4, fp); + fread(&tracks, 1, 4, fp); + } else if (image_is_vhd(openfilestring, 1)) { + fclose(fp); + MVHDMeta *vhd = mvhd_open(openfilestring, 0, &vhd_error); + if (vhd == NULL) { + settings_msgbox_header(MBX_ERROR, (existing & 1) ? (wchar_t *) IDS_4114 : (wchar_t *) IDS_4115, (existing & 1) ? (wchar_t *) IDS_4107 : (wchar_t *) IDS_4108); + return TRUE; + } else if (vhd_error == MVHD_ERR_TIMESTAMP) { + if (settings_msgbox_ex(MBX_QUESTION_YN | MBX_WARNING, plat_get_string(IDS_4133), plat_get_string(IDS_4132), NULL, NULL, NULL) != 0) { + int ts_res = mvhd_diff_update_par_timestamp(vhd, &vhd_error); + if (ts_res != 0) { + settings_msgbox_header(MBX_ERROR, plat_get_string(IDS_2049), plat_get_string(IDS_4134)); + mvhd_close(vhd); + return TRUE; + } + } else { + mvhd_close(vhd); + return TRUE; + } + } + + MVHDGeom vhd_geom = mvhd_get_geometry(vhd); + adjust_vhd_geometry_for_86box(&vhd_geom); + tracks = vhd_geom.cyl; + hpc = vhd_geom.heads; + spt = vhd_geom.spt; + size = (uint64_t) tracks * hpc * spt * 512; + mvhd_close(vhd); + } else { + fseeko64(fp, 0, SEEK_END); + size = ftello64(fp); + if (((size % 17) == 0) && (size <= 142606336)) { + spt = 17; + if (size <= 26738688) + hpc = 4; + else if (((size % 3072) == 0) && (size <= 53477376)) + hpc = 6; + else { + for (i = 5; i < 16; i++) { + if (((size % (i << 9)) == 0) && (size <= ((i * 17) << 19))) + break; + if (i == 5) + i++; + } + hpc = i; + } + } else { + spt = 63; + hpc = 16; + } + + tracks = ((size >> 9) / hpc) / spt; + } + + if ((spt > max_spt) || (hpc > max_hpc) || (tracks > max_tracks)) + goto hdd_add_file_open_error; + no_update = 1; + + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, spt); + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, hpc); + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, tracks); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, size >> 20); + recalc_selection(hdlg); + + settings_enable_window(hdlg, IDC_EDIT_HD_SPT, TRUE); + settings_enable_window(hdlg, IDC_EDIT_HD_HPC, TRUE); + settings_enable_window(hdlg, IDC_EDIT_HD_CYL, TRUE); + settings_enable_window(hdlg, IDC_EDIT_HD_SIZE, TRUE); + settings_enable_window(hdlg, IDC_COMBO_HD_TYPE, TRUE); + + chs_enabled = 1; + + no_update = 0; + } + + fclose(fp); + } + + h = GetDlgItem(hdlg, IDC_EDIT_HD_FILE_NAME); + SendMessage(h, WM_SETTEXT, 0, (LPARAM) wopenfilestring); + memset(hd_file_name, 0, sizeof(hd_file_name)); + wcscpy(hd_file_name, wopenfilestring); + + return TRUE; + + case IDC_EDIT_HD_CYL: + if (no_update) + return FALSE; + + no_update = 1; + get_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, &temp); + if (tracks != (int64_t) temp) { + tracks = temp; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (tracks > max_tracks) { + tracks = max_tracks; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, (uint32_t) tracks); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + no_update = 0; + break; + + case IDC_EDIT_HD_HPC: + if (no_update) + return FALSE; + + no_update = 1; + get_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, &temp); + if (hpc != (int64_t) temp) { + hpc = temp; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (hpc > max_hpc) { + hpc = max_hpc; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, (uint32_t) hpc); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + no_update = 0; + break; + + case IDC_EDIT_HD_SPT: + if (no_update) + return FALSE; + + no_update = 1; + get_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, &temp); + if (spt != (int64_t) temp) { + spt = temp; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (spt > max_spt) { + spt = max_spt; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, spt); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + no_update = 0; + break; + + case IDC_EDIT_HD_SIZE: + if (no_update) + return FALSE; + + no_update = 1; + get_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, &temp); + if (temp != (uint32_t) (size >> 20)) { + size = ((uint64_t) temp) << 20LL; + /* This is needed to ensure VHD standard compliance. */ + hdd_image_calc_chs((uint32_t *) &tracks, (uint32_t *) &hpc, (uint32_t *) &spt, temp); + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, (uint32_t) tracks); + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, (uint32_t) hpc); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, (uint32_t) spt); + recalc_selection(hdlg); + } + + if (tracks > max_tracks) { + tracks = max_tracks; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, (uint32_t) tracks); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (hpc > max_hpc) { + hpc = max_hpc; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, (uint32_t) hpc); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (spt > max_spt) { + spt = max_spt; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, (uint32_t) spt); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + no_update = 0; + break; + + case IDC_COMBO_HD_TYPE: + if (no_update) + return FALSE; + + no_update = 1; + temp = settings_get_cur_sel(hdlg, IDC_COMBO_HD_TYPE); + if ((temp != selection) && (temp != 127) && (temp != 128)) { + selection = temp; + tracks = hdd_table[selection][0]; + hpc = hdd_table[selection][1]; + spt = hdd_table[selection][2]; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, (uint32_t) tracks); + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, (uint32_t) hpc); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, (uint32_t) spt); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + } else if ((temp != selection) && (temp == 127)) + selection = temp; + else if ((temp != selection) && (temp == 128)) { + selection = temp; + hpc = 16; + spt = 63; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, (uint32_t) hpc); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, (uint32_t) spt); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + } + + if (spt > max_spt) { + spt = max_spt; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, (uint32_t) spt); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (hpc > max_hpc) { + hpc = max_hpc; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, (uint32_t) hpc); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (tracks > max_tracks) { + tracks = max_tracks; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, (uint32_t) tracks); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + no_update = 0; + break; + + case IDC_COMBO_HD_BUS: + if (no_update) + return FALSE; + + no_update = 1; + recalc_location_controls(hdlg, 1, 0); + b = settings_get_cur_sel(hdlg, IDC_COMBO_HD_BUS) + 1; + if (b != hdd_ptr->bus) { + hdd_ptr->bus = b; + + switch (hdd_ptr->bus) { + default: + case HDD_BUS_DISABLED: + max_spt = max_hpc = max_tracks = 0; + break; + case HDD_BUS_MFM: + max_spt = 26; /* 17 for MFM, 26 for RLL. */ + max_hpc = 15; + max_tracks = 2047; + break; + case HDD_BUS_XTA: + max_spt = 63; + max_hpc = 16; + max_tracks = 1023; + break; + case HDD_BUS_ESDI: + max_spt = 99; /* ESDI drives usually had 32 to 43 sectors per track. */ + max_hpc = 16; + max_tracks = 266305; + break; + case HDD_BUS_IDE: + max_spt = 255; + max_hpc = 255; + max_tracks = 266305; + break; + case HDD_BUS_ATAPI: + case HDD_BUS_SCSI: + max_spt = 255; + max_hpc = 255; + max_tracks = 266305; + break; + } + + if (!chs_enabled) { + settings_enable_window(hdlg, IDC_EDIT_HD_SPT, FALSE); + settings_enable_window(hdlg, IDC_EDIT_HD_HPC, FALSE); + settings_enable_window(hdlg, IDC_EDIT_HD_CYL, FALSE); + settings_enable_window(hdlg, IDC_EDIT_HD_SIZE, FALSE); + settings_enable_window(hdlg, IDC_COMBO_HD_TYPE, FALSE); + } + + if (spt > max_spt) { + spt = max_spt; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, (uint32_t) spt); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (hpc > max_hpc) { + hpc = max_hpc; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, (uint32_t) hpc); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + + if (tracks > max_tracks) { + tracks = max_tracks; + size = ((uint64_t) tracks * (uint64_t) hpc * (uint64_t) spt) << 9LL; + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, (uint32_t) tracks); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) (size >> 20)); + recalc_selection(hdlg); + } + } + + no_update = 0; + break; + case IDC_COMBO_HD_IMG_FORMAT: + img_format = settings_get_cur_sel(hdlg, IDC_COMBO_HD_IMG_FORMAT); + + no_update = 1; + if (img_format == IMG_FMT_VHD_DIFF) { /* They switched to a diff VHD; disable the geometry fields. */ + settings_enable_window(hdlg, IDC_EDIT_HD_SPT, FALSE); + set_edit_box_text_contents(hdlg, IDC_EDIT_HD_SPT, L"(N/A)"); + settings_enable_window(hdlg, IDC_EDIT_HD_HPC, FALSE); + set_edit_box_text_contents(hdlg, IDC_EDIT_HD_HPC, L"(N/A)"); + settings_enable_window(hdlg, IDC_EDIT_HD_CYL, FALSE); + set_edit_box_text_contents(hdlg, IDC_EDIT_HD_CYL, L"(N/A)"); + settings_enable_window(hdlg, IDC_EDIT_HD_SIZE, FALSE); + set_edit_box_text_contents(hdlg, IDC_EDIT_HD_SIZE, L"(N/A)"); + settings_enable_window(hdlg, IDC_COMBO_HD_TYPE, FALSE); + settings_reset_content(hdlg, IDC_COMBO_HD_TYPE); + settings_add_string(hdlg, IDC_COMBO_HD_TYPE, (LPARAM) L"(use parent)"); + settings_set_cur_sel(hdlg, IDC_COMBO_HD_TYPE, 0); + } else { + get_edit_box_text_contents(hdlg, IDC_EDIT_HD_SPT, text_buf, 256); + if (!wcscmp(text_buf, L"(N/A)")) { + settings_enable_window(hdlg, IDC_EDIT_HD_SPT, TRUE); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SPT, 17); + spt = 17; + settings_enable_window(hdlg, IDC_EDIT_HD_HPC, TRUE); + set_edit_box_contents(hdlg, IDC_EDIT_HD_HPC, 15); + hpc = 15; + settings_enable_window(hdlg, IDC_EDIT_HD_CYL, TRUE); + set_edit_box_contents(hdlg, IDC_EDIT_HD_CYL, 1023); + tracks = 1023; + settings_enable_window(hdlg, IDC_EDIT_HD_SIZE, TRUE); + set_edit_box_contents(hdlg, IDC_EDIT_HD_SIZE, (uint32_t) ((uint64_t) 17 * 15 * 1023 * 512 >> 20)); + size = (uint64_t) 17 * 15 * 1023 * 512; + + settings_reset_content(hdlg, IDC_COMBO_HD_TYPE); + hdconf_initialize_hdt_combo(hdlg); + settings_enable_window(hdlg, IDC_COMBO_HD_TYPE, TRUE); + } + } + no_update = 0; + + if (img_format == IMG_FMT_VHD_DYNAMIC || img_format == IMG_FMT_VHD_DIFF) { /* For dynamic and diff VHDs, show the block size dropdown. */ + settings_show_window(hdlg, IDC_COMBO_HD_BLOCK_SIZE, TRUE); + settings_show_window(hdlg, IDT_BLOCK_SIZE, TRUE); + } else { /* Hide it otherwise. */ + settings_show_window(hdlg, IDC_COMBO_HD_BLOCK_SIZE, FALSE); + settings_show_window(hdlg, IDT_BLOCK_SIZE, FALSE); + } + break; + } + + return FALSE; + } + + return FALSE; +} + +int +hard_disk_was_added(void) +{ + return hard_disk_added; +} + +void +hard_disk_add_open(HWND hwnd, int is_existing) +{ + existing = is_existing; + hard_disk_added = 0; + DialogBox(hinstance, (LPCWSTR) DLG_CFG_HARD_DISKS_ADD, hwnd, win_settings_hard_disks_add_proc); +} + +static void +hard_disk_track(uint8_t id) +{ + switch (temp_hdd[id].bus) { + case HDD_BUS_MFM: + mfm_tracking |= (1 << (temp_hdd[id].mfm_channel << 3)); + break; + case HDD_BUS_ESDI: + esdi_tracking |= (1 << (temp_hdd[id].esdi_channel << 3)); + break; + case HDD_BUS_XTA: + xta_tracking |= (1 << (temp_hdd[id].xta_channel << 3)); + break; + case HDD_BUS_IDE: + case HDD_BUS_ATAPI: + ide_tracking |= (1 << (temp_hdd[id].ide_channel << 3)); + break; + case HDD_BUS_SCSI: + scsi_tracking[temp_hdd[id].scsi_id >> 3] |= (1 << ((temp_hdd[id].scsi_id & 0x07) << 3)); + break; + } +} + +static void +hard_disk_untrack(uint8_t id) +{ + switch (temp_hdd[id].bus) { + case HDD_BUS_MFM: + mfm_tracking &= ~(1 << (temp_hdd[id].mfm_channel << 3)); + break; + case HDD_BUS_ESDI: + esdi_tracking &= ~(1 << (temp_hdd[id].esdi_channel << 3)); + break; + case HDD_BUS_XTA: + xta_tracking &= ~(1 << (temp_hdd[id].xta_channel << 3)); + break; + case HDD_BUS_IDE: + case HDD_BUS_ATAPI: + ide_tracking &= ~(1 << (temp_hdd[id].ide_channel << 3)); + break; + case HDD_BUS_SCSI: + scsi_tracking[temp_hdd[id].scsi_id >> 3] &= ~(1 << ((temp_hdd[id].scsi_id & 0x07) << 3)); + break; + } +} + +static void +hard_disk_track_all(void) +{ + for (uint8_t i = 0; i < HDD_NUM; i++) + hard_disk_track(i); +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_hard_disks_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + int old_sel = 0; + int b = 0; + int assign = 0; + const uint8_t hd_icons[2] = { 80, 0 }; + + switch (message) { + case WM_INITDIALOG: + ignore_change = 1; + + normalize_hd_list(); /* Normalize the hard disks so that non-disabled hard disks start from index 0, and so they are contiguous. + This will cause an emulator reset prompt on the first opening of this category with a messy hard disk list + (which can only happen by manually editing the configuration file). */ + win_settings_hard_disks_init_columns(hdlg); + image_list_init(hdlg, IDC_LIST_HARD_DISKS, (const uint8_t *) hd_icons); + win_settings_hard_disks_recalc_list(hdlg); + recalc_next_free_id(hdlg); + add_locations(hdlg); + if (hd_listview_items > 0) { + settings_listview_select(hdlg, IDC_LIST_HARD_DISKS, 0); + lv1_current_sel = 0; + settings_set_cur_sel(hdlg, IDC_COMBO_HD_BUS, temp_hdd[0].bus - 1); + } else + lv1_current_sel = -1; + recalc_location_controls(hdlg, 0, 0); + + settings_listview_enable_styles(hdlg, IDC_LIST_HARD_DISKS); + + ignore_change = 0; + return TRUE; + + case WM_NOTIFY: + if ((hd_listview_items == 0) || ignore_change) + return FALSE; + + if ((((LPNMHDR) lParam)->code == LVN_ITEMCHANGED) && (((LPNMHDR) lParam)->idFrom == IDC_LIST_HARD_DISKS)) { + old_sel = lv1_current_sel; + lv1_current_sel = get_selected_hard_disk(hdlg); + if (lv1_current_sel == old_sel) + return FALSE; + ignore_change = 1; + settings_set_cur_sel(hdlg, IDC_COMBO_HD_BUS, temp_hdd[lv1_current_sel].bus - 1); + recalc_location_controls(hdlg, 0, 0); + ignore_change = 0; + } + break; + + case WM_COMMAND: + if (ignore_change && (LOWORD(wParam) != IDC_BUTTON_HDD_ADD) && (LOWORD(wParam) != IDC_BUTTON_HDD_ADD_NEW) && (LOWORD(wParam) != IDC_BUTTON_HDD_REMOVE)) + return FALSE; + switch (LOWORD(wParam)) { + case IDC_COMBO_HD_BUS: + ignore_change = 1; + b = settings_get_cur_sel(hdlg, IDC_COMBO_HD_BUS) + 1; + if (b != temp_hdd[lv1_current_sel].bus) { + hard_disk_untrack(lv1_current_sel); + assign = (temp_hdd[lv1_current_sel].bus == b) ? 0 : 1; + temp_hdd[lv1_current_sel].bus = b; + recalc_location_controls(hdlg, 0, assign); + hard_disk_track(lv1_current_sel); + win_settings_hard_disks_update_item(hdlg, lv1_current_sel, 0); + } + ignore_change = 0; + return FALSE; + + case IDC_COMBO_HD_CHANNEL: + ignore_change = 1; + hard_disk_untrack(lv1_current_sel); + temp_hdd[lv1_current_sel].channel = settings_get_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL); + hard_disk_track(lv1_current_sel); + win_settings_hard_disks_update_item(hdlg, lv1_current_sel, 0); + ignore_change = 0; + return FALSE; + + case IDC_COMBO_HD_CHANNEL_IDE: + ignore_change = 1; + hard_disk_untrack(lv1_current_sel); + temp_hdd[lv1_current_sel].ide_channel = settings_get_cur_sel(hdlg, IDC_COMBO_HD_CHANNEL_IDE); + hard_disk_track(lv1_current_sel); + win_settings_hard_disks_update_item(hdlg, lv1_current_sel, 0); + ignore_change = 0; + return FALSE; + + case IDC_COMBO_HD_ID: + ignore_change = 1; + hard_disk_untrack(lv1_current_sel); + temp_hdd[lv1_current_sel].scsi_id = settings_get_cur_sel(hdlg, IDC_COMBO_HD_ID); + hard_disk_track(lv1_current_sel); + win_settings_hard_disks_update_item(hdlg, lv1_current_sel, 0); + ignore_change = 0; + return FALSE; + + case IDC_BUTTON_HDD_ADD: + case IDC_BUTTON_HDD_ADD_NEW: + hard_disk_add_open(hdlg, (LOWORD(wParam) == IDC_BUTTON_HDD_ADD)); + if (hard_disk_added) { + ignore_change = 1; + win_settings_hard_disks_recalc_list(hdlg); + recalc_next_free_id(hdlg); + hard_disk_track_all(); + ignore_change = 0; + } + return FALSE; + + case IDC_BUTTON_HDD_REMOVE: + temp_hdd[lv1_current_sel].fn[0] = '\0'; + hard_disk_untrack(lv1_current_sel); + temp_hdd[lv1_current_sel].bus = HDD_BUS_DISABLED; /* Only set the bus to zero, the list normalize code below will take care of turning this entire entry to a complete zero. */ + normalize_hd_list(); /* Normalize the hard disks so that non-disabled hard disks start from index 0, and so they are contiguous. */ + ignore_change = 1; + win_settings_hard_disks_recalc_list(hdlg); + recalc_next_free_id(hdlg); + if (hd_listview_items > 0) { + settings_listview_select(hdlg, IDC_LIST_HARD_DISKS, 0); + lv1_current_sel = 0; + settings_set_cur_sel(hdlg, IDC_COMBO_HD_BUS, temp_hdd[0].bus - 1); + } else + lv1_current_sel = -1; + recalc_location_controls(hdlg, 0, 0); + ignore_change = 0; + return FALSE; + } + + case WM_DPICHANGED_AFTERPARENT: + win_settings_hard_disks_resize_columns(hdlg); + image_list_init(hdlg, IDC_LIST_HARD_DISKS, (const uint8_t *) hd_icons); + break; + default: + return FALSE; + } + + return FALSE; +} + +static int +combo_id_to_string_id(int combo_id) +{ + return IDS_5376 + combo_id; +} + +static int +combo_id_to_format_string_id(int combo_id) +{ + return IDS_5632 + combo_id; +} + +static BOOL +win_settings_floppy_drives_recalc_list(HWND hdlg) +{ + LVITEM lvI; + char s[256]; + const char *t; + WCHAR szText[256]; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_FLOPPY_DRIVES); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.state = 0; + + for (uint8_t i = 0; i < FDD_NUM; i++) { + lvI.iSubItem = 0; + if (temp_fdd_types[i] > 0) { + t = fdd_getname(temp_fdd_types[i]); + strncpy(s, t, sizeof(s) - 1); + mbstowcs(szText, s, strlen(s) + 1); + lvI.pszText = szText; + } else + lvI.pszText = plat_get_string(IDS_5376); + lvI.iItem = i; + lvI.iImage = temp_fdd_types[i]; + + if (ListView_InsertItem(hwndList, &lvI) == -1) + return FALSE; + + lvI.iSubItem = 1; + lvI.pszText = plat_get_string(temp_fdd_turbo[i] ? IDS_2060 : IDS_2061); + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + + lvI.iSubItem = 2; + lvI.pszText = plat_get_string(temp_fdd_check_bpb[i] ? IDS_2060 : IDS_2061); + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + } + + return TRUE; +} + +static BOOL +win_settings_cdrom_drives_recalc_list(HWND hdlg) +{ + LVITEM lvI; + int fsid = 0; + WCHAR szText[256]; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_CDROM_DRIVES); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + for (uint8_t i = 0; i < CDROM_NUM; i++) { + fsid = combo_id_to_format_string_id(temp_cdrom[i].bus_type); + + lvI.iSubItem = 0; + switch (temp_cdrom[i].bus_type) { + default: + case CDROM_BUS_DISABLED: + lvI.pszText = plat_get_string(fsid); + lvI.iImage = 0; + break; + case CDROM_BUS_ATAPI: + wsprintf(szText, plat_get_string(fsid), temp_cdrom[i].ide_channel >> 1, temp_cdrom[i].ide_channel & 1); + lvI.pszText = szText; + lvI.iImage = 1; + break; + case CDROM_BUS_SCSI: + wsprintf(szText, plat_get_string(fsid), temp_cdrom[i].scsi_device_id >> 4, temp_cdrom[i].scsi_device_id & 15); + lvI.pszText = szText; + lvI.iImage = 1; + break; + } + + lvI.iItem = i; + + if (ListView_InsertItem(hwndList, &lvI) == -1) + return FALSE; + + lvI.iSubItem = 1; + if (temp_cdrom[i].bus_type == CDROM_BUS_DISABLED) + lvI.pszText = plat_get_string(IDS_2104); + else { + wsprintf(szText, L"%ix", temp_cdrom[i].speed); + lvI.pszText = szText; + } + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + +#if 0 + lvI.iSubItem = 2; + lvI.pszText = plat_get_string(temp_cdrom[i].early ? IDS_2060 : IDS_2061); + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; +#endif + } + + return TRUE; +} + +static BOOL +win_settings_mo_drives_recalc_list(HWND hdlg) +{ + LVITEM lvI; + int fsid = 0; + WCHAR szText[256]; + char szType[30]; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_MO_DRIVES); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + for (uint8_t i = 0; i < MO_NUM; i++) { + fsid = combo_id_to_format_string_id(temp_mo_drives[i].bus_type); + + lvI.iSubItem = 0; + switch (temp_mo_drives[i].bus_type) { + default: + case MO_BUS_DISABLED: + lvI.pszText = plat_get_string(fsid); + lvI.iImage = 0; + break; + case MO_BUS_ATAPI: + wsprintf(szText, plat_get_string(fsid), temp_mo_drives[i].ide_channel >> 1, temp_mo_drives[i].ide_channel & 1); + lvI.pszText = szText; + lvI.iImage = 1; + break; + case MO_BUS_SCSI: + wsprintf(szText, plat_get_string(fsid), temp_mo_drives[i].scsi_device_id >> 4, temp_mo_drives[i].scsi_device_id & 15); + lvI.pszText = szText; + lvI.iImage = 1; + break; + } + + lvI.iItem = i; + + if (ListView_InsertItem(hwndList, &lvI) == -1) + return FALSE; + + lvI.iSubItem = 1; + if (temp_mo_drives[i].bus_type == MO_BUS_DISABLED) + lvI.pszText = plat_get_string(IDS_2104); + else { + memset(szType, 0, 30); + memcpy(szType, mo_drive_types[temp_mo_drives[i].type].vendor, 8); + szType[strlen(szType)] = ' '; + memcpy(szType + strlen(szType), mo_drive_types[temp_mo_drives[i].type].model, 16); + szType[strlen(szType)] = ' '; + memcpy(szType + strlen(szType), mo_drive_types[temp_mo_drives[i].type].revision, 4); + + mbstowcs(szText, szType, strlen(szType) + 1); + lvI.pszText = szText; + } + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + } + + return TRUE; +} + +static BOOL +win_settings_zip_drives_recalc_list(HWND hdlg) +{ + LVITEM lvI; + int fsid = 0; + WCHAR szText[256]; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + for (uint8_t i = 0; i < ZIP_NUM; i++) { + fsid = combo_id_to_format_string_id(temp_zip_drives[i].bus_type); + + lvI.iSubItem = 0; + switch (temp_zip_drives[i].bus_type) { + default: + case ZIP_BUS_DISABLED: + lvI.pszText = plat_get_string(fsid); + lvI.iImage = 0; + break; + case ZIP_BUS_ATAPI: + wsprintf(szText, plat_get_string(fsid), temp_zip_drives[i].ide_channel >> 1, temp_zip_drives[i].ide_channel & 1); + lvI.pszText = szText; + lvI.iImage = 1; + break; + case ZIP_BUS_SCSI: + wsprintf(szText, plat_get_string(fsid), temp_zip_drives[i].scsi_device_id >> 4, temp_zip_drives[i].scsi_device_id & 15); + lvI.pszText = szText; + lvI.iImage = 1; + break; + } + + lvI.iItem = i; + + if (ListView_InsertItem(hwndList, &lvI) == -1) + return FALSE; + + lvI.iSubItem = 1; + lvI.pszText = plat_get_string(temp_zip_drives[i].is_250 ? IDS_5901 : IDS_5900); + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return FALSE; + } + + return TRUE; +} + +#define C_COLUMNS_FLOPPY_DRIVES_TYPE 292 +#define C_COLUMNS_FLOPPY_DRIVES_TURBO 58 +#define C_COLUMNS_FLOPPY_DRIVES_BPB 89 + +static void +win_settings_floppy_drives_resize_columns(HWND hdlg) +{ + int width[C_COLUMNS_FLOPPY_DRIVES] = { + C_COLUMNS_FLOPPY_DRIVES_TYPE, + C_COLUMNS_FLOPPY_DRIVES_TURBO, + C_COLUMNS_FLOPPY_DRIVES_BPB + }; + int total = 0; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_FLOPPY_DRIVES); + RECT r; + + GetWindowRect(hwndList, &r); + for (uint8_t iCol = 0; iCol < C_COLUMNS_FLOPPY_DRIVES; iCol++) { + width[iCol] = MulDiv(width[iCol], dpi, 96); + total += width[iCol]; + ListView_SetColumnWidth(hwndList, iCol, MulDiv(width[iCol], dpi, 96)); + } + width[C_COLUMNS_FLOPPY_DRIVES - 1] = (r.right - r.left) - 4 - total; + ListView_SetColumnWidth(hwndList, 2, width[C_COLUMNS_FLOPPY_DRIVES - 1]); +} + +static BOOL +win_settings_floppy_drives_init_columns(HWND hdlg) +{ + LVCOLUMN lvc; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_FLOPPY_DRIVES); + + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; + + /* Type */ + lvc.iSubItem = 0; + lvc.pszText = plat_get_string(IDS_TYPE); + + lvc.cx = C_COLUMNS_FLOPPY_DRIVES_TYPE; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 0, &lvc) == -1) + return FALSE; + + /* Turbo */ + lvc.iSubItem = 1; + lvc.pszText = plat_get_string(IDS_2059); + + lvc.cx = C_COLUMNS_FLOPPY_DRIVES_TURBO; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 1, &lvc) == -1) + return FALSE; + + /* Check BPB */ + lvc.iSubItem = 2; + lvc.pszText = plat_get_string(IDS_BPB); + + lvc.cx = C_COLUMNS_FLOPPY_DRIVES_BPB; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 2, &lvc) == -1) + return FALSE; + + win_settings_floppy_drives_resize_columns(hdlg); + return TRUE; +} + +#define C_COLUMNS_CDROM_DRIVES_BUS 292 +#define C_COLUMNS_CDROM_DRIVES_SPEED 58 +#define C_COLUMNS_CDROM_DRIVES_EARLIER 89 + +static void +win_settings_cdrom_drives_resize_columns(HWND hdlg) +{ + int width[C_COLUMNS_CDROM_DRIVES] = { + C_COLUMNS_CDROM_DRIVES_BUS, + C_COLUMNS_CDROM_DRIVES_SPEED, + C_COLUMNS_CDROM_DRIVES_EARLIER + }; + int total = 0; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_CDROM_DRIVES); + RECT r; + + GetWindowRect(hwndList, &r); + for (uint8_t iCol = 0; iCol < C_COLUMNS_CDROM_DRIVES; iCol++) { + width[iCol] = MulDiv(width[iCol], dpi, 96); + total += width[iCol]; + ListView_SetColumnWidth(hwndList, iCol, MulDiv(width[iCol], dpi, 96)); + } + width[C_COLUMNS_CDROM_DRIVES - 1] = (r.right - r.left) - 4 - total; + ListView_SetColumnWidth(hwndList, 2, width[C_COLUMNS_CDROM_DRIVES - 1]); +} + +static BOOL +win_settings_cdrom_drives_init_columns(HWND hdlg) +{ + LVCOLUMN lvc; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_CDROM_DRIVES); + + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; + + /* Bus */ + lvc.iSubItem = 0; + lvc.pszText = plat_get_string(IDS_BUS); + + lvc.cx = C_COLUMNS_CDROM_DRIVES_BUS; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 0, &lvc) == -1) + return FALSE; + + /* Speed */ + lvc.iSubItem = 1; + lvc.pszText = plat_get_string(IDS_2053); + + lvc.cx = C_COLUMNS_CDROM_DRIVES_SPEED; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 1, &lvc) == -1) + return FALSE; + + /* Type */ + lvc.iSubItem = 2; + lvc.pszText = plat_get_string(IDS_2162); + + lvc.cx = C_COLUMNS_CDROM_DRIVES_EARLIER; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 2, &lvc) == -1) + return FALSE; + + win_settings_cdrom_drives_resize_columns(hdlg); + return TRUE; +} + +#define C_COLUMNS_MO_DRIVES_BUS 292 +#define C_COLUMNS_MO_DRIVES_TYPE 147 + +static void +win_settings_mo_drives_resize_columns(HWND hdlg) +{ + int width[C_COLUMNS_MO_DRIVES] = { + C_COLUMNS_MO_DRIVES_BUS, + C_COLUMNS_MO_DRIVES_TYPE + }; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_MO_DRIVES); + RECT r; + + GetWindowRect(hwndList, &r); + width[0] = MulDiv(width[0], dpi, 96); + ListView_SetColumnWidth(hwndList, 0, MulDiv(width[0], dpi, 96)); + width[C_COLUMNS_MO_DRIVES - 1] = (r.right - r.left) - 4 - width[0]; + ListView_SetColumnWidth(hwndList, 1, width[C_COLUMNS_MO_DRIVES - 1]); +} + +static BOOL +win_settings_mo_drives_init_columns(HWND hdlg) +{ + LVCOLUMN lvc; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_MO_DRIVES); + + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; + + /* Bus */ + lvc.iSubItem = 0; + lvc.pszText = plat_get_string(IDS_BUS); + + lvc.cx = C_COLUMNS_MO_DRIVES_BUS; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 0, &lvc) == -1) + return FALSE; + + /* Type */ + lvc.iSubItem = 1; + lvc.pszText = plat_get_string(IDS_TYPE); + + lvc.cx = C_COLUMNS_MO_DRIVES_TYPE; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 1, &lvc) == -1) + return FALSE; + + win_settings_mo_drives_resize_columns(hdlg); + return TRUE; +} + +#define C_COLUMNS_ZIP_DRIVES_BUS 292 +#define C_COLUMNS_ZIP_DRIVES_TYPE 147 + +static void +win_settings_zip_drives_resize_columns(HWND hdlg) +{ + int width[C_COLUMNS_ZIP_DRIVES] = { + C_COLUMNS_ZIP_DRIVES_BUS, + C_COLUMNS_ZIP_DRIVES_TYPE + }; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES); + RECT r; + + GetWindowRect(hwndList, &r); + width[0] = MulDiv(width[0], dpi, 96); + ListView_SetColumnWidth(hwndList, 0, MulDiv(width[0], dpi, 96)); + width[C_COLUMNS_ZIP_DRIVES - 1] = (r.right - r.left) - 4 - width[0]; + ListView_SetColumnWidth(hwndList, 1, width[C_COLUMNS_ZIP_DRIVES - 1]); +} + +static BOOL +win_settings_zip_drives_init_columns(HWND hdlg) +{ + LVCOLUMN lvc; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES); + + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; + + /* Bus */ + lvc.iSubItem = 0; + lvc.pszText = plat_get_string(IDS_BUS); + + lvc.cx = C_COLUMNS_ZIP_DRIVES_BUS; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 0, &lvc) == -1) + return FALSE; + + /* Type */ + lvc.iSubItem = 1; + lvc.pszText = plat_get_string(IDS_TYPE); + + lvc.cx = C_COLUMNS_ZIP_DRIVES_TYPE; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, 1, &lvc) == -1) + return FALSE; + + win_settings_zip_drives_resize_columns(hdlg); + return TRUE; +} + +static int +get_selected_drive(HWND hdlg, int id, int max) +{ + int drive = -1; + int j = 0; + HWND h; + + for (int i = 0; i < max; i++) { + h = GetDlgItem(hdlg, id); + j = ListView_GetItemState(h, i, LVIS_SELECTED); + if (j) + drive = i; + } + + return drive; +} + +static void +win_settings_floppy_drives_update_item(HWND hdlg, int i) +{ + LVITEM lvI; + char s[256]; + const char *t; + WCHAR szText[256]; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_FLOPPY_DRIVES); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + lvI.iSubItem = 0; + lvI.iItem = i; + + if (temp_fdd_types[i] > 0) { + t = fdd_getname(temp_fdd_types[i]); + strncpy(s, t, sizeof(s) - 1); + mbstowcs(szText, s, strlen(s) + 1); + lvI.pszText = szText; + } else + lvI.pszText = plat_get_string(IDS_5376); + lvI.iImage = temp_fdd_types[i]; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; + + lvI.iSubItem = 1; + lvI.pszText = plat_get_string(temp_fdd_turbo[i] ? IDS_2060 : IDS_2061); + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; + + lvI.iSubItem = 2; + lvI.pszText = plat_get_string(temp_fdd_check_bpb[i] ? IDS_2060 : IDS_2061); + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; +} + +static void +win_settings_cdrom_drives_update_item(HWND hdlg, int i) +{ + LVITEM lvI; + WCHAR szText[256]; + int fsid; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_CDROM_DRIVES); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + lvI.iSubItem = 0; + lvI.iItem = i; + + fsid = combo_id_to_format_string_id(temp_cdrom[i].bus_type); + + switch (temp_cdrom[i].bus_type) { + default: + case CDROM_BUS_DISABLED: + lvI.pszText = plat_get_string(fsid); + lvI.iImage = 0; + break; + case CDROM_BUS_ATAPI: + wsprintf(szText, plat_get_string(fsid), temp_cdrom[i].ide_channel >> 1, temp_cdrom[i].ide_channel & 1); + lvI.pszText = szText; + lvI.iImage = 1; + break; + case CDROM_BUS_SCSI: + wsprintf(szText, plat_get_string(fsid), temp_cdrom[i].scsi_device_id >> 4, temp_cdrom[i].scsi_device_id & 15); + lvI.pszText = szText; + lvI.iImage = 1; + break; + } + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; + + lvI.iSubItem = 1; + if (temp_cdrom[i].bus_type == CDROM_BUS_DISABLED) + lvI.pszText = plat_get_string(IDS_2104); + else { + wsprintf(szText, L"%ix", temp_cdrom[i].speed); + lvI.pszText = szText; + } + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; + +#if 0 + lvI.iSubItem = 2; + lvI.pszText = plat_get_string(temp_cdrom[i].early ? IDS_2060 : IDS_2061); + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; +#endif +} + +static void +win_settings_mo_drives_update_item(HWND hdlg, int i) +{ + LVITEM lvI; + WCHAR szText[256]; + char szType[30]; + int fsid; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_MO_DRIVES); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + /* Bus */ + lvI.iSubItem = 0; + lvI.iItem = i; + + fsid = combo_id_to_format_string_id(temp_mo_drives[i].bus_type); + + switch (temp_mo_drives[i].bus_type) { + default: + case MO_BUS_DISABLED: + lvI.pszText = plat_get_string(fsid); + lvI.iImage = 0; + break; + case MO_BUS_ATAPI: + wsprintf(szText, plat_get_string(fsid), temp_mo_drives[i].ide_channel >> 1, temp_mo_drives[i].ide_channel & 1); + lvI.pszText = szText; + lvI.iImage = 1; + break; + case MO_BUS_SCSI: + wsprintf(szText, plat_get_string(fsid), temp_mo_drives[i].scsi_device_id >> 4, temp_mo_drives[i].scsi_device_id & 15); + lvI.pszText = szText; + lvI.iImage = 1; + break; + } + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; + + /* Type */ + lvI.iSubItem = 1; + if (temp_mo_drives[i].bus_type == MO_BUS_DISABLED) + lvI.pszText = plat_get_string(IDS_2104); + else { + memset(szType, 0, 30); + memcpy(szType, mo_drive_types[temp_mo_drives[i].type].vendor, 8); + szType[strlen(szType)] = ' '; + memcpy(szType + strlen(szType), mo_drive_types[temp_mo_drives[i].type].model, 16); + szType[strlen(szType)] = ' '; + memcpy(szType + strlen(szType), mo_drive_types[temp_mo_drives[i].type].revision, 4); + mbstowcs(szText, szType, strlen(szType) + 1); + lvI.pszText = szText; + } + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; +} + +static void +win_settings_zip_drives_update_item(HWND hdlg, int i) +{ + LVITEM lvI; + WCHAR szText[256]; + int fsid; + HWND hwndList = GetDlgItem(hdlg, IDC_LIST_ZIP_DRIVES); + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + lvI.iSubItem = 0; + lvI.iItem = i; + + fsid = combo_id_to_format_string_id(temp_zip_drives[i].bus_type); + + switch (temp_zip_drives[i].bus_type) { + default: + case ZIP_BUS_DISABLED: + lvI.pszText = plat_get_string(fsid); + lvI.iImage = 0; + break; + case ZIP_BUS_ATAPI: + wsprintf(szText, plat_get_string(fsid), temp_zip_drives[i].ide_channel >> 1, temp_zip_drives[i].ide_channel & 1); + lvI.pszText = szText; + lvI.iImage = 1; + break; + case ZIP_BUS_SCSI: + wsprintf(szText, plat_get_string(fsid), temp_zip_drives[i].scsi_device_id >> 4, temp_zip_drives[i].scsi_device_id & 15); + lvI.pszText = szText; + lvI.iImage = 1; + break; + } + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; + + lvI.iSubItem = 1; + lvI.pszText = plat_get_string(temp_zip_drives[i].is_250 ? IDS_5901 : IDS_5900); + lvI.iItem = i; + lvI.iImage = 0; + + if (ListView_SetItem(hwndList, &lvI) == -1) + return; +} + +static void +cdrom_add_locations(HWND hdlg) +{ + LPTSTR lptsTemp; + int i = 0; + + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + for (i = CDROM_BUS_DISABLED; i <= CDROM_BUS_SCSI; i++) { + if ((i == CDROM_BUS_DISABLED) || (i >= CDROM_BUS_ATAPI)) + settings_add_string(hdlg, IDC_COMBO_CD_BUS, win_get_string(combo_id_to_string_id(i))); + } + + for (i = 1; i <= 72; i++) { + wsprintf(lptsTemp, L"%ix", i); + settings_add_string(hdlg, IDC_COMBO_CD_SPEED, (LPARAM) lptsTemp); + } + + for (i = 0; i < (SCSI_BUS_MAX * SCSI_ID_MAX); i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4135), i >> 4, i & 15); + settings_add_string(hdlg, IDC_COMBO_CD_ID, (LPARAM) lptsTemp); + } + + for (i = 0; i < (IDE_BUS_MAX * IDE_CHAN_MAX); i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4097), i >> 1, i & 1); + settings_add_string(hdlg, IDC_COMBO_CD_CHANNEL_IDE, (LPARAM) lptsTemp); + } + + free(lptsTemp); +} + +static void +cdrom_recalc_location_controls(HWND hdlg, int assign_id) +{ + int bus = temp_cdrom[lv2_current_sel].bus_type; + + for (uint16_t i = IDT_CD_ID; i <= IDT_CD_CHANNEL; i++) + settings_show_window(hdlg, i, FALSE); + settings_show_window(hdlg, IDC_COMBO_CD_ID, FALSE); + settings_show_window(hdlg, IDC_COMBO_CD_CHANNEL_IDE, FALSE); + settings_show_window(hdlg, IDC_COMBO_CD_SPEED, bus != CDROM_BUS_DISABLED); + settings_show_window(hdlg, IDT_CD_SPEED, bus != CDROM_BUS_DISABLED); +#if 0 + settings_show_window(hdlg, IDC_COMBO_CD_TYPE, bus != CDROM_BUS_DISABLED); +#endif + if (bus != CDROM_BUS_DISABLED) { + settings_set_cur_sel(hdlg, IDC_COMBO_CD_SPEED, temp_cdrom[lv2_current_sel].speed - 1); +#if 0 + settings_set_check(hdlg, IDC_COMBO_CD_TYPE, temp_cdrom[lv2_current_sel].early); +#endif + } + + switch (bus) { + case CDROM_BUS_ATAPI: /* ATAPI */ + settings_show_window(hdlg, IDT_CD_CHANNEL, TRUE); + settings_show_window(hdlg, IDC_COMBO_CD_CHANNEL_IDE, TRUE); + + if (assign_id) + temp_cdrom[lv2_current_sel].ide_channel = next_free_ide_channel(); + + settings_set_cur_sel(hdlg, IDC_COMBO_CD_CHANNEL_IDE, temp_cdrom[lv2_current_sel].ide_channel); + break; + case CDROM_BUS_SCSI: /* SCSI */ + settings_show_window(hdlg, IDT_CD_ID, TRUE); + settings_show_window(hdlg, IDC_COMBO_CD_ID, TRUE); + + if (assign_id) + next_free_scsi_id(&temp_cdrom[lv2_current_sel].scsi_device_id); + + settings_set_cur_sel(hdlg, IDC_COMBO_CD_ID, temp_cdrom[lv2_current_sel].scsi_device_id); + break; + } +} + +static void +mo_add_locations(HWND hdlg) +{ + LPTSTR lptsTemp; + char *temp; + int i = 0; + + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + temp = (char *) malloc(30 * sizeof(char)); + + for (i = MO_BUS_DISABLED; i <= MO_BUS_SCSI; i++) { + if ((i == MO_BUS_DISABLED) || (i >= MO_BUS_ATAPI)) + settings_add_string(hdlg, IDC_COMBO_MO_BUS, win_get_string(combo_id_to_string_id(i))); + } + + for (i = 0; i < (SCSI_BUS_MAX * SCSI_ID_MAX); i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4135), i >> 4, i & 15); + settings_add_string(hdlg, IDC_COMBO_MO_ID, (LPARAM) lptsTemp); + } + + for (i = 0; i < (IDE_BUS_MAX * IDE_CHAN_MAX); i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4097), i >> 1, i & 1); + settings_add_string(hdlg, IDC_COMBO_MO_CHANNEL_IDE, (LPARAM) lptsTemp); + } + + for (int i = 0; i < KNOWN_MO_DRIVE_TYPES; i++) { + memset(temp, 0, 30); + memcpy(temp, mo_drive_types[i].vendor, 8); + temp[strlen(temp)] = ' '; + memcpy(temp + strlen(temp), mo_drive_types[i].model, 16); + temp[strlen(temp)] = ' '; + memcpy(temp + strlen(temp), mo_drive_types[i].revision, 4); + + mbstowcs(lptsTemp, temp, strlen(temp) + 1); + settings_add_string(hdlg, IDC_COMBO_MO_TYPE, (LPARAM) lptsTemp); + } + + free(temp); + free(lptsTemp); +} + +static void +mo_recalc_location_controls(HWND hdlg, int assign_id) +{ + int bus = temp_mo_drives[lv1_current_sel].bus_type; + + for (int i = IDT_MO_ID; i <= IDT_MO_CHANNEL; i++) + settings_show_window(hdlg, i, FALSE); + settings_show_window(hdlg, IDC_COMBO_MO_ID, FALSE); + settings_show_window(hdlg, IDC_COMBO_MO_CHANNEL_IDE, FALSE); + settings_show_window(hdlg, IDC_COMBO_MO_TYPE, bus != MO_BUS_DISABLED); + settings_show_window(hdlg, IDT_MO_TYPE, bus != MO_BUS_DISABLED); + + if (bus != MO_BUS_DISABLED) + settings_set_cur_sel(hdlg, IDC_COMBO_MO_TYPE, temp_mo_drives[lv1_current_sel].type); + + switch (bus) { + case MO_BUS_ATAPI: /* ATAPI */ + settings_show_window(hdlg, IDT_MO_CHANNEL, TRUE); + settings_show_window(hdlg, IDC_COMBO_MO_CHANNEL_IDE, TRUE); + + if (assign_id) + temp_mo_drives[lv1_current_sel].ide_channel = next_free_ide_channel(); + + settings_set_cur_sel(hdlg, IDC_COMBO_MO_CHANNEL_IDE, temp_mo_drives[lv1_current_sel].ide_channel); + break; + case MO_BUS_SCSI: /* SCSI */ + settings_show_window(hdlg, IDT_MO_ID, TRUE); + settings_show_window(hdlg, IDC_COMBO_MO_ID, TRUE); + + if (assign_id) + next_free_scsi_id(&temp_mo_drives[lv1_current_sel].scsi_device_id); + + settings_set_cur_sel(hdlg, IDC_COMBO_MO_ID, temp_mo_drives[lv1_current_sel].scsi_device_id); + break; + } +} + +static void +zip_add_locations(HWND hdlg) +{ + LPTSTR lptsTemp; + int i = 0; + + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + + for (i = ZIP_BUS_DISABLED; i <= ZIP_BUS_SCSI; i++) { + if ((i == ZIP_BUS_DISABLED) || (i >= ZIP_BUS_ATAPI)) + settings_add_string(hdlg, IDC_COMBO_ZIP_BUS, win_get_string(combo_id_to_string_id(i))); + } + + for (i = 0; i < (SCSI_BUS_MAX * SCSI_LUN_MAX); i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4135), i >> 4, i & 15); + settings_add_string(hdlg, IDC_COMBO_ZIP_ID, (LPARAM) lptsTemp); + } + + for (i = 0; i < (IDE_BUS_MAX * IDE_CHAN_MAX); i++) { + wsprintf(lptsTemp, plat_get_string(IDS_4097), i >> 1, i & 1); + settings_add_string(hdlg, IDC_COMBO_ZIP_CHANNEL_IDE, (LPARAM) lptsTemp); + } + + free(lptsTemp); +} + +static void +zip_recalc_location_controls(HWND hdlg, int assign_id) +{ + int bus = temp_zip_drives[lv2_current_sel].bus_type; + + for (int i = IDT_ZIP_ID; i <= IDT_ZIP_LUN; i++) + settings_show_window(hdlg, i, FALSE); + settings_show_window(hdlg, IDC_COMBO_ZIP_ID, FALSE); + settings_show_window(hdlg, IDC_COMBO_ZIP_CHANNEL_IDE, FALSE); + settings_show_window(hdlg, IDC_CHECK250, bus != ZIP_BUS_DISABLED); + + if (bus != ZIP_BUS_DISABLED) + settings_set_check(hdlg, IDC_CHECK250, temp_zip_drives[lv2_current_sel].is_250); + + switch (bus) { + case ZIP_BUS_ATAPI: /* ATAPI */ + settings_show_window(hdlg, IDT_ZIP_LUN, TRUE); + settings_show_window(hdlg, IDC_COMBO_ZIP_CHANNEL_IDE, TRUE); + + if (assign_id) + temp_zip_drives[lv2_current_sel].ide_channel = next_free_ide_channel(); + + settings_set_cur_sel(hdlg, IDC_COMBO_ZIP_CHANNEL_IDE, temp_zip_drives[lv2_current_sel].ide_channel); + break; + case ZIP_BUS_SCSI: /* SCSI */ + settings_show_window(hdlg, IDT_ZIP_ID, TRUE); + settings_show_window(hdlg, IDC_COMBO_ZIP_ID, TRUE); + + if (assign_id) + next_free_scsi_id(&temp_zip_drives[lv2_current_sel].scsi_device_id); + + settings_set_cur_sel(hdlg, IDC_COMBO_ZIP_ID, temp_zip_drives[lv2_current_sel].scsi_device_id); + break; + } +} + +static void +cdrom_track(uint8_t id) +{ + if (temp_cdrom[id].bus_type == CDROM_BUS_ATAPI) + ide_tracking |= (2 << (temp_cdrom[id].ide_channel << 3)); + else if (temp_cdrom[id].bus_type == CDROM_BUS_SCSI) + scsi_tracking[temp_cdrom[id].scsi_device_id >> 3] |= (1 << (temp_cdrom[id].scsi_device_id & 0x07)); +} + +static void +cdrom_untrack(uint8_t id) +{ + if (temp_cdrom[id].bus_type == CDROM_BUS_ATAPI) + ide_tracking &= ~(2 << (temp_cdrom[id].ide_channel << 3)); + else if (temp_cdrom[id].bus_type == CDROM_BUS_SCSI) + scsi_tracking[temp_cdrom[id].scsi_device_id >> 3] &= ~(1 << (temp_cdrom[id].scsi_device_id & 0x07)); +} + +static void +zip_track(uint8_t id) +{ + if (temp_zip_drives[id].bus_type == ZIP_BUS_ATAPI) + ide_tracking |= (1 << temp_zip_drives[id].ide_channel); + else if (temp_zip_drives[id].bus_type == ZIP_BUS_SCSI) + scsi_tracking[temp_zip_drives[id].scsi_device_id >> 3] |= (1 << (temp_zip_drives[id].scsi_device_id & 0x07)); +} + +static void +zip_untrack(uint8_t id) +{ + if (temp_zip_drives[id].bus_type == ZIP_BUS_ATAPI) + ide_tracking &= ~(1 << temp_zip_drives[id].ide_channel); + else if (temp_zip_drives[id].bus_type == ZIP_BUS_SCSI) + scsi_tracking[temp_zip_drives[id].scsi_device_id >> 3] &= ~(1 << (temp_zip_drives[id].scsi_device_id & 0x07)); +} + +static void +mo_track(uint8_t id) +{ + if (temp_mo_drives[id].bus_type == MO_BUS_ATAPI) + ide_tracking |= (1 << (temp_mo_drives[id].ide_channel << 3)); + else if (temp_mo_drives[id].bus_type == MO_BUS_SCSI) + scsi_tracking[temp_mo_drives[id].scsi_device_id >> 3] |= (1 << (temp_mo_drives[id].scsi_device_id & 0x07)); +} + +static void +mo_untrack(uint8_t id) +{ + if (temp_mo_drives[id].bus_type == MO_BUS_ATAPI) + ide_tracking &= ~(1 << (temp_mo_drives[id].ide_channel << 3)); + else if (temp_mo_drives[id].bus_type == MO_BUS_SCSI) + scsi_tracking[temp_mo_drives[id].scsi_device_id >> 3] &= ~(1 << (temp_mo_drives[id].scsi_device_id & 0x07)); +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_floppy_and_cdrom_drives_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + int old_sel = 0; + int b = 0; + int assign = 0; + uint32_t b2 = 0; + WCHAR szText[256]; + const uint8_t fd_icons[15] = { 248, 16, 16, 16, 16, 16, 16, 24, 24, 24, 24, 24, 24, 24, 0 }; + const uint8_t cd_icons[3] = { 249, 32, 0 }; + + switch (message) { + case WM_INITDIALOG: + ignore_change = 1; + + lv1_current_sel = 0; + win_settings_floppy_drives_init_columns(hdlg); + image_list_init(hdlg, IDC_LIST_FLOPPY_DRIVES, (const uint8_t *) fd_icons); + win_settings_floppy_drives_recalc_list(hdlg); + settings_listview_select(hdlg, IDC_LIST_FLOPPY_DRIVES, 0); + for (uint8_t i = 0; i < 14; i++) { + if (i == 0) + settings_add_string(hdlg, IDC_COMBO_FD_TYPE, win_get_string(IDS_5376)); + else { + mbstowcs(szText, fdd_getname(i), strlen(fdd_getname(i)) + 1); + settings_add_string(hdlg, IDC_COMBO_FD_TYPE, (LPARAM) szText); + } + } + settings_set_cur_sel(hdlg, IDC_COMBO_FD_TYPE, temp_fdd_types[lv1_current_sel]); + + settings_set_check(hdlg, IDC_CHECKTURBO, temp_fdd_turbo[lv1_current_sel]); + settings_set_check(hdlg, IDC_CHECKBPB, temp_fdd_check_bpb[lv1_current_sel]); + + settings_listview_enable_styles(hdlg, IDC_LIST_FLOPPY_DRIVES); + + lv2_current_sel = 0; + win_settings_cdrom_drives_init_columns(hdlg); + image_list_init(hdlg, IDC_LIST_CDROM_DRIVES, (const uint8_t *) cd_icons); + win_settings_cdrom_drives_recalc_list(hdlg); + settings_listview_select(hdlg, IDC_LIST_CDROM_DRIVES, 0); + cdrom_add_locations(hdlg); + + switch (temp_cdrom[lv2_current_sel].bus_type) { + default: + case CDROM_BUS_DISABLED: + b = 0; + break; + case CDROM_BUS_ATAPI: + b = 1; + break; + case CDROM_BUS_SCSI: + b = 2; + break; + } + settings_set_cur_sel(hdlg, IDC_COMBO_CD_BUS, b); + cdrom_recalc_location_controls(hdlg, 0); + + settings_listview_enable_styles(hdlg, IDC_LIST_CDROM_DRIVES); + + ignore_change = 0; + return TRUE; + + case WM_NOTIFY: + if (ignore_change) + return FALSE; + + if ((((LPNMHDR) lParam)->code == LVN_ITEMCHANGED) && (((LPNMHDR) lParam)->idFrom == IDC_LIST_FLOPPY_DRIVES)) { + old_sel = lv1_current_sel; + lv1_current_sel = get_selected_drive(hdlg, IDC_LIST_FLOPPY_DRIVES, FDD_NUM); + if (lv1_current_sel == old_sel) + return FALSE; + ignore_change = 1; + settings_set_cur_sel(hdlg, IDC_COMBO_FD_TYPE, temp_fdd_types[lv1_current_sel]); + settings_set_check(hdlg, IDC_CHECKTURBO, temp_fdd_turbo[lv1_current_sel]); + settings_set_check(hdlg, IDC_CHECKBPB, temp_fdd_check_bpb[lv1_current_sel]); + ignore_change = 0; + } else if ((((LPNMHDR) lParam)->code == LVN_ITEMCHANGED) && (((LPNMHDR) lParam)->idFrom == IDC_LIST_CDROM_DRIVES)) { + old_sel = lv2_current_sel; + lv2_current_sel = get_selected_drive(hdlg, IDC_LIST_CDROM_DRIVES, CDROM_NUM); + if (lv2_current_sel == old_sel) + return FALSE; + ignore_change = 1; + + switch (temp_cdrom[lv2_current_sel].bus_type) { + default: + case CDROM_BUS_DISABLED: + b = 0; + break; + case CDROM_BUS_ATAPI: + b = 1; + break; + case CDROM_BUS_SCSI: + b = 2; + break; + } + settings_set_cur_sel(hdlg, IDC_COMBO_CD_BUS, b); + + cdrom_recalc_location_controls(hdlg, 0); + ignore_change = 0; + } + break; + + case WM_COMMAND: + if (ignore_change) + return FALSE; + + ignore_change = 1; + switch (LOWORD(wParam)) { + case IDC_COMBO_FD_TYPE: + temp_fdd_types[lv1_current_sel] = settings_get_cur_sel(hdlg, IDC_COMBO_FD_TYPE); + win_settings_floppy_drives_update_item(hdlg, lv1_current_sel); + break; + + case IDC_CHECKTURBO: + temp_fdd_turbo[lv1_current_sel] = settings_get_check(hdlg, IDC_CHECKTURBO); + win_settings_floppy_drives_update_item(hdlg, lv1_current_sel); + break; + + case IDC_CHECKBPB: + temp_fdd_check_bpb[lv1_current_sel] = settings_get_check(hdlg, IDC_CHECKBPB); + win_settings_floppy_drives_update_item(hdlg, lv1_current_sel); + break; + + case IDC_COMBO_CD_BUS: + b = settings_get_cur_sel(hdlg, IDC_COMBO_CD_BUS); + switch (b) { + case 0: + b2 = CDROM_BUS_DISABLED; + break; + case 1: + b2 = CDROM_BUS_ATAPI; + break; + case 2: + b2 = CDROM_BUS_SCSI; + break; + } + if (b2 == temp_cdrom[lv2_current_sel].bus_type) + break; + cdrom_untrack(lv2_current_sel); + assign = (temp_cdrom[lv2_current_sel].bus_type == b2) ? 0 : 1; + if (temp_cdrom[lv2_current_sel].bus_type == CDROM_BUS_DISABLED) + temp_cdrom[lv2_current_sel].speed = 8; + temp_cdrom[lv2_current_sel].bus_type = b2; + cdrom_recalc_location_controls(hdlg, assign); + cdrom_track(lv2_current_sel); + win_settings_cdrom_drives_update_item(hdlg, lv2_current_sel); + break; + + case IDC_COMBO_CD_ID: + cdrom_untrack(lv2_current_sel); + temp_cdrom[lv2_current_sel].scsi_device_id = settings_get_cur_sel(hdlg, IDC_COMBO_CD_ID); + cdrom_track(lv2_current_sel); + win_settings_cdrom_drives_update_item(hdlg, lv2_current_sel); + break; + + case IDC_COMBO_CD_CHANNEL_IDE: + cdrom_untrack(lv2_current_sel); + temp_cdrom[lv2_current_sel].ide_channel = settings_get_cur_sel(hdlg, IDC_COMBO_CD_CHANNEL_IDE); + cdrom_track(lv2_current_sel); + win_settings_cdrom_drives_update_item(hdlg, lv2_current_sel); + break; + + case IDC_COMBO_CD_SPEED: + temp_cdrom[lv2_current_sel].speed = settings_get_cur_sel(hdlg, IDC_COMBO_CD_SPEED) + 1; + win_settings_cdrom_drives_update_item(hdlg, lv2_current_sel); + break; + +#if 0 + case IDC_COMBO_CD_TYPE:: + temp_cdrom[lv2_current_sel].early = settings_get_check(hdlg, IDC_COMBO_CD_TYPE:); + win_settings_cdrom_drives_update_item(hdlg, lv2_current_sel); + break; +#endif + } + ignore_change = 0; + + case WM_DPICHANGED_AFTERPARENT: + win_settings_floppy_drives_resize_columns(hdlg); + image_list_init(hdlg, IDC_LIST_FLOPPY_DRIVES, (const uint8_t *) fd_icons); + win_settings_cdrom_drives_resize_columns(hdlg); + image_list_init(hdlg, IDC_LIST_CDROM_DRIVES, (const uint8_t *) cd_icons); + break; + default: + return FALSE; + } + + return FALSE; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_other_removable_devices_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + int old_sel = 0; + int b = 0; + int assign = 0; + uint32_t b2 = 0; + const uint8_t mo_icons[3] = { 251, 56, 0 }; + const uint8_t zip_icons[3] = { 250, 48, 0 }; + + switch (message) { + case WM_INITDIALOG: + ignore_change = 1; + + lv1_current_sel = 0; + win_settings_mo_drives_init_columns(hdlg); + image_list_init(hdlg, IDC_LIST_MO_DRIVES, (const uint8_t *) mo_icons); + win_settings_mo_drives_recalc_list(hdlg); + settings_listview_select(hdlg, IDC_LIST_MO_DRIVES, 0); + mo_add_locations(hdlg); + + switch (temp_mo_drives[lv1_current_sel].bus_type) { + default: + case MO_BUS_DISABLED: + b = 0; + break; + case MO_BUS_ATAPI: + b = 1; + break; + case MO_BUS_SCSI: + b = 2; + break; + } + settings_set_cur_sel(hdlg, IDC_COMBO_MO_BUS, b); + mo_recalc_location_controls(hdlg, 0); + + settings_listview_enable_styles(hdlg, IDC_LIST_MO_DRIVES); + + lv2_current_sel = 0; + win_settings_zip_drives_init_columns(hdlg); + image_list_init(hdlg, IDC_LIST_ZIP_DRIVES, (const uint8_t *) zip_icons); + win_settings_zip_drives_recalc_list(hdlg); + settings_listview_select(hdlg, IDC_LIST_ZIP_DRIVES, 0); + zip_add_locations(hdlg); + + switch (temp_zip_drives[lv2_current_sel].bus_type) { + default: + case ZIP_BUS_DISABLED: + b = 0; + break; + case ZIP_BUS_ATAPI: + b = 1; + break; + case ZIP_BUS_SCSI: + b = 2; + break; + } + settings_set_cur_sel(hdlg, IDC_COMBO_ZIP_BUS, b); + zip_recalc_location_controls(hdlg, 0); + + settings_listview_enable_styles(hdlg, IDC_LIST_ZIP_DRIVES); + + ignore_change = 0; + return TRUE; + + case WM_NOTIFY: + if (ignore_change) + return FALSE; + + if ((((LPNMHDR) lParam)->code == LVN_ITEMCHANGED) && (((LPNMHDR) lParam)->idFrom == IDC_LIST_MO_DRIVES)) { + old_sel = lv1_current_sel; + lv1_current_sel = get_selected_drive(hdlg, IDC_LIST_MO_DRIVES, MO_NUM); + if (lv1_current_sel == old_sel) + return FALSE; + ignore_change = 1; + + switch (temp_mo_drives[lv1_current_sel].bus_type) { + default: + case MO_BUS_DISABLED: + b = 0; + break; + case MO_BUS_ATAPI: + b = 1; + break; + case MO_BUS_SCSI: + b = 2; + break; + } + settings_set_cur_sel(hdlg, IDC_COMBO_MO_BUS, b); + + mo_recalc_location_controls(hdlg, 0); + ignore_change = 0; + } else if ((((LPNMHDR) lParam)->code == LVN_ITEMCHANGED) && (((LPNMHDR) lParam)->idFrom == IDC_LIST_ZIP_DRIVES)) { + old_sel = lv2_current_sel; + lv2_current_sel = get_selected_drive(hdlg, IDC_LIST_ZIP_DRIVES, ZIP_NUM); + if (lv2_current_sel == old_sel) + return FALSE; + ignore_change = 1; + + switch (temp_zip_drives[lv2_current_sel].bus_type) { + default: + case ZIP_BUS_DISABLED: + b = 0; + break; + case ZIP_BUS_ATAPI: + b = 1; + break; + case ZIP_BUS_SCSI: + b = 2; + break; + } + settings_set_cur_sel(hdlg, IDC_COMBO_ZIP_BUS, b); + + zip_recalc_location_controls(hdlg, 0); + ignore_change = 0; + } + break; + + case WM_COMMAND: + if (ignore_change) + return FALSE; + + ignore_change = 1; + switch (LOWORD(wParam)) { + case IDC_COMBO_MO_BUS: + b = settings_get_cur_sel(hdlg, IDC_COMBO_MO_BUS); + switch (b) { + case 0: + b2 = MO_BUS_DISABLED; + break; + case 1: + b2 = MO_BUS_ATAPI; + break; + case 2: + b2 = MO_BUS_SCSI; + break; + } + if (b2 == temp_mo_drives[lv1_current_sel].bus_type) + break; + mo_untrack(lv1_current_sel); + assign = (temp_mo_drives[lv1_current_sel].bus_type == b2) ? 0 : 1; + if (temp_mo_drives[lv1_current_sel].bus_type == MO_BUS_DISABLED) + temp_mo_drives[lv1_current_sel].type = 0; + temp_mo_drives[lv1_current_sel].bus_type = b2; + mo_recalc_location_controls(hdlg, assign); + mo_track(lv1_current_sel); + win_settings_mo_drives_update_item(hdlg, lv1_current_sel); + break; + + case IDC_COMBO_MO_ID: + mo_untrack(lv1_current_sel); + temp_mo_drives[lv1_current_sel].scsi_device_id = settings_get_cur_sel(hdlg, IDC_COMBO_MO_ID); + mo_track(lv1_current_sel); + win_settings_mo_drives_update_item(hdlg, lv1_current_sel); + break; + + case IDC_COMBO_MO_CHANNEL_IDE: + mo_untrack(lv1_current_sel); + temp_mo_drives[lv1_current_sel].ide_channel = settings_get_cur_sel(hdlg, IDC_COMBO_MO_CHANNEL_IDE); + mo_track(lv1_current_sel); + win_settings_mo_drives_update_item(hdlg, lv1_current_sel); + break; + + case IDC_COMBO_MO_TYPE: + temp_mo_drives[lv1_current_sel].type = settings_get_cur_sel(hdlg, IDC_COMBO_MO_TYPE); + win_settings_mo_drives_update_item(hdlg, lv1_current_sel); + break; + + case IDC_COMBO_ZIP_BUS: + b = settings_get_cur_sel(hdlg, IDC_COMBO_ZIP_BUS); + switch (b) { + case 0: + b2 = ZIP_BUS_DISABLED; + break; + case 1: + b2 = ZIP_BUS_ATAPI; + break; + case 2: + b2 = ZIP_BUS_SCSI; + break; + } + if (b2 == temp_zip_drives[lv2_current_sel].bus_type) + break; + zip_untrack(lv2_current_sel); + assign = (temp_zip_drives[lv2_current_sel].bus_type == b2) ? 0 : 1; + temp_zip_drives[lv2_current_sel].bus_type = b2; + zip_recalc_location_controls(hdlg, assign); + zip_track(lv2_current_sel); + win_settings_zip_drives_update_item(hdlg, lv2_current_sel); + break; + + case IDC_COMBO_ZIP_ID: + zip_untrack(lv2_current_sel); + temp_zip_drives[lv2_current_sel].scsi_device_id = settings_get_cur_sel(hdlg, IDC_COMBO_ZIP_ID); + zip_track(lv2_current_sel); + win_settings_zip_drives_update_item(hdlg, lv2_current_sel); + break; + + case IDC_COMBO_ZIP_CHANNEL_IDE: + zip_untrack(lv2_current_sel); + temp_zip_drives[lv2_current_sel].ide_channel = settings_get_cur_sel(hdlg, IDC_COMBO_ZIP_CHANNEL_IDE); + zip_track(lv2_current_sel); + win_settings_zip_drives_update_item(hdlg, lv2_current_sel); + break; + + case IDC_CHECK250: + temp_zip_drives[lv2_current_sel].is_250 = settings_get_check(hdlg, IDC_CHECK250); + win_settings_zip_drives_update_item(hdlg, lv2_current_sel); + break; + } + ignore_change = 0; + + case WM_DPICHANGED_AFTERPARENT: + win_settings_mo_drives_resize_columns(hdlg); + image_list_init(hdlg, IDC_LIST_MO_DRIVES, (const uint8_t *) mo_icons); + win_settings_zip_drives_resize_columns(hdlg); + image_list_init(hdlg, IDC_LIST_ZIP_DRIVES, (const uint8_t *) zip_icons); + break; + default: + return FALSE; + } + + return FALSE; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_peripherals_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM lParam)) +{ + int c; + int d; + int e; + LPTSTR lptsTemp; + char *stransi; + const device_t *dev; + + switch (message) { + case WM_INITDIALOG: + lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR)); + stransi = (char *) malloc(512); + + /* Populate the ISA RTC card dropdown. */ + e = 0; + settings_reset_content(hdlg, IDC_COMBO_ISARTC); + for (d = 0;; d++) { + generate_device_name(isartc_get_device(d), isartc_get_internal_name(d), 0); + + if (!device_name[0]) + break; + dev = isartc_get_device(d); + if (device_is_valid(dev, temp_machine)) { + if (d == 0) { + settings_add_string(hdlg, IDC_COMBO_ISARTC, win_get_string(IDS_2104)); + settings_set_cur_sel(hdlg, IDC_COMBO_ISARTC, 0); + } else + settings_add_string(hdlg, IDC_COMBO_ISARTC, (LPARAM) device_name); + settings_list_to_device[1][e] = d; + if (d == temp_isartc) + settings_set_cur_sel(hdlg, IDC_COMBO_ISARTC, e); + e++; + } + } + settings_enable_window(hdlg, IDC_COMBO_ISARTC, machine_has_bus(temp_machine, MACHINE_BUS_ISA)); + settings_enable_window(hdlg, IDC_CONFIGURE_ISARTC, ((temp_isartc != 0) && machine_has_bus(temp_machine, MACHINE_BUS_ISA))); + + /* Populate the ISA memory card dropdowns. */ + for (c = 0; c < ISAMEM_MAX; c++) { + e = 0; + settings_reset_content(hdlg, IDC_COMBO_ISAMEM_1 + c); + for (d = 0;; d++) { + generate_device_name(isamem_get_device(d), (char *) isamem_get_internal_name(d), 0); + + if (!device_name[0]) + break; + + dev = isamem_get_device(d); + if (device_is_valid(dev, temp_machine)) { + if (d == 0) { + settings_add_string(hdlg, IDC_COMBO_ISAMEM_1 + c, win_get_string(IDS_2104)); + settings_set_cur_sel(hdlg, IDC_COMBO_ISAMEM_1 + c, 0); + } else + settings_add_string(hdlg, IDC_COMBO_ISAMEM_1 + c, (LPARAM) device_name); + settings_list_to_device[0][e] = d; + if (d == temp_isamem[c]) + settings_set_cur_sel(hdlg, IDC_COMBO_ISAMEM_1 + c, e); + e++; + } + } + settings_enable_window(hdlg, IDC_COMBO_ISAMEM_1 + c, machine_has_bus(temp_machine, MACHINE_BUS_ISA)); + settings_enable_window(hdlg, IDC_CONFIGURE_ISAMEM_1 + c, ((temp_isamem[c] != 0) && machine_has_bus(temp_machine, MACHINE_BUS_ISA))); + } + + settings_enable_window(hdlg, IDC_CHECK_BUGGER, machine_has_bus(temp_machine, MACHINE_BUS_ISA)); + settings_set_check(hdlg, IDC_CHECK_BUGGER, (temp_bugger && machine_has_bus(temp_machine, MACHINE_BUS_ISA))); + settings_set_check(hdlg, IDC_CHECK_POSTCARD, temp_postcard); + + free(stransi); + free(lptsTemp); + + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDC_CONFIGURE_ISARTC: + temp_isartc = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_ISARTC)]; + temp_deviceconfig |= deviceconfig_open(hdlg, (void *) isartc_get_device(temp_isartc)); + break; + + case IDC_COMBO_ISARTC: + temp_isartc = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_ISARTC)]; + settings_enable_window(hdlg, IDC_CONFIGURE_ISARTC, temp_isartc != 0); + break; + + case IDC_COMBO_ISAMEM_1: + case IDC_COMBO_ISAMEM_2: + case IDC_COMBO_ISAMEM_3: + case IDC_COMBO_ISAMEM_4: + c = LOWORD(wParam) - IDC_COMBO_ISAMEM_1; + temp_isamem[c] = settings_list_to_device[0][settings_get_cur_sel(hdlg, LOWORD(wParam))]; + settings_enable_window(hdlg, IDC_CONFIGURE_ISAMEM_1 + c, temp_isamem[c] != 0); + break; + + case IDC_CONFIGURE_ISAMEM_1: + case IDC_CONFIGURE_ISAMEM_2: + case IDC_CONFIGURE_ISAMEM_3: + case IDC_CONFIGURE_ISAMEM_4: + c = LOWORD(wParam) - IDC_CONFIGURE_ISAMEM_1; + temp_deviceconfig |= deviceconfig_inst_open(hdlg, (void *) isamem_get_device(temp_isamem[c]), c + 1); + break; + } + return FALSE; + + case WM_SAVESETTINGS: + temp_isartc = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_ISARTC)]; + for (c = 0; c < ISAMEM_MAX; c++) { + temp_isamem[c] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_ISAMEM_1 + c)]; + } + temp_bugger = settings_get_check(hdlg, IDC_CHECK_BUGGER); + temp_postcard = settings_get_check(hdlg, IDC_CHECK_POSTCARD); + + default: + return FALSE; + } + return FALSE; +} + +void +win_settings_show_child(HWND hwndParent, DWORD child_id) +{ + if (child_id == displayed_category) + return; + else + displayed_category = child_id; + + SendMessage(hwndChildDialog, WM_SAVESETTINGS, 0, 0); + + DestroyWindow(hwndChildDialog); + + switch (child_id) { + case SETTINGS_PAGE_MACHINE: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_MACHINE, hwndParent, win_settings_machine_proc); + break; + case SETTINGS_PAGE_VIDEO: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_VIDEO, hwndParent, win_settings_video_proc); + break; + case SETTINGS_PAGE_INPUT: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_INPUT, hwndParent, win_settings_input_proc); + break; + case SETTINGS_PAGE_SOUND: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_SOUND, hwndParent, win_settings_sound_proc); + break; + case SETTINGS_PAGE_NETWORK: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_NETWORK, hwndParent, win_settings_network_proc); + break; + case SETTINGS_PAGE_PORTS: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_PORTS, hwndParent, win_settings_ports_proc); + break; + case SETTINGS_PAGE_STORAGE: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_STORAGE, hwndParent, win_settings_storage_proc); + break; + case SETTINGS_PAGE_HARD_DISKS: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_HARD_DISKS, hwndParent, win_settings_hard_disks_proc); + break; + case SETTINGS_PAGE_FLOPPY_AND_CDROM_DRIVES: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_FLOPPY_AND_CDROM_DRIVES, hwndParent, win_settings_floppy_and_cdrom_drives_proc); + break; + case SETTINGS_PAGE_OTHER_REMOVABLE_DEVICES: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_OTHER_REMOVABLE_DEVICES, hwndParent, win_settings_other_removable_devices_proc); + break; + case SETTINGS_PAGE_PERIPHERALS: + hwndChildDialog = CreateDialog(hinstance, (LPCWSTR) DLG_CFG_PERIPHERALS, hwndParent, win_settings_peripherals_proc); + break; + default: + fatal("Invalid child dialog ID\n"); + return; + } + + ShowWindow(hwndChildDialog, SW_SHOWNORMAL); +} + +static BOOL +win_settings_main_insert_categories(HWND hwndList) +{ + LVITEM lvI; + + lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; + lvI.stateMask = lvI.iSubItem = lvI.state = 0; + + for (uint8_t i = 0; i < 11; i++) { + lvI.pszText = plat_get_string(IDS_2065 + i); + lvI.iItem = i; + lvI.iImage = i; + + if (ListView_InsertItem(hwndList, &lvI) == -1) + return FALSE; + } + + return TRUE; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_confirm(HWND hdlg) +{ + int i; + + SendMessage(hwndChildDialog, WM_SAVESETTINGS, 0, 0); + + if (win_settings_changed()) { + if (confirm_save && !settings_only) + i = settings_msgbox_ex(MBX_QUESTION_OK | MBX_WARNING | MBX_DONTASK, (wchar_t *) IDS_2122, (wchar_t *) IDS_2123, (wchar_t *) IDS_2124, NULL, NULL); + else + i = 0; + + if (i == 10) { + confirm_save = 0; + i = 0; + } + + if (i == 0) + win_settings_save(); + else + return FALSE; + } + + DestroyWindow(hwndChildDialog); + EndDialog(hdlg, 0); + win_notify_dlg_closed(); + return TRUE; +} + +static void +win_settings_categories_resize_columns(HWND hdlg) +{ + HWND hwndList = GetDlgItem(hdlg, IDC_SETTINGSCATLIST); + RECT r; + + GetWindowRect(hwndList, &r); + ListView_SetColumnWidth(hwndList, 0, (r.right - r.left) + 1 - 5); +} + +static BOOL +win_settings_categories_init_columns(HWND hdlg) +{ + LVCOLUMN lvc; + int iCol = 0; + HWND hwndList = GetDlgItem(hdlg, IDC_SETTINGSCATLIST); + + lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; + + lvc.iSubItem = 0; + lvc.pszText = plat_get_string(2048); + + lvc.cx = 171; + lvc.fmt = LVCFMT_LEFT; + + if (ListView_InsertColumn(hwndList, iCol, &lvc) == -1) + return FALSE; + + win_settings_categories_resize_columns(hdlg); + return TRUE; +} + +#if defined(__amd64__) || defined(__aarch64__) +static LRESULT CALLBACK +#else +static BOOL CALLBACK +#endif +win_settings_main_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + HWND h = NULL; + int category; + int j = 0; + const uint8_t cat_icons[12] = { 240, 241, 242, 243, 96, 244, 252, 80, 246, 247, 245, 0 }; + + hwndParentDialog = hdlg; + + switch (message) { + case WM_INITDIALOG: + dpi = win_get_dpi(hdlg); + win_settings_init(); + displayed_category = -1; + h = GetDlgItem(hdlg, IDC_SETTINGSCATLIST); + win_settings_categories_init_columns(hdlg); + image_list_init(hdlg, IDC_SETTINGSCATLIST, (const uint8_t *) cat_icons); + win_settings_main_insert_categories(h); + settings_listview_select(hdlg, IDC_SETTINGSCATLIST, first_cat); + settings_listview_enable_styles(hdlg, IDC_SETTINGSCATLIST); + return TRUE; + case WM_NOTIFY: + if ((((LPNMHDR) lParam)->code == LVN_ITEMCHANGED) && (((LPNMHDR) lParam)->idFrom == IDC_SETTINGSCATLIST)) { + category = -1; + for (uint8_t i = 0; i < 11; i++) { + h = GetDlgItem(hdlg, IDC_SETTINGSCATLIST); + j = ListView_GetItemState(h, i, LVIS_SELECTED); + if (j) + category = i; + } + if (category != -1) + win_settings_show_child(hdlg, category); + } + break; + case WM_CLOSE: + DestroyWindow(hwndChildDialog); + EndDialog(hdlg, 0); + win_notify_dlg_closed(); + return TRUE; + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + return win_settings_confirm(hdlg); + case IDCANCEL: + DestroyWindow(hwndChildDialog); + EndDialog(hdlg, 0); + win_notify_dlg_closed(); + return TRUE; + } + break; + + case WM_DPICHANGED: + dpi = HIWORD(wParam); + win_settings_categories_resize_columns(hdlg); + image_list_init(hdlg, IDC_SETTINGSCATLIST, (const uint8_t *) cat_icons); + break; + default: + return FALSE; + } + + return FALSE; +} + +void +win_settings_open_ex(HWND hwnd, int category) +{ + win_notify_dlg_open(); + + first_cat = category; + DialogBox(hinstance, (LPCWSTR) DLG_CONFIG, hwnd, win_settings_main_proc); +} + +void +win_settings_open(HWND hwnd) +{ + win_settings_open_ex(hwnd, SETTINGS_PAGE_MACHINE); +} From eb0d8cab7693c898cc0c1b25f9e6c1941627ee86 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Mon, 21 Aug 2023 02:11:44 +0300 Subject: [PATCH 02/18] Remove backslash added by mistake --- src/win/win_settings.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/win/win_settings.c b/src/win/win_settings.c index 00b30bf5cc..80e45c8e2f 100644 --- a/src/win/win_settings.c +++ b/src/win/win_settings.c @@ -730,7 +730,7 @@ win_settings_machine_recalc_fpu(HWND hdlg) c++; } - settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? TRUE : temp_fpu_softfloat));\ + settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? TRUE : temp_fpu_softfloat)); settings_set_check(hdlg, IDC_CHECK_CACHE, temp_cache); settings_enable_window(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? FALSE : TRUE)); From 6fa60ea67c1ca4d072c2ff553d73b4b4c286e018 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Mon, 21 Aug 2023 02:14:23 +0300 Subject: [PATCH 03/18] Update README.md --- README.md | 75 +------------------------------------------------------ 1 file changed, 1 insertion(+), 74 deletions(-) diff --git a/README.md b/README.md index b4b4142be5..cbe345858d 100644 --- a/README.md +++ b/README.md @@ -1,74 +1 @@ -86Box -===== - -[![Build Status](https://ci.86box.net/job/86Box/badge/icon)](https://ci.86box.net/job/86Box/) -[![License](https://img.shields.io/github/license/86Box/86Box)](COPYING) [![Latest release](https://img.shields.io/github/release/86Box/86Box.svg)](https://github.com/86Box/86Box/releases) [![Downloads](https://img.shields.io/github/downloads/86Box/86Box/total.svg)](https://github.com/86Box/86Box/releases) - -**86Box** is a low level x86 emulator that runs older operating systems and software designed for IBM PC systems and compatibles from 1981 through fairly recent system designs based on the PCI bus. - -Features --------- - -* Easy to use interface inspired by mainstream hypervisor software -* Low level emulation of 8086-based processors up to the Mendocino-era Celeron with focus on accuracy -* Great range of customizability of virtual machines -* Many available systems, such as the very first IBM PC 5150 from 1981, or the more obscure IBM PS/2 line of systems based on the Micro Channel Architecture -* Lots of supported peripherals including video adapters, sound cards, network adapters, hard disk controllers, and SCSI adapters -* MIDI output to Windows built-in MIDI support, FluidSynth, or emulated Roland synthesizers -* Supports running MS-DOS, older Windows versions, OS/2, many Linux distributions, or vintage systems such as BeOS or NEXTSTEP, and applications for these systems - -Minimum system requirements and recommendations ------------------------------------------------ - -* Intel Core 2 or AMD Athlon 64 processor or newer -* Windows version: Windows 7 Service Pack 1 or later -* Linux version: Ubuntu 16.04, Debian 9.0 or other distributions from 2016 onwards -* macOS version: macOS High Sierra 10.13 or newer -* 4 GB of RAM or higher - -Performance may vary depending on both host and guest configuration. Most emulation logic is executed in a single thread; therefore, systems with better IPC (instructions per clock) generally should be able to emulate higher clock speeds. - -It is also recommended to use a manager application with 86Box for easier handling of multiple virtual machines. - -* [86Box Manager](https://github.com/86Box/86BoxManager) by [Overdoze](https://github.com/daviunic) (Windows only) -* [86Box Manager X](https://github.com/RetBox/86BoxManagerX) by [xafero](https://github.com/xafero) (Cross platform Port of 86Box Manager using Avalonia) -* [sl86](https://github.com/DDXofficial/sl86) by [DDX](https://github.com/DDXofficial) (Command-line 86Box machine manager written in Python) -* [Linbox-qt5](https://github.com/Dungeonseeker/linbox-qt5) by [Dungeonseeker](https://github.com/Dungeonseeker/) (Linux focused, should work on Windows though untested) -* [MacBox for 86Box](https://github.com/Moonif/MacBox) by [Moonif](https://github.com/Moonif) (MacOS only) - -It is also possible to use 86Box on its own with the `--vmpath`/`-P` command line option. - -Getting started ---------------- - -See [our documentation](https://86box.readthedocs.io/en/latest/index.html) for an overview of the emulator's features and user interface. - -Community ---------- - -We operate an IRC channel and a Discord server for discussing 86Box, its development and anything related to retro computing. We look forward to hearing from you! - -[![Visit our IRC channel](https://kiwiirc.com/buttons/irc.ringoflightning.net/86Box.png)](https://kiwiirc.com/client/irc.ringoflightning.net/?nick=86box|?#86Box) - -[![Visit our Discord server](https://discordapp.com/api/guilds/262614059009048590/embed.png)](https://discord.gg/QXK9XTv) - -Contributions ---------- - -We welcome all contributions to the project, as long as the [contribution guidelines](CONTRIBUTING.md) are followed. - -Licensing ---------- - -86Box is released under the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or later. For more information, see the `COPYING` file in the root of the repository. - -The emulator can also optionally make use of [munt](https://github.com/munt/munt), [FluidSynth](https://www.fluidsynth.org/), [Ghostscript](https://www.ghostscript.com/) and [Discord Game SDK](https://discord.com/developers/docs/game-sdk/sdk-starter-guide), which are distributed under their respective licenses. - -Donations ---------- - -We do not charge you for the emulator but donations are still welcome: -. - -You can also support the project on Patreon: -. +See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. From cd04345ba31caa8e8a1d63656e4d9568fbd1bce4 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Mon, 21 Aug 2023 02:22:27 +0300 Subject: [PATCH 04/18] Forgot additional note --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cbe345858d..cb342b97d6 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. +## See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. + +## Unlike the PCem fork, you can configure caching from the settings menu just like you can for the dynamic recompiler. From 38ba2b071f419dde8f19c839ff708490fbb10212 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Tue, 22 Aug 2023 00:58:52 +0300 Subject: [PATCH 05/18] Increase reliability of input with caching enabled --- src/device/keyboard.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/device/keyboard.c b/src/device/keyboard.c index 5f9986d7bb..8dddac16d1 100644 --- a/src/device/keyboard.c +++ b/src/device/keyboard.c @@ -24,6 +24,7 @@ #include #include <86box/86box.h> #include <86box/machine.h> +#include <86box/mem.h> #include <86box/keyboard.h> #include "cpu.h" @@ -73,6 +74,9 @@ keyboard_init(void) memset(keyboard_set3_flags, 0x00, sizeof(keyboard_set3_flags)); keyboard_set3_all_repeat = 0; keyboard_set3_all_break = 0; + + /* Solves the issue of input randomly dying due to memory caching */ + mem_updatecache(); } void @@ -380,4 +384,7 @@ keyboard_ismsexit(void) else return ((recv_key[key_prefix_1_1] || recv_key[key_prefix_1_2]) && (recv_key[key_uncapture_1] || recv_key[key_uncapture_2])); + + /* Solves the issue of input randomly dying due to memory caching */ + mem_updatecache(); } From dd0163e60c1b1a1a2a092e5248bb60e400505fe8 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Tue, 22 Aug 2023 01:14:39 +0300 Subject: [PATCH 06/18] Revert "Forgot additional note" This reverts commit dd0415cfb5e43855e8437f71619479e48c191698. --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index cb342b97d6..cbe345858d 100644 --- a/README.md +++ b/README.md @@ -1,3 +1 @@ -## See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. - -## Unlike the PCem fork, you can configure caching from the settings menu just like you can for the dynamic recompiler. +See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. From 5aa3b788a07246bf8346b5bd3918c7bd593b51b4 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Tue, 22 Aug 2023 01:14:42 +0300 Subject: [PATCH 07/18] Revert "Update README.md" This reverts commit f63338fbedd63d1f09d90227e8cd55169186dec4. --- README.md | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cbe345858d..20671420e3 100644 --- a/README.md +++ b/README.md @@ -1 +1,74 @@ -See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. +86Box +===== + +[![Build Status](https://ci.86box.net/job/86Box/badge/icon)](https://ci.86box.net/job/86Box/) +[![License](https://img.shields.io/github/license/86Box/86Box)](COPYING) [![Latest release](https://img.shields.io/github/release/86Box/86Box.svg)](https://github.com/86Box/86Box/releases) [![Downloads](https://img.shields.io/github/downloads/86Box/86Box/total.svg)](https://github.com/86Box/86Box/releases) + +**86Box** is a low level x86 emulator that runs older operating systems and software designed for IBM PC systems and compatibles from 1981 through fairly recent system designs based on the PCI bus. + +Features +-------- + +* Easy to use interface inspired by mainstream hypervisor software +* Low level emulation of 8086-based processors up to the Mendocino-era Celeron with focus on accuracy +* Great range of customizability of virtual machines +* Many available systems, such as the very first IBM PC 5150 from 1981, or the more obscure IBM PS/2 line of systems based on the Micro Channel Architecture +* Lots of supported peripherals including video adapters, sound cards, network adapters, hard disk controllers, and SCSI adapters +* MIDI output to Windows built-in MIDI support, FluidSynth, or emulated Roland synthesizers +* Supports running MS-DOS, older Windows versions, OS/2, many Linux distributions, or vintage systems such as BeOS or NEXTSTEP, and applications for these systems + +Minimum system requirements and recommendations +----------------------------------------------- + +* Intel Core 2 or AMD Athlon 64 processor or newer +* Windows version: Windows 7 Service Pack 1 or later +* Linux version: Ubuntu 16.04, Debian 9.0 or other distributions from 2016 onwards +* macOS version: macOS High Sierra 10.13 or newer +* 4 GB of RAM or higher + +Performance may vary depending on both host and guest configuration. Most emulation logic is executed in a single thread; therefore, systems with better IPC (instructions per clock) generally should be able to emulate higher clock speeds. + +It is also recommended to use a manager application with 86Box for easier handling of multiple virtual machines. + +* [86Box Manager](https://github.com/86Box/86BoxManager) by [Overdoze](https://github.com/daviunic) (Windows only) +* [86Box Manager Lite](https://github.com/insanemal/86box_manager_py) by [Insanemal](https://github.com/insanemal) +* [WinBox for 86Box](https://github.com/86Box/WinBox-for-86Box) by Laci bá' (Windows only) +* [Linbox-qt5](https://github.com/Dungeonseeker/linbox-qt5) by Dungeonseeker (Linux focused, should work on Windows though untested) +* [MacBox for 86Box](https://github.com/Moonif/MacBox) by [Moonif](https://github.com/Moonif) (MacOS only) + +It is also possible to use 86Box on its own with the `--vmpath`/`-P` command line option. + +Getting started +--------------- + +See [our documentation](https://86box.readthedocs.io/en/latest/index.html) for an overview of the emulator's features and user interface. + +Community +--------- + +We operate an IRC channel and a Discord server for discussing 86Box, its development and anything related to retro computing. We look forward to hearing from you! + +[![Visit our IRC channel](https://kiwiirc.com/buttons/irc.ringoflightning.net/86Box.png)](https://kiwiirc.com/client/irc.ringoflightning.net/?nick=86box|?#86Box) + +[![Visit our Discord server](https://discordapp.com/api/guilds/262614059009048590/embed.png)](https://discord.gg/QXK9XTv) + +Contributions +--------- + +We welcome all contributions to the project, as long as the [contribution guidelines](CONTRIBUTING.md) are followed. + +Licensing +--------- + +86Box is released under the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or later. For more information, see the `COPYING` file in the root of the repository. + +The emulator can also optionally make use of [munt](https://github.com/munt/munt), [FluidSynth](https://www.fluidsynth.org/), [Ghostscript](https://www.ghostscript.com/) and [Discord Game SDK](https://discord.com/developers/docs/game-sdk/sdk-starter-guide), which are distributed under their respective licenses. + +Donations +--------- + +We do not charge you for the emulator but donations are still welcome: +https://paypal.me/86Box. + +You can also support the project on Patreon: +https://www.patreon.com/86box. From b8862959a374e4538026f4a37a8a8059ba9f90d5 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Tue, 22 Aug 2023 12:32:04 +0300 Subject: [PATCH 08/18] Fix mistaken double definition of cache variable Should build fine now --- src/86box.c | 3 +-- src/mem/mem.c | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/86box.c b/src/86box.c index fa875c5537..66d3e5d79c 100644 --- a/src/86box.c +++ b/src/86box.c @@ -193,8 +193,7 @@ int cpu_use_dynarec = 0; /* (C) cpu use int cpu = 0; /* (C) cpu type */ int fpu_type = 0; /* (C) fpu type */ int fpu_softfloat = 0; /* (C) fpu uses softfloat */ -int cache = 0; - /* (C) machine uses cache */ +int cache = 0; /* (C) machine uses cache */ int time_sync = 0; /* (C) enable time sync */ int confirm_reset = 1; /* (C) enable reset confirmation */ int confirm_exit = 1; /* (C) enable exit confirmation */ diff --git a/src/mem/mem.c b/src/mem/mem.c index 456bfcff23..399115d669 100644 --- a/src/mem/mem.c +++ b/src/mem/mem.c @@ -99,7 +99,6 @@ int shadowbios_write; int readlnum = 0; int writelnum = 0; int cachesize = 256; -int cache; uint32_t get_phys_virt; uint32_t get_phys_phys; From cd2804d5898581e9bcb89610610854c5723936c4 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Wed, 23 Aug 2023 22:58:55 +0300 Subject: [PATCH 09/18] Fix merge conflict take 2 --- src/include/86box/86box.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h index 32399261e5..3773f4bd31 100644 --- a/src/include/86box/86box.h +++ b/src/include/86box/86box.h @@ -235,4 +235,4 @@ extern uint8_t postcard_codes[POSTCARDS_NUM]; } #endif -#endif /*EMU_86BOX_H*/ +#endif /*EMU_86BOX_H*/ \ No newline at end of file From 89b1f70281bf642806a8af4aef0d0a06e39226ed Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Wed, 23 Aug 2023 22:59:49 +0300 Subject: [PATCH 10/18] Part of fix merge conflict --- src/include/86box/86box.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h index 3773f4bd31..2bea4e90bb 100644 --- a/src/include/86box/86box.h +++ b/src/include/86box/86box.h @@ -143,6 +143,7 @@ extern int cache; /* (C) machine uses cache */ extern int cpu_use_dynarec; /* (C) cpu uses/needs Dyna */ extern int fpu_type; /* (C) fpu type */ extern int fpu_softfloat; /* (C) fpu uses softfloat */ +extern int cache; /* (C) machine uses cache */ extern int time_sync; /* (C) enable time sync */ extern int hdd_format_type; /* (C) hard disk file format */ extern int lba_enhancer_enabled; /* (C) enable Vision Systems LBA Enhancer */ From ce4fda724506813dbe2517f1883bc2808b40f5a3 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Sun, 17 Sep 2023 15:48:18 +0300 Subject: [PATCH 11/18] Update .gitignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 5a43dffdb6..e86a74daf9 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,10 @@ Makefile /src/*.exe /src/86Box /src/include/86box/version.h +/b64 +/bi686 +/bi686_mkb +/bi686_mkb.old # Legacy Makefile /src/*.o From 6cd6a7f000d598842136a5a7ca0c34b6e406547a Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Sun, 17 Sep 2023 16:12:42 +0300 Subject: [PATCH 12/18] Fix messed up config.c after merge --- src/config.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/config.c b/src/config.c index 2edbaf16aa..5ed3d600db 100644 --- a/src/config.c +++ b/src/config.c @@ -388,10 +388,9 @@ load_machine(void) mem_size = machine_get_max_ram(machine); cpu_use_dynarec = !!ini_section_get_int(cat, "cpu_use_dynarec", 0); + fpu_softfloat = !!ini_section_get_int(cat, "fpu_softfloat", 0); cache = !!ini_section_get_int(cat, "cache", 0); if ((fpu_type != FPU_NONE) && machine_has_flags(machine, MACHINE_SOFTFLOAT_ONLY)) - fpu_softfloat = !!ini_section_get_int(cat, "fpu_softfloat", 0); - if (machine_has_flags(machine, MACHINE_SOFTFLOAT_ONLY)) fpu_softfloat = 1; From 33a2aecaad1e79fb5ed9caf1da7135a0e27d7f25 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Mon, 18 Sep 2023 11:27:22 +0300 Subject: [PATCH 13/18] Refix .gitignore to better suit my build needs --- .gitignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e86a74daf9..eaefeb5a9f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,9 @@ Makefile /src/86Box /src/include/86box/version.h /b64 +/b64_qt /bi686 -/bi686_mkb -/bi686_mkb.old +/bi686_qt # Legacy Makefile /src/*.o From 9759d573949f72df6d41f4cf3aaec4f99dc47b36 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Sun, 17 Sep 2023 16:15:47 +0300 Subject: [PATCH 14/18] Restore modified README.md with note about not merging into upstream --- README.md | 75 +++---------------------------------------------------- 1 file changed, 3 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index 20671420e3..53a7ad4bd9 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,5 @@ -86Box -===== +## See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. -[![Build Status](https://ci.86box.net/job/86Box/badge/icon)](https://ci.86box.net/job/86Box/) -[![License](https://img.shields.io/github/license/86Box/86Box)](COPYING) [![Latest release](https://img.shields.io/github/release/86Box/86Box.svg)](https://github.com/86Box/86Box/releases) [![Downloads](https://img.shields.io/github/downloads/86Box/86Box/total.svg)](https://github.com/86Box/86Box/releases) +## Unlike the PCem fork, you can configure caching from the settings menu just like you can for the dynamic recompiler. -**86Box** is a low level x86 emulator that runs older operating systems and software designed for IBM PC systems and compatibles from 1981 through fairly recent system designs based on the PCI bus. - -Features --------- - -* Easy to use interface inspired by mainstream hypervisor software -* Low level emulation of 8086-based processors up to the Mendocino-era Celeron with focus on accuracy -* Great range of customizability of virtual machines -* Many available systems, such as the very first IBM PC 5150 from 1981, or the more obscure IBM PS/2 line of systems based on the Micro Channel Architecture -* Lots of supported peripherals including video adapters, sound cards, network adapters, hard disk controllers, and SCSI adapters -* MIDI output to Windows built-in MIDI support, FluidSynth, or emulated Roland synthesizers -* Supports running MS-DOS, older Windows versions, OS/2, many Linux distributions, or vintage systems such as BeOS or NEXTSTEP, and applications for these systems - -Minimum system requirements and recommendations ------------------------------------------------ - -* Intel Core 2 or AMD Athlon 64 processor or newer -* Windows version: Windows 7 Service Pack 1 or later -* Linux version: Ubuntu 16.04, Debian 9.0 or other distributions from 2016 onwards -* macOS version: macOS High Sierra 10.13 or newer -* 4 GB of RAM or higher - -Performance may vary depending on both host and guest configuration. Most emulation logic is executed in a single thread; therefore, systems with better IPC (instructions per clock) generally should be able to emulate higher clock speeds. - -It is also recommended to use a manager application with 86Box for easier handling of multiple virtual machines. - -* [86Box Manager](https://github.com/86Box/86BoxManager) by [Overdoze](https://github.com/daviunic) (Windows only) -* [86Box Manager Lite](https://github.com/insanemal/86box_manager_py) by [Insanemal](https://github.com/insanemal) -* [WinBox for 86Box](https://github.com/86Box/WinBox-for-86Box) by Laci bá' (Windows only) -* [Linbox-qt5](https://github.com/Dungeonseeker/linbox-qt5) by Dungeonseeker (Linux focused, should work on Windows though untested) -* [MacBox for 86Box](https://github.com/Moonif/MacBox) by [Moonif](https://github.com/Moonif) (MacOS only) - -It is also possible to use 86Box on its own with the `--vmpath`/`-P` command line option. - -Getting started ---------------- - -See [our documentation](https://86box.readthedocs.io/en/latest/index.html) for an overview of the emulator's features and user interface. - -Community ---------- - -We operate an IRC channel and a Discord server for discussing 86Box, its development and anything related to retro computing. We look forward to hearing from you! - -[![Visit our IRC channel](https://kiwiirc.com/buttons/irc.ringoflightning.net/86Box.png)](https://kiwiirc.com/client/irc.ringoflightning.net/?nick=86box|?#86Box) - -[![Visit our Discord server](https://discordapp.com/api/guilds/262614059009048590/embed.png)](https://discord.gg/QXK9XTv) - -Contributions ---------- - -We welcome all contributions to the project, as long as the [contribution guidelines](CONTRIBUTING.md) are followed. - -Licensing ---------- - -86Box is released under the [GNU General Public License, version 2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html) or later. For more information, see the `COPYING` file in the root of the repository. - -The emulator can also optionally make use of [munt](https://github.com/munt/munt), [FluidSynth](https://www.fluidsynth.org/), [Ghostscript](https://www.ghostscript.com/) and [Discord Game SDK](https://discord.com/developers/docs/game-sdk/sdk-starter-guide), which are distributed under their respective licenses. - -Donations ---------- - -We do not charge you for the emulator but donations are still welcome: -https://paypal.me/86Box. - -You can also support the project on Patreon: -https://www.patreon.com/86box. +Note: this won't be merged to 86box anymore. I'll try my best to keep it synced with master. I personally don't use it as much because of crap PS/2 emulation in 86box which just 'dies' suddenly. Could be related to the caching thing (I don't really have the capability to investigate). From 751b1e87b3fd03c2988430c5b7a58beef0a6295d Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Sun, 17 Sep 2023 16:16:14 +0300 Subject: [PATCH 15/18] Dumb GitHub repeated same content twice for some reason --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53a7ad4bd9..4d2959e830 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. +## See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. ## Unlike the PCem fork, you can configure caching from the settings menu just like you can for the dynamic recompiler. From 66c15c93f42fb7ccecbff46a1e33310c4512f804 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Fri, 24 Nov 2023 15:54:06 +0200 Subject: [PATCH 16/18] optim branch ignored --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index eaefeb5a9f..9944002085 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ Makefile /b64_qt /bi686 /bi686_qt +/bi686_optim # Legacy Makefile /src/*.o From e9cb3640f672f0440953984e8c496f4b5a252996 Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Mon, 27 Nov 2023 18:07:18 +0200 Subject: [PATCH 17/18] Update README note --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4d2959e830..8b71abb2f9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ ## See [this](https://github.com/1ahmadbassam/pcem_cache/blob/dev/README.md) for a description of what this is and [this](https://86box.readthedocs.io/en/latest/dev/buildguide.html) for building. -## Unlike the PCem fork, you can configure caching from the settings menu just like you can for the dynamic recompiler. +_Unlike the PCem fork, you can configure caching from the settings menu just like you can for the dynamic recompiler._ -Note: this won't be merged to 86box anymore. I'll try my best to keep it synced with master. I personally don't use it as much because of crap PS/2 emulation in 86box which just 'dies' suddenly. Could be related to the caching thing (I don't really have the capability to investigate). +Note: this won't be merged to 86box anymore. I still maintain this anyway. I personally do not prefer to use the caching feature as this severly impacts the performance of the emulated CPU, but in some cases this is okay and perfectly useful (such as using Windows XP on a P300, for example). +Note: I also build 86box optimized, which I recommend you to do as it also helps immensely with perfomance. \ No newline at end of file From 7c7ee1a93a452b40488d455abe66cf05e8c9079c Mon Sep 17 00:00:00 2001 From: Ahmad Bassam El Bizri <34858431+1ahmadbassam@users.noreply.github.com> Date: Tue, 2 Jan 2024 21:04:34 +0200 Subject: [PATCH 18/18] custom build stuff --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 9944002085..2164c7d00a 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,5 @@ CMakeLists.txt.user # clangd .cache +build.ninja +config