---
layout: post
title: "86Box v3.11"
description: "Release for November 2022."
authors: ["richardg867"]
image: "/assets/images/v3.11/hero.png"
---

{% include imageheading.html url="/assets/images/v3.11/hero.png" separator=" " %}

This is the November 2022 update to 86Box, bringing folder mounting through CD-ROMs, new hardware, bugfixes across the board, and big improvements to network emulation ~~truly making this the 86Box for Workgroups release~~. As always, you can [download 86Box v3.11 from GitHub](https://github.com/86Box/86Box/releases/tag/v3.11).

---

## Folders as CDs

We are very often asked for ways to ease file transfer between the host system and emulated machines. Truth is, there aren't many good solutions for that; the Shared Folders feature present on virtualizers requires purpose-built software to be installed within the emulated machine, which goes against our spirit of being a full system emulator, and network-based solutions such as FTP or SMB require the machine to be set up with a network connection, potentially adding complexity to your setup for something you might not need otherwise.

This release's headline feature is the ability to **mount a folder from your host system** as if it were a CD-ROM image. Any files and subfolders (along with metadata such as modification dates) are passed through to the virtual image, with filenames automatically converted to short names for DOS, Joliet long names for Windows, and Rock Ridge long names for Linux and other systems. There is **no size limit** for the folder; we've successfully tested folders containing tens of gigabytes of data, though 32-bit builds of 86Box may run out of memory if you have this much data across many small files. It's worth noting only the **directory structure and metadata** is stored in the host's RAM; file contents are read on demand as the emulated machine accesses files, which are not cached in memory by 86Box.

The virtual disc does have some limitations you should keep in mind:

* The UDF filesystem (used by real DVDs) is not supported, and therefore, individual files are limited to under **4 GiB** in size;
* **Avoid making any changes** to the mounted folder or the files contained within while the disc is inserted, as its contents are not automatically refreshed (this may change in the future);
* Being a standard CD-ROM (though without a size limit), the disc is naturally **read only**.

We plan on adding support for custom file structures through **VirtualBox VISO files** in the future, as well as the ability to generate discs in the High Sierra format or without long filenames; High Sierra is important for replicating the early CD-ROM experience, and in a somewhat related note, pre-ATAPI CD-ROM drives are also in our roadmap.

### But why CDs?

Some of you may see that last limitation as a dealbreaker and ask: **what is the point** in making a file sharing system that only goes one way? 86Box emulates magneto-optical and Zip disks, which are both writable removable media formats with significant data capacities, so why not use those instead?

It turns out emulating a writable filesystem is a significantly more difficult job, which involves sector ordering, file renaming and other inherent complexities in keeping track of how the filesystem allocation tables and sectors map to the underlying host files. The only attempt at a writable virtual filesystem we've seen so far is **QEMU's VVFAT** feature, which leaves a lot to be desired; your writer has managed to confuse it into corrupting files or hitting an assertion failure in more than one occasion. We've definitely thought about porting VVFAT from QEMU, or maybe even rolling our own virtual filesystem implementation, but the latter would be a monumental task for a potentially mediocre result.

While there are common methods to create freely-writable optical discs, such as [DVD-RAM](https://www.youtube.com/watch?v=ecH3OU0R4ls "Also check out his other videos on optical discs") and [Packet Writing](https://en.wikipedia.org/wiki/Packet_writing "Writing to optical media a block at a time, instead of a session or disc at a time") (the latter relates to the Windows "what do you want to do with this disc?" prompt that anyone old enough to have used recordable CDs or DVDs will remember), these methods run on top of two features we don't implement, but are in our ever so large "maybe do it one day" list: CD/DVD writing and the UDF filesystem. Even then, the aforementioned complexities in keeping track of a writable filesystem come into play, and they would only be avoidable by limiting ourselves to Packet Writing on a CD-R or DVD-R.

---

## Changelog

### Emulator

* Added Vulkan renderer through **MoltenVK** for most Metal-capable macOS hosts running 10.14 and newer (non-Metal Macs and 10.13 are still supported)
* Added `-I/--image <letter>:<path>` command line option to automatically mount a floppy disk image in the specified drive
* Added more **display scaling factors** (up to 8x)
* Fixed incorrect **full screen scaling**
* Fixed **Keyboard requires capture** option being ignored in full screen mode
* Fixed emulator crash with `nvr_load()` message when a machine's **CMOS file** (`.nvr`) is not readable
* Fixed Discord integration causing high CPU usage even if disabled
* Fixed white screen when switching to the **Qt (OpenGL)** renderer
* Fixed **Vulkan renderer** showing up as an option on hosts without Vulkan capability
* Changed **mouse capture back-end** on Linux hosts with XInput 2.1+ capability, please let us know if you have mouse-related issues!
* Changed default **full screen stretch mode** to 4:3
* Updated **AppImage runtime** for Linux hosts
* Improved **mouse input responsiveness** on all hosts
* Improved performance of the alternate **evdev mouse mode** on Linux hosts
* Slightly improved performance of the **Qt (OpenGL)** renderer

### User interface

* Added a **list of recently used images** for floppy and CD-ROM drives
* Added icons to help identify recently used images and folders on the **CD-ROM menu**
* Added translation: <span class="emoji">🇹🇼</span> **Chinese (Taiwan)** by [kzmidze](https://github.com/kzmidze)
* Fixed incorrect **hard disk image sizes** when creating images larger than 4 GB or with more than 16 heads
* Fixed **hard disk image size** (in MB) changing itself while a new size is being typed in
* Fixed **keyboard shortcuts** for sending Ctrl+Alt+Del and taking screenshots in full screen mode
* Fixed **pause button** icon behavior
* Fixed missing **AppImage icon** on some Linux desktop environments
* Fixed missing **menu separators** on macOS
* Changed **keyboard shortcut** for pausing to `Left Alt + Right Alt + Pause`
* Updated translations: **German**, **Portuguese (Brazil)**

### Machines

* Added **Pravetz-16 / IMKO-4** and **Micoms XL-7 Turbo** Bulgarian XT clones
* Added **Packard Bell PB8810** XT clone
* Added **Epson Equity LT** portable XT clone
* Added **V20 XT** clone
* Added **MSI MS-5124** Socket 7 motherboard
* Added real time clock to the **Olivetti M21/24/24SP** and **M240**
* Fixed **DTK PKM-0038S E-2** hanging on the memory test during POST
* Fixed integrated mouse not working on the **Amstrad PPC512/640**
* Fixed any mouse not working on the **Olivetti M21/24/24SP** and **M240**
* Fixed keyboard not working properly on the **Amstrad PC20(0)**, **Olivetti M21/24/24SP** and **M240**
* Fixed **IBM PCjr** displaying `ERROR D` after a hard reset
* Fixed secondary IDE channel on the **PC Partner MB500N** and **QDI FMB**
* Fixed PCI device IRQs on the **Azza PT-5IV**
* Fixed Fn key (mapped to Right Ctrl) on **Toshiba** machines
* Fixed **Vendex HeadStart Turbo 888-XT**, **Compaq Portable** and other XT clones misdetecting the amount of installed floppy drives
* Fixed **ADI 386SX** BIOS setup hang when editing the user-defined hard disk type 48
* Fixed **Olivetti M21/24/24SP** and **M240** floppy drive type detection
* Fixed on-board IDE controller incorrectly enabled and causing errors on the **Samsung SPC-6000A**
* Fixed PS/2 mouse incorrectly enabled on the **Gigabyte GA-586IP** and **QDI FMB**
* Fixed **BCM GT694VA** filed on the wrong category (now Slot 1)

### Hardware

* **Core**
  * Added **NEC V20 and V30** CPUs for 8088 and 8086 machines respectively
  * Added missing **Extended 3DNow** instructions to the AMD K6-2+ and K6-III+
  * Fixed **Windows protection error** when booting Windows 95 or 98 FE on higher-clocked Pentium II and Celeron CPUs
  * Fixed **AAM** CPU instruction issues with **Microsoft Flight Simulator 98** and potentially other applications
  * Fixed **XT keyboard** not working on applications which modify the keyboard enable flag
  * Fixed PCI device IRQs on machines with the **OPTi PCI bridge**
  * Fixed emulator crash with `Over limit!` message on the dynamic recompiler for **x64 builds**
  * Fixed specific issues with **CPU exception handling**
  * Fixed incorrect CPUID behavior on **AMD K6-2** and **K6-III** CPUs
  * Fixed console output noise produced by some emulation modules
  * Improved performance of a few **internal components** such as timers and I/O ports
  * Changed **8088/8086 parity flag** emulation to offload calculation to the host CPU
* **Display**
  * Added **Pravetz VDC-2** ISA video card (CGA clone with Cyrillic support)
  * Added **Tseng ET3000AX** ISA video card
  * Added **NEC SV9000** (Trident TVGA 9000B) ISA video card
  * Added **3dfx Velocity 200, Voodoo3 1000 and 3500** AGP video cards (Voodoo3 1000 also available as PCI)
  * Attempted fix for texture glitching on the **Voodoo and Voodoo 2**
  * Fixed **Voodoo Banshee/3** crashing the emulator with `banshee_do_screen_to_screen_blt: unknown srcFormat` message on full motion video applications
  * Fixed **Voodoo 2** crashing the emulator with `CMDFIFO2: Not Banshee` message
  * Fixed 2D glitching and lack of RAM selection on the **MSI MS-6168 / Packard Bell Bora Pro** on-board Voodoo 3
  * Fixed **IBM XGA** BIOS loading issues resulting in POST failures
  * Fixed a few issues with certain Windows applications on the **IBM XGA**
  * Fixed **Cirrus Logic video cards** glitching with generic drivers on Windows 3.1x
  * Fixed **S3 86C801** and **86C805** text corruption with specific drivers
  * Fixed OS/2 cursor glitching on **S3 cards**
  * Fixed **Kasan Hangulmadang-16 VGA** Korean font mode not working
  * Fixed **Trident TGUI** cards hanging the emulated system on specific accelerated applications
  * Fixed **Image Manager 1024** running too fast
  * Improved **Voodoo Banshee/3**, **S3 ViRGE** and **ATI Mach64** stability on ARM hosts (including Apple Silicon)
  * Improved performance of **VGA** emulation in specific cases
  * Slightly improved performance of the **Voodoo dynamic recompiler** on x86 and x64 hosts
* **Input**
  * Added **five-button PS/2 mouse** option
  * Fixed middle click incorrectly sending a simultaneous left and right click on **three-button PS/2 mice**
  * Fixed **Windows and Menu keys** not working on some Linux hosts
* **Sound**
  * Added **AcerMagic S20** Sound Blaster Pro and Windows Sound System compatible ISA sound card based on the OPTi 82C929 chipset
  * Added **miroSOUND PCM10** ISA sound card (also SB Pro and WSS compatible OPTi 82C929) with integrated **Yamaha OPL4** synthesizer
  * Added **Tandy PSSJ clone** and **TNDY** ISA Tandy sound cards for non-Tandy machines
  * Added **Roland MT-32 ROM 2.04** and **CM-32LN** MIDI synthesizers
  * Fixed **Sound Blaster 2.0** crashing the emulator when its OPL2 is accessed
  * Fixed **AdLib MCA** not being detected by the emulated machine
  * Fixed **Ensoniq AudioPCI** legacy DOS drivers
  * Fixed **FluidSynth** not working on macOS hosts
* **Network**
  * Reworked **network emulation** to improve performance and stability
  * Added support for **up to 4 network cards** per machine
  * Added **3Com 3C501** ISA network card (based on VirtualBox)
  * Added **network cable connection and disconnection** through the status bar and Media menu
  * Fixed **AMD PCnet-FAST III** speed being capped to 10 instead of 100 Mbps, though not all host systems can reach higher speeds
  * Fixed **Settings** window crashing if too many **PCap interfaces** are present on the host (particularly on macOS hosts)
* **Ports**
  * Fixed **ESC/P** and **PostScript printers** not working on macOS hosts
  * Fixed serial port resource allocation issue on later **ALi chipsets**
* **Storage**
  * Added [**virtual ISO**](#folders-as-cds) for mounting host folders on CD-ROM drives
  * Added option to switch ATAPI and SCSI **CD-ROM drive identification** between an earlier drive (the default on previous 86Box versions) and a newer one (the new default)
  * Added **Olivetti M21/24/24SP**, **M240**, **Victor V86P** and **Toshiba T1200** integrated hard disk controllers
  * Added **Western Digital WD1004** RLL hard disk controllers
  * Fixed **hard disks being removed** if the image file is in use
  * Fixed IDE controller resource allocation issue on later **ALi chipsets**
  * Fixed **Tekram DC-390** SCSI controller unable to boot from some bootable CDs
  * Fixed **CD-ROM images** with Unicode characters in the file path not working on some Windows hosts
  * Fixed **ATAPI drives** (CD-ROM, MO and ZIP) being detected 8 times over or as a hard disk by some software
  * Fixed **ATAPI CD-ROM** not working with specific DOS drivers from Acer, Mitsumi and TEAC
  * Fixed emulator crash with `esdi_read` message with the **IBM ESDI** MCA disk controller
  * Changed CD-ROM drive model on the **Sony Vaio PCV-90** to make its recovery disc work
