86Box v3.7
July 31, 2022 - written by richardg867This 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.
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) andmode mono
(monochrome) commands; - 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.
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. 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.
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 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 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 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
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