From 0a8b93d58f1d3f5f15eb0a16c4fcc588e4dd97dd Mon Sep 17 00:00:00 2001 From: Ompronce <88358700+Ompronce@users.noreply.github.com> Date: Thu, 20 Jan 2022 04:49:06 -0400 Subject: [PATCH 1/7] Fixed incorrect control chip ID of AdLib Gold --- src/sound/snd_adlibgold.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sound/snd_adlibgold.c b/src/sound/snd_adlibgold.c index 5d435f61e..f3aeb35eb 100644 --- a/src/sound/snd_adlibgold.c +++ b/src/sound/snd_adlibgold.c @@ -498,9 +498,9 @@ uint8_t adgold_read(uint16_t addr, void *p) { case 0x00: /*Control/ID*/ if (adgold->surround_enabled) - temp = 0x50; /*16-bit ISA, surround module, no telephone/CDROM*/ + temp = 0x51; /*8-bit ISA, surround module, no telephone/CD-ROM*/ else - temp = 0x70; /*16-bit ISA, no telephone/surround/CD-ROM*/ + temp = 0x71; /*8-bit ISA, no telephone/surround/CD-ROM*/ break; default: From 415a98fa15e9497f557f49ff586adfc5f67660d1 Mon Sep 17 00:00:00 2001 From: Ompronce <88358700+Ompronce@users.noreply.github.com> Date: Thu, 20 Jan 2022 13:12:28 -0400 Subject: [PATCH 2/7] Added auxillary registers (used for line in and CD audio) to AdLib Gold mixer --- src/sound/snd_adlibgold.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/sound/snd_adlibgold.c b/src/sound/snd_adlibgold.c index f3aeb35eb..853e74f0e 100644 --- a/src/sound/snd_adlibgold.c +++ b/src/sound/snd_adlibgold.c @@ -60,6 +60,7 @@ typedef struct adgold_t int fm_vol_l, fm_vol_r; int samp_vol_l, samp_vol_r; + int aux_vol_l, aux_vol_r; int vol_l, vol_r; int treble, bass; @@ -260,6 +261,14 @@ void adgold_write(uint16_t addr, uint8_t val, void *p) adgold->adgold_38x_regs[0x0c] = val; adgold->samp_vol_r = (int)(int8_t)(val - 128); break; + case 0x0d: /*Aux volume left*/ + adgold->adgold_38x_regs[0x0d] = val; + adgold->aux_vol_l = (int)(int8_t)(val - 128); + break; + case 0x0e: /*Aux volume right*/ + adgold->adgold_38x_regs[0x0e] = val; + adgold->aux_vol_r = (int)(int8_t)(val - 128); + break; case 0x18: /*Surround*/ adgold->adgold_38x_regs[0x18] = val; @@ -810,6 +819,8 @@ static void adgold_get_buffer(int32_t *buffer, int len, void *p) free(adgold_buffer); } +/*CD audio filter goes here*/ + static void adgold_input_msg(void *p, uint8_t *msg, uint32_t len) { @@ -899,6 +910,8 @@ void *adgold_init(const device_t *info) adgold->fm_vol_r = (int)(int8_t)(adgold->adgold_eeprom[0x0a] - 128); adgold->samp_vol_l = (int)(int8_t)(adgold->adgold_eeprom[0x0b] - 128); adgold->samp_vol_r = (int)(int8_t)(adgold->adgold_eeprom[0x0c] - 128); + adgold->aux_vol_l = (int)(int8_t)(adgold->adgold_eeprom[0x0d] - 128); + adgold->aux_vol_r = (int)(int8_t)(adgold->adgold_eeprom[0x0e] - 128); adgold->adgold_mma_enable[0] = 0; adgold->adgold_mma_fifo_start[0] = adgold->adgold_mma_fifo_end[0] = 0; @@ -913,6 +926,8 @@ void *adgold_init(const device_t *info) sound_add_handler(adgold_get_buffer, adgold); + /*sound_set_cd_audio_filter(adgold_filter_cd_audio, adgold);*/ + if (device_get_config_int("receive_input")) midi_in_handler(1, adgold_input_msg, adgold_input_sysex, adgold); From 5218fa0b19214cc00f409167bec0339720d7f5cb Mon Sep 17 00:00:00 2001 From: Ompronce <88358700+Ompronce@users.noreply.github.com> Date: Thu, 20 Jan 2022 17:43:31 -0400 Subject: [PATCH 3/7] Refined and optimized CD audio filter on AdLib Gold sound card --- src/sound/snd_adlibgold.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/sound/snd_adlibgold.c b/src/sound/snd_adlibgold.c index 853e74f0e..4a94fc0d1 100644 --- a/src/sound/snd_adlibgold.c +++ b/src/sound/snd_adlibgold.c @@ -819,7 +819,17 @@ static void adgold_get_buffer(int32_t *buffer, int len, void *p) free(adgold_buffer); } -/*CD audio filter goes here*/ +static void +adgold_filter_cd_audio(int channel, double *buffer, void *p) +{ + adgold_t *adgold = (adgold_t *)p; + double c; + int aux = channel ? adgold->aux_vol_r : adgold->aux_vol_l; + int vol = channel ? adgold->vol_r : adgold->vol_l; + + c = ((((*buffer) * aux) / 4096.0) * vol) / 4096.0; + *buffer = c; +} static void adgold_input_msg(void *p, uint8_t *msg, uint32_t len) @@ -926,7 +936,7 @@ void *adgold_init(const device_t *info) sound_add_handler(adgold_get_buffer, adgold); - /*sound_set_cd_audio_filter(adgold_filter_cd_audio, adgold);*/ + sound_set_cd_audio_filter(adgold_filter_cd_audio, adgold); if (device_get_config_int("receive_input")) midi_in_handler(1, adgold_input_msg, adgold_input_sysex, adgold); From 89c8212267d1de6f23dd3f1e0c876f79805a4fdc Mon Sep 17 00:00:00 2001 From: Ompronce <88358700+Ompronce@users.noreply.github.com> Date: Thu, 20 Jan 2022 17:46:36 -0400 Subject: [PATCH 4/7] Corrected spacing --- src/sound/snd_adlibgold.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sound/snd_adlibgold.c b/src/sound/snd_adlibgold.c index 4a94fc0d1..93c0af420 100644 --- a/src/sound/snd_adlibgold.c +++ b/src/sound/snd_adlibgold.c @@ -825,7 +825,7 @@ adgold_filter_cd_audio(int channel, double *buffer, void *p) adgold_t *adgold = (adgold_t *)p; double c; int aux = channel ? adgold->aux_vol_r : adgold->aux_vol_l; - int vol = channel ? adgold->vol_r : adgold->vol_l; + int vol = channel ? adgold->vol_r : adgold->vol_l; c = ((((*buffer) * aux) / 4096.0) * vol) / 4096.0; *buffer = c; From 23a754443e61ec78c9b8b3cd97ab1f8a2b5cb26b Mon Sep 17 00:00:00 2001 From: OBattler Date: Fri, 21 Jan 2022 15:44:24 +0100 Subject: [PATCH 5/7] ES1371 MIDI UART fixes. --- src/sound/snd_audiopci.c | 356 ++++++++++++++++++++++----------------- 1 file changed, 198 insertions(+), 158 deletions(-) diff --git a/src/sound/snd_audiopci.c b/src/sound/snd_audiopci.c index 444108a25..91d04a311 100644 --- a/src/sound/snd_audiopci.c +++ b/src/sound/snd_audiopci.c @@ -67,13 +67,10 @@ typedef struct { uint32_t sr_cir; uint16_t sr_ram[128]; - uint8_t uart_ctrl, uart_status, - uart_res; - uint32_t uart_fifo; - - uint8_t midi_queue[64], midi_data; - int midi_r, midi_w; - int uart_in, sysex, valid; + uint8_t uart_data, uart_ctrl, + uart_status, uart_res; + uint32_t uart_fifo[8]; + uint8_t read_fifo_pos, write_fifo_pos; ac97_codec_t * codec; uint32_t codec_ctrl; @@ -169,6 +166,8 @@ typedef struct { #define UART_STATUS_TXRDY (1<<1) #define UART_STATUS_RXRDY (1<<0) +#define UART_FIFO_BYTE_VALID 0x00000100 + #define FORMAT_MONO_8 0 #define FORMAT_STEREO_8 1 #define FORMAT_MONO_16 2 @@ -204,19 +203,16 @@ es1371_update_irqs(es1371_t *dev) int irq = 0; if ((dev->int_status & INT_STATUS_DAC1) && (dev->si_cr & SI_P1_INTR_EN)) - irq = 1; + irq = 1; if ((dev->int_status & INT_STATUS_DAC2) && (dev->si_cr & SI_P2_INTR_EN)) - irq = 1; + irq = 1; - if (dev->int_status & INT_STATUS_UART) { - if (((dev->uart_ctrl & UART_CTRL_TXINTEN) != 0x20) && (dev->uart_status & UART_STATUS_TXINT) && !dev->uart_in) { - audiopci_log("TXINT\n"); - irq = 1; - } else if ((dev->uart_ctrl & UART_CTRL_RXINTEN) && (dev->uart_status & UART_STATUS_RXINT) && (dev->uart_in)) { - audiopci_log("RXINT\n"); - irq = 1; - } - } + dev->int_status &= ~INT_STATUS_UART; + + if ((dev->uart_status & UART_STATUS_TXINT) || (dev->uart_status & UART_STATUS_RXINT)) { + dev->int_status |= INT_STATUS_UART; + irq = 1; + } if (irq) dev->int_status |= INT_STATUS_INTR; @@ -233,15 +229,96 @@ es1371_update_irqs(es1371_t *dev) } +static void +es1371_update_tx_irq(es1371_t *dev) +{ + dev->uart_status &= ~UART_STATUS_TXINT; + + if (((dev->uart_ctrl & UART_CTRL_TXINTEN) == 0x20) && (dev->uart_status & UART_STATUS_TXRDY)) + dev->uart_status |= UART_STATUS_TXINT; + + es1371_update_irqs(dev); +} + + +static void +es1371_set_tx_irq(es1371_t *dev, int set) +{ + dev->uart_status &= ~UART_STATUS_TXRDY; + + if (set) + dev->uart_status |= UART_STATUS_TXRDY; + + es1371_update_tx_irq(dev); +} + + +static void +es1371_update_rx_irq(es1371_t *dev) +{ + dev->uart_status &= ~UART_STATUS_RXINT; + + if ((dev->uart_ctrl & UART_CTRL_RXINTEN) && (dev->uart_status & UART_STATUS_RXRDY)) + dev->uart_status |= UART_STATUS_RXINT; + + es1371_update_irqs(dev); +} + + +static void +es1371_set_rx_irq(es1371_t *dev, int set) +{ + dev->uart_status &= ~UART_STATUS_RXRDY; + + if (set) + dev->uart_status |= UART_STATUS_RXRDY; + + es1371_update_rx_irq(dev); +} + + +static void +es1371_scan_fifo(es1371_t *dev) +{ + if (dev->read_fifo_pos != dev->write_fifo_pos) { + dev->uart_data = dev->uart_fifo[dev->read_fifo_pos]; + dev->read_fifo_pos = (dev->read_fifo_pos + 1) & 7; + + es1371_set_rx_irq(dev, 1); + } else + es1371_set_rx_irq(dev, 0); +} + + +static void +es1371_write_fifo(es1371_t *dev, uint8_t val) +{ + if (dev->write_fifo_pos < 8) { + dev->uart_fifo[dev->write_fifo_pos] = val | UART_FIFO_BYTE_VALID; + dev->write_fifo_pos = (dev->write_fifo_pos + 1) & 7; + } +} + + +static void +es1371_reset_fifo(es1371_t *dev) +{ + int i; + + for (i = 0; i < 8; i++) + dev->uart_fifo[i] = 0x00000000; + + dev->read_fifo_pos = dev->write_fifo_pos = 0; + + es1371_set_rx_irq(dev, 0); +} + + static void es1371_reset(void *p) { es1371_t *dev = (es1371_t *) p; - - dev->uart_in = 0; - dev->midi_r = 0; - dev->midi_w = 0; - dev->valid = 0; + int i; nmi = 0; @@ -329,7 +406,14 @@ es1371_reset(void *p) /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ - dev->uart_fifo = 0xfffffe00; + for (i = 0; i < 8; i++) + dev->uart_fifo[i] = 0xffff0000; + + /* Reset the UART TX. */ + es1371_set_tx_irq(dev, 0); + + /* Reset the UART (RX) FIFO. */ + es1371_reset_fifo(dev); /* Update interrupts to ensure they're all correctly cleared. */ es1371_update_irqs(dev); @@ -357,10 +441,10 @@ es1371_read_frame_reg(es1371_t *dev, int frame, int page) /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ case 0xe: case 0xf: - ret = dev->midi_data; - if (dev->valid) { - ret |= 0x100; - } + audiopci_log("[30:%02X] ret = dev->uart_fifo[%02X] = %08X\n", page, + ((page & 0x01) << 2) + ((frame >> 2) & 0x03), + dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)]); + ret = dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)]; break; } break; @@ -379,10 +463,10 @@ es1371_read_frame_reg(es1371_t *dev, int frame, int page) /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ case 0xe: case 0xf: - ret = dev->midi_data; - if (dev->valid) { - ret |= 0x100; - } + audiopci_log("[34:%02X] ret = dev->uart_fifo[%02X] = %08X\n", page, + ((page & 0x01) << 2) + ((frame >> 2) & 0x03), + dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)]); + ret = dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)]; break; } break; @@ -396,10 +480,10 @@ es1371_read_frame_reg(es1371_t *dev, int frame, int page) /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ case 0xe: case 0xf: - ret = dev->midi_data; - if (dev->valid) { - ret |= 0x100; - } + audiopci_log("[38:%02X] ret = dev->uart_fifo[%02X] = %08X\n", page, + ((page & 0x01) << 2) + ((frame >> 2) & 0x03), + dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)]); + ret = dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)]; break; } break; @@ -413,10 +497,10 @@ es1371_read_frame_reg(es1371_t *dev, int frame, int page) /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ case 0xe: case 0xf: - ret = dev->midi_data; - if (dev->valid) { - ret |= 0x100; - } + audiopci_log("[3C:%02X] ret = dev->uart_fifo[%02X] = %08X\n", page, + ((page & 0x01) << 2) + ((frame >> 2) & 0x03), + dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)]); + ret = dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)]; break; } break; @@ -448,9 +532,10 @@ es1371_write_frame_reg(es1371_t *dev, int frame, int page, uint32_t val) break; /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ - case 0xe: - case 0xf: - dev->uart_fifo = (dev->uart_fifo & 0xfffffe00) | (val & 0x000001ff); + case 0xe: case 0xf: + audiopci_log("[30:%02X] dev->uart_fifo[%02X] = %08X\n", page, + ((page & 0x01) << 2) + ((frame >> 2) & 0x03), val); + dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)] = val; break; } break; @@ -470,9 +555,10 @@ es1371_write_frame_reg(es1371_t *dev, int frame, int page, uint32_t val) break; /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ - case 0xe: - case 0xf: - dev->uart_fifo = (dev->uart_fifo & 0xfffffe00) | (val & 0x000001ff); + case 0xe: case 0xf: + audiopci_log("[34:%02X] dev->uart_fifo[%02X] = %08X\n", page, + ((page & 0x01) << 2) + ((frame >> 2) & 0x03), val); + dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)] = val; break; } break; @@ -485,9 +571,10 @@ es1371_write_frame_reg(es1371_t *dev, int frame, int page, uint32_t val) break; /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ - case 0xe: - case 0xf: - dev->uart_fifo = (dev->uart_fifo & 0xfffffe00) | (val & 0x000001ff); + case 0xe: case 0xf: + audiopci_log("[38:%02X] dev->uart_fifo[%02X] = %08X\n", page, + ((page & 0x01) << 2) + ((frame >> 2) & 0x03), val); + dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)] = val; break; } break; @@ -501,18 +588,18 @@ es1371_write_frame_reg(es1371_t *dev, int frame, int page, uint32_t val) break; /* UART FIFO Register, Address 30H, 34H, 38H, 3CH, Memory Page 1110b, 1111b Addressable as longword only */ - case 0xe: - case 0xf: - dev->uart_fifo = (dev->uart_fifo & 0xfffffe00) | (val & 0x000001ff); + case 0xe: case 0xf: + audiopci_log("[3C:%02X] dev->uart_fifo[%02X] = %08X\n", page, + ((page & 0x01) << 2) + ((frame >> 2) & 0x03), val); + dev->uart_fifo[((page & 0x01) << 2) + ((frame >> 2) & 0x03)] = val; break; } break; } - - if (page == 0x0e || page == 0x0f) { - audiopci_log("Write frame = %02x, page = %02x, uart fifo = %08x, val = %02x\n", frame, page, dev->uart_fifo, val); - dev->valid = 0; - } + + if (page == 0x0e || page == 0x0f) { + audiopci_log("Write frame = %02x, page = %02x, uart fifo = %08x, val = %02x\n", frame, page, dev->uart_fifo, val); + } } @@ -543,34 +630,27 @@ es1371_inb(uint16_t port, void *p) must be for a reason */ case 0x04: ret = dev->int_status & 0xff; + audiopci_log("[R] STATUS 0- 7 = %02X\n", ret); break; case 0x05: ret = (dev->int_status >> 8) & 0xff; + audiopci_log("[R] STATUS 8-15 = %02X\n", ret); break; case 0x06: ret = (dev->int_status >> 16) & 0x0f; + audiopci_log("[R] STATUS 16-23 = %02X\n", ret); break; case 0x07: ret = ((dev->int_status >> 24) & 0x03) | 0xfc; + audiopci_log("[R] STATUS 24-31 = %02X\n", ret); break; /* UART Data Register, Address 08H Addressable as byte only */ case 0x08: - ret = 0x00; - if (dev->uart_in) { - ret = dev->midi_queue[dev->midi_r]; - if (dev->midi_r != dev->midi_w) { - dev->midi_r++; - dev->midi_r &= 0x3f; - } - dev->midi_data = ret; - audiopci_log("MIDI input ret = %02x, pos = %i, valid = %i\n", ret, dev->midi_r, dev->valid); - if (!dev->valid) - dev->int_status &= ~INT_STATUS_UART; - dev->uart_status &= ~(UART_STATUS_RXINT | UART_STATUS_RXRDY); - es1371_update_irqs(dev); - } + ret = dev->uart_data; + es1371_set_rx_irq(dev, 0); + audiopci_log("[R] UART DATA = %02X\n", ret); break; /* UART Status Register, Address 09H @@ -584,6 +664,7 @@ es1371_inb(uint16_t port, void *p) Addressable as byte only */ case 0x0a: ret = dev->uart_res & 0x01; + audiopci_log("[R] UART RES = %02X\n", ret); break; /* Memory Page Register, Address 0CH @@ -735,6 +816,7 @@ es1371_inl(uint16_t port, void *p) Addressable as longword only */ case 0x04: ret = dev->int_status; + audiopci_log("[R] STATUS = %08X\n", ret); break; /* Memory Page Register, Address 0CH @@ -836,35 +918,36 @@ es1371_outb(uint16_t port, uint8_t val, void *p) /* UART Data Register, Address 08H Addressable as byte only */ case 0x08: - audiopci_log("MIDI data = %02x\n", dev->midi_data); + audiopci_log("MIDI data = %02x\n", val); + /* TX does not use FIFO. */ midi_raw_out_byte(val); + es1371_set_tx_irq(dev, 1); break; /* UART Control Register, Address 09H Addressable as byte only */ case 0x09: + audiopci_log("[W] UART CTRL = %02X\n", val); dev->uart_ctrl = val & 0xe3; - if ((val & 0x03) == 0x03) { /*Software reset*/ - dev->uart_in = 0; - dev->uart_status = 0x00; - dev->midi_r = 0; - dev->midi_w = 0; - dev->valid = 0; - } else if (dev->uart_ctrl & UART_CTRL_RXINTEN) { - dev->uart_in = 1; - audiopci_log("ES1371 UART RX Cntrl = %02x\n", dev->uart_ctrl); - } else if ((dev->uart_ctrl & UART_CTRL_TXINTEN) != 0x20) { - dev->int_status &= ~INT_STATUS_UART; - dev->uart_in = 0; + if ((val & 0x03) == 0x03) { + /* Reset TX */ + es1371_set_tx_irq(dev, 1); + + /* Software reset */ + es1371_reset_fifo(dev); + } else { + es1371_set_tx_irq(dev, 1); + + es1371_update_tx_irq(dev); + es1371_update_rx_irq(dev); } - - es1371_update_irqs(dev); break; /* UART Reserved Register, Address 0AH Addressable as byte only */ case 0x0a: + audiopci_log("[W] UART RES = %02X\n", val); dev->uart_res = val & 0x01; break; @@ -1031,6 +1114,7 @@ es1371_outl(uint16_t port, uint32_t val, void *p) /* Interrupt/Chip Select Status Register, Address 04H Addressable as longword only */ case 0x04: + audiopci_log("[W] STATUS = %08X\n", val); break; /* Memory Page Register, Address 0CH @@ -1770,42 +1854,10 @@ es1371_poll(void *p) timer_advance_u64(&dev->dac[1].timer, dev->dac[1].latch); + es1371_scan_fifo(dev); + es1371_update(dev); - if (dev->int_ctrl & INT_UART_EN) { - //audiopci_log("UART INT Enabled\n"); - if (((dev->uart_ctrl & (UART_CTRL_RXINTEN | UART_CTRL_TXINTEN)) == UART_CTRL_RXINTEN) && dev->uart_in) { - audiopci_log("RX irq\n"); - dev->int_status |= INT_STATUS_UART; - } else if (((dev->uart_ctrl & (UART_CTRL_RXINTEN | UART_CTRL_TXINTEN)) == UART_CTRL_TXINTEN) && !dev->uart_in) { - audiopci_log("TX irq\n"); - dev->int_status |= INT_STATUS_UART; - } else if ((dev->uart_ctrl & (UART_CTRL_RXINTEN | UART_CTRL_TXINTEN)) == (UART_CTRL_RXINTEN | UART_CTRL_TXINTEN)) { - dev->int_status &= ~INT_STATUS_UART; - if (dev->uart_in) { - audiopci_log("No Status UART RX\n"); - dev->uart_status |= (UART_STATUS_RXINT | UART_STATUS_RXRDY); - dev->uart_status &= ~(UART_STATUS_TXINT | UART_STATUS_TXRDY); - } else { - audiopci_log("No Status UART TX\n"); - dev->uart_status &= ~(UART_STATUS_RXINT | UART_STATUS_RXRDY); - dev->uart_status |= (UART_STATUS_TXINT | UART_STATUS_TXRDY); - } - } else { - audiopci_log("STAT UART IN = %i\n", dev->uart_in); - if (dev->uart_in) { - dev->uart_status |= (UART_STATUS_RXINT | UART_STATUS_RXRDY); - dev->uart_status &= ~(UART_STATUS_TXINT | UART_STATUS_TXRDY); - } else { - dev->uart_status &= ~(UART_STATUS_RXINT | UART_STATUS_RXRDY); - dev->uart_status |= (UART_STATUS_TXINT | UART_STATUS_TXRDY); - } - } - - //audiopci_log("UART control = %02x\n", dev->uart_ctrl & (UART_CTRL_RXINTEN | UART_CTRL_TXINTEN)); - es1371_update_irqs(dev); - } - if (dev->int_ctrl & INT_DAC1_EN) { frac = dev->dac[0].ac & 0x7fff; idx = dev->dac[0].ac >> 15; @@ -1928,59 +1980,47 @@ generate_es1371_filter(void) static void es1371_input_msg(void *p, uint8_t *msg, uint32_t len) { - es1371_t *dev = (es1371_t *)p; - uint8_t i; - - audiopci_log("SYSEX on MSG = %i, len = %i, midiw = %i\n", dev->sysex, len, dev->midi_w); + es1371_t *dev = (es1371_t *)p; + uint8_t i; - if (dev->sysex) - return; - - if (dev->uart_in) { - audiopci_log("RX midi data\n"); - dev->uart_status |= (UART_STATUS_RXINT | UART_STATUS_RXRDY); - dev->valid = 1; - - for (i=0; i < len; i++) { - dev->midi_queue[dev->midi_w++] = msg[i]; - dev->midi_w &= 0x3f; - } - - es1371_update_irqs(dev); - } + for (i = 0; i < len; i++) + es1371_write_fifo(dev, msg[i]); } + static int es1371_input_sysex(void *p, uint8_t *buffer, uint32_t len, int abort) { - es1371_t *dev = (es1371_t *)p; - uint32_t i; - - audiopci_log("SYSEX = %i, Abort = %i\n", dev->sysex, abort); - - if (abort) { - dev->sysex = 0; - return 0; + es1371_t *dev = (es1371_t *)p; + uint32_t i = -1; + + audiopci_log("Abort = %i\n", abort); + + if (dev->uart_status & UART_STATUS_RXRDY) + abort = 1; + + if (!abort) { + for (i = 0; i < len; i++) { + es1371_write_fifo(dev, buffer[i]); + if (dev->uart_status & UART_STATUS_RXRDY) + break; } - dev->sysex = 1; - for (i=0;imidi_r == dev->midi_w) - return (len-i); - dev->midi_queue[dev->midi_w++] = buffer[i]; - dev->midi_w &= 0x3f; - } - dev->sysex = 0; - return 0; + } + + /* The last sent position is in i. Return 7 - i. */ + + return 7 - i; } + static void * es1371_init(const device_t *info) { es1371_t *dev = malloc(sizeof(es1371_t)); memset(dev, 0x00, sizeof(es1371_t)); - if (device_get_config_int("receive_input")) - midi_in_handler(1, es1371_input_msg, es1371_input_sysex, dev); + if (device_get_config_int("receive_input")) + midi_in_handler(1, es1371_input_msg, es1371_input_sysex, dev); sound_add_handler(es1371_get_buffer, dev); sound_set_cd_audio_filter(es1371_filter_cd_audio, dev); From 013b42777b5e76877e80c8f378a27bd328fc316c Mon Sep 17 00:00:00 2001 From: Fanta Shokata <96204552+Fanta-Shokata@users.noreply.github.com> Date: Fri, 21 Jan 2022 15:57:42 +0100 Subject: [PATCH 6/7] Polish translation --- src/win/languages/pl-PL.rc | 647 +++++++++++++++++++++++++++++++++++++ 1 file changed, 647 insertions(+) create mode 100644 src/win/languages/pl-PL.rc diff --git a/src/win/languages/pl-PL.rc b/src/win/languages/pl-PL.rc new file mode 100644 index 000000000..2c4a74e7c --- /dev/null +++ b/src/win/languages/pl-PL.rc @@ -0,0 +1,647 @@ +//////////////////////////////////////////////////////////////////////////// +// 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 "&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 + 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+PageUP", 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 + MENUITEM "Włącz integrację z &Discord", IDM_DISCORD + 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 +#if defined(ENABLE_LOG_TOGGLES) || defined(ENABLE_LOG_COMMANDS) + POPUP "&Logowanie" + BEGIN +# ifdef ENABLE_BUSLOGIC_LOG + MENUITEM "Włącz logu BusLogic\tCtrl+F4", IDM_LOG_BUSLOGIC +# endif +# ifdef ENABLE_CDROM_LOG + MENUITEM "Włącz logi CD-ROM\tCtrl+F5", IDM_LOG_CDROM +# endif +# ifdef ENABLE_D86F_LOG + MENUITEM "Włącz logi dyskietek (86F)\tCtrl+F6", IDM_LOG_D86F +# endif +# ifdef ENABLE_FDC_LOG + MENUITEM "Włącz logi kontrolera dyskietek\tCtrl+F7", IDM_LOG_FDC +# endif +# ifdef ENABLE_IDE_LOG + MENUITEM "Włącz logi IDE\tCtrl+F8", IDM_LOG_IDE +# endif +# ifdef ENABLE_SERIAL_LOG + MENUITEM "Włącz logi portu szeregowego\tCtrl+F3", IDM_LOG_SERIAL +# endif +# ifdef ENABLE_NIC_LOG + MENUITEM "Włącz logi sieci\tCtrl+F9", IDM_LOG_NIC +# endif +# ifdef ENABLE_LOG_COMMANDS +# ifdef ENABLE_LOG_TOGGLES + MENUITEM SEPARATOR +# endif +# ifdef ENABLE_LOG_BREAKPOINT + MENUITEM "&Punkt przerwania dziennika\tCtrl+F10", IDM_LOG_BREAKPOINT +# endif +# ifdef ENABLE_VRAM_DUMP + MENUITEM "Zrzuć pamięć &wideo\tCtrl+F1", IDM_DUMP_VRAM +# endif +# endif + END +#endif + 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 + 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_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_VIDEO "Wideo:" +#define STR_VOODOO "Grafika Voodoo" + +#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_SOUND "Karta dźwiękowa:" +#define STR_MIDI "Urządzenie wyjściowe MIDI:" +#define STR_MIDI_IN "Urządzenie wejściowe MIDI:" +#define STR_MPU401 "Samodzielne urządzenie MPU-401" +#define STR_SSI "Innovation SSI-2001" +#define STR_CMS "CMS / Game Blaster" +#define STR_GUS "Gravis Ultrasound" +#define STR_FLOAT "Użyj dźwięku FLOAT32" + +#define STR_NET_TYPE "Rodzaj sieci:" +#define STR_PCAP "Urządzenie PCap:" +#define STR_NET "Karta sieciowa:" + +#define STR_LPT1 "Urządzenie LPT1:" +#define STR_LPT2 "Urządzenie LPT2:" +#define STR_LPT3 "Urządzenie LPT3:" +#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_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_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_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 "" + IDS_2052 "Naciśnij klawisze CTRL+ALT+PAGE DOWN 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_2080 "Nie można zainicjować FluidSynth" + IDS_2081 "Magistrala" + IDS_2082 "Plik" + IDS_2083 "C" + IDS_2084 "H" + IDS_2085 "S" + IDS_2086 "MB" + IDS_2087 "Sprawdzaj BPB" + IDS_2088 "KB" + IDS_2089 "Nie można zainicjować renderera wideo." + IDS_2090 "Domyślny" + IDS_2091 "%i Stany oczekiwania" + IDS_2092 "Rodzaj" + IDS_2093 "Nie udało się ustawić PCap" + IDS_2094 "Nie znaleziono urządzeń PCap" + IDS_2095 "Nieprawidłowe urządzenie PCap" + IDS_2096 "Standardowe joysticki 2-przyciskowe" + IDS_2097 "Standardowy joystick 4-przyciskowy" + IDS_2098 "Standardowy joystick 6-przyciskowy" + IDS_2099 "Standardowy joystick 8-przyciskowy" + IDS_2100 "CH Flightstick Pro" + IDS_2101 "Microsoft SideWinder Pad" + IDS_2102 "Thrustmaster Flight Control System" + IDS_2103 "Żaden" + IDS_2104 "Nie można załadować akceleratorów klawiaturowych." + IDS_2105 "Nie można zarejestrować surowych danych wejściowych." + IDS_2106 "%u" + IDS_2107 "%u MB (CHS: %i, %i, %i)" + IDS_2108 "Dyskietka %i (%s): %ls" + IDS_2109 "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_2110 "Nie można zainicjować FreeType" + IDS_2111 "Nie można zainicjować SDL, wymagany SDL2.dll" + IDS_2112 "Jesteś pewien że chcesz wykonać twardy reset emulowanej maszyny?" + IDS_2113 "Jesteś pewien że chcesz zakończyć 86Box?" + IDS_2114 "Nie można zainicjować Ghostscript" + IDS_2115 "MO %i (%ls): %ls" + IDS_2116 "Obrazy MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2117 "Witamy w 86Box!" + IDS_2118 "Kontroler wewnętrzny" + IDS_2119 "Zakończ" + IDS_2120 "Nie znaleziono obrazów ROM" + IDS_2121 "Czy chcesz zapisać ustawienia?" + IDS_2122 "To spowoduje twardy reset wirtualnej maszyny." + IDS_2123 "Zapisz" + IDS_2124 "O 86Box" + IDS_2125 "86Box v" EMU_VERSION + + IDS_2126 "Emulator starych komputerów\n\nAutorzy: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, 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_2127 "OK" + IDS_2128 "Sprzęt niedostępny" +#ifdef _WIN32 +#define LIB_NAME_PCAP "WinPcap" +#else +#define LIB_NAME_PCAP "libpcap" +#endif + IDS_2129 "Sprawdź, czy " LIB_NAME_PCAP " jest zainstalowany i czy posiadasz połączenie sieciowe kompatybilne z " LIB_NAME_PCAP "." + IDS_2130 "Nieprawidłowa konfiguracja" +#ifdef _WIN32 +#define LIB_NAME_FREETYPE "freetype.dll" +#else +#define LIB_NAME_FREETYPE "libfreetype" +#endif + IDS_2131 LIB_NAME_FREETYPE " jest wymagany do emulacji drukarki ESC-P." +#ifdef _WIN32 +#define LIB_NAME_GS "gsdll32.dll" +#else +#define LIB_NAME_GS "libgs" +#endif + IDS_2132 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)." +#ifdef _WIN32 +#define LIB_NAME_FLUIDSYNTH "libfluidsynth.dll" +#else +#define LIB_NAME_FLUIDSYNTH "libfluidsynth" +#endif + IDS_2133 LIB_NAME_FLUIDSYNTH " jest wymagany dla wyjścia FluidSynth MIDI." + IDS_2134 "Przechodzenie do trybu pełnoekranowego" + IDS_2135 "Nie pokazuj więcej tego komunikatu" + IDS_2136 "Nie kończ" + IDS_2137 "Przywróć" + IDS_2138 "Nie przywracaj" + IDS_2139 "Obrazy MO (*.IM?;*.MDI)\0*.IM?;*.MDI\0All files (*.*)\0*.*\0" + IDS_2140 "Obrazy CD-ROM (*.ISO;*.CUE)\0*.ISO;*.CUE\0All files (*.*)\0*.*\0" + IDS_2141 "Konfiguracja urządzenia %hs" + IDS_2142 "Monitor w trybie czuwania" + IDS_2143 "Shadery OpenGL (*.GLSL)\0*.GLSL\0Wszystkie pliki (*.*)\0*.*\0" + IDS_2144 "Opcje OpenGL" + IDS_2145 "Ładujesz nieobsługiwaną konfigurację" + IDS_2146 "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_2147 "Kontynuuj" + IDS_2148 "Kaseta: %s" + IDS_2149 "Obrazy kaset (*.PCM;*.RAW;*.WAV;*.CAS)\0*.PCM;*.RAW;*.WAV;*.CAS\0Wszystkie pliki (*.*)\0*.*\0" + IDS_2150 "Kartrydż %i: %ls" + IDS_2151 "Obrazy kartrydżu (*.A;*.B;*.JRC)\0*.A;*.B;*.JRC\0Wszystkie pliki (*.*)\0*.*\0" + IDS_2152 "Błąd inicjalizacji renderera" + IDS_2153 "Nie można zainicjować renderera OpenGL (3.0 Core). Użyj innego." + IDS_2154 "Wznów wykonywanie" + IDS_2155 "Zatrzymaj wykonywanie" + IDS_2156 "Naciśnij Ctrl+Alt+Del" + IDS_2157 "Naciśnij Ctrl+Alt+Esc" + IDS_2158 "Twardy reset" + IDS_2159 "Wyłączenie ACPI" + IDS_2160 "Ustawienia" +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 u 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 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"" 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 "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 +///////////////////////////////////////////////////////////////////////////// From 428254c2216e7a910ad4d1fe21ec45f88a13a77a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miran=20Gr=C4=8Da?= Date: Fri, 21 Jan 2022 16:26:13 +0100 Subject: [PATCH 7/7] Hooked up the Polish translation --- src/win/86Box.rc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/win/86Box.rc b/src/win/86Box.rc index 8b34c5c09..8f1195a06 100644 --- a/src/win/86Box.rc +++ b/src/win/86Box.rc @@ -379,6 +379,7 @@ END #include "languages/it-IT.rc" #include "languages/ja-JP.rc" #include "languages/ko-KR.rc" +#include "languages/pl-PL.rc" #include "languages/pt-BR.rc" #include "languages/pt-PT.rc" #include "languages/ru-RU.rc"