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