diff --git a/src/86box.c b/src/86box.c
index 55477b849..045b3bd0a 100644
--- a/src/86box.c
+++ b/src/86box.c
@@ -167,9 +167,7 @@ int time_sync = 0; /* (C) enable time sync */
int confirm_reset = 1; /* (C) enable reset confirmation */
int confirm_exit = 1; /* (C) enable exit confirmation */
int confirm_save = 1; /* (C) enable save confirmation */
-#ifdef USE_DISCORD
int enable_discord = 0; /* (C) enable Discord integration */
-#endif
int enable_crashdump = 0; /* (C) enable crash dump */
/* Statistics. */
diff --git a/src/chipset/opti283.c b/src/chipset/opti283.c
index 1e48975b7..1ac1fdfc0 100644
--- a/src/chipset/opti283.c
+++ b/src/chipset/opti283.c
@@ -131,18 +131,25 @@ opti283_shadow_recalc(opti283_t *dev)
shadowbios = shadowbios_write = 0;
dev->shadow_high = 0;
+ opti283_log("OPTI 283: %02X %02X %02X %02X\n", dev->regs[0x11], dev->regs[0x12], dev->regs[0x13], dev->regs[0x14]);
+
if (dev->regs[0x11] & 0x80) {
mem_set_mem_state_both(0xf0000, 0x10000, MEM_READ_EXTANY | MEM_WRITE_INTERNAL);
+ opti283_log("OPTI 283: F0000-FFFFF READ_EXTANY, WRITE_INTERNAL\n");
shadowbios_write = 1;
} else {
shadowbios = 1;
if (dev->regs[0x14] & 0x80) {
mem_set_mem_state_both(0xf0000, 0x01000, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL);
+ opti283_log("OPTI 283: F0000-F0FFF READ_INTERNAL, WRITE_INTERNAL\n");
shadowbios_write = 1;
- } else
+ } else {
mem_set_mem_state_both(0xf0000, 0x01000, MEM_READ_INTERNAL | MEM_WRITE_DISABLED);
+ opti283_log("OPTI 283: F0000-F0FFF READ_INTERNAL, WRITE_DISABLED\n");
+ }
mem_set_mem_state_both(0xf1000, 0x0f000, MEM_READ_INTERNAL | MEM_WRITE_DISABLED);
+ opti283_log("OPTI 283: F1000-FFFFF READ_INTERNAL, WRITE_DISABLED\n");
}
sh_copy = dev->regs[0x11] & 0x08;
@@ -154,7 +161,7 @@ opti283_shadow_recalc(opti283_t *dev)
sh_enable = dev->regs[0x13] & (1 << (i + 4));
sh_mode = dev->regs[0x11] & (1 << (i >> 2));
rom = dev->regs[0x11] & (1 << ((i >> 2) + 4));
- pclog("OPTI 283: %i/%08X: %i, %i, %i\n", i, base, (i >= 4) ? (1 << (i - 4)) : (1 << (i + 4)), (1 << (i >> 2)), (1 << ((i >> 2) + 4)));
+ opti283_log("OPTI 283: %i/%08X: %i, %i, %i\n", i, base, (i >= 4) ? (1 << (i - 4)) : (1 << (i + 4)), (1 << (i >> 2)), (1 << ((i >> 2) + 4)));
if (sh_enable && rom) {
if (base >= 0x000e0000)
@@ -163,20 +170,28 @@ opti283_shadow_recalc(opti283_t *dev)
dev->shadow_high |= 1;
if (sh_mode) {
+ mem_set_mem_state_both(base, 0x4000, MEM_READ_INTERNAL | MEM_WRITE_DISABLED);
+ opti283_log("OPTI 283: %08X-%08X READ_INTERNAL, WRITE_DISABLED\n", base, base + 0x3fff);
+ } else {
if (base >= 0x000e0000)
shadowbios_write |= 1;
- if (sh_copy)
+ if (sh_copy) {
mem_set_mem_state_both(base, 0x4000, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL);
- else
+ opti283_log("OPTI 283: %08X-%08X READ_INTERNAL, WRITE_INTERNAL\n", base, base + 0x3fff);
+ } else {
mem_set_mem_state_both(base, 0x4000, MEM_READ_INTERNAL | MEM_WRITE_EXTERNAL);
- } else
- mem_set_mem_state_both(base, 0x4000, MEM_READ_INTERNAL | MEM_WRITE_DISABLED);
+ opti283_log("OPTI 283: %08X-%08X READ_INTERNAL, WRITE_EXTERNAL\n", base, base + 0x3fff);
+ }
+ }
} else {
- if (base >= 0xe0000)
+ if (base >= 0xe0000) {
mem_set_mem_state_both(base, 0x4000, MEM_READ_EXTANY | MEM_WRITE_DISABLED);
- else
+ opti283_log("OPTI 283: %08X-%08X READ_EXTANY, WRITE_DISABLED\n", base, base + 0x3fff);
+ } else {
mem_set_mem_state_both(base, 0x4000, MEM_READ_EXTERNAL | MEM_WRITE_DISABLED);
+ opti283_log("OPTI 283: %08X-%08X READ_EXTERNAL, WRITE_DISABLED\n", base, base + 0x3fff);
+ }
}
}
@@ -196,6 +211,8 @@ opti283_shadow_recalc(opti283_t *dev)
mem_mapping_disable(&dev->mem_mappings[0]);
mem_mapping_disable(&dev->mem_mappings[1]);
}
+
+ flushmmucache_nopc();
}
diff --git a/src/chipset/sis_85c496.c b/src/chipset/sis_85c496.c
index e06dc54c5..33225e4a2 100644
--- a/src/chipset/sis_85c496.c
+++ b/src/chipset/sis_85c496.c
@@ -608,7 +608,7 @@ static void
ide_sec_disable();
if (info->local)
- dev->nvr = device_add(&ls486e_nvr_device);
+ dev->nvr = device_add(&ami_1994_nvr_device);
else
dev->nvr = device_add(&at_nvr_device);
diff --git a/src/config.c b/src/config.c
index f392c1e11..6c494a312 100644
--- a/src/config.c
+++ b/src/config.c
@@ -579,15 +579,11 @@ load_general(void)
else
strcpy(icon_set, "");
-#if USE_DISCORD
enable_discord = !!config_get_int(cat, "enable_discord", 0);
-#endif
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
video_framerate = config_get_int(cat, "video_gl_framerate", -1);
video_vsync = config_get_int(cat, "video_gl_vsync", 0);
- strcpy_s(video_shader, sizeof(video_shader), config_get_string(cat, "video_gl_shader", ""));
-#endif
+ strncpy(video_shader, config_get_string(cat, "video_gl_shader", ""), sizeof(video_shader));
}
@@ -1159,12 +1155,12 @@ load_storage_controllers(void)
if (strlen(p) > 511)
fatal("load_storage_controllers(): strlen(p) > 511\n");
else
- strncpy(cassette_fname, p, MIN(511, strlen(p) + 1));
+ strncpy(cassette_fname, p, MIN(512, strlen(p) + 1));
p = config_get_string(cat, "cassette_mode", "");
if (strlen(p) > 511)
fatal("load_storage_controllers(): strlen(p) > 511\n");
else
- strncpy(cassette_mode, p, MIN(511, strlen(p) + 1));
+ strncpy(cassette_mode, p, MIN(512, strlen(p) + 1));
cassette_pos = config_get_int(cat, "cassette_position", 0);
cassette_srate = config_get_int(cat, "cassette_srate", 44100);
cassette_append = !!config_get_int(cat, "cassette_append", 0);
@@ -2243,14 +2239,11 @@ save_general(void)
else
config_set_string(cat, "iconset", icon_set);
-#if USE_DISCORD
if (enable_discord)
config_set_int(cat, "enable_discord", enable_discord);
else
config_delete_var(cat, "enable_discord");
-#endif
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
if (video_framerate != -1)
config_set_int(cat, "video_gl_framerate", video_framerate);
else
@@ -2263,7 +2256,6 @@ save_general(void)
config_set_string(cat, "video_gl_shader", video_shader);
else
config_delete_var(cat, "video_gl_shader");
-#endif
delete_section_if_empty(cat);
}
diff --git a/src/device/keyboard_at.c b/src/device/keyboard_at.c
index 36921ef9a..0b9e85eab 100644
--- a/src/device/keyboard_at.c
+++ b/src/device/keyboard_at.c
@@ -679,17 +679,21 @@ add_to_kbc_queue_front(atkbd_t *dev, uint8_t val, uint8_t channel, uint8_t stat_
if (channel == 2) {
if (dev->mem[0] & 0x02)
picint(0x1000);
- dev->last_irq = 0x1000;
+ if (kbc_ven != KBC_VEN_OLIVETTI)
+ dev->last_irq = 0x1000;
} else {
if (dev->mem[0] & 0x01)
picint(2);
- dev->last_irq = 2;
+ if (kbc_ven != KBC_VEN_OLIVETTI)
+ dev->last_irq = 2;
}
dev->out = val;
if (channel == 2)
dev->status = (dev->status & ~STAT_IFULL) | (STAT_OFULL | STAT_MFULL) | stat_hi;
else
dev->status = (dev->status & ~(STAT_IFULL | STAT_MFULL)) | STAT_OFULL | stat_hi;
+ if (kbc_ven == KBC_VEN_OLIVETTI)
+ dev->last_irq = 0x0000;
}
@@ -1382,7 +1386,7 @@ write64_ami(void *priv, uint8_t val)
case 0xa1: /* get controller version */
kbd_log("ATkbc: AMI - get controller version\n");
- add_data(dev, 'Z');
+ add_data(dev, 'H');
return 0;
case 0xa2: /* clear keyboard controller lines P22/P23 */
diff --git a/src/device/mouse_serial.c b/src/device/mouse_serial.c
index 8535e3466..32b0f6341 100644
--- a/src/device/mouse_serial.c
+++ b/src/device/mouse_serial.c
@@ -174,7 +174,7 @@ sermouse_callback(struct serial_s *serial, void *priv)
dev->transmit_period = sermouse_transmit_period(dev, 1200, -1);
timer_stop(&dev->command_timer);
#ifdef USE_NEW_DYNAREC
- sermouse_timer_on(dev, 5000.0, 0);
+ sermouse_timer_on(dev, cpu_use_dynarec ? 5000.0 : dev->transmit_period, 0);
#else
sermouse_timer_on(dev, dev->transmit_period, 0);
#endif
diff --git a/src/include/86box/86box.h b/src/include/86box/86box.h
index f56757f38..e5f0bac94 100644
--- a/src/include/86box/86box.h
+++ b/src/include/86box/86box.h
@@ -134,9 +134,7 @@ extern int hdd_format_type; /* (C) hard disk file format */
extern int confirm_reset, /* (C) enable reset confirmation */
confirm_exit, /* (C) enable exit confirmation */
confirm_save; /* (C) enable save confirmation */
-#ifdef USE_DISCORD
extern int enable_discord; /* (C) enable Discord integration */
-#endif
extern int enable_crashdump; /* (C) enable crash dump */
extern int is_pentium; /* TODO: Move back to cpu/cpu.h when it's figured out,
diff --git a/src/include/86box/nvr.h b/src/include/86box/nvr.h
index 386954b54..82bdb01c3 100644
--- a/src/include/86box/nvr.h
+++ b/src/include/86box/nvr.h
@@ -92,8 +92,9 @@ extern const device_t ps_nvr_device;
extern const device_t amstrad_nvr_device;
extern const device_t ibmat_nvr_device;
extern const device_t piix4_nvr_device;
-extern const device_t ls486e_nvr_device;
-extern const device_t ami_apollo_nvr_device;
+extern const device_t ami_1992_nvr_device;
+extern const device_t ami_1994_nvr_device;
+extern const device_t ami_1995_nvr_device;
extern const device_t via_nvr_device;
extern const device_t p6rp4_nvr_device;
#endif
diff --git a/src/include/86box/resource.h b/src/include/86box/resource.h
index 1d84cd60b..b5a67b85b 100644
--- a/src/include/86box/resource.h
+++ b/src/include/86box/resource.h
@@ -353,13 +353,10 @@
#define IDM_MEDIA 40087
#define IDM_DOCS 40088
-#ifdef USE_DISCORD
#define IDM_DISCORD 40090
-#endif
#define IDM_PREFERENCES 40091
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
#define IDM_VID_GL_FPS_BLITTER 40100
#define IDM_VID_GL_FPS_25 40101
#define IDM_VID_GL_FPS_30 40102
@@ -369,7 +366,6 @@
#define IDM_VID_GL_VSYNC 40106
#define IDM_VID_GL_SHADER 40107
#define IDM_VID_GL_NOSHADER 40108
-#endif
#define IDM_LOG_BREAKPOINT 51201
#define IDM_DUMP_VRAM 51202 // should be an Action
diff --git a/src/include/86box/win.h b/src/include/86box/win.h
index a71174314..d776cccdf 100644
--- a/src/include/86box/win.h
+++ b/src/include/86box/win.h
@@ -66,9 +66,7 @@ DECLARE_HANDLE(DPI_AWARENESS_CONTEXT);
#define ZIP_SUBMENU_NAME L"ZIPSubmenu"
#define MO_SUBMENU_NAME L"MOSubmenu"
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
#define VID_GL_SUBMENU L"VidGLSubMenu"
-#endif
/* Application-specific window messages.
diff --git a/src/machine/m_at_386dx_486.c b/src/machine/m_at_386dx_486.c
index ae9b364bd..ee9a5e489 100644
--- a/src/machine/m_at_386dx_486.c
+++ b/src/machine/m_at_386dx_486.c
@@ -253,7 +253,7 @@ machine_at_rycleopardlx_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- machine_at_common_ide_init(model);
+ machine_at_common_init(model);
device_add(&opti283_device);
device_add(&keyboard_at_ami_device);
@@ -609,7 +609,7 @@ machine_at_403tg_common_init(const machine_t *model, int nvr_hack)
{
if (nvr_hack) {
machine_at_common_init_ex(model, 2);
- device_add(&ls486e_nvr_device);
+ device_add(&ami_1994_nvr_device);
} else
machine_at_common_init(model);
@@ -1158,7 +1158,8 @@ machine_at_pci400cb_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- machine_at_common_init(model);
+ machine_at_common_init_ex(model, 2);
+ device_add(&ami_1994_nvr_device);
device_add(&ide_isa_device);
pci_init(PCI_CONFIG_TYPE_1);
@@ -1190,7 +1191,8 @@ machine_at_g486ip_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- machine_at_common_init(model);
+ machine_at_common_init_ex(model, 2);
+ device_add(&ami_1992_nvr_device);
device_add(&ide_isa_device);
pci_init(PCI_CONFIG_TYPE_1);
diff --git a/src/machine/m_at_socket4.c b/src/machine/m_at_socket4.c
index 30b76cf7a..9b7592cd6 100644
--- a/src/machine/m_at_socket4.c
+++ b/src/machine/m_at_socket4.c
@@ -433,7 +433,8 @@ machine_at_excaliburpci2_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- machine_at_common_init(model);
+ machine_at_common_init_ex(model, 2);
+ device_add(&ami_1994_nvr_device);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
diff --git a/src/machine/m_at_socket5.c b/src/machine/m_at_socket5.c
index 2c663cd01..4a1bb9802 100644
--- a/src/machine/m_at_socket5.c
+++ b/src/machine/m_at_socket5.c
@@ -145,7 +145,7 @@ machine_at_apollo_init(const machine_t *model)
return ret;
machine_at_common_init_ex(model, 2);
- device_add(&ami_apollo_nvr_device);
+ device_add(&ami_1995_nvr_device);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
@@ -293,7 +293,8 @@ machine_at_hawk_init(const machine_t *model)
if (bios_only || !ret)
return ret;
- machine_at_common_init(model);
+ machine_at_common_init_ex(model, 2);
+ device_add(&ami_1994_nvr_device);
pci_init(PCI_CONFIG_TYPE_1);
pci_register_slot(0x00, PCI_CARD_NORTHBRIDGE, 0, 0, 0, 0);
diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c
index 4e54bec7c..9e73c7079 100644
--- a/src/machine/machine_table.c
+++ b/src/machine/machine_table.c
@@ -292,7 +292,7 @@ const machine_t machines[] = {
/* 486SLC machines */
/* 486SLC machines with just the ISA slot */
/* Has AMIKey H KBC firmware. */
- { "[OPTi 283] RYC Leopard LX", "rycleopardlx", MACHINE_TYPE_486SLC, CPU_PKG_486SLC_IBM, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT | MACHINE_IDE, 1024, 16384, 1024, 127, machine_at_rycleopardlx_init, NULL },
+ { "[OPTi 283] RYC Leopard LX", "rycleopardlx", MACHINE_TYPE_486SLC, CPU_PKG_486SLC_IBM, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 1024, 127, machine_at_rycleopardlx_init, NULL },
/* 386DX machines */
{ "[ACC 2168] AMI 386DX clone", "acc386", MACHINE_TYPE_386DX, CPU_PKG_386DX, 0, 0, 0, 0, 0, 0, 0, MACHINE_AT, 1024, 16384, 1024, 127, machine_at_acc386_init, NULL },
diff --git a/src/nvr_at.c b/src/nvr_at.c
index 03f3ea6bb..cb85cd2d8 100644
--- a/src/nvr_at.c
+++ b/src/nvr_at.c
@@ -290,10 +290,11 @@
#define RTC_REGS 14 /* number of registers */
-#define FLAG_LS_HACK 0x01
-#define FLAG_APOLLO_HACK 0x02
-#define FLAG_P6RP4_HACK 0x04
-#define FLAG_PIIX4 0x08
+#define FLAG_AMI_1992_HACK 0x01
+#define FLAG_AMI_1994_HACK 0x02
+#define FLAG_AMI_1995_HACK 0x04
+#define FLAG_P6RP4_HACK 0x08
+#define FLAG_PIIX4 0x10
typedef struct {
@@ -563,9 +564,11 @@ timer_tick(nvr_t *nvr)
static void
nvr_reg_common_write(uint16_t reg, uint8_t val, nvr_t *nvr, local_t *local)
{
- if ((reg == 0x2c) && (local->flags & FLAG_LS_HACK))
+ if ((reg == 0x2c) && (local->flags & FLAG_AMI_1994_HACK))
nvr->new = 0;
- if ((reg == 0x52) && (local->flags & FLAG_APOLLO_HACK))
+ if ((reg == 0x2d) && (local->flags & FLAG_AMI_1992_HACK))
+ nvr->new = 0;
+ if ((reg == 0x52) && (local->flags & FLAG_AMI_1995_HACK))
nvr->new = 0;
if ((reg >= 0x38) && (reg <= 0x3f) && local->wp[0])
return;
@@ -587,8 +590,7 @@ nvr_reg_write(uint16_t reg, uint8_t val, void *priv)
nvr_t *nvr = (nvr_t *)priv;
local_t *local = (local_t *)nvr->data;
struct tm tm;
- uint8_t old, i;
- uint16_t checksum = 0x0000;
+ uint8_t old;
old = nvr->regs[reg];
switch(reg) {
@@ -599,7 +601,7 @@ nvr_reg_write(uint16_t reg, uint8_t val, void *priv)
case RTC_REGB:
nvr->regs[RTC_REGB] = val;
- if (((old^val) & REGB_SET) && (val®B_SET)) {
+ if (((old^val) & REGB_SET) && (val & REGB_SET)) {
/* According to the datasheet... */
nvr->regs[RTC_REGA] &= ~REGA_UIP;
nvr->regs[RTC_REGB] &= ~REGB_UIE;
@@ -615,19 +617,6 @@ nvr_reg_write(uint16_t reg, uint8_t val, void *priv)
nvr->regs[RTC_REGD] = val & 0x80;
break;
- case 0x2e:
- case 0x2f:
- if (local->flags & FLAG_LS_HACK) {
- /* 2E and 2F are a simple sum of the values of 0E to 2D. */
- for (i = 0x0e; i < 0x2e; i++)
- checksum += (uint16_t) nvr->regs[i];
- nvr->regs[0x2e] = checksum >> 8;
- nvr->regs[0x2f] = checksum & 0xff;
- break;
- }
- nvr_reg_common_write(reg, val, nvr, local);
- break;
-
case 0x32:
if ((reg == 0x32) && (local->cent == RTC_CENTURY_VIA) && local->wp_32)
break;
@@ -717,15 +706,33 @@ nvr_read(uint16_t addr, void *priv)
break;
case 0x2c:
- if (!nvr->new && (local->flags & FLAG_LS_HACK))
+ if (!nvr->new && (local->flags & FLAG_AMI_1994_HACK))
ret = nvr->regs[local->addr[addr_id]] & 0x7f;
else
ret = nvr->regs[local->addr[addr_id]];
break;
+ case 0x2d:
+ if (!nvr->new && (local->flags & FLAG_AMI_1992_HACK))
+ ret = nvr->regs[local->addr[addr_id]] & 0xf7;
+ else
+ ret = nvr->regs[local->addr[addr_id]];
+ break;
+
case 0x2e:
case 0x2f:
- if (!nvr->new && (local->flags & FLAG_LS_HACK)) {
+ if (!nvr->new && (local->flags & FLAG_AMI_1992_HACK)) {
+ for (i = 0x10; i <= 0x2d; i++) {
+ if (i == 0x2d)
+ checksum += (nvr->regs[i] & 0xf7);
+ else
+ checksum += nvr->regs[i];
+ }
+ if (local->addr[addr_id] == 0x2e)
+ ret = checksum >> 8;
+ else
+ ret = checksum & 0xff;
+ } else if (!nvr->new && (local->flags & FLAG_AMI_1994_HACK)) {
for (i = 0x10; i <= 0x2d; i++) {
if (i == 0x2c)
checksum += (nvr->regs[i] & 0x7f);
@@ -742,7 +749,7 @@ nvr_read(uint16_t addr, void *priv)
case 0x3e:
case 0x3f:
- if (!nvr->new && (local->flags & FLAG_APOLLO_HACK)) {
+ if (!nvr->new && (local->flags & FLAG_AMI_1995_HACK)) {
/* The checksum at 3E-3F is for 37-3D and 40-7F. */
for (i = 0x37; i <= 0x3d; i++)
checksum += nvr->regs[i];
@@ -782,7 +789,7 @@ nvr_read(uint16_t addr, void *priv)
break;
case 0x52:
- if (!nvr->new && (local->flags & FLAG_APOLLO_HACK))
+ if (!nvr->new && (local->flags & FLAG_AMI_1995_HACK))
ret = nvr->regs[local->addr[addr_id]] & 0xf3;
else
ret = nvr->regs[local->addr[addr_id]];
@@ -1005,16 +1012,16 @@ nvr_at_init(const device_t *info)
break;
case 1: /* standard AT */
- case 5: /* Lucky Star LS-486E */
- case 6: /* AMI Apollo */
+ case 5: /* AMI WinBIOS 1994 */
+ case 6: /* AMI BIOS 1995 */
if (info->local == 9)
local->flags |= FLAG_PIIX4;
else {
local->def = 0x00;
if ((info->local & 7) == 5)
- local->flags |= FLAG_LS_HACK;
+ local->flags |= FLAG_AMI_1994_HACK;
else if ((info->local & 7) == 6)
- local->flags |= FLAG_APOLLO_HACK;
+ local->flags |= FLAG_AMI_1995_HACK;
else
local->def = 0xff;
}
@@ -1035,9 +1042,13 @@ nvr_at_init(const device_t *info)
break;
case 4: /* IBM AT */
+ if (info->local == 12) {
+ local->def = 0x00;
+ local->flags |= FLAG_AMI_1992_HACK;
+ } else
+ local->def = 0xff;
nvr->irq = 8;
local->cent = RTC_CENTURY_AT;
- local->def = 0xff;
break;
case 7: /* VIA VT82C586B */
@@ -1164,8 +1175,17 @@ const device_t piix4_nvr_device = {
NULL
};
-const device_t ls486e_nvr_device = {
- "Lucky Star LS-486E PC/AT NVRAM",
+const device_t ami_1992_nvr_device = {
+ "AMI Color 1992 PC/AT NVRAM",
+ DEVICE_ISA | DEVICE_AT,
+ 12,
+ nvr_at_init, nvr_at_close, nvr_at_reset,
+ { NULL }, nvr_at_speed_changed,
+ NULL
+};
+
+const device_t ami_1994_nvr_device = {
+ "AMI WinBIOS 1994 PC/AT NVRAM",
DEVICE_ISA | DEVICE_AT,
13,
nvr_at_init, nvr_at_close, nvr_at_reset,
@@ -1173,8 +1193,8 @@ const device_t ls486e_nvr_device = {
NULL
};
-const device_t ami_apollo_nvr_device = {
- "AMI Apollo PC/AT NVRAM",
+const device_t ami_1995_nvr_device = {
+ "AMI WinBIOS 1995 PC/AT NVRAM",
DEVICE_ISA | DEVICE_AT,
14,
nvr_at_init, nvr_at_close, nvr_at_reset,
diff --git a/src/video/vid_herculesplus.c b/src/video/vid_herculesplus.c
index 607780a68..a03a147eb 100644
--- a/src/video/vid_herculesplus.c
+++ b/src/video/vid_herculesplus.c
@@ -475,9 +475,9 @@ graphics_line(herculesplus_t *dev)
dev->ma++;
for (c = 0; c < 16; c++) {
- val >>= 1;
+ buffer32->line[dev->displine][(x << 4) + c] = (val & 0x8000) ? 7 : 0;
- buffer32->line[dev->displine][(x << 4) + c] = (val & 1) ? 7 : 0;
+ val <<= 1;
}
for (c = 0; c < 16; c += 8)
diff --git a/src/win/86Box.rc b/src/win/86Box.rc
index bf8b9cfbb..e7179e18d 100644
--- a/src/win/86Box.rc
+++ b/src/win/86Box.rc
@@ -373,6 +373,7 @@ END
#include "languages/ja-JP.rc"
#include "languages/pt-BR.rc"
#include "languages/pt-PT.rc"
+#include "languages/ru-RU.rc"
#include "languages/sl-SI.rc"
#include "languages/es-ES.rc"
#include "languages/tr-TR.rc"
diff --git a/src/win/CMakeLists.txt b/src/win/CMakeLists.txt
index 00eda35a1..1a535c61a 100644
--- a/src/win/CMakeLists.txt
+++ b/src/win/CMakeLists.txt
@@ -20,7 +20,8 @@ add_library(plat OBJECT win.c win_dynld.c win_cdrom.c win_thread.c
add_library(ui OBJECT win_ui.c win_icon.c win_stbar.c win_sdl.c win_dialog.c win_about.c
win_settings.c win_devconf.c win_snd_gain.c win_specify_dim.c win_new_floppy.c
- win_jsconf.c win_media_menu.c win_preferences.c 86Box.rc)
+ win_jsconf.c win_media_menu.c win_preferences.c win_discord.c glad.c win_opengl.c
+ win_opengl_glslp.c 86Box.rc)
if(MSVC)
# MSVC complains when we include the manifest from 86Box.rc...
@@ -44,19 +45,5 @@ else()
target_sources(plat PRIVATE win_joystick_rawinput.c)
endif()
-if(DISCORD)
- # PUBLIC due to config.c and 86box.c
- target_compile_definitions(ui PUBLIC USE_DISCORD)
-
- target_sources(ui PRIVATE win_discord.c)
-endif()
-
-if(OPENGL)
- target_compile_definitions(ui PUBLIC USE_OPENGL)
- target_compile_definitions(plat PRIVATE USE_OPENGL)
-
- target_sources(ui PRIVATE glad.c win_opengl.c win_opengl_glslp.c)
-endif()
-
target_link_libraries(86Box advapi32 comctl32 comdlg32 gdi32 shell32 iphlpapi
dxguid imm32 hid setupapi uxtheme version winmm psapi)
diff --git a/src/win/Makefile.mingw b/src/win/Makefile.mingw
index 6607ca904..0fcdd9ab4 100644
--- a/src/win/Makefile.mingw
+++ b/src/win/Makefile.mingw
@@ -54,9 +54,6 @@ ifeq ($(DEV_BUILD), y)
ifndef OPEN_AT
OPEN_AT := y
endif
- ifndef OPENGL
- OPENGL := y
- endif
ifndef PAS16
PAS16 := n
endif
@@ -106,9 +103,6 @@ else
ifndef OPEN_AT
OPEN_AT := n
endif
- ifndef OPENGL
- OPENGL := n
- endif
ifndef PAS16
PAS16 := n
endif
@@ -151,9 +145,6 @@ endif
ifndef ARM64
ARM64 := n
endif
-ifndef WX
-WX := n
-endif
ifndef DINPUT
DINPUT := n
endif
@@ -184,9 +175,6 @@ ifeq ($(DYNAREC), y)
endif
endif
endif
-ifndef DISCORD
- DISCORD := y
-endif
# Path to the dynamic recompiler code.
@@ -198,45 +186,7 @@ endif
# Name of the executable.
-ifndef PROG
- ifneq ($(WX), n)
- PROG := Wx86Box
- else
- PROG := 86Box
- endif
-endif
-
-# WxWidgets basic info. Extract using the config program.
-ifneq ($(WX), n)
- EXPATH += wx
- WX_CONFIG := wx-config.exe
- ifeq ($(WX), y)
- WX_PATH := C:/MinGW32/WxWidgets
- WX_FLAGS := -I$(WX_PATH)/lib/wx/include/msw-unicode-3.0 \
- -I$(WX_PATH)/include/wx-3.0 \
- -D__WXMSW__ -DWX_PRECOMP -D_FILE_OFFSET_BITS=64 -pthread
-# -lwx_mswu_gl-3.0 -lwxtiff-3.0 -llzma
- WX_LIBS := -mwindows -mthreads -L$(WX_PATH)/lib \
- -lwx_mswu-3.0.dll \
- -lrpcrt4 -loleaut32 -lole32 -luuid \
- -lwinspool -lwinmm -lshell32 -lcomctl32 \
- -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32
- endif
- ifeq ($(WX), static)
- WX_PATH := C:/MinGW32/WxWidgets
- WX_FLAGS := -I$(WX_PATH)/lib/wx/include/msw-unicode-3.0 \
- -I$(WX_PATH)/include/wx-3.0 \
- -D__WXMSW__ -DWX_PRECOMP -D_FILE_OFFSET_BITS=64 -pthread
-# -lwx_mswu_gl-3.0 -lwxtiff-3.0 -llzma
- WX_LIBS := -mwindows -mthreads -L$(WX_PATH)/lib \
- -lwx_mswu-3.0 -lwxscintilla-3.0 \
- -lwxjpeg-3.0 -lwxpng-3.0 -lwxzlib-3.0 \
- -lwxregexu-3.0 -lwxexpat-3.0 \
- -lrpcrt4 -loleaut32 -lole32 -luuid \
- -lwinspool -lwinmm -lshell32 -lcomctl32 \
- -lcomdlg32 -ladvapi32 -lwsock32 -lgdi32
- endif
-endif
+PROG := 86Box
#########################################################################
@@ -400,18 +350,6 @@ else
endif
endif
-ifeq ($(WX), y)
- OPTS += -DUSE_WX $(WX_FLAGS)
- LIBS += $(WX_LIBS)
- UIOBJ := wx_main.o wx_ui.o wx_stbar.o wx_render.o
-else
- UIOBJ := win_ui.o win_icon.o win_stbar.o \
- win_sdl.o \
- win_dialog.o win_about.o \
- win_settings.o win_devconf.o win_snd_gain.o win_specify_dim.o win_preferences.o \
- win_new_floppy.o win_jsconf.o win_media_menu.o
-endif
-
ifeq ($(OPENAL), y)
OPTS += -DUSE_OPENAL
endif
@@ -443,12 +381,6 @@ VNCLIB += -lvncserver
VNCOBJ := vnc.o vnc_keymap.o
endif
-ifeq ($(DISCORD), y)
-OPTS += -DUSE_DISCORD
-RFLAGS += -DUSE_DISCORD
-DISCORDOBJ := win_discord.o
-endif
-
ifeq ($(MINITRACE), y)
OPTS += -DMTR_ENABLED
RFLAGS += -DMTR_ENABLED
@@ -491,12 +423,6 @@ ifeq ($(OPEN_AT), y)
OPTS += -DUSE_OPEN_AT
endif
-ifeq ($(OPENGL), y)
-OPTS += -DUSE_OPENGL
-RFLAGS += -DUSE_OPENGL
-DEVBROBJ += win_opengl.o win_opengl_glslp.o glad.o
-endif
-
ifeq ($(PAS16), y)
OPTS += -DUSE_PAS16
DEVBROBJ += snd_pas16.o
@@ -525,7 +451,7 @@ endif
# Final versions of the toolchain flags.
-CFLAGS := $(WX_FLAGS) $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) \
+CFLAGS := $(OPTS) $(DFLAGS) $(COPTIM) $(AOPTIM) \
$(AFLAGS) -fomit-frame-pointer -mstackrealign -Wall \
-fno-strict-aliasing
@@ -751,6 +677,13 @@ PLATOBJ := win.o \
win_crashdump.o win_midi.o \
win_mouse.o
+UIOBJ := win_ui.o win_icon.o win_stbar.o win_discord.o \
+ win_sdl.o win_opengl.o win_opengl_glslp.o glad.o \
+ win_dialog.o win_about.o \
+ win_settings.o win_devconf.o win_snd_gain.o win_specify_dim.o win_preferences.o \
+ win_new_floppy.o win_jsconf.o \
+ win_media_menu.o
+
ifeq ($(DINPUT), y)
PLATOBJ += win_joystick.o
else
@@ -760,8 +693,7 @@ endif
OBJ := $(MAINOBJ) $(CPUOBJ) $(CHIPSETOBJ) $(MCHOBJ) $(DEVOBJ) $(MEMOBJ) \
$(FDDOBJ) $(GAMEOBJ) $(CDROMOBJ) $(ZIPOBJ) $(MOOBJ) $(HDDOBJ) $(MINIVHDOBJ) \
$(NETOBJ) $(PRINTOBJ) $(SCSIOBJ) $(SIOOBJ) $(SNDOBJ) $(VIDOBJ) $(VOODOOOBJ) \
- $(PLATOBJ) $(UIOBJ) $(FSYNTHOBJ) $(MUNTOBJ) $(DEVBROBJ) \
- $(DISCORDOBJ) $(MINITRACEOBJ)
+ $(PLATOBJ) $(UIOBJ) $(FSYNTHOBJ) $(MUNTOBJ) $(DEVBROBJ) $(MINITRACEOBJ)
ifdef EXOBJ
OBJ += $(EXOBJ)
endif
@@ -772,9 +704,6 @@ LIBS := -mwindows -lcomctl32 \
ifeq ($(VNC), y)
LIBS += $(VNCLIB) -lws2_32
endif
-ifneq ($(WX), n)
-LIBS += $(WX_LIBS) -lm
-endif
LIBS += -lpng -lz -lwsock32 -lshell32 -liphlpapi -lpsapi -lSDL2 -limm32 -lhid -lsetupapi -loleaut32 -luxtheme -lversion -lwinmm -static -lstdc++
ifneq ($(X64), y)
ifneq ($(ARM64), y)
@@ -861,7 +790,7 @@ ifneq ($(DEBUG), y)
endif
hello.exe: hello.o
- $(CXX) $(LDFLAGS) -o hello.exe hello.o $(WXLIBS) $(LIBS)
+ $(CXX) $(LDFLAGS) -o hello.exe hello.o $(LIBS)
ifneq ($(DEBUG), y)
@$(STRIP) hello.exe
endif
diff --git a/src/win/languages/cs-CZ.rc b/src/win/languages/cs-CZ.rc
index 8de679e4f..9b59a8bd9 100644
--- a/src/win/languages/cs-CZ.rc
+++ b/src/win/languages/cs-CZ.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Software)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Nastavení...", IDM_CONFIG
MENUITEM "&Aktualizovat ikony stavového řádku", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Předvolby...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Povolit integraci s &Discordem", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Pořídit &screenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Předvolby...", IDM_PREFERENCES
+ MENUITEM "Povolit integraci s &Discordem", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Zesílení zvuku", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "&Cílová snímková frekvence"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Zvolit shader...", IDM_VID_GL_SHADER
MENUITEM "&Odebrat shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/de-DE.rc b/src/win/languages/de-DE.rc
index 6dccaa4c0..748fbf715 100644
--- a/src/win/languages/de-DE.rc
+++ b/src/win/languages/de-DE.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Software)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3-Kern)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Optionen...", IDM_CONFIG
MENUITEM "&Statusleistenicons aktualisieren", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Einstellungen...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "&Discord-Integration aktivieren", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "S&creenshot aufnehmen\tStrg+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Einstellungen...", IDM_PREFERENCES
+ MENUITEM "&Discord-Integration aktivieren", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Schallverstärkung...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "Ziel&framerate"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Shader auswählen...", IDM_VID_GL_SHADER
MENUITEM "&Shader entfernen", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/en-GB.rc b/src/win/languages/en-GB.rc
index f64b0f768..f0c65adab 100644
--- a/src/win/languages/en-GB.rc
+++ b/src/win/languages/en-GB.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Software)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Settings...", IDM_CONFIG
MENUITEM "&Update status bar icons", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Preferences...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Enable &Discord integration", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Take s&creenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Preferences...", IDM_PREFERENCES
+ MENUITEM "Enable &Discord integration", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "Sound &gain...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "Target &framerate"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Select shader...", IDM_VID_GL_SHADER
MENUITEM "&Remove shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/en-US.rc b/src/win/languages/en-US.rc
index a350395fd..ade2e1ff9 100644
--- a/src/win/languages/en-US.rc
+++ b/src/win/languages/en-US.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Software)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Settings...", IDM_CONFIG
MENUITEM "&Update status bar icons", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Preferences...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Enable &Discord integration", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Take s&creenshot\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Preferences...", IDM_PREFERENCES
+ MENUITEM "Enable &Discord integration", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "Sound &gain...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "Target &framerate"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Select shader...", IDM_VID_GL_SHADER
MENUITEM "&Remove shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/es-ES.rc b/src/win/languages/es-ES.rc
index c69f6f226..23a1eae81 100644
--- a/src/win/languages/es-ES.rc
+++ b/src/win/languages/es-ES.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Software)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Ajustes...", IDM_CONFIG
MENUITEM "&Actualizar iconos en barra de estado", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Preferencias...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Habilitar integración con &Discord", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Tomar c&aptura\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Preferencias...", IDM_PREFERENCES
+ MENUITEM "Habilitar integración con &Discord", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Ganancia de sonido...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "&Tasa de refresco objetivo"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Seleccionar shader...", IDM_VID_GL_SHADER
MENUITEM "&Eliminar shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/fi-FI.rc b/src/win/languages/fi-FI.rc
index 117e951a6..ff0130d0c 100644
--- a/src/win/languages/fi-FI.rc
+++ b/src/win/languages/fi-FI.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (ohjelmistopohjainen)", IDM_VID_SDL_SW
MENUITEM "SDL (&laitteistokiihdytetty)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Kokoonpano...", IDM_CONFIG
MENUITEM "&Päivitä tilapalkin kuvakkeita", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Sovellusasetukset...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Käytä &Discord integraatiota", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Ota &kuvakaappaus\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Sovellusasetukset...", IDM_PREFERENCES
+ MENUITEM "Käytä &Discord integraatiota", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Äänen tulotaso...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "&Kuvataajuustavoite"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "Valitse varjostin&ohjelma...", IDM_VID_GL_SHADER
MENUITEM "&Poista varjostinohjelma", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/fr-FR.rc b/src/win/languages/fr-FR.rc
index ebee97263..06f46221d 100644
--- a/src/win/languages/fr-FR.rc
+++ b/src/win/languages/fr-FR.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Logiciel)", IDM_VID_SDL_SW
MENUITEM "SDL (&Materiel)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Réglages...", IDM_CONFIG
MENUITEM "Mettre à jour la barre de stat&us", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Préférences...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Activer intégration &Discord", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Copie &Ecran\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Préférences...", IDM_PREFERENCES
+ MENUITEM "Activer intégration &Discord", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Gain Son...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "&Taux de rafraîchissement cible"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "Sé&lectionnez le shader...", IDM_VID_GL_SHADER
MENUITEM "S&upprimer le shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/hr-HR.rc b/src/win/languages/hr-HR.rc
index 290039389..db1191e1e 100644
--- a/src/win/languages/hr-HR.rc
+++ b/src/win/languages/hr-HR.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Softver)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardver)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 jezgra)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Opcije...", IDM_CONFIG
MENUITEM "&Ažuriranje ikone statusne trake", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Postavke...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Omogući integraciju &Discord-a", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Napravite &snimku zaslona\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Postavke...", IDM_PREFERENCES
+ MENUITEM "Omogući integraciju &Discord-a", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Pojačanje zvuka...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "&Ciljni framerate"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Odaberi shader...", IDM_VID_GL_SHADER
MENUITEM "&Ukloni shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/hu-HU.rc b/src/win/languages/hu-HU.rc
index c54412050..2acad9e18 100644
--- a/src/win/languages/hu-HU.rc
+++ b/src/win/languages/hu-HU.rc
@@ -44,9 +44,7 @@ BEGIN
MENUITEM "&SDL (Szoftveres)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardveres)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -103,15 +101,12 @@ BEGIN
BEGIN
MENUITEM "&Konfigurálás...", IDM_CONFIG
MENUITEM "Állapotsori ikonok &frissítése", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Beállítások...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "&Discord integráció engedélyezése", IDM_DISCORD
-# endif
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
+ MENUITEM "&Discord integráció engedélyezése", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Hangerőszabályzó...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -252,7 +247,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "Cél &képkockasebesség"
@@ -268,7 +262,6 @@ BEGIN
MENUITEM "Shader &kiválasztása...", IDM_VID_GL_SHADER
MENUITEM "Shader &eltávolítása", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/it-IT.rc b/src/win/languages/it-IT.rc
index e33ade229..9cff4e642 100644
--- a/src/win/languages/it-IT.rc
+++ b/src/win/languages/it-IT.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Software)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Impostazioni...", IDM_CONFIG
MENUITEM "&Aggiorna icone della barra di stato", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Preferenze...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Abilita &integrazione Discord", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Cattura schermata\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Preferenze...", IDM_PREFERENCES
+ MENUITEM "Abilita &integrazione Discord", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "Guadagno &suono...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "Imposta obiettivo &fotogrammi"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Seleziona shader...", IDM_VID_GL_SHADER
MENUITEM "&Rimuovi shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/ja-JP.rc b/src/win/languages/ja-JP.rc
index 648f7c5ab..83e53a05a 100644
--- a/src/win/languages/ja-JP.rc
+++ b/src/win/languages/ja-JP.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "SDL (ソフトウェア)(&S)", IDM_VID_SDL_SW
MENUITEM "SDL (ハードウェア)(&H)", IDM_VID_SDL_HW
MENUITEM "SDL (OpenGL)(&O)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "OpenGL (3.3コア)(&G)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "VNC(&V)", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "設定(&S)...", IDM_CONFIG
MENUITEM "ステータスバーアイコンの更新(&U)", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "環境設定(&P)...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Discordとの連携を可能にする(&D)", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "クリーンショットを撮る(&C)\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "環境設定(&P)...", IDM_PREFERENCES
+ MENUITEM "Discordとの連携を可能にする(&D)", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "サウンドゲイン(&G)...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "目標フレームレート(&F)"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "シェーダの選択(&S)...", IDM_VID_GL_SHADER
MENUITEM "シェーダの削除(&R)", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/pt-BR.rc b/src/win/languages/pt-BR.rc
index 163897b48..79c0b51cf 100644
--- a/src/win/languages/pt-BR.rc
+++ b/src/win/languages/pt-BR.rc
@@ -42,9 +42,7 @@ BEGIN
MENUITEM "&SDL (Software)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (Núcleo 3.3)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -101,15 +99,12 @@ BEGIN
BEGIN
MENUITEM "&Configurações...", IDM_CONFIG
MENUITEM "&Atualizar ícones da barra de status", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Preferências...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Ativar integração com o &Discord", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Capturar &tela\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Preferências...", IDM_PREFERENCES
+ MENUITEM "Ativar integração com o &Discord", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Ganho de som...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -250,7 +245,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "&Taxa de quadro pretendida"
@@ -266,7 +260,6 @@ BEGIN
MENUITEM "&Selecionar shader...", IDM_VID_GL_SHADER
MENUITEM "&Remover shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/pt-PT.rc b/src/win/languages/pt-PT.rc
index ff209c66f..39f9626d4 100644
--- a/src/win/languages/pt-PT.rc
+++ b/src/win/languages/pt-PT.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (Software)", IDM_VID_SDL_SW
MENUITEM "SDL (&Hardware)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (Núcleo 3.3)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Definições...", IDM_CONFIG
MENUITEM "&Atualizar ícones da barra de estado", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Preferências...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Ativar integração com &Discord", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "Gravar imagem de ecrã\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Preferências...", IDM_PREFERENCES
+ MENUITEM "Ativar integração com &Discord", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Ganho de som...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "&Taxa de quadros de destino"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Selecionar shader...", IDM_VID_GL_SHADER
MENUITEM "&Remover shader", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/ru-RU.rc b/src/win/languages/ru-RU.rc
new file mode 100644
index 000000000..61f8cd369
--- /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 SEPARATOR
+ 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.3)", 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
+ 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+PageUP", 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
+ MENUITEM "Включить интеграцию &Discord", IDM_DISCORD
+ 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
+#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS)
+ POPUP "&Ведение журнала"
+ BEGIN
+# ifdef ENABLE_BUSLOGIC_LOG
+ MENUITEM "Включить журналы BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC
+# endif
+# ifdef ENABLE_CDROM_LOG
+ MENUITEM "Включить журналы CD-ROM\tCtrl+F5", IDM_LOG_CDROM
+# endif
+# ifdef ENABLE_D86F_LOG
+ MENUITEM "Включить журналы дискет (86F)\tCtrl+F6", IDM_LOG_D86F
+# endif
+# ifdef ENABLE_FDC_LOG
+ MENUITEM "Включить журналы контроллера дискет\tCtrl+F7", IDM_LOG_FDC
+# endif
+# ifdef ENABLE_IDE_LOG
+ MENUITEM "Включить журналы IDE\tCtrl+F8", IDM_LOG_IDE
+# endif
+# ifdef ENABLE_SERIAL_LOG
+ MENUITEM "Включить журналы последовательного порта\tCtrl+F3", IDM_LOG_SERIAL
+# endif
+# ifdef ENABLE_NIC_LOG
+ MENUITEM "Включить журналы сети\tCtrl+F9", IDM_LOG_NIC
+# endif
+# ifdef ENABLE_LOG_COMMANDS
+# ifdef ENABLE_LOG_TOGGLES
+ MENUITEM SEPARATOR
+# endif
+# ifdef ENABLE_LOG_BREAKPOINT
+ MENUITEM "&Точка останова журнала\tCtrl+F10", IDM_LOG_BREAKPOINT
+# endif
+# ifdef ENABLE_VRAM_DUMP
+ MENUITEM "&Выгрузка видео ОЗУ\tCtrl+F1", IDM_DUMP_VRAM
+# endif
+# endif
+ END
+#endif
+ 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 "&Mute", IDM_CDROM_MUTE
+ MENUITEM SEPARATOR
+ MENUITEM "П&устой", IDM_CDROM_EMPTY
+ MENUITEM "&Перезагрузка предыдущего образа", IDM_CDROM_RELOAD
+ MENUITEM SEPARATOR
+ MENUITEM "&Образ", IDM_CDROM_IMAGE
+ 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 "Тип CPU:"
+#define STR_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_VIDEO "Видео:"
+#define STR_VOODOO "Графика Voodoo"
+
+#define STR_MOUSE "Мышь:"
+#define STR_JOYSTICK "Джойстик:"
+#define STR_JOY1 "Джойстик 1..."
+#define STR_JOY2 "Джойстик 2..."
+#define STR_JOY3 "Джойстик 3..."
+#define STR_JOY4 "Джойстик 4..."
+
+#define STR_SOUND "Звуковая карта:"
+#define STR_MIDI "MIDI Out-устройство:"
+#define STR_MIDI_IN "MIDI In-устройство:"
+#define STR_MPU401 "Отдельный MPU-401"
+#define STR_SSI "Innovation SSI-2001"
+#define STR_CMS "CMS / Game Blaster"
+#define STR_GUS "Gravis Ultrasound"
+#define STR_FLOAT "Использовать FLOAT32 звук"
+
+#define STR_NET_TYPE "Тип сети:"
+#define STR_PCAP "Устройство PCap:"
+#define STR_NET "Сетевой адаптер:"
+
+#define STR_LPT1 "Устройство LPT1:"
+#define STR_LPT2 "Устройство LPT2:"
+#define STR_LPT3 "Устройство LPT3:"
+#define STR_SERIAL1 "Последовательный порт 1"
+#define STR_SERIAL2 "Последовательный порт 2"
+#define STR_SERIAL3 "Последовательный порт 3"
+#define STR_SERIAL4 "Последовательный порт 4"
+#define STR_PARALLEL1 "Параллельный порт 1"
+#define STR_PARALLEL2 "Параллельный порт 2"
+#define STR_PARALLEL3 "Параллельный порт 3"
+
+#define STR_HDC "Контроллер HD:"
+#define STR_FDC "Контроллер FD:"
+#define STR_IDE_TER "Третичный IDE контроллер"
+#define STR_IDE_QUA "Четвертичный IDE контроллер"
+#define STR_SCSI "SCSI"
+#define STR_SCSI_1 "Контроллер 1:"
+#define STR_SCSI_2 "Контроллер 2:"
+#define STR_SCSI_3 "Контроллер 3:"
+#define STR_SCSI_4 "Контроллер 4:"
+#define STR_CASSETTE "Кассета"
+
+#define STR_HDD "Жёсткие диски:"
+#define STR_NEW "&Новый..."
+#define STR_EXISTING "&Существующий..."
+#define STR_REMOVE "&Убрать"
+#define STR_BUS "Шина:"
+#define STR_CHANNEL "Канал:"
+#define STR_ID "ID:"
+
+#define STR_SPECIFY "&Указать..."
+#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 "Оптические дисководы:"
+
+#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+PAGE DOWN для возврата в оконный режим."
+ 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 "Изображения поверхности (*.86F)\0*.86F\0"
+ IDS_2077 "Щёлкните мышью для захвата курсора"
+ IDS_2078 "Нажмите F8+F12 чтобы освободить курсор"
+ IDS_2079 "Нажмите F8+F12 или среднюю кнопку мыши чтобы освободить курсор"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_2080 "Невозможно инициализировать FluidSynth"
+ IDS_2081 "Шина"
+ IDS_2082 "Файл"
+ IDS_2083 "Ц"
+ IDS_2084 "Г"
+ IDS_2085 "С"
+ IDS_2086 "МБ"
+ IDS_2087 "Проверять BPB"
+ IDS_2088 "КБ"
+ IDS_2089 "Не удалось инициализировать рендерер видео."
+ IDS_2090 "По умолчанию"
+ IDS_2091 "%i циклов ожидания"
+ IDS_2092 "Тип"
+ IDS_2093 "Не удалось настроить PCap"
+ IDS_2094 "Устройства PCap не найдены"
+ IDS_2095 "Неверное устройство PCap"
+ IDS_2096 "Стандартный 2-кнопочный джойстик"
+ IDS_2097 "Стандартный 4-кнопочный джойстик"
+ IDS_2098 "Стандартный 6-кнопочный джойстик"
+ IDS_2099 "Стандартный 8-кнопочный джойстик"
+ IDS_2100 "CH Flightstick Pro"
+ IDS_2101 "Microsoft SideWinder Pad"
+ IDS_2102 "Система управления полетом Thrustmaster"
+ IDS_2103 "Нет"
+ IDS_2104 "Невозможно загрузить ускорители клавиатуры."
+ IDS_2105 "Невозможно зарегистрировать необработанный вход."
+ IDS_2106 "%u"
+ IDS_2107 "%u MB (CHS: %i, %i, %i)"
+ IDS_2108 "Флоппи %i (%s): %ls"
+ IDS_2109 "Все образы (*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF)\0*.0??;*.1??;*.??0;*.86F;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.JSON;*.TD0;*.*FD?;*.MFM;*.XDF\0Расширенные образы секторов (*.IMD;*.JSON;*.TD0)\0*.IMD;*.JSON;*.TD0\0Основные образы секторов (*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?)\0*.0??;*.1??;*.??0;*.BIN;*.CQ?;*.D??;*.FLP;*.HDM;*.IM?;*.XDF;*.*FD?\0Образы потока (*.FDI)\0*.FDI\0Изображения поверхности (*.86F;*.MFM)\0*.86F;*.MFM\0Все файлы (*.*)\0*.*\0"
+ IDS_2110 "Невозможно инициализировать FreeType"
+ IDS_2111 "Невозможно инициализировать SDL, требуется SDL2.dll"
+ IDS_2112 "Вы уверены, что хотите выполнить жесткую перезагрузку эмулируемой машины?"
+ IDS_2113 "Вы уверены, что хотите выйти из 86Box?"
+ IDS_2114 "Невозможно инициализировать Ghostscript"
+ IDS_2115 "Магнитооптический %i (%ls): %ls"
+ IDS_2116 "Образы магнитооптических дисков (*.IM?;*.MDI)\0*.IM?;*.MDI\0Все файлы (*.*)\0*.*\0"
+ IDS_2117 "Добро пожаловать в 86Box!"
+ IDS_2118 "Внутренний контроллер"
+ IDS_2119 "Выход"
+ IDS_2120 "ПЗУ не найдено"
+ IDS_2121 "Хотите ли вы сохранить настройки?"
+ IDS_2122 "Это приведет к жесткой перезагрузке эмулируемой машины."
+ IDS_2123 "Сохранить"
+ IDS_2124 "О программе 86Box"
+ IDS_2125 "86Box v" EMU_VERSION
+
+ IDS_2126 "Эмулятор старых компьютеров\n\nАвторы: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nВыпускается под лицензией GNU General Public License версии 2 или более поздней. Дополнительную информацию см. в файле LICENSE."
+ IDS_2127 "OK"
+ IDS_2128 "Оборудование недоступно"
+#ifdef _WIN32
+#define LIB_NAME_PCAP "WinPcap"
+#else
+#define LIB_NAME_PCAP "libpcap"
+#endif
+ IDS_2129 "Убедитесь, что " LIB_NAME_PCAP " установлен и что вы находитесь на сетевом соединении, совместимом с " LIB_NAME_PCAP "."
+ IDS_2130 "Недопустимая конфигурация"
+#ifdef _WIN32
+#define LIB_NAME_FREETYPE "freetype.dll"
+#else
+#define LIB_NAME_FREETYPE "libfreetype"
+#endif
+ IDS_2131 LIB_NAME_FREETYPE " требуется для эмуляции принтера ESC/P."
+#ifdef _WIN32
+#define LIB_NAME_GS "gsdll32.dll"
+#else
+#define LIB_NAME_GS "libgs"
+#endif
+ IDS_2132 LIB_NAME_GS " требуется для автоматического преобразования файлов PostScript в PDF.\n\nВсе документы, отправленные на общий принтер PostScript, будут сохранены в виде файлов PostScript (.ps)."
+#ifdef _WIN32
+#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll"
+#else
+#define LIB_NAME_FLUIDSYNTH "libfluidsynth"
+#endif
+ IDS_2133 LIB_NAME_FLUIDSYNTH " требуется для вывода MIDI FluidSynth."
+ IDS_2134 "Идёт вход в полноэкранный режим"
+ IDS_2135 "Не показывайте это сообщение снова"
+ IDS_2136 "Не выходить"
+ IDS_2137 "Перезагрузить"
+ IDS_2138 "Не перезагрузить"
+ IDS_2139 "Образы магнитооптических дисков (*.IM?;*.MDI)\0*.IM?;*.MDI\0Все файлы (*.*)\0*.*\0"
+ IDS_2140 "Образы CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0Все файлы (*.*)\0*.*\0"
+ IDS_2141 "Конфигурация устройства %hs"
+ IDS_2142 "Монитор в спящем режиме"
+ IDS_2143 "Шейдеры OpenGL (*.GLSL)\0*.GLSL\0Все файлы (*.*)\0*.*\0"
+ IDS_2144 "Параметры OpenGL"
+ IDS_2145 "Вы загружаете неподдерживаемую конфигурацию"
+ IDS_2146 "Фильтрация типов CPU на основе выбранной материнской платы отключена для этой эмулируемой машины.\n\nЭто позволяет выбрать процессор, который в противном случае несовместим с выбранной материнской платой. Однако, вы можете столкнуться с несовместимостью с BIOS материнской платы или другим программным обеспечением.\n\nВключение этого параметра официально не поддерживается, и все поданные отчеты об ошибках могут быть закрыты как недействительные."
+ IDS_2147 "Продолжить"
+ IDS_2148 "Кассета: %s"
+ IDS_2149 "Образы кассеты (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Все файлы (*.*)\0*.*\0"
+ IDS_2150 "Картридж %i: %ls"
+ IDS_2151 "Образы картриджа (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Все файлы (*.*)\0*.*\0"
+END
+
+STRINGTABLE DISCARDABLE
+BEGIN
+ IDS_4096 "Жесткий диск (%s)"
+ IDS_4097 "%01i:%01i"
+ IDS_4098 "%01i"
+ IDS_4099 "Оптические дисководы MFM/RLL или ESDI никогда не существовали"
+ IDS_4100 "Параметры..."
+ IDS_4101 "Параметры (большой)..."
+ 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 "Необработанный образ (.img)"
+ IDS_4123 "Образ HDI (.hdi)"
+ IDS_4124 "Образ HDX (.hdx)"
+ IDS_4125 "VHD фиксированного размера (.vhd)"
+ IDS_4126 "VHD динамического размера (.vhd)"
+ IDS_4127 "Дифференцированнный образ VHD (.vhd)"
+ IDS_4128 "Большие блоки (2 MB)"
+ IDS_4129 "Маленькие блоки (512 KB)"
+ IDS_4130 "Файлы VHD (*.VHD)\0*.VHD\0Все файлы (*.*)\0*.*\0"
+ IDS_4131 "Выберите родительский VHD"
+ IDS_4132 "Это может означать, что родительский образ был изменён после того, как был создан дифференцированнный образ.\n\nЭто также может произойти, если файлы образа были перемещены или скопированы, или из-за ошибки в программе, создавшей этот диск.\n\nВы хотите исправить временные метки?"
+ IDS_4133 "Временные метки родительского и дочернего дисков не совпадают"
+ IDS_4134 "Не удалось исправить временную метку VHD."
+ IDS_4135 "%01i:%02i"
+
+ IDS_4352 "MFM/RLL"
+ IDS_4353 "XTA"
+ IDS_4354 "ESDI"
+ IDS_4355 "IDE"
+ IDS_4356 "ATAPI"
+ IDS_4357 "SCSI"
+
+ IDS_4608 "MFM/RLL (%01i:%01i)"
+ IDS_4609 "XTA (%01i:%01i)"
+ IDS_4610 "ESDI (%01i:%01i)"
+ IDS_4611 "IDE (%01i:%01i)"
+ IDS_4612 "ATAPI (%01i:%01i)"
+ IDS_4613 "SCSI (%01i:%02i)"
+
+ IDS_5120 "CD-ROM %i (%s): %s"
+
+ IDS_5376 "Выключен"
+ IDS_5381 "ATAPI"
+ IDS_5382 "SCSI"
+
+ IDS_5632 "Выключен"
+ IDS_5637 "ATAPI (%01i:%01i)"
+ IDS_5638 "SCSI (%01i:%02i)"
+
+ IDS_5888 "160 kB"
+ IDS_5889 "180 kB"
+ IDS_5890 "320 kB"
+ IDS_5891 "360 kB"
+ IDS_5892 "640 kB"
+ IDS_5893 "720 kB"
+ IDS_5894 "1.2 MB"
+ IDS_5895 "1.25 MB"
+ IDS_5896 "1.44 MB"
+ IDS_5897 "DMF (кластер 1024)"
+ IDS_5898 "DMF (кластер 2048)"
+ IDS_5899 "2.88 MB"
+ IDS_5900 "ZIP 100"
+ IDS_5901 "ZIP 250"
+ IDS_5902 "3.5"" 128Mb M.O. (ISO 10090)"
+ IDS_5903 "3.5"" 230Mb M.O. (ISO 13963)"
+ IDS_5904 "3.5"" 540Mb M.O. (ISO 15498)"
+ IDS_5905 "3.5"" 640Mb M.O. (ISO 15498)"
+ IDS_5906 "3.5"" 1.3Gb M.O. (GigaMO)"
+ IDS_5907 "3.5"" 2.3Gb M.O. (GigaMO 2)"
+ IDS_5908 "5.25"" 600Mb M.O."
+ IDS_5909 "5.25"" 650Mb M.O."
+ IDS_5910 "5.25"" 1Gb M.O."
+ IDS_5911 "5.25"" 1.3Gb M.O."
+
+ IDS_6144 "Точный RPM"
+ IDS_6145 "На 1% медленнее точного RPM"
+ IDS_6146 "На 1.5% медленнее точного RPM"
+ IDS_6147 "На 2% медленнее точного RPM"
+
+ IDS_7168 "(По умолчанию системы)"
+END
+#define IDS_LANG_ENUS IDS_7168
+
+// English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/sl-SI.rc b/src/win/languages/sl-SI.rc
index c6e6b6a76..d8eaeb2c8 100644
--- a/src/win/languages/sl-SI.rc
+++ b/src/win/languages/sl-SI.rc
@@ -41,9 +41,7 @@ BEGIN
MENUITEM "&SDL (programsko)", IDM_VID_SDL_SW
MENUITEM "SDL (s&trojno)", IDM_VID_SDL_HW
MENUITEM "SDL (&OpenGL)", IDM_VID_SDL_OPENGL
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
- MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
+ MENUITEM "Open&GL (Jedro 3.3)", IDM_VID_OPENGL_CORE
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Nastavitve...", IDM_CONFIG
MENUITEM "&Posodabljaj ikone statusne vrstice", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Možnosti...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "Omogoči integracijo s programom &Discord", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "&Zajemi posnetek zaslona\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Možnosti...", IDM_PREFERENCES
+ MENUITEM "Omogoči integracijo s programom &Discord", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Ojačanje zvoka...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "&Ciljno št. sličic na sekundo"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "&Izberi senčilnik...", IDM_VID_GL_SHADER
MENUITEM "&Odstrani senčilnik", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/win/languages/tr-TR.rc b/src/win/languages/tr-TR.rc
index e1785bb58..b1c055ad1 100644
--- a/src/win/languages/tr-TR.rc
+++ b/src/win/languages/tr-TR.rc
@@ -41,9 +41,7 @@ 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
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
MENUITEM "Open&GL (3.3 Core)", IDM_VID_OPENGL_CORE
-#endif
#ifdef USE_VNC
MENUITEM "&VNC", IDM_VID_VNC
#endif
@@ -100,15 +98,12 @@ BEGIN
BEGIN
MENUITEM "&Ayarlar...", IDM_CONFIG
MENUITEM "Durum &çubuğu ikonlarını güncelle", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "&Tercihler...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "&Discord entegrasyonunu etkinleştir", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "&Ekran görüntüsü al\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "&Tercihler...", IDM_PREFERENCES
+ MENUITEM "&Discord entegrasyonunu etkinleştir", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "&Ses yükseltici...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
@@ -249,7 +244,6 @@ BEGIN
END
END
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
VidGLSubMenu MENU DISCARDABLE
BEGIN
POPUP "Hedef &kare oranı"
@@ -265,7 +259,6 @@ BEGIN
MENUITEM "Gölgelendirici &seç...", IDM_VID_GL_SHADER
MENUITEM "&Gölgelendiriciyi kaldır", IDM_VID_GL_NOSHADER
END
-#endif
/////////////////////////////////////////////////////////////////////////////
@@ -485,7 +478,7 @@ BEGIN
IDS_2118 "Dahili kontrolcü"
IDS_2119 "Çıkış"
IDS_2120 "Hiçbir ROM imajı bulunamadı"
- IDS_2121 "Ayarlary kaydetmek istediğinizden emin misiniz?"
+ IDS_2121 "Ayarları kaydetmek istediğinizden emin misiniz?"
IDS_2122 "Bu makineyi yeniden başlatacak."
IDS_2123 "Kaydet"
IDS_2124 "86Box Hakkında"
diff --git a/src/win/languages/zh-CN.rc b/src/win/languages/zh-CN.rc
index acbd3a602..11f219dc2 100644
--- a/src/win/languages/zh-CN.rc
+++ b/src/win/languages/zh-CN.rc
@@ -100,15 +100,12 @@ BEGIN
BEGIN
MENUITEM "设置(&S)...", IDM_CONFIG
MENUITEM "更新状态栏图标(&U)", IDM_UPDATE_ICONS
- MENUITEM SEPARATOR
- MENUITEM "首选项(&P)...", IDM_PREFERENCES
-# ifdef USE_DISCORD
- MENUITEM SEPARATOR
- MENUITEM "启用 Discord 集成(&D)", IDM_DISCORD
-# endif
MENUITEM SEPARATOR
MENUITEM "截图(&c)\tCtrl+F11", IDM_ACTION_SCREENSHOT
MENUITEM SEPARATOR
+ MENUITEM "首选项(&P)...", IDM_PREFERENCES
+ MENUITEM "启用 Discord 集成(&D)", IDM_DISCORD
+ MENUITEM SEPARATOR
MENUITEM "音量增益(&g)...", IDM_SND_GAIN
#ifdef MTR_ENABLED
MENUITEM SEPARATOR
diff --git a/src/win/win.c b/src/win/win.c
index 30555a18f..d2a5003ec 100644
--- a/src/win/win.c
+++ b/src/win/win.c
@@ -106,11 +106,7 @@ static const struct {
{ "SDL_Software", 1, (int(*)(void*))sdl_inits, sdl_close, NULL, sdl_pause, sdl_enable, sdl_set_fs, sdl_reload },
{ "SDL_Hardware", 1, (int(*)(void*))sdl_inith, sdl_close, NULL, sdl_pause, sdl_enable, sdl_set_fs, sdl_reload },
{ "SDL_OpenGL", 1, (int(*)(void*))sdl_initho, sdl_close, NULL, sdl_pause, sdl_enable, sdl_set_fs, sdl_reload }
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
,{ "OpenGL_Core", 1, (int(*)(void*))opengl_init, opengl_close, opengl_resize, opengl_pause, NULL, opengl_set_fs, opengl_reload}
-#else
- ,{ "OpenGL_Core", 1, (int(*)(void*))sdl_initho, sdl_close, NULL, sdl_pause, sdl_enable, sdl_set_fs, NULL } /* fall back to SDL_OpenGL */
-#endif
#ifdef USE_VNC
,{ "VNC", 0, vnc_init, vnc_close, vnc_resize, vnc_pause, NULL, NULL }
#endif
@@ -1005,15 +1001,9 @@ plat_vidapi_name(int api)
case 2:
name = "sdl_opengl";
break;
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
case 3:
name = "opengl_core";
break;
-#else
- case 3:
- name = "sdl_opengl"; /* fall back to SDL_OpenGL */
- break;
-#endif
#ifdef USE_VNC
case 4:
name = "vnc";
diff --git a/src/win/win_ui.c b/src/win/win_ui.c
index fc41f0b8a..55591f7af 100644
--- a/src/win/win_ui.c
+++ b/src/win/win_ui.c
@@ -44,9 +44,7 @@
#include <86box/ui.h>
#include <86box/win.h>
#include <86box/version.h>
-#ifdef USE_DISCORD
# include <86box/win_discord.h>
-#endif
#ifdef MTR_ENABLED
#include
@@ -163,7 +161,6 @@ video_toggle_option(HMENU h, int *val, int id)
device_force_redraw();
}
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
/* Recursively finds and deletes target submenu */
static int
delete_submenu(HMENU parent, HMENU target)
@@ -191,7 +188,6 @@ delete_submenu(HMENU parent, HMENU target)
return 0;
}
-#endif
static int menu_vidapi = -1;
static HMENU cur_menu = NULL;
@@ -199,7 +195,6 @@ static HMENU cur_menu = NULL;
static void
show_render_options_menu()
{
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
if (vid_api == menu_vidapi)
return;
@@ -215,7 +210,7 @@ show_render_options_menu()
{
case IDM_VID_OPENGL_CORE:
cur_menu = LoadMenu(hinstance, VID_GL_SUBMENU);
- InsertMenu(GetSubMenu(menuMain, 1), 4, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT_PTR)cur_menu, plat_get_string(IDS_2144));
+ InsertMenu(GetSubMenu(menuMain, 1), 6, MF_BYPOSITION | MF_STRING | MF_POPUP, (UINT_PTR)cur_menu, plat_get_string(IDS_2144));
CheckMenuItem(menuMain, IDM_VID_GL_FPS_BLITTER, video_framerate == -1 ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(menuMain, IDM_VID_GL_FPS_25, video_framerate == 25 ? MF_CHECKED : MF_UNCHECKED);
CheckMenuItem(menuMain, IDM_VID_GL_FPS_30, video_framerate == 30 ? MF_CHECKED : MF_UNCHECKED);
@@ -229,7 +224,6 @@ show_render_options_menu()
}
menu_vidapi = vid_api;
-#endif
}
static void
@@ -282,13 +276,11 @@ ResetAllMenus(void)
CheckMenuItem(menuMain, IDM_VID_SDL_SW, MF_UNCHECKED);
CheckMenuItem(menuMain, IDM_VID_SDL_HW, MF_UNCHECKED);
CheckMenuItem(menuMain, IDM_VID_SDL_OPENGL, MF_UNCHECKED);
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
CheckMenuItem(menuMain, IDM_VID_OPENGL_CORE, MF_UNCHECKED);
- menu_vidapi = -1;
- cur_menu = NULL;
+ menu_vidapi = -1;
+ cur_menu = NULL;
show_render_options_menu();
-#endif
#ifdef USE_VNC
CheckMenuItem(menuMain, IDM_VID_VNC, MF_UNCHECKED);
#endif
@@ -362,12 +354,10 @@ ResetAllMenus(void)
video_set_filter_menu(menuMain);
-#ifdef USE_DISCORD
if (discord_loaded)
CheckMenuItem(menuMain, IDM_DISCORD, enable_discord ? MF_CHECKED : MF_UNCHECKED);
else
EnableMenuItem(menuMain, IDM_DISCORD, MF_DISABLED);
-#endif
#ifdef MTR_ENABLED
EnableMenuItem(menuMain, IDM_ACTION_END_TRACE, MF_DISABLED);
#endif
@@ -704,9 +694,7 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case IDM_VID_SDL_SW:
case IDM_VID_SDL_HW:
case IDM_VID_SDL_OPENGL:
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
case IDM_VID_OPENGL_CORE:
-#endif
#ifdef USE_VNC
case IDM_VID_VNC:
#endif
@@ -718,7 +706,6 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
show_render_options_menu();
break;
-#if defined(DEV_BRANCH) && defined(USE_OPENGL)
case IDM_VID_GL_FPS_BLITTER:
case IDM_VID_GL_FPS_25:
case IDM_VID_GL_FPS_30:
@@ -757,7 +744,6 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
EnableMenuItem(menuMain, IDM_VID_GL_NOSHADER, MF_DISABLED);
plat_vid_reload_options();
break;
-#endif
case IDM_VID_FULLSCREEN:
plat_setfullscreen(1);
@@ -858,7 +844,6 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
config_save();
break;
-#ifdef USE_DISCORD
case IDM_DISCORD:
if (! discord_loaded) break;
enable_discord ^= 1;
@@ -869,7 +854,6 @@ MainWindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
} else
discord_close();
break;
-#endif
#ifdef ENABLE_LOG_TOGGLES
# ifdef ENABLE_BUSLOGIC_LOG
@@ -1287,7 +1271,6 @@ ui_init(int nCmdShow)
return(0);
}
-#ifdef USE_DISCORD
if(! discord_load()) {
enable_discord = 0;
} else if (enable_discord) {
@@ -1297,7 +1280,6 @@ ui_init(int nCmdShow)
/* Update Discord status */
discord_update_activity(dopause);
}
-#endif
/* Create our main window's class and register it. */
wincl.hInstance = hinstance;
@@ -1534,11 +1516,9 @@ ui_init(int nCmdShow)
plat_setfullscreen(0);
}
-#ifdef USE_DISCORD
/* Run Discord API callbacks */
if (enable_discord)
discord_run_callbacks();
-#endif
}
timeEndPeriod(1);
@@ -1556,13 +1536,11 @@ ui_init(int nCmdShow)
win_mouse_close();
-#ifdef USE_DISCORD
/* Shut down the Discord integration */
discord_close();
-#endif
- if (user32_handle != NULL)
- dynld_close(user32_handle);
+ if (user32_handle != NULL)
+ dynld_close(user32_handle);
return(messages.wParam);
}
@@ -1622,11 +1600,9 @@ plat_pause(int p)
CheckMenuItem(menuMain, IDM_ACTION_PAUSE,
(dopause) ? MF_CHECKED : MF_UNCHECKED);
-#if USE_DISCORD
/* Update Discord status */
- if(enable_discord)
+ if (enable_discord)
discord_update_activity(dopause);
-#endif
/* Send the WM to a manager if needed. */
if (source_hwnd)