From 0a3f1e32795669758db0075570272a2bcad4acf3 Mon Sep 17 00:00:00 2001 From: OBattler Date: Tue, 15 Oct 2024 23:54:57 +0200 Subject: [PATCH 01/15] RDMSR, WRMSR, and WBINVD now correctly GPF when CPL > 0, fixes #4887. --- src/cpu/cpu.c | 8 ++++++-- src/cpu/x86_ops_misc.h | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 0c6d36097..c8c018aed 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -2611,7 +2611,9 @@ cpu_ven_reset(void) void cpu_RDMSR(void) { - switch (cpu_s->cpu_type) { + if (CPL) + x86gpf(NULL, 0); + else switch (cpu_s->cpu_type) { case CPU_IBM386SLC: case CPU_IBM486SLC: case CPU_IBM486BL: @@ -3466,7 +3468,9 @@ cpu_WRMSR(void) cpu_log("WRMSR %08X %08X%08X\n", ECX, EDX, EAX); - switch (cpu_s->cpu_type) { + if (CPL) + x86gpf(NULL, 0); + else switch (cpu_s->cpu_type) { case CPU_IBM386SLC: case CPU_IBM486SLC: case CPU_IBM486BL: diff --git a/src/cpu/x86_ops_misc.h b/src/cpu/x86_ops_misc.h index 073327c9c..f3e4bb353 100644 --- a/src/cpu/x86_ops_misc.h +++ b/src/cpu/x86_ops_misc.h @@ -878,6 +878,10 @@ opINVD(uint32_t fetchdat) static int opWBINVD(uint32_t fetchdat) { + if (CPL) { + x86gpf(NULL, 0); + return 1; + } CLOCK_CYCLES(10000); CPU_BLOCK_END(); return 0; From e8c1dc1bac078fd898acd0667799beb5c2476bb7 Mon Sep 17 00:00:00 2001 From: OBattler Date: Wed, 16 Oct 2024 06:56:55 +0200 Subject: [PATCH 02/15] Fix flags on the AAM and AAD instructions. --- src/cpu/808x.c | 7 +++++-- src/cpu/x86_ops_bcd.h | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/cpu/808x.c b/src/cpu/808x.c index 990f9ae87..807ae9b6b 100644 --- a/src/cpu/808x.c +++ b/src/cpu/808x.c @@ -3154,8 +3154,10 @@ execx86(int cycs) #else cpu_src = pfq_fetchb(); #endif - if (x86_div(AL, 0)) - set_pzs(16); + if (x86_div(AL, 0)) { + cpu_data = AL; + set_pzs(8); + } break; case 0xD5: /*AAD*/ wait(1, 0); @@ -3169,6 +3171,7 @@ execx86(int cycs) add(8); AL = cpu_data; AH = 0x00; + set_pzs(8); break; case 0xD6: /*SALC*/ wait(1, 0); diff --git a/src/cpu/x86_ops_bcd.h b/src/cpu/x86_ops_bcd.h index b4779ab3e..a04dea65a 100644 --- a/src/cpu/x86_ops_bcd.h +++ b/src/cpu/x86_ops_bcd.h @@ -24,7 +24,7 @@ opAAD(uint32_t fetchdat) base = 10; AL = (AH * base) + AL; AH = 0; - setznp16(AX); + setznp8(AL); CLOCK_CYCLES((is486) ? 14 : 19); PREFETCH_RUN(is486 ? 14 : 19, 2, -1, 0, 0, 0, 0, 0); return 0; @@ -39,7 +39,7 @@ opAAM(uint32_t fetchdat) base = 10; AH = AL / base; AL %= base; - setznp16(AX); + setznp8(AL); CLOCK_CYCLES((is486) ? 15 : 17); PREFETCH_RUN(is486 ? 15 : 17, 2, -1, 0, 0, 0, 0, 0); return 0; From 5edde3fc8755fb9f914a0924c4db37c0cb4d54fa Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Thu, 17 Oct 2024 20:23:40 -0400 Subject: [PATCH 03/15] Switch to macos-13 for github actions --- .github/workflows/cmake_macos.yml | 4 ++-- .github/workflows/codeql_macos.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cmake_macos.yml b/.github/workflows/cmake_macos.yml index dc45312f5..146490aa5 100644 --- a/.github/workflows/cmake_macos.yml +++ b/.github/workflows/cmake_macos.yml @@ -25,10 +25,10 @@ on: jobs: - macos12: + macos13: name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, x86_64" - runs-on: macos-12 + runs-on: macos-13 env: BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed diff --git a/.github/workflows/codeql_macos.yml b/.github/workflows/codeql_macos.yml index 266a1f051..bcfdf13fa 100644 --- a/.github/workflows/codeql_macos.yml +++ b/.github/workflows/codeql_macos.yml @@ -25,11 +25,11 @@ on: jobs: - analyze-macos12: + analyze-macos13: name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, x86_64" - runs-on: macos-12 + runs-on: macos-13 permissions: actions: read From 4e5d75d4442ae4abf804cf5772b3824b03b8cccf Mon Sep 17 00:00:00 2001 From: Jasmine Iwanek Date: Thu, 17 Oct 2024 20:38:04 -0400 Subject: [PATCH 04/15] Add libslirp to macos x86_64 --- .github/workflows/cmake_macos.yml | 3 ++- .github/workflows/codeql_macos.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cmake_macos.yml b/.github/workflows/cmake_macos.yml index 146490aa5..f482c7b69 100644 --- a/.github/workflows/cmake_macos.yml +++ b/.github/workflows/cmake_macos.yml @@ -25,7 +25,7 @@ on: jobs: - macos13: + macos13-x86_64: name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, x86_64" runs-on: macos-13 @@ -80,6 +80,7 @@ jobs: rtmidi openal-soft fluidsynth + libslirp ${{ matrix.ui.packages }} - name: Checkout repository diff --git a/.github/workflows/codeql_macos.yml b/.github/workflows/codeql_macos.yml index bcfdf13fa..6947ab6ef 100644 --- a/.github/workflows/codeql_macos.yml +++ b/.github/workflows/codeql_macos.yml @@ -25,7 +25,7 @@ on: jobs: - analyze-macos13: + analyze-macos13-x86_64: name: "${{ matrix.ui.name }}, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, x86_64" @@ -74,6 +74,7 @@ jobs: rtmidi openal-soft fluidsynth + libslirp ${{ matrix.ui.packages }} - name: Checkout repository From b6581dab8bbf43e00f31e537833371026afed13b Mon Sep 17 00:00:00 2001 From: OBattler Date: Sat, 19 Oct 2024 22:38:05 +0200 Subject: [PATCH 05/15] 386: Re-add the INVD and WBINVD instruction - the DataExpert Phoenix 4.03 BIOS uses the latter even when specifically detecting a 386, who knows what it did on an actual 386. --- src/cpu/386_ops.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cpu/386_ops.h b/src/cpu/386_ops.h index 130166344..b8ef9edda 100644 --- a/src/cpu/386_ops.h +++ b/src/cpu/386_ops.h @@ -649,7 +649,7 @@ const OpFn OP_TABLE(386_0f)[1024] = { // clang-format off /*16-bit data, 16-bit addr*/ /* 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f*/ -/*00*/ op0F00_a16, op0F01_w_a16, opLAR_w_a16, opLSL_w_a16, ILLEGAL, ILLEGAL, opCLTS, opLOADALL386, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, +/*00*/ op0F00_a16, op0F01_w_a16, opLAR_w_a16, opLSL_w_a16, ILLEGAL, ILLEGAL, opCLTS, opLOADALL386, opINVD, opWBINVD, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*10*/ opMOV_b_r_a16, opMOV_w_r_a16, opMOV_r_b_a16, opMOV_r_w_a16, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*20*/ opMOV_r_CRx_a16,opMOV_r_DRx_a16,opMOV_CRx_r_a16,opMOV_DRx_r_a16,opMOV_r_TRx_a16,ILLEGAL, opMOV_TRx_r_a16,ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*30*/ ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, @@ -671,7 +671,7 @@ const OpFn OP_TABLE(386_0f)[1024] = { /*32-bit data, 16-bit addr*/ /* 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f*/ -/*00*/ op0F00_a16, op0F01_l_a16, opLAR_l_a16, opLSL_l_a16, ILLEGAL, ILLEGAL, opCLTS, opLOADALL386, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, +/*00*/ op0F00_a16, op0F01_l_a16, opLAR_l_a16, opLSL_l_a16, ILLEGAL, ILLEGAL, opCLTS, opLOADALL386, opINVD, opWBINVD, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*10*/ opMOV_b_r_a16, opMOV_l_r_a16, opMOV_r_b_a16, opMOV_r_l_a16, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*20*/ opMOV_r_CRx_a16,opMOV_r_DRx_a16,opMOV_CRx_r_a16,opMOV_DRx_r_a16,opMOV_r_TRx_a16,ILLEGAL, opMOV_TRx_r_a16,ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*30*/ ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, @@ -693,7 +693,7 @@ const OpFn OP_TABLE(386_0f)[1024] = { /*16-bit data, 32-bit addr*/ /* 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f*/ -/*00*/ op0F00_a32, op0F01_w_a32, opLAR_w_a32, opLSL_w_a32, ILLEGAL, ILLEGAL, opCLTS, opLOADALL386, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, +/*00*/ op0F00_a32, op0F01_w_a32, opLAR_w_a32, opLSL_w_a32, ILLEGAL, ILLEGAL, opCLTS, opLOADALL386, opINVD, opWBINVD, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*10*/ opMOV_b_r_a32, opMOV_w_r_a32, opMOV_r_b_a32, opMOV_r_w_a32, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*20*/ opMOV_r_CRx_a32,opMOV_r_DRx_a32,opMOV_CRx_r_a32,opMOV_DRx_r_a32,opMOV_r_TRx_a32,ILLEGAL, opMOV_TRx_r_a32,ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*30*/ ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, @@ -715,7 +715,7 @@ const OpFn OP_TABLE(386_0f)[1024] = { /*32-bit data, 32-bit addr*/ /* 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f*/ -/*00*/ op0F00_a32, op0F01_l_a32, opLAR_l_a32, opLSL_l_a32, ILLEGAL, ILLEGAL, opCLTS, opLOADALL386, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, +/*00*/ op0F00_a32, op0F01_l_a32, opLAR_l_a32, opLSL_l_a32, ILLEGAL, ILLEGAL, opCLTS, opLOADALL386, opINVD, opWBINVD, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*10*/ opMOV_b_r_a32, opMOV_l_r_a32, opMOV_r_b_a32, opMOV_r_l_a32, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*20*/ opMOV_r_CRx_a32,opMOV_r_DRx_a32,opMOV_CRx_r_a32,opMOV_DRx_r_a32,opMOV_r_TRx_a32,ILLEGAL, opMOV_TRx_r_a32,ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, /*30*/ ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, From e2676641c322e7db193f19bbbbcd855e2e6274c2 Mon Sep 17 00:00:00 2001 From: rushieda <185547947+rushieda@users.noreply.github.com> Date: Sun, 20 Oct 2024 14:26:07 +0300 Subject: [PATCH 06/15] Fix errors with P6-based machines in the machine table --- src/machine/machine_table.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/machine/machine_table.c b/src/machine/machine_table.c index f389ae75a..c019a16dd 100644 --- a/src/machine/machine_table.c +++ b/src/machine/machine_table.c @@ -13545,7 +13545,7 @@ const machine_t machines[] = { .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB, .ram = { .min = 8192, - .max = 524288, + .max = 786432, .step = 8192 }, .nvrmask = 511, @@ -13625,7 +13625,7 @@ const machine_t machines[] = { .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_USB, .ram = { .min = 8192, - .max = 1048576, + .max = 524288, .step = 8192 }, .nvrmask = 127, @@ -13747,7 +13747,7 @@ const machine_t machines[] = { .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_SOUND | MACHINE_VIDEO | MACHINE_USB, /* Machine has internal video: S3 ViRGE/DX and sound: Crystal CS4236B */ .ram = { .min = 8192, - .max = 131072, + .max = 524288, .step = 8192 }, .nvrmask = 127, @@ -14069,7 +14069,7 @@ const machine_t machines[] = { .package = CPU_PKG_SLOT1, .block = CPU_BLOCK_NONE, .min_bus = 60000000, - .max_bus = 100000000, + .max_bus = 83333333, .min_voltage = 1500, .max_voltage = 3500, .min_multi = 2.0, @@ -14448,11 +14448,11 @@ const machine_t machines[] = { .min_multi = 1.5, .max_multi = 8.0 }, - .bus_flags = MACHINE_PS2_AGP | MACHINE_BUS_USB, + .bus_flags = MACHINE_PS2_PCI | MACHINE_BUS_USB, .flags = MACHINE_IDE_DUAL | MACHINE_APM | MACHINE_ACPI | MACHINE_GAMEPORT | MACHINE_USB, /* Machine has internal video: Matrox MGA-G200 and sound: Crystal CS4820 */ .ram = { .min = 8192, - .max = 1048576, + .max = 524288, .step = 8192 }, .nvrmask = 255, @@ -14533,7 +14533,7 @@ const machine_t machines[] = { .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, /* Machine has internal sound: Ensoniq ES1371 */ .ram = { .min = 8192, - .max = 1048576, + .max = 786432, .step = 8192 }, .nvrmask = 255, @@ -14648,7 +14648,7 @@ const machine_t machines[] = { .package = CPU_PKG_SLOT1, .block = CPU_BLOCK_NONE, .min_bus = 66666667, - .max_bus = 66666667, + .max_bus = 100000000, .min_voltage = 1800, .max_voltage = 3500, .min_multi = 1.5, @@ -15079,7 +15079,7 @@ const machine_t machines[] = { .flags = MACHINE_IDE_DUAL | MACHINE_SOUND | MACHINE_APM | MACHINE_ACPI | MACHINE_USB, .ram = { .min = 8192, - .max = 786432, + .max = 1572864, .step = 8192 }, .nvrmask = 255, @@ -15113,7 +15113,7 @@ const machine_t machines[] = { .package = CPU_PKG_SLOT2, .block = CPU_BLOCK_NONE, .min_bus = 100000000, - .max_bus = 133333333, + .max_bus = 100000000, .min_voltage = 1800, .max_voltage = 3500, .min_multi = 1.5, From ed62184d6170e34b92a0d9d4329298e142de24f7 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Sun, 20 Oct 2024 22:18:31 +0500 Subject: [PATCH 07/15] qt: Make the About dialog closeable with Esc key (#4912) --- src/qt/qt_mainwindow.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qt/qt_mainwindow.cpp b/src/qt/qt_mainwindow.cpp index b06473a8a..3ee58f23b 100644 --- a/src/qt/qt_mainwindow.cpp +++ b/src/qt/qt_mainwindow.cpp @@ -1725,7 +1725,8 @@ MainWindow::on_actionAbout_86Box_triggered() msgBox.setText(QString("%3%1%2").arg(EMU_VERSION_FULL, versioninfo, tr("86Box v"))); msgBox.setInformativeText(tr("An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information.")); msgBox.setWindowTitle("About 86Box"); - msgBox.addButton("OK", QMessageBox::ButtonRole::AcceptRole); + const auto closeButton = msgBox.addButton("OK", QMessageBox::ButtonRole::AcceptRole); + msgBox.setEscapeButton(closeButton); const auto webSiteButton = msgBox.addButton(EMU_SITE, QMessageBox::ButtonRole::HelpRole); webSiteButton->connect(webSiteButton, &QPushButton::released, []() { QDesktopServices::openUrl(QUrl("https://" EMU_SITE)); From b435dfd5e4f0c56fa229c63258fe4b73d6ed366c Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 24 Oct 2024 22:06:53 +0200 Subject: [PATCH 08/15] PCI: Mask out the strict flag when checking if the added card is not on-board, fixes bridge adding. --- src/pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pci.c b/src/pci.c index b4f5eafe5..ab585c456 100644 --- a/src/pci.c +++ b/src/pci.c @@ -790,7 +790,7 @@ pci_add_card(uint8_t add_type, uint8_t (*read)(int func, int addr, void *priv), if (next_pci_card < PCI_CARDS_NUM) { dev = &pci_card_descs[next_pci_card]; - dev->type = add_type | PCI_ADD_STRICT; + dev->type = add_type | PCI_ADD_STRICT; dev->read = read; dev->write = write; dev->priv = priv; @@ -885,7 +885,7 @@ pci_register_cards(void) type = pci_card_descs[i].type; slot = pci_card_descs[i].slot; #endif - normal = (pci_card_descs[i].type == PCI_CARD_NORMAL); + normal = ((pci_card_descs[i].type & ~PCI_ADD_STRICT) == PCI_CARD_NORMAL); /* If this is a normal card, increase the next normal card index. */ if (normal) From e37d12c89f65f7dc2da58b96fcf3d9eb56616e2e Mon Sep 17 00:00:00 2001 From: altiereslima Date: Thu, 24 Oct 2024 18:38:44 -0300 Subject: [PATCH 09/15] Update pt-BR.po --- src/qt/languages/pt-BR.po | 50 +++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 642031e9a..930a04deb 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -118,13 +118,13 @@ msgid "Fullscreen &stretch mode" msgstr "Modo de &redimensionamento da tela cheia" msgid "&Full screen stretch" -msgstr "&Tela cheia esticada" +msgstr "&Tela cheia redimensionada" msgid "&4:3" msgstr "&4:3" msgid "&Square pixels (Keep ratio)" -msgstr "Pixel&s quadrados (manter proporção)" +msgstr "Píxeis &quadrados (manter proporção)" msgid "&Integer scale" msgstr "&Redimensionamento com valores inteiros" @@ -202,7 +202,7 @@ msgid "Begin trace\tCtrl+T" msgstr "Inicio do rastreamento\tCtrl+T" msgid "End trace\tCtrl+T" -msgstr "Fim do rastreamento\tCtrl+T" +msgstr "Finalizar rastreamento\tCtrl+T" msgid "&Help" msgstr "&Ajuda" @@ -220,7 +220,7 @@ msgid "&Existing image..." msgstr "&Imagem existente..." msgid "Existing image (&Write-protected)..." -msgstr "Imagem existente (&protegida contra escrita)..." +msgstr "Imagem existente (&protegida contra gravação)..." msgid "&Record" msgstr "&Gravar" @@ -229,7 +229,7 @@ msgid "&Play" msgstr "&Reproduzir" msgid "&Rewind to the beginning" -msgstr "&Rebobinar até o começo" +msgstr "Re&troceder até o começo" msgid "&Fast forward to the end" msgstr "&Avançar até o fim" @@ -244,7 +244,7 @@ msgid "E&xport to 86F..." msgstr "E&xportar para 86F..." msgid "&Mute" -msgstr "&Sem som" +msgstr "&Silenciar" msgid "E&mpty" msgstr "&Vazio" @@ -256,7 +256,7 @@ msgid "&Folder..." msgstr "&Pasta..." msgid "Target &framerate" -msgstr "&Taxa de quadro pretendida" +msgstr "&Taxa de quadros pretendida" msgid "&Sync with video" msgstr "&Sincronizar com vídeo" @@ -307,7 +307,7 @@ msgid "Cancel" msgstr "Cancelar" msgid "Save these settings as &global defaults" -msgstr "Usar estas configurações como &padrões globais" +msgstr "Salvar estas configurações como &padrões globais" msgid "&Default" msgstr "&Padrão" @@ -316,7 +316,7 @@ msgid "Language:" msgstr "Idioma:" msgid "Icon set:" -msgstr "Pacote de ícones:" +msgstr "Conjunto de ícones:" msgid "Gain" msgstr "Ganho" @@ -373,7 +373,7 @@ msgid "Memory:" msgstr "Memória:" msgid "Time synchronization" -msgstr "Sincronização da hora" +msgstr "Sincronização de hora" msgid "Disabled" msgstr "Desativar" @@ -673,7 +673,7 @@ msgid "All images" msgstr "Todas as imagens" msgid "Basic sector images" -msgstr "Imagens de setor básico" +msgstr "Imagens de setores básicos" msgid "Surface images" msgstr "Imagens de superfície" @@ -787,7 +787,7 @@ msgid "None" msgstr "Nada" msgid "%u MB (CHS: %i, %i, %i)" -msgstr "%u MB (CHS: %i, %i, %i)" +msgstr "%u MB (CCS: %i, %i, %i)" msgid "Floppy %i (%s): %ls" msgstr "Disquete %i (%s): %ls" @@ -805,7 +805,7 @@ msgid "Are you sure you want to exit 86Box?" msgstr "Tem certeza de que deseja sair do 86Box?" msgid "Unable to initialize Ghostscript" -msgstr "Não é possível inicializar o Ghostscript" +msgstr "Não foi possível inicializar o Ghostscript" msgid "MO %i (%ls): %ls" msgstr "Magneto-óptico %i (%ls): %ls" @@ -823,7 +823,7 @@ msgid "Exit" msgstr "Sair" msgid "No ROMs found" -msgstr "Nenhum ROM encontrada" +msgstr "Nenhuma ROM encontrada" msgid "Do you want to save the settings?" msgstr "Você deseja salvar as configurações?" @@ -841,7 +841,7 @@ msgid "86Box v" msgstr "86Box versão" msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information." -msgstr "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, e outros.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU versão 2 ou posterior. Veja o arquivo LICENSE para mais informações." +msgstr "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, e outros.\n\nCom contribuições anteriores de Sarah Walker, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU, versão 2 ou posterior. Veja o arquivo LICENSE para mais informações." msgid "Hardware not available" msgstr "Hardware não disponível" @@ -889,7 +889,7 @@ msgid "You are loading an unsupported configuration" msgstr "Você está carregando uma configuração não suportada" msgid "CPU type filtering based on selected machine is disabled for this emulated machine.\n\nThis makes it possible to choose a CPU that is otherwise incompatible with the selected machine. However, you may run into incompatibilities with the machine BIOS or other software.\n\nEnabling this setting is not officially supported and any bug reports filed may be closed as invalid." -msgstr "A filtragem do tipo CPU baseada na máquina selecionada é desativada para esta máquina emulada.\n\nIsto torna possível escolher uma CPU que de outra forma seria incompatível com a máquina selecionada. Entretanto, você pode encontrar incompatibilidades com a BIOS da máquina ou outro software.\n\nA ativação desta configuração não é oficialmente suportada e qualquer relatório de erro arquivado pode ser fechado como inválido." +msgstr "A filtragem do tipo de CPU baseada na máquina selecionada está desativada para esta máquina emulada.\n\nIsto torna possível escolher uma CPU que, de outra forma, seria incompatível com a máquina selecionada. No entanto, você pode encontrar incompatibilidades com a BIOS da máquina ou outro software.\n\nA ativação desta configuração não é oficialmente suportada, e qualquer relatório de erro arquivado pode ser fechado como inválido." msgid "Continue" msgstr "Continuar" @@ -1030,13 +1030,13 @@ msgid "Select the parent VHD" msgstr "Selecione o VHD pai" msgid "This could mean that the parent image was modified after the differencing image was created.\n\nIt can also happen if the image files were moved or copied, or by a bug in the program that created this disk.\n\nDo you want to fix the timestamps?" -msgstr "Isto pode significar que a imagem de origem foi modificada após a criação da imagem diferencial.\n\nTambém pode acontecer caso os arquivos de imagem tenham sido movidos ou copiados, ou por um erro no programa que criou este disco.\n\nVocê quer consertar os marcadores de tempo?" +msgstr "Isto pode significar que a imagem original foi modificada após a criação da imagem diferencial.\n\nIsso também pode ocorrer se os arquivos de imagem tiverem sido movidos ou copiados, ou por um erro no programa que criou este disco.\n\nVocê deseja corrigir os marcadores de tempo?" msgid "Parent and child disk timestamps do not match" -msgstr "A data/hora dos arquivos de pais e filhos não correspondem" +msgstr "Os marcadores de tempo do disco pai e do disco filho não coincidem" msgid "Could not fix VHD timestamp." -msgstr "Não foi possível consertar o carimbo de data/hora da VHD." +msgstr "Não foi possível corrigir o marcador de tempo do VHD." msgid "MFM/RLL" msgstr "MFM/RLL" @@ -1126,16 +1126,16 @@ msgid "5.25\" 1.3 GB" msgstr "5.25\" 1.3 GB" msgid "Perfect RPM" -msgstr "RPM perfeita" +msgstr "Rotação ideal" msgid "1% below perfect RPM" -msgstr "1% abaixo das RPM perfeita" +msgstr "1% abaixo da rotação ideal" msgid "1.5% below perfect RPM" -msgstr "1.5% abaixo das RPM perfeita" +msgstr "1.5% abaixo da rotação ideal" msgid "2% below perfect RPM" -msgstr "2% abaixo das RPM perfeita" +msgstr "2% abaixo da rotação ideal" msgid "(System Default)" msgstr "(Padrão do sistema)" @@ -1147,7 +1147,7 @@ msgid "The network configuration will be switched to the null driver" msgstr "A configuração de rede será alterada para o driver nulo" msgid "Mouse sensitivity:" -msgstr "Sensibilidade do rato:" +msgstr "Sensibilidade do mouse:" msgid "Select media images from program working directory" msgstr "Selecione imagens de mídia do diretório de trabalho do programa" @@ -1171,4 +1171,4 @@ msgid "WinBox is no longer supported" msgstr "O WinBox não é mais suportado" msgid "Development of the WinBox manager stopped in 2022 due to a lack of maintainers. As we direct our efforts towards making 86Box even better, we have made the decision to no longer support WinBox as a manager.\n\nNo further updates will be provided through WinBox, and you may encounter incorrect behavior should you continue using it with newer versions of 86Box. Any bug reports related to WinBox behavior will be closed as invalid.\n\nGo to 86box.net for a list of other managers you can use." -msgstr "O desenvolvimento do gerenciador WinBox foi interrompido em 2022 devido à falta de mantenedores. Conforme direcionamos nossos esforços para tornar o 86Box ainda melhor, tomamos a decisão de não oferecer mais suporte ao WinBox como gerenciador.\n\nAtualizações não serão mais fornecidas através do WinBox, e você poderá encontrar comportamentos incorretos caso continue a usá-lo com versões mais recentes do 86Box. Quaisquer relatórios de bugs relacionados ao comportamento do WinBox serão fechados como inválidos.\n\nAcesse 86box.net para obter uma lista de outros gerenciadores que você pode usar." +msgstr "O desenvolvimento do gerenciador WinBox foi interrompido em 2022 devido à falta de mantenedores. À medida que direcionamos nossos esforços para tornar o 86Box ainda melhor, tomamos a decisão de não oferecer mais suporte ao WinBox como gerenciador.\n\nNão serão mais fornecidas atualizações através do WinBox, e você poderá encontrar comportamentos incorretos caso continue a usá-lo com versões mais recentes do 86Box. Quaisquer relatórios de bugs relacionados ao comportamento do WinBox serão fechados como inválidos.\n\nAcesse 86box.net para obter uma lista de outros gerenciadores que você pode usar." From fd9d880d4d62a6d9b210002ca60857a6a7c02f3a Mon Sep 17 00:00:00 2001 From: altiereslima Date: Thu, 24 Oct 2024 19:00:18 -0300 Subject: [PATCH 10/15] Update pt-BR.po --- src/qt/languages/pt-BR.po | 93 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 930a04deb..6fb568114 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -39,6 +39,9 @@ msgstr "&Ocultar barra de status" msgid "Hide &toolbar" msgstr "Ocultar &barra de ferramenta" +msgid "Show non-primary monitors" +msgstr "Mostrar monitores não primários" + msgid "&Resizeable window" msgstr "&Janela redimensionável" @@ -60,6 +63,30 @@ msgstr "Open&GL (Núcleo 3.0)" msgid "&VNC" msgstr "&VNC" +msgid "Renderer options..." +msgstr "Opções de renderização..." + +msgid "OpenGL 3.0 renderer options" +msgstr "Opções de renderização OpenGL 3.0" + +msgid "Render behavior" +msgstr "Comportamento de renderização" + +msgid "Synchronize with video" +msgstr "Sincronizar com vídeo" + +msgid "Use target framerate:" +msgstr "Usar taxa de quadros alvo:" + +msgid "VSync" +msgstr "VSync (sincronização virtual)" + +msgid "Shaders" +msgstr "Shaders" + +msgid "No shader selected" +msgstr "Nenhum shader selecionado" + msgid "Specify dimensions..." msgstr "Especificar as dimensões..." @@ -132,6 +159,9 @@ msgstr "&Redimensionamento com valores inteiros" msgid "4:&3 Integer scale" msgstr "Redimensionamento com valores inteiros 4:&3" +msgid "Apply fullscreen stretch mode when maximized" +msgstr "Aplicar modo de ampliação em tela cheia quando maximizado" + msgid "E&GA/(S)VGA settings" msgstr "Configurações E&GA/(S)VGA" @@ -198,6 +228,9 @@ msgstr "Ativar integração com o &Discord" msgid "Sound &gain..." msgstr "&Ganho de som..." +msgid "Open screenshots folder..." +msgstr "Abrir pasta de capturas de tela..." + msgid "Begin trace\tCtrl+T" msgstr "Inicio do rastreamento\tCtrl+T" @@ -237,6 +270,9 @@ msgstr "&Avançar até o fim" msgid "E&ject" msgstr "E&jetar" +msgid "Eject %s" +msgstr "Ejetar %s" + msgid "&Image..." msgstr "&Imagem..." @@ -246,6 +282,9 @@ msgstr "E&xportar para 86F..." msgid "&Mute" msgstr "&Silenciar" +msgid "&Unmute" +msgstr "&Reativar som" + msgid "E&mpty" msgstr "&Vazio" @@ -390,6 +429,9 @@ msgstr "Recompilador dinâmico" msgid "Video:" msgstr "Vídeo:" +msgid "Video #2:" +msgstr "Vídeo #2:" + msgid "Voodoo Graphics" msgstr "3DFX Voodoo" @@ -459,6 +501,30 @@ msgstr "Dispositivo PCap:" msgid "Network adapter:" msgstr "Adaptador de rede:" +msgid "Network Card #1" +msgstr "Placa de rede #1:" + +msgid "Network Card #2" +msgstr "Placa de rede #2:" + +msgid "Network Card #3" +msgstr "Placa de rede #3:" + +msgid "Network Card #4" +msgstr "Placa de rede #4:" + +msgid "Mode" +msgstr "Modo:" + +msgid "Interface" +msgstr "Interface:" + +msgid "Adapter" +msgstr "Adaptador:" + +msgid "VDE Socket" +msgstr "Socket VDE:" + msgid "COM1 Device:" msgstr "Dispositivo COM1:" @@ -495,6 +561,18 @@ msgstr "Porta serial 3" msgid "Serial port 4" msgstr "Porta serial 4" +msgid "Serial port passthrough 1" +msgstr "Passagem de porta serial 1" + +msgid "Serial port passthrough 2" +msgstr "Passagem de porta serial 2" + +msgid "Serial port passthrough 3" +msgstr "Passagem de porta serial 3" + +msgid "Serial port passthrough 4" +msgstr "Passagem de porta serial 4" + msgid "Parallel port 1" msgstr "Porta paralela 1" @@ -546,9 +624,15 @@ msgstr "&Novo..." msgid "&Existing..." msgstr "&Existente..." +msgid "Browse..." +msgstr "Procurar..." + msgid "&Remove" msgstr "&Remover" +msgid "Remove" +msgstr "Remover" + msgid "Bus:" msgstr "Barramento:" @@ -627,6 +711,9 @@ msgstr "Dispositivo ISABugger" msgid "POST card" msgstr "Placa de diagnóstico" +msgid "86Box Unit Tester" +msgstr "Testador de unidade 86Box" + msgid "86Box" msgstr "86Box" @@ -657,6 +744,9 @@ msgstr "O 86Box não conseguiu encontrar nenhuma imagem de ROM utilizável.\n\nP msgid "(empty)" msgstr "(vazio)" +msgid "Clear image history" +msgstr "Limpar histórico de imagens" + msgid "All files" msgstr "Todos os arquivos" @@ -741,6 +831,9 @@ msgstr "CA" msgid "S" msgstr "SE" +msgid "MiB" +msgstr "MiB" + msgid "KB" msgstr "KB" From a313437f8d1fdc56c8a8e84cc2cd16f114426502 Mon Sep 17 00:00:00 2001 From: altiereslima Date: Thu, 24 Oct 2024 19:04:12 -0300 Subject: [PATCH 11/15] Update pt-BR.po --- src/qt/languages/pt-BR.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 6fb568114..b920226e6 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -438,6 +438,9 @@ msgstr "3DFX Voodoo" msgid "IBM 8514/A Graphics" msgstr "Gráficos IBM 8514/A" +msgid "Voodoo 1 or 2 Graphics" +msgstr "Gráficos Voodoo 1 ou 2" + msgid "XGA Graphics" msgstr "Gráficos XGA" From 5061242e0980b26c462f7b3da3ffec1181425bad Mon Sep 17 00:00:00 2001 From: altiereslima Date: Thu, 24 Oct 2024 19:04:50 -0300 Subject: [PATCH 12/15] Update pt-BR.po --- src/qt/languages/pt-BR.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index b920226e6..9c171de60 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -481,7 +481,7 @@ msgid "MIDI In Device:" msgstr "Disp. de entrada MIDI:" msgid "Standalone MPU-401" -msgstr "MPU-401 autônomo" +msgstr "MPU-401 independente" msgid "Use FLOAT32 sound" msgstr "Usar som FLOAT32" From 0151d886d4a61c3d75e7724a90d4defc740727ff Mon Sep 17 00:00:00 2001 From: altiereslima Date: Thu, 24 Oct 2024 19:05:21 -0300 Subject: [PATCH 13/15] Update pt-BR.po --- src/qt/languages/pt-BR.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 9c171de60..98adc4528 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -430,7 +430,7 @@ msgid "Video:" msgstr "Vídeo:" msgid "Video #2:" -msgstr "Vídeo #2:" +msgstr "Vídeo 2:" msgid "Voodoo Graphics" msgstr "3DFX Voodoo" @@ -505,16 +505,16 @@ msgid "Network adapter:" msgstr "Adaptador de rede:" msgid "Network Card #1" -msgstr "Placa de rede #1:" +msgstr "Placa de rede 1:" msgid "Network Card #2" -msgstr "Placa de rede #2:" +msgstr "Placa de rede 2:" msgid "Network Card #3" -msgstr "Placa de rede #3:" +msgstr "Placa de rede 3:" msgid "Network Card #4" -msgstr "Placa de rede #4:" +msgstr "Placa de rede 4:" msgid "Mode" msgstr "Modo:" From 51e58e94cef47e637af0c21805dc2b7347748081 Mon Sep 17 00:00:00 2001 From: altiereslima Date: Thu, 24 Oct 2024 19:09:45 -0300 Subject: [PATCH 14/15] Update pt-BR.po --- src/qt/languages/pt-BR.po | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index 98adc4528..a416e1e76 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -426,6 +426,12 @@ msgstr "Ativar (UTC)" msgid "Dynamic Recompiler" msgstr "Recompilador dinâmico" +msgid "Softfloat FPU" +msgstr "FPU Softfloat" + +msgid "High performance impact" +msgstr "Alto impacto no desempenho" + msgid "Video:" msgstr "Vídeo:" From b73e3b4830b5b6998f46ae640022c06fd813ccfb Mon Sep 17 00:00:00 2001 From: altiereslima Date: Fri, 25 Oct 2024 06:33:48 -0300 Subject: [PATCH 15/15] Update pt-BR.po --- src/qt/languages/pt-BR.po | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/qt/languages/pt-BR.po b/src/qt/languages/pt-BR.po index a416e1e76..0b26d5ce5 100644 --- a/src/qt/languages/pt-BR.po +++ b/src/qt/languages/pt-BR.po @@ -624,6 +624,9 @@ msgstr "Controlador 4:" msgid "Cassette" msgstr "Cassete" +msgid "Vision Systems LBA Enhancer" +msgstr "Aprimorador de Sistema Vision para LBA" + msgid "Hard disks:" msgstr "Discos rígidos:" @@ -723,6 +726,9 @@ msgstr "Placa de diagnóstico" msgid "86Box Unit Tester" msgstr "Testador de unidade 86Box" +msgid "Novell NetWare 2.x Key Card" +msgstr "Cartão de Autenticação Novell NetWare 2.x" + msgid "86Box" msgstr "86Box"