86Box v4.0
August 26, 2023 - written by richardg867This is the August 2023 update to 86Box, bringing many improvements, bugfixes (especially for non-Windows users) and some new hardware.
It’s certainly been a while since our last update. Needless to say, despite the bumpy ride to this release, we’re still alive and working on making 86Box great. We have some exciting new features currently being worked on for future updates, and from now on, we’ll be sharing work-in-progress builds of new features with our Patreon supporters, with no impact to our regular release schedule; the first WIP build is already available to supporters, so go check it out.
Main features
Input
There have been many fixes to keyboard and mouse input. Mouse emulation was overhauled to massively improve responsiveness. The AT and PS/2 keyboard controller emulation was also reworked to hopefully eliminate the longstanding issue of keyboard and mouse input suddenly stopping, as well as other issues with PS/2 keyboards and mice on some machines.
Keyboard input on Linux and macOS hosts is now significantly improved, fixing issues with missing or mismatched keys particularly on international keyboards, as well as key holding. Absolute mouse input on X11 Linux hosts, which is used when running 86Box through a virtual machine or VNC, was also fixed.
ATI Mach8/32
The Mach8 and Mach32 were clones of the IBM 8514/A video accelerator which helped ATI gain market momentum in the early 1990s. 86Box now provides the first ever functional emulation of these cards. The Mach32 in particular was a popular card, available in five different bus variants (of which we currently emulate ISA, MCA, VLB and PCI) as well as integrated to many motherboards, and had wide operating system support.
Network
VDE virtual networking is now supported for connecting 86Box machines and even other emulators to each other on Linux and macOS hosts. While Windows is notably not supported by VDE, we’re working on a solution, so stay tuned. The 86Box documentation has a full setup guide for creating a VDE network.
A nasty emulator crash when PCap fails to initialize was fixed, and the SLiRP library was updated to its full version on Windows and macOS hosts for potential performance improvements.
Changelog
Emulator
- Added PipeWire support for audio on Linux hosts
- Added pure Wayland support for Linux hosts
- Fixed broken Linux AppImages for x86 32-bit, ARM32 and ARM64 architectures
- Fixed sound output issues on some Linux hosts due to mismatching audio libraries
- Fixed incorrect key holding behavior on Linux and macOS hosts
- Fixed key mapping on Linux and macOS hosts with international keyboards
- Fixed Keyboard requires capture option not allowing keyboard capture if no mouse is enabled
- Fixed Shift+F10 temporarily blocking keyboard input
- Fixed absolute mouse input on X11 Linux hosts
- Fixed 4th and 5th mouse buttons on Windows hosts
- Fixed inconsistent mouse sensitivity with a scaled window or full screen mode
- Fixed Direct3D 9 renderer scaling on HiDPI monitors
- Fixed Vulkan support on Linux hosts
- Fixed keyboard input through the secondary monitor window on Windows hosts
- Fixed crash when exiting with a secondary monitor window open
- Fixed secondary monitor freezing after changing renderers
User interface
- Added soft power button for ACPI-capable machines
- Added host architecture and dynamic recompiler information to the About window
- Added translations: Catalan by OBattler, 🇸🇰 Slovak by OBattler and daviunic
- Fixed default file extension for new floppy, MO and ZIP images on macOS hosts
- Fixed full screen keyboard shortcuts leading to stuck keys or not working at all
- Fixed changes to video card settings being discarded after changing machines
- Fixed new raw disk images not using the exact specified CHS geometry
- Fixed text editing incorrectly enabled on hard disk and removable drive tables (not that it did anything)
- Fixed CD-ROM mute option not showing its current state
- Fixed status bar icons still showing activity with Update status bar icons turned off
- Fixed MCA device list missing leading zeros on device IDs
- Fixed missing AppImage icon on more Linux desktop environments
- Changed default hard disk image type to dynamic VHD
- Changed macOS app icon to conform to Apple standards
- Updated translations: Chinese (Taiwan), Ukrainian
Machines
- Re-added Compaq Deskpro 386 with proper chipset emulation
- Added IBM PS/2 Model 70 Type 4 486 machine (with forced Softfloat FPU due to strict BIOS tests)
- Added Gemlight GMB-P54SPS Socket 5 motherboard
- Added Packard Bell PB810 Socket 7 motherboard
- Added Toshiba Infinia 7200 Socket 7 motherboard
- Added ECS P6BAT-A+ Slot 1 and Socket 370 motherboard
- Added real time clock to the Vendex HeadStart Turbo 888-XT
- Added AGP support to the QDI EXCELLENT II
- Added PS/2 mouse support to the Epson Action PC 2600 and TriGem 486G
- Added on-board S3 ViRGE/DX video to the Intel TC430HX
- Added on-board ATI Mach32 video to the IBM PS/ValuePoint P60
- Fixed Acer A1G crashing the emulator on 64-bit builds
- Fixed Acer V35N hanging during POST
- Fixed PC Chips M729 BIOS misbehaving and not retaining CMOS settings
- Fixed ASUS P5A instability in DOS
- Fixed IBM PC 330 (type 6573) BIOS misbehavior and missing on-board devices
- Fixed keyboard layout issues on the ECS Elite UM8810PAIO and Samsung SPC7700P-LW
- Fixed incorrect memory detection on the Phoenix XT clone and Tandy 1000 machines
- Fixed OS/2 crashing the emulator on the IBM PS/2 Model 80
- Fixed PS/2 mouse not being detected on the Samsung SPC-4216P
- Fixed game port joysticks on the IBM PCjr
- Fixed PCI device IRQs on ALi M1489 machines and the ECS P6BAP
- Fixed CD-ROM boot on the AMI Apollo
- Fixed discrete video card support on the TriGem 486G
- Fixed Olivetti M19 font corruption
- Fixed Amstrad PC20(0) font corruption in MDA mode
- Fixed incorrect keyboard layout on Amstrad machines
- Fixed incorrect on-board devices on the ASUS PCI/I-486SP3
- Fixed incorrect PCI slot layout on the ASUS P2B-LS
- Fixed ASUS P5A and Gigabyte GA-5AX hanging or rebooting on ACPI shutdown
- Fixed DataExpert EXP8551 and PC Partner MB500N filed on the wrong category (now Socket 7 Single Voltage)
- Fixed incorrect Planar IDs on the IBM PS/2 Model 55SX and 60
- Changed IBM PCjr memory size selection to a minimum of 64 KB with 64 KB increments
- Increased maximum RAM on the Gigabyte GA-586IP to 256 MB
Hardware
- Core
- Added Softfloat FPU option for higher floating point accuracy at the cost of performance
- Added PIT mode option for higher Programmable Interval Timer accuracy at the cost of performance
- Added Celeron Covington CPU for when you feel like having no L2 cache
- Added Page Global Enable CPU feature to the Pentium II and its derivatives
- Improved performance of some MMX workloads on x86 hosts
- Reworked PCI slot assignment system - Windows may redetect installed cards!
- Fixed PCI functionality on Windows 95 with the 430NX and other early PCI chipsets
- Fixed certain machines crashing the emulator when set to 16 MB RAM or higher
- Fixed OpenStep text corruption and font sizing issues due to missing FXTRACT FPU instruction
- Fixed graphical glitching on 3D games with the Pentium II Deschutes and Celeron Mendocino due to broken FXSAVE and FXRSTOR FPU instructions
- Fixed NetWare 6 failing to boot on the Pentium II and its derivatives
- Fixed interrupt controller emulation inaccuracies mostly affecting MCA IBM PS/2 machines
- Fixed a small MMU mapping inaccuracy on 32-bit ALU instructions
- Fixed undocumented 8088 and PIT quirks abused by the Area 5150 demo (we’re working on making it work!)
- Display
- Added ATI Mach8 ISA and Mach32 ISA/MCA/VLB/PCI video cards
- Added INMOS XGA ISA video card
- Added 8 MB video RAM option to the Number 9 9FX 771 (S3 Vision968) card
- Fixed IBM XGA crashing the emulator if the primary video card is not VGA
- Fixed IBM XGA BIOS loading issues resulting in POST failures (again)
- Fixed QBasic hanging on exit on EGA cards
- Fixed text corruption with S3 cards on XFree86
- Fixed S3 ViRGE/GX family displaying a black screen on XFree86
- Fixed cursor glitching with Miro and SPEA S3 Vision968 cards on Windows 95
- Fixed cursor glitching with Tseng ET4000/W32 cards on some Windows versions
- Fixed graphics corruption with ATI Mach64 cards on some video modes and Windows versions
- Fixed Hercules text mode missing the rightmost column
- Fixed Hercules Plus graphics corruption in RAM font mode
- Fixed Hercules Plus and InColor screen wrapping glitch
- Fixed font selection and color palette on the Compaq Portable gas plasma display
- Fixed graphics corruption on EGA monochrome modes
- Fixed specific graphics corruption issues on the IBM 8514/A and XGA
- Fixed small emulation inaccuracies on CGA, EGA and Cirrus Logic cards
- Fixed Voodoo Banshee/3 screen wrapping glitch in 2048x1536 mode
- Fixed DDC monitor size data to prevent Xorg from defaulting to 2048x1536 or other high resolutions
- Fixed incorrect video RAM detection on S3 Vision864, Vision964, Trident TGUI9400 and TGUI9440 cards
- Fixed Reply Video Adapter (Cirrus Logic GD5426) MCA card ignoring the configured video RAM amount
- Fixed BIOS error on Cirrus Logic MCA cards
- Fixed incorrect detection of the Compaq EGA
- Fixed IBM 8514/A and XGA incorrectly selectable alongside incompatible VGA cards
- Changed 200-line CGA mode to no longer double to 400 lines
- Input
- Reworked AT-PS/2 keyboard controller emulation to fix random loss of input
- Increased mouse polling rate to improve responsiveness
- Added Command + Forward Delete shortcut for the Insert key on macOS hosts
- Fixed serial mouse detection on some Linux distributions
- Fixed 3-button mode on the Logitech serial mouse
- Fixed PS/2 mouse on SCO UNIX
- Fixed 4-axis 4-button joystick on Windows hosts
- Fixed vJoy driver crashing the emulator when configured as a joystick
- Sound
- Added support for up to 4 sound cards per machine
- Fixed FluidSynth not working on Linux and macOS hosts (for real this time)
- Fixed incorrect default settings for FluidSynth
- Fixed AdLib Gold hanging the emulated machine
- Fixed Ensoniq AudioPCI audio distortion on some games
- Fixed MPU-401 intelligent mode freezing some games
- Fixed Windows Sound System crashing the emulator if OPL functionality is disabled
- Fixed VIAFMTSR software OPL3 emulation on VIA on-board sound
- Fixed AcerMagic S20 and miroSOUND PCM10 sound cards not being detected by some tools
- Fixed incorrect default IRQ (now 5) on the AcerMagic S20 and miroSOUND PCM10
- Fixed MIDI input corrupting large SysEx messages on the MPU-401 and compatible sound cards
- Fixed Ensoniq AudioPCI incorrectly identifying as ES1373 instead of ES1371
- Fixed VIA on-board sound impacting emulation performance when supported by the machine’s chipset but not used
- Moved Innovation SSI-2001, CMS / Game Blaster and Gravis Ultrasound to the new multiple sound card selector
- Changed Ensoniq AudioPCI codec selection to reflect actual ES1371 cards
- Updated FluidSynth library on Windows hosts to no longer require an external DLL
- Updated ymfm library to fix a small OPL4 inaccuracy
- Network
- Added VDE virtual networking support for Linux and macOS hosts
- Added Null Driver option to connect the network card to an empty network, replacing the None option
- Fixed PCap crashing the emulator upon failing to initialize
- Fixed NetWare packet corruption on NE2000 cards
- Fixed Western Digital WD8003E/A MCA cards not working when configured for IRQ 4 or 15
- Updated SLiRP library on Windows and macOS hosts
- Ports
- Added serial port passthrough to real ports and named pipes
- Fixed PostScript printer not working on macOS hosts (for real this time)
- Fixed serial ports not working on later ALi chipsets
- Updated the ESC/P printer’s FreeType library on Windows hosts to no longer require an external DLL
- Storage
- Added ATAPI and SCSI CD-ROM drive model selection with more options
- Added Monster FDC floppy drive controller card
- Added generic tertiary and quaternary floppy drive controller cards
- Added Western Digital WDXT-GEN ISA MFM controller card
- Added XTIDE BIOS variant specifically for NEC V20/V30 CPUs
- Fixed Adaptec AHA-154x and BusLogic SCSI controllers crashing the emulator on FreeBSD
- Fixed slow detection of empty IDE channels on Linux
- Fixed XTA controllers not working properly
- Fixed XTIDE BIOS error on NEC V20/V30 CPUs
- Fixed mounted folders discarding invalid characters used by some DOS application CDs
- Fixed ATAPI CD-ROM not working on Solaris 2
- Fixed BusLogic and Rancho RT1000B SCSI controllers not working with specific versions of their DOS drivers
- Fixed Tekram DC-390 SCSI controller not resetting devices attached to it
- Fixed SCSI CD audio issues on OS/2 and on NCR ISA SCSI controllers
- Fixed SCSI ID assignment on the IBM PS/2 SCSI Adapter
- Fixed dynamic and differential VHD images re-creating as fixed images if deleted
- Fixed VHD images with more than 63 (IDE) or 99 (SCSI) sectors per track not being loaded correctly
- Fixed emulator crash with
hdd_image_load()
message when loading differential VHD images made on different timezones - Fixed mounted folders remaining locked on macOS hosts after the CD-ROM is ejected
- Fixed cassette incorrectly available on machines without cassette support
- Other
- Fixed ISA RTC cards not being detected by some software
- Fixed ISA RTC cards reporting an incorrect year in some cases
- Fixed ISABugger incorrectly available on machines without ISA
Known issues
- Some applications which heavily depend on specific 8088 CPU behavior may not work properly
- The Ensoniq AudioPCI no longer works with the 2001 Creative WDM driver (
SBPCI_WebDrvsV5_12_01.exe
); this driver is designed for ES1373/CT5880 cards only, has identical BSOD issues on a real ES1371, and only works in VMware and previous versions of 86Box due to emulation inaccuracies - Serial port passthrough is not complete and may require reconfiguration in a future version
- Serial port passthrough may randomly stall the emulated machine if the other end is not connected
- The ATI Mach8 and Mach32 may not render some very specific video modes correctly