Bochs Changelog

What's new in Bochs 2.7

Aug 1, 2021
  • Bugfixes for CPU emulation correctness (CPUID/VMX/SVM fixes to support Windows Hyper-V as guest in Bochs)
  • Improvements for the plugin handling to simplify Bochs extensions
  • Added "multiple NICs" support to the NE2000 and E1000 devices
  • Added experimental FTP service for networking modules 'vnet' and 'socket'
  • Fixes and improvements for all supported Voodoo graphics adapters
  • Added USB keyboard emulation with most of the keys supported
  • GUI "cmdmode": create a headerbar event with key combo starting with F7
  • LGPL'd VGABIOS updated to version 0.8a (new VGABIOS for Voodoo Banshee)

New in Bochs 2.6.8 (May 13, 2015)

  • CPU / CPUDB:
  • Bugfixes for CPU emulation correctness (critical bugfix for x86-64 emulation)
  • Memory type calculation support for Bochs debugger and instrumentation
  • to enable configure with --enable-memtype option
  • CPUDB: Added Pentium (P54C) configuration to CPUDB
  • CPUDB: Added Broadwell ULT configuration to CPUDB
  • Updated definition of instrumentation callbacks, see description in
  • instrumentation.txt / Fixed instrumentation examples
  • Configure and compile:
  • Configure option --enable-fast-function-calls now also used for MSVC nmake
  • Some configure fixes for the GTK debugger support
  • GUI and display libraries:
  • The VGA update timer mode now can be selected with the 'vga' option
  • Release all pressed keys when the simwindow gets back the keyboard focus
  • Win32 gui: Captured mouse cursor now really trapped in window
  • SDL2: Implemented yes/no dialog (e.g. for VVFAT commit)
  • Some fixes for wxWidgets 3.0 and unicode version compatiblity
  • Full save/restore support for enhanced gui debugger settings (window+font)
  • Added debugger support for the term gui using a pseudo-terminal
  • I/O DEVICES:
  • Hard drive:
  • Added Oracle(tm) VM VirtualBox image support (VDI version 1.1)
  • Re-enable "bulk I/O" repeat speedups extension
  • Some lowlevel cdrom code fixes for Windows and Linux
  • Sound:
  • SB16: Fixed OPL chip detection by implementing ISA bus delay
  • SB16: Ported OPL3 emulation from DOSBox and partly removed legacy code
  • ES1370: Added MIDI UART output support
  • ES1370: Fixed critical bug that made Win9x drivers crash
  • Major rewrite of the lowlevel sound code
  • Added mixer thread support (required for all modules except 'sdl')
  • New mixer and SDL mixer are polling data from the PCM output buffers
  • the PC speaker beep generator and the OPL3 FM generator
  • PCM format conversion to 16 bit signed little endian
  • Added sound 'file' module for VOC, WAV, MID and raw data output
  • and added dual output support (device+file) in midi/wave mode 3
  • Added capability to set up the sound driver per service
  • Floppy:
  • Fixed "Read ID" command for single-sided media
  • ROM BIOS:
  • Fixed keyboard scancode processing after keyboard intercept
  • Fixed rombios32 code to avoid incorrect ACPI table detection

New in Bochs 2.6.7 (Nov 4, 2014)

  • CPU / CPUDB:
  • Implemented AVX-512BW/AVX-512DQ/AVX-512VL extensions emulation.
  • implemented AVX512-IFMA532 instructions emulation.
  • implemented AVX512-VBMI instructions emulation.
  • Bugfixes for CPU emulation correctness (critical fixes for AVX-512, CMPXCHG16B and VMX)
  • Fixed Bochs segmentation fault crash with Handlers Chaining Speedups enabled when compiling with gcc, especially with low optimization levels.
  • Reverted removal of reporting Architectural Perfmon support in pre-defined CPUID modules.
  • Windows 8 and Windows 10 require Performance Monitoring to be reported to boot.
  • To workaround possible Windows 7 64-bit installation issues: use bx_generic CPUID module, which doesn't report Performance Monitoring in CPUID.
  • GUI and display libraries:
  • The VGA update timer and the status LED timer now always use the realtime mode independent from the 'clock' option setting.
  • Added native SDL2 GUI support to Bochs. To enable configure with --with-sdl2.
  • Added new user shortcut "scrlck" (SDL/SDL2 using "Scroll Lock" for fullscreen toggle).
  • Write enhanced gui debugger settings to file on exit and restore on initialization.
  • I/O Devices
  • USB
  • xHCI model now emulates a NEC/Renesas uPD720202 device (patch by Ben Lunt).
  • Added USB port specific option 'size' for VVFAT disks (range 128M ... 128G).
  • If the size is not specified or invalid, it defaults to 504M.
  • Hard drive / HD image
  • Fixed crash when using a "fixed" type VPC image.
  • ROM BIOS:
  • Fixed int74_function() for 4-byte (wheel mouse) packets.
  • LGPL'd VGABIOS updated from CVS (fixed building VBE modes list)
  • Misc:
  • Visual Studio workspace files updated to VS2013Ex format.
  • bximage_old/bxcommit: removed old obsolete image manipulation tools.
  • Documentation fixes and updates.

New in Bochs 2.6.6 (Jun 16, 2014)

  • CPU / CPUDB:
  • allow sandy bridge configuration even when AVX is not compiled in
  • Configure and compile:
  • fixed compilation error when 3dnow support is enabled
  • speedup Visual Studio build by almost 20% by adding /Gr compiler option
  • Misc:
  • fixed minimizing win32 gui window and resolution change while minimized
  • added compiled SeaBIOS 1.7.5 image into Bochs tree along with Bochs BIOS images
  • documentation fixes and updates

New in Bochs 2.6.5 (Jun 2, 2014)

  • CPU:
  • Bugfixes for CPU emulation correctness (critical fixes for XSAVE, VMX, TBM/BMI and RDRAND instructions)
  • Implemented FCS/FDS Deprecation CPU feature
  • Implemented SHA instructions emulation
  • Implemented XSAVEC instruction emulation and XINUSE optimization in the XSAVEOPT instruction
  • Implemented AVX-512 instructions emulation (experimental)
  • CPUDB: Added Intel(R) Core(TM) i7-4770 CPU (Haswell) configuration to CPUDB
  • CPUDB: Added AMD A8-5600K APU (Trinity) configuration to CPUDB
  • Replace 'SSE' and 'AVX' .bochsrc option with single 'SIMD' option which controls presence
  • of all CPU SIMD extensions from SSE to AVX-512
  • Extra 5-10% emulation speedup with new trace linking optimization. The optimization
  • is enabled by default when configuring with --enable-all-optimizations option,
  • to disable trace linking optimization configure with --disable-trace-linking.
  • The optimization require to compile Bochs with at least -O2 optimization level on gcc.
  • Bochs Debugger and Instrumentation:
  • Added disam for Bochs internal instruction representation, especially useful for instrumentation
  • Updated definition of instrumentation callbacks, see description in
  • instrumentation.txt / Fixed instrumentation examples
  • added capability to use the gui debugger output window as a log viewer
  • General:
  • Increased max. device log prefix size to 6 and added / modified prefixes
  • plugin version now uses the native DLL handling code for all Windows ports
  • critical bugfixes in save/restore functionality
  • Configure and compile:
  • configure and compilation fixes for Cygwin and Visual Studio environment
  • configure option --enable-cdrom now only controls the presence of
  • platform-specific code for device access
  • building plugin version with MSVC nmake now supported
  • Config interface:
  • Added global sound control option for the driver and wave input/output
  • Added new bochsrc option to control the speaker output mode
  • Added support to specify the initial time for 'clock' option in ctime(3) string format
  • Added support for the LTDL_LIBRARY_PATH variable with MSVC plugins
  • All SB16 / ES1370 options are now changeable at runtime
  • textconfig: added menu item for saving configuration at runtime
  • Added bochsrc option for the Voodoo Graphics emulation (experimental)
  • I/O Devices:
  • Hard drive / CD-ROM:
  • seek latency implemented for ATA/ATAPI read commands
  • portable ISO image file access now available on all platforms
  • Networking:
  • added built-in slirp (user-mode networking) support (ported from Qemu)
  • removed the "slirp backend" support (required external slirp binary)
  • slirp/vnet: all supported TFTP extension options implemented now
  • Sound:
  • SB16 / ES1370: added volume control support for wave output
  • SB16: fixed audio distortion when playing stereo wave files
  • ES1370: added 'wavemode' support similar to the SB16
  • soundwin: added capability to specify the ID of the MIDI device to use
  • Serial:
  • Serial mouse detection fixes
  • Busmouse:
  • Non-functional device rewritten to make it work in DOS and Win95 guests
  • (use --enable-busmouse to configure and "mouse: type=bus" at runtime)
  • ROM BIOS:
  • PS/2 mouse function: allow setting mouse packet size to 4 for wheel support
  • GUI and display libraries:
  • Added new experimental gui 'vncsrv" using the LibVNCServer library
  • RFB: set maximum resolution to 1280x1024 (same as vncsrv)
  • RFB: don't wait for client connection on startup if timeout is set to 0
  • Added mouse wheel support to the rfb, vncsrv and wx guis
  • wx: added viewer window for the Bochs log output
  • win32: fixes and improvements for the fullscreen mode
  • Tools:
  • bximage utility rewritten in C++ for image creation, conversion, resize
  • and redolog commit. Now vmware4 and vpc images can be created.

New in Bochs 2.6.2 (Aug 30, 2013)

  • CPU
  • VMX: implemented VMENTER to non-active guest state (HLT, SHUTDOWN, WAIT-FOR-SIPI)
  • VMX: fixed write of guest segment access rights VMCS fields (32-bit field was truncated to 16-bit)
  • CPUID: Don't report Architectural Performance Monitoring in CPUID. Reporting true capabilities without actually supporting them breaks Win7 x64 installation.
  • CPUID: Fixed bx_generic CPUID std leafs (all std leafs > 2 were corrupted) - CPUID: Enable all supported VMX capabilities for bx_generic CPUID configuration.
  • CPUID: Enable X2APIC support for Ivy Bridge CPUDB configuration.
  • Configure and compile
  • Enabled VMX compilation by default in shortcut scripts.
  • Allow CPU_LEVEL=5 configurations (pentium_mmx and amd_k2_chomper) even when Bochs was compiled with CPU_LEVEL > 5.
  • Misc
  • Fixes for Bochs port on MorphOS (based on a patch by Thore Sittly): missing functions, byte-swapping and cdrom support.

New in Bochs 2.6.1 (Aug 30, 2013)

  • CPU / CPUDB
  • Bochs is fully aligned with rev45 of the of Intel(R) Architecture Manual.
  • Implemented Supervisor Mode Access Protection (SMAP) support
  • Implemented VMX APIC Registers Virtualization and VMX Virtual Interrupt Delivery
  • Implemented VMCS Shadowing and #VE exception secondary VMEXIT controls emulation
  • Implemented RDRAND and RDSEED instructions ! CPUDB: Added AMD FX-4100 (Zambezi) configuration to CPUDB - Bugfixes for CPU emulation correctness (critical fixes for SVM and AVX2 emulation)
  • Bochs Debugger and Instrumentation
  • Use Enhanced GUI Debugger instead of old-style wx debugger with wx gui. The old-style wx debugger support was deprecated and removed from the source code.
  • I/O Devices
  • Implemented 3dfx Voodoo Graphics card emulation based on DOSBox patch, to enable configure with --enable-voodoo option.
  • Hard drive / HD image - Added full save restore support for most of the disk image formats - undoable / volatile mode: added support of other types of r/o base images - DLL HD support rewritten and enabled for WIN32 host - PCI chipset
  • Implemented i430FX chipset emulation - USB UHCI always enabled in the i440FX case
  • Config interface
  • Configure option --enable-misaligned-sse moved to runtime option in .bochsrc. The old option is deprecated and should not be used anymore. - moved 'user_shortcut' bochsrc option to the 'keyboard' option - save log options per device to bochsrc - win32: implemented scrollable dialog items for large parameter lists
  • GUI and display libraries
  • Graphics snapshot feature rewritten to support all kinds of graphics modes - wx: starting a second simulation without closing Bochs now almost possible - Tools - bxcommit: added support for converting flat to growing mode images

New in Bochs 2.6.0 (Aug 30, 2013)

  • CPU:
  • Implemented EPT A/D extensions support. Bochs is fully aligned with rev043 of the of Intel(R) Architecture Manual.
  • Implemented ADX (ADCX/ADOX) instructions support, the feature can be enabled using .bochsrc CPUID option.
  • More than 10% CPU emulation speedup with even more optimal lazy flags handling, stack access optimizations and cross branch trace linking.
  • Support for AMD's SVM hardware emulation in Bochs CPU, to enable configure with --enable-svm option - Implemented AMD Extended XAPIC support, to enable set .bochsrc CPU APIC option to 'xapic_ext' !
  • Added Corei5 750 (Lynnfield) configuration to the CPUDB !
  • Added Turion64 (Tyler) configuration to the CPUDB !
  • Added AMD Phenom X3 8650 (Toliman) configuration to the CPUDB !
  • Added Corei7 3770K (Ivy Bridge) configuration to the CPUDB - Bugfixes for CPU emulation correctness and stability (critical fixes for APIC/X2APIC, VMX and AVX/XOP emulation)
  • Bochs Debugger and Instrumentation
  • Implemented new debugger command 'info device [string]' that shows the state of the device specified in 'string'
  • Improved debug dump for ne2k, pci, pic and vga/cirrus devices. Added debug dump for pci2isa, i/o apic, cmos, pit, floppy and dma devices.
  • Added TLB to CPU param tree - now it can be browsed from Bochs internal debugger and Bochs debugger GUI through param tree interfaces
  • Implemented 'writemem' debugger command to dump virtual memory block starting from selected linear address into a file
  • Updated definition of instrumentation callbacks, see description in instrumentation.txt / Fixed instrumentation examples
  • Configure and compile
  • Moved disk imaging, networking, sound and USB devices to subdirectories in the iodev folder. - pcidev: enable support for Linux kernel 3.x (Debian patch by Guillem Jover) - debugger: generate parser / lexer files only if all required tools are present
  • Config interface
  • Added support for direct device plugin loading with bochsrc directive for devices which have the same name for the plugin and config option.
  • The bochsrc option 'plugin_ctrl' can now be used to load/unload optional plugins directly when parsing the config file or command line. See the bochsrc sample for supported devices.
  • Moved bochsrc parsing / writing and config parameter handling for networking, sound and USB devices to the plugin device code. The options are only available when the corresponding plugin device is loaded.
  • Added ability to set log action per device from .bochsrc.
  • Added new command line option '-noconsole' to disable the console window on Windows host.
  • Renamed PCI Pseudo NIC option to "pcipnic" (for direct plugin loading) - Moved several related options to the new "keyboard" bochsrc option.
  • Added new parameter 'rtc_sync' for the 'clock' option. If this option is enabled together with the realtime synchronization, the RTC runs at realtime speed.
  • Moved MWAIT_IS_NOP bochsrc option from CPUID to CPU so it can be set even if cpu was configured using pre-defined CPUDB profile.
  • Allow larger CPU 'quantum' values when emulating SMP systems for speed (quantum values up to 32 are allowed now).
  • I/O Devices - Networking
  • Ported Intel(R) 82540EM Gigabit Ethernet adapter emulation from Qemu, to enable configure with option --enable-e1000
  • Added PCI network boot ROM support to all network adapters
  • Added TFTP support to the 'slirp' networking module
  • PCI - added "auto-assign to PCI slot" feature for PCI-only devices
  • DMA - Added the capability to transfer more then one byte / word per ISA DMA cycle - VGA - Major rewrite of the vga / cirrus code: - vgacore (shared standard VGA emulation code) - vga (Bochs VBE and PCI VGA) - cirrus (CL-GD 5430 ISA / CL-GD 5446 PCI) - Added VGA graphics blinking support - More accurate vertical and horizontal retrace emulation (based on the DOSBox implementation) - hard drive / hdimage - added new disk image mode 'vpc' for VirtualPC images - undoable mode: added coherency check (flat image size and timestamp) - sparse mode: fixed read support - Sound - implemented PC speaker beep using the lowlevel sound interface - added SDL audio output support - ROM BIOS - improved PCI boot ROM support (for VGA and other devices) - added MADT entry for Interrupt Source Override to ACPI tables - GUI and display libraries - implemented "auto-off" timer for status LEDs indicating a data transfer
  • Added support for sending absolute mouse position values from the gui if an absolute pointing device (USB tablet) is active (rfb, sdl, win32, wx, x). - Gui debugger now supported when using sdl gui on Windows - Implemented "hideIPS" option in rfb, sdl, win32 and wx libraries - wx: fixed random freezes with wxGTK and "show ips" feature enabled - rfb: the "show ips" feature now works on Windows host

New in Bochs 2.4.6 (Feb 23, 2011)

  • Support more host OS to run on: - Include win64 native binary in the release. - Fixed failures on big endian hosts. - BIOS: Support for up to 2M ROM BIOS images. - GUI: select mouse capture toggle method in .bochsrc. - Ported most of Qemu's 'virtual VFAT' block driver (except runtime write support, but plus FAT32 suppport) - Added write protect option for floppy drives. - Bugfixes / improved internal debugger + instrumentation.

New in Bochs 2.4.5 (Apr 26, 2010)

  • Major configure/cpu rework allowing to enable/disable CPU options at runtime
  • through .bochsrc
  • Bugfixes for CPU emulation correctness and stability
  • Implemented X2APIC extensions
  • Implemented Intel VMXx2 extensions
  • Extended VMX capability MSRs, APIC Virtualization, X2APIC Virtualization, Extended Page Tables (EPT), VPID, Unrestricted Guests, new VMX controls.
  • Implemented PCLMULQDQ AES instruction
  • Extended Bochs internal debugger functionality
  • USB HP DeskJet 920C printer device emulation

New in Bochs 2.4.2 (Apr 2, 2010)

  • CPU and internal debugger
  • VMX: implemented TPR shadow VMEXIT
  • Bugfixes for CPU emulation correctness (mostly for VMX support).
  • Bugfixes and updates for Bochs internal debugger
  • On SMP system stepN command now affects only current processor
  • Memory modelling
  • Bugfixes for > 32-bit physical address space.
  • Allow to emulate more physical memory than host actually could or would like to allocate.
  • I/O Devices Bugfixes
  • Bugfixes for 8254 PIT, VGA, Cirrus-Logic SVGA, USB UCHI
  • Cleanup configure options
  • Many configure options are deprecated and determined automatically from the others