Files
86box.github.io/_posts/2022-07-31-86box-v3-7.md
2022-08-05 14:37:11 -03:00

151 lines
9.4 KiB
Markdown

---
layout: post
title: "86Box v3.7"
description: "Release for July 2022."
authors: ["richardg867"]
image: "/assets/images/v3.7/hero.png"
---
{% include imageheading.html url="/assets/images/v3.7/hero.png" separator=" " tooltip="Legend has it that only those who suck at Doom could ever get the broken build 4000 to work." %}
This is the July 2022 update to 86Box, bringing initial suport for dual monitors, performance improvements and bugfixes. As always, you can [download 86Box v3.7 from GitHub](https://github.com/86Box/86Box/releases/tag/v3.7.1).
<hr />
## Dual monitors: color and monochrome
86Box v3.7 brings initial support for pairing a **CGA, EGA or VGA** color video card with a secondary **MDA or Hercules** monochrome card. This kind of dual-monitor arrangement is possible because CGA/EGA/VGA and MDA/Hercules use different memory and I/O addresses which usually don't conflict with each other. Some applications are capable of using both cards for display output:
* **DOS** can switch between cards with the `mode co80` (color) and `mode mono` (monochrome) commands;
* [**FastDoom**](https://github.com/viti95/FastDoom), pictured above, can display the automap on the monochrome card with the `-hercmap` parameter (you still have to press Tab to enable the map);
* **Lotus 1-2-3** with the `both` display driver can render a graph on the color card while the spreadsheet is being edited on the monochrome card;
* Some **debuggers** can use the monochrome card for their user interface while the application being debugged runs on the color card, however, 86Box cannot run many debuggers for performance reasons.
As for newer emulated setups running operating systems such as Windows 98, we have plans to extend this feature to **PCI VGA cards** in the future, since many of those have hardware and software support for multi-monitor operation using multiple cards.
<hr />
## Improving performance by slowing hard disks (no, really)
Another new feature brought by this release is a **hard disk speed emulator** by new contributor [**elyosh**](https://github.com/elyosh). You can pick a **speed profile** when adding or editing an IDE or ESDI hard disk on the **Settings** window, which factors in the rotation speed, physical layout and cache size of an average hard disk from around 1989, 1992, 1994, 1996, 1997, 1998 or 2000; alternatively, the **RAM Disk** profile maintains the previous instant-access (as fast as the host disk can read/write) behavior. The emulator is currently only available for **IDE and ESDI hard disks**, but we're hoping to expand it to other disk types in the future.
But wait, there's more! It turns out throttling disk speeds has a positive side effect of **improving emulation performance** (as measured in %), since it effectively spreads the emulated CPU's I/O workload over time; in other words, the CPU has to work less often than it would with an instant-access disk, reducing or even eliminating the **percentage dips** that occur due to interrupt bursts during I/O.
With the significant improvement to emulation performance consistency afforded by disk throttling, we've opted to set **[1997] 5400 RPM** as the default IDE and ESDI speed profiles when migrating an emulated machine from a previous version of 86Box to v3.7. As a result of this change, **you will see a difference** in your setup's operating system speed and responsiveness if it uses IDE or ESDI hard disks, especially if their images are stored in an SSD, but that's a worthy sacrifice in the name of consistent performance, especially while running games. **You can always restore the old behavior without downgrading 86Box** by switching all IDE/ESDI hard disks to the aforementioned **RAM Disk** speed profile.
<hr />
## Changelog for v3.7
### Emulator
* Added **Discord integration** support for Apple Silicon Macs
* Fixed black bar on the **OpenGL 3.0 Core renderer**
* Fixed screenshots on the **Direct3D 9 renderer**
* Fixed crash when switching to full screen mode the **Direct3D 9 renderer**
* Fixed screen area being incorrectly resized in **full screen mode**
* Changed audio back-end to **OpenAL** again, please let us know if you have sound issues!
* Improved some **Linux app metadata** odds and ends
### User interface
* Added global preference to fix the starting directory for **file prompts on macOS**
* Fixed **Settings section list** being too narrow on some host machines
* Fixed incorrect button order on the **hard reset confirmation** message
* Fixed incorrect **icons** on some warning and error messages
* Fixed incorrect warning message shown when **Ghostscript** is missing
* Improved **status bar activity indicator** performance
* Updated translation: **Portuguese (Brazil)**
### Machines
* Added **Soltek SL-56A5** Socket 7 motherboard
* Added S3 86C805 internal video controller to the **DECpc LPV**
* Added ability to load an optional language ROM (`roms/machines/ibmps1_2121/F80000.BIN`) on the **IBM PS/1 model 2121**
* Fixed **Amstrad MegaPC** internal video controller and CMOS password issues
* Fixed **MR BIOS 386SX clone** and **Acer V10** allowing selection of a non-existent internal video controller
### Hardware
* **Core**
* Added **fast PIT** mode for improved performance when emulating 486 and newer CPUs
* Fixed miscellaneous issues on machines with the **ALi M1543(C)** southbridge
* Fixed Windows NT 3.1 installation issue on **IBM 486** CPUs
* Fixed **RTC** timer interrupt emulation inaccuracy
* Fixed **PIC** poll mode emulation inaccuracy
* Improved **PIT**, **RTC** and **ACPI** timer emulation performance
* **Display**
* Added support for a [**secondary MDA or Hercules**](#dual-monitors-color-and-monochrome) video card
* Added **IBM XGA-2** add-on graphics accelerator for MCA (original) and ISA (clone)
* Added **Reply Video Adapter** (Cirrus Logic GD5426) MCA video card
* Added **BOCA Research 4610** (Cirrus Logic GD5428) ISA video card
* Added **Orchid Kelvin EZ** (Cirrus Logic GD5430 and GD5434) VLB video cards
* Fixed hard reset crash on the **Trident TGUI 9400CXi**
* Fixed one instance of an emulator crash with a `CMDFIFO packet 5 bad space` message on the **Voodoo 3**
* Fixed corrupted graphics with **S3** cards on BeOS
* Fixed 16-bit 1280x1024 and 1600x1200 modes on **ELSA Winner 2000 Pro/X** S3 cards
* Fixed Windows 2.10 display issues on the **IBM 8514/A**
* Fixed overscan display issue on the **IBM 8514/A**
* Fixed 40x25 CGA text mode on the **IBM PGC**
* Improved **VGA CRTC** emulation performance
* **Input**
* Improved **joystick** emulation performance when none is selected
* **Sound**
* Added [**ymfm**](https://github.com/aaronsgiles/ymfm) as a faster alternative for OPL2/3 emulation (can be enabled in the **Sound** settings; the more accurate NukedOPL is still default)
* Added **Sound Blaster 16 Reply** MCA sound card
* Added IRQ and DMA configuration to the **AdLib Gold**
* Added IRQ configuration to the MCA **standalone MPU-401**
* Added SB MIDI input configuration to the **Sound Blaster Pro MCV**
* Fixed **MT-32 LCD message** staying on the status bar after a reset
* Fixed **PnP Sound Blaster** cards incorrectly retaining PnP configuration after a reset
* Upgraded MT-32 emulation to **Munt** version 2.7.0
* **Network**
* Added **Western Digital WD8013EP/A** MCA network controller
* Improved **AMD PCnet** emulation performance
* **Storage**
* Added [**hard disk speed emulator**](#improving-performance-by-slowing-hard-disks-no-really) for IDE and ESDI disks
* Added **Rancho RT1000B-MC** MCA SCSI controller
* Fixed **tertiary/quaternary IDE** and **cassette** options resetting themselves
* Fixed a cue/bin emulation inaccuracy affecting some **copy-protected CDs**
* Fixed **IBM PS/2 SCSI Adapter** detecting multiple copies of the same disk
* Fixed **Longshine LCS-6821N** SCSI ASPI driver for DOS
* Fixed status bar activity indicator on the **IBM ESDI** MCA disk controller
* Fixed emulator crash with a `Bad attention request` message with the **IBM ESDI** MCA disk controller
* Fixed emulator crash with a `Write_MULTIPLE` message when exiting DOS mode on Windows 3.1 with an IDE hard disk
* Fixed emulator crash with a `Hard disk image` message when a host I/O error occurs on a **VHD image**
<hr />
## Changelog for v3.7.1
### Emulator
* Fixed mouse staying captured when **pausing emulation**
### User interface
* Fixed crashes with the **Resizable window** and **Remember size & position** options
* Fixed **Show non-primary monitors** option not working properly if the secondary display output window is closed
* Fixed loss of remembered window size and position when migrating from v3.6 and older configurations
* Fixed **New Image** window hanging during floppy image creation
* Fixed **Settings** window slightly varying in layout across different operating systems
* Changed **CD-ROM media menu** to match the floppy media menu's option order
### Machines
* Fixed **AOpen Vi15G** not booting up
* Fixed PS/2 mouse not being detected on the **Xi8088**
* Fixed BIOS `Timer Error` on **Microsoft Virtual PC 2007**
* Fixed incorrect chipset on the **TriGem 286M**
### Hardware
* **Core**
* Fixed expanded (EMS) memory support on **Headland chipsets**
* Fixed **AAD and AAM** CPU instruction emulation inaccuracies
* Fixed **DR6** CPU debug register emulation inaccuracies
* Fixed **fast PIT** emulation inaccuracy
* Fixed more **RTC** timer interrupt emulation inaccuracies
* **Display**
* Fixed **OAK OTI-0x7** VGA emulation inaccuracies