Releases: barotto/IBMulator
v0.19
Changelog:
- Added Text-To-Speech for the GUI.
- Added Braille 'n Speak serial port synthetizer emulation.
- Added an option to speak ASCII text from the parallel port with the TTS system.
- Added emulation of a second serial port.
- Added named pipe and virtual COM port connections for serial interface (Windows).
- Added a light GUI theme (dark theme still the default).
- Added VGA color modes to try to mitigate color blindness issues for guest programs.
- Added support for 86F floppy disk images (read-only).
- Improved support for HFE v1 floppy images: IBM XDF floppies can now be correctly formatted.
- Fixed crash when trying to save a non-standard floppy disk to an IMG file in flux mode.
- Ported the GUI to RmlUi 6.
- Removed the software 2D renderer (accelerated 2D renderer still available).
- The media file selection window now auto-selects the current image file.
- Fixed non-US keyboards not working properly (Linux).
- Added support for 128K ROM for IBM PS/1 model 2121 386 @ 20MHz.
Changes to ibmulator.ini:
- Added the
[tts]section. - Removed
modeanddevsettings from the[serial]section. - Added
port_a,dev_a,port_b, anddev_bsettings to the[serial]section. - Added
speak,pipe-server, andpipe-clientvalues forport_Xsettings in the[serial]section. - Added
speaksetting to the[lpt]section. - Added
color_modesetting in the[display]section. - Added
themesetting in the[gui_dialogs]section. - Removed
softwarevalue from therenderersetting in the[gui]section.
New default key bindings:
- CTRL+SHIFT+3: toggle TTS for the GUI.
- CTRL+SHIFT+4: toggle TTS for the guest OS.
- CTRL+SHIFT+X: stop the TTS synthesizer speaking.
- CTRL+SHIFT+B: describe the current element in focus using TTS.
- CTRL+SHIFT+T: announce title of the current foreground window with TTS.
- CTRL+SHIFT+1: when a GUI text input control is in focus, read its value as characters.
- CTRL+SHIFT+2: when a GUI text input control is in focus, read its value as words.
- CTRL+SHIFT+A: increase the speaking volume of the TTS.
- CTRL+SHIFT+Z: decrease the speaking volume of the TTS.
- CTRL+SHIFT+D: increase the speaking rate of the TTS.
- CTRL+SHIFT+C: decrease the speaking rate of the TTS.
- CTRL+SHIFT+8: cycle to previous VGA color mode.
- CTRL+SHIFT+9: cycle to next VGA color mode.
Changes to keymaps:
- Added the following functions for the Text-To-Speech system:
FUNC_TTS_GUI_TOGGLE,FUNC_TTS_GUEST_TOGGLE,FUNC_TTS_DESCRIBE,FUNC_TTS_READ_CHARS,FUNC_TTS_READ_WORDS,FUNC_TTS_STOP,FUNC_TTS_WINDOW_TITLE,FUNC_TTS_ADJ_RATE(x),FUNC_TTS_ADJ_VOLUME(x). - Added the following functions for the VGA color mode:
FUNC_SET_COLOR_MODE(x),FUNC_SET_PREV_COLOR_MODE,FUNC_SET_NEXT_COLOR_MODE.
See docs/KEYMAPS.md for more info.
How to upgrade:
- rename or delete your current
ibmulator.inifile to create an updated version. - rename or delete your current
keymap.mapfile to create an updated version so that the new default key bindings can take effect.
Savestates from previous versions are not compatible.
Linux binary compiled on Ubuntu 22.04 LTS and tested on Ubuntu 24.04 LTS.
Windows binary compiled on Windows 10 and tested on Windows 11 24H2.
v0.18
Changelog:
- Added ATAPI CD-ROM drive emulation
- Improved 5.25" floppy drive graphics and sound effects
- Fixed shaders loading error with Intel GPUs
- Fixed possible guest program or OS crash on state restore
- Added command line switch
-rto restore a savestate at launch - Added command line switch
-sto start the machine at launch - Fixed command line switch
-uwhen a relative path is used
Changes to ibmulator.ini:
- Added new section
[cdrom] - Added new setting
[drives]:cdrom - Added new setting
[soundfx]:cdrom_seek - Added new setting
[soundfx]:cdrom_spin - Renamed setting
[soundfx]:fdd_guito[soundfx]:drives_gui - Renamed setting
[soundfx]:fdd_balanceto[soundfx]:drives_balance
Changes to keymaps:
- Renamed
FUNC_INSERT_FLOPPYtoFUNC_INSERT_MEDIUM - Renamed
FUNC_EJECT_FLOPPYtoFUNC_EJECT_MEDIUM - Renamed
FUNC_CHANGE_FLOPPY_DRIVEtoFUNC_CHANGE_DRIVE
Old FUNC_* names are deprecated but still valid.
How to upgrade:
- rename or delete your current
ibmulator.inifile to create an updated version.
Savestates from previous versions are not compatible.
Windows version compiled and tested on Windows 10.
Linux version compiled in Ubuntu 20.04 and tested on Ubuntu 20.04, 22.04, and 24.04.
Note for Ubuntu 24.04 and AppImage: you need to install the libfuse2t64 package.
Note for Windows: if you have a HiDPI monitor I suggest you to disable Windows' HiDPI scaling for the ibmulator.exe program and use IBMulator's own UI scaling option instead. You can change UI scaling in the INI file or with CTRL + mouse wheel.
v0.17.1
v0.17
Changes since v0.16:
- Added Sound Blaster Pro and Pro 2 emulation
- Added Nuked-OPL3 for OPL audio rendering
- Added a mixer GUI window to control volumes, filters, effects and save settings to a file
- Added an audio OSD to adjust volumes
- Added reverb, chorus, crossfeed, balance audio effects
- Fixed horizontal PEL panning in CGA graphics mode
- Fixed CPU 32-bit PUSH for 16-bit segment registers
- Fixed audio crash when restoring a savestate with the serial modem installed
- Fixed floppy disk snatch sound at boot time
- Fixed PC Speaker audio desync
- Fixed Sound Blaster and MPU-401 not updating their hardware settings after a state restore
- The system sound effects are now audible in all GUI modes
- Audio filters and volumes have been tuned according to common knowledge and direct measurements
New default key bindings:
- SHIFT+F2: toggle the mixer control window
- R-CTRL+UP: increase volume by 5%
- R-CTRL+DOWN: decrease volume by 5%
- R-CTRL+RIGHT: next OSD audio channel
- R-CTRL+LEFT: previous OSD audio channel
The new key bindings are defined in the default keymap.map file present in the share/ibmulator folder.
Updates to ibmulator.ini:
- All audio volumes are now expressed as percentages, from 0 to 150.
- Keys removed:
[gui]:mouse_accel,[gui]:dpi,[pcspeaker]:enable,[pcspeaker]:rate,[adlib]:rate,[ps1audio]:rate,[ps1audio]:filters,[ps1audio]:volume,[sblaster]:opl_rate - Keys added:
[gui_dialogs]:osd_timeout,[gui_dialogs]:vu_meters,[mixer]:profile,[pcspeaker]:reverb,[pcspeaker]:chorus,[pcspeaker]:balance,[ps1audio]:dac_resampling,[ps1audio]:dac_volume,[ps1audio]:psg_volume,[ps1audio]:dac_filters,[ps1audio]:psg_filters,[ps1audio]:dac_reverb,[ps1audio]:psg_reverb,[ps1audio]:dac_chorus,[ps1audio]:psg_chorus,[ps1audio]:dac_balance,[ps1audio]:psg_balance,[adlib]:reverb,[adlib]:chorus,[adlib]:balance,[sblaster]:model,[sblaster]:dac_resampling,[sblaster]:dac_reverb,[sblaster]:dac_chorus,[sblaster]:dac_crossfeed,[sblaster]:dac_balance,[sblaster]:opl_reverb,[sblaster]:opl_chorus,[sblaster]:opl_crossfeed,[sblaster]:opl_balance,[soundfx]:reverb,[soundfx]:fdd_gui,[soundfx]:fdd_balance,[soundfx]:hdd_balance,[soundfx]:system_balance,[soundfx]:modem_balance
If you're upgrading from v0.16:
- rename or delete your current
ibmulator.inifile to create an updated version. - rename or delete your current
keymap.mapfile for new key bindings to take effect.
Savestates created in v0.16 are not compatible with v0.17.
Windows version compiled and tested on Windows 10.
Linux version compiled in Ubuntu 20.04 and tested on Ubuntu 22.04.
The AppImage version is the same as the .tar.gz one, encapsulated in a fancier container.

v0.16
Changes since v0.15:
- Added virtual serial modem emulation
- Added support for RetroArch slang shaders
- Added virtual 9-pin dot-matrix color printer emulation
- Fixed program crash with IBM Advanced Diags
- Fixed random CMOS image corruptions
- Fixed "timer not in use" error on state restore
- Improved handling of the
-ccommand line parameter
Changes to ibmulator.ini:
- Added new section
[modem] - Added new section
[printer] - The
[display]section has been revamped for the new shaders system - Modem options have been added to the
[soundfx]section
New default key bindings:
- CTRL+F2: opens the shader's parameters window
- CTRL+SHIFT+F4: opens the virtual printer window
If you're upgrading from v0.15:
- rename / delete your current ibmulator.ini, otherwise a crash will occur because old shaders cannot be loaded.
- rename / delete your current key map file (keymap.map) for new key bindings to take effect.
To use RetroArch shaders:
- go to https://github.com/libretro/slang-shaders and download the zip package
- extract the slang-shaders-master.zip inside the "shaders" directory that IBMulator creates in the user directory
- rename the "slang-shaders-master" directory to "shaders_slang"
- specify the desired *.slangp preset in
[display]:normal_shaderor[display]:realistic_shaderwith a path like "shaders_slang\bezel\Mega_Bezel\Presets\MBZ__5__POTATO.slangp"
Be sure to install the most recent drivers for your video card. Full support for OpenGL 4.5 is needed for RetroArch shaders to work.
Shaders have been tested only with AMD Adrenalin 23.3.2 drivers on Windows and AMD open source drivers (Linux 5.15) + Mesa 23.0.1 on Linux.
For better visual results on 4K monitors I suggest you to disable Windows' HiDPI scaling for ibmulator.exe and use IBMulator's own UI scaling option instead. If you need to reduce the rendering resolution for performance reasons you can use the [display]:shader_output_size option.
Savestates created in v0.15 should be compatible with v0.16.
Windows version compiled and tested on Windows 10.
Linux version compiled in Ubuntu 18.04 and tested on Ubuntu 20.04.
v0.15
Changes since v0.14:
- Added new floppy disk emulation type based on magnetic flux changes
- Added support for HFE, TD0, IMD, and IPF floppy disk images
- Added new graphics and sound effects for the 5.25" floppy drive
- Floppy drives can be accessed with new key bindings
- GUI dialogs can now be used with the keyboard
- Added GUI dialogs configuration to ibmulator.ini
- Added new media commit to storage options for both floppy and hdd
- Added non-DMA operation support to the floppy disk controller
- Floppy disk state is now properly preserved in savestates
- GUI scaling can now be changed at runtime with CTRL+Mouse wheel
- Added support for PS/1 Model 2011 canadian ROM
Testing results for copy-protected floppy disks can be found here.
Your mileage may vary. Support will hopefully improve in the future.
Changes to ibmulator.ini:
[program]:file_dialogsremoved (setting moved to the new gui_dialogs section)[gui]:ui_scalingvalue changed from real number to percentage[gui_dialogs]section added, with options to set GUI dialogs properties[drives]section completely revamped[floppy_a]:typeand[floppy_b]:typeremoved[hdd]:readonlyand[hdd]:saveremoved (see[drives]for alternatives)
If you're upgrading from previous versions, renaming of your current ibmulator.ini is suggested, so that IBMulator can create a new one.
Savestates created in v0.14 cannot be loaded in v0.15.
Windows version compiled and tested on Windows 10.
Linux version compiled in Ubuntu 18.04 and tested on Ubuntu 20.04.
v0.14
Changes since v0.13:
- Multiple savestates.
- VGA image integer scaling.
- Monochrome monitor emulation.
- Compact interface mode improvements, with an auto-hiding control bar.
- Floppy disk image select dialog improvements.
- UI scaling.
- Windows related bug fixing (#43).
- GUI code moved to RmlUI.
New ibmulator.ini settings:
[gui]:compact_timeoutto set the auto-hide timeout for the compact mode control bar[gui]:ui_scalingto set the scale factor of the GUI elements.[capture]:video_qualityto set the compression level of the video capture stream[display]:typeto set the monitor type (color or monochrome)[display]:normal_scaleto set the VGA image scaling in normal and compact modes
If you're upgrading from an older version, I suggest you to delete the old ibmulator.ini.
Windows binaries are compiled and tested on Windows 10 Pro 2004.
Linux binaries are compiled on Ubuntu 18.04 (GCC 10.3) and tested on 20.04.
v0.13
Changes since the previous version:
- Added remappable key bindings with timed macros
- Added Serial port emulation with network null modem connection mode
- Added status indicators
- Added configurable log file name
- Fixed #56, #59, #61, #62
- Fixed possible GUI deadlock
- Fixed segfault when the GUI can't be initialized
- Fixed mouse wheel not working on floppy image select window
New ibmulator.ini settings:
[gui]:keymapcan now have multiple keymap files specified[serial]section to configure the the Serial Port[gui]:show_indicatorsto enable the status indicators[program]:log_fileto configure the log file name
Limitations:
- The serial null modem network connection can't emulate proper hardware handshake (planned for future releases)
If you're upgrading from an older version, I suggest you to delete the old ibmulator.ini as well as any keymap.map file (if present).
Windows binaries are compiled and tested on Windows 10 Pro 2004 with the latest MSYS2 release.
Linux binaries are compiled on Ubuntu 18.04 (GCC 10.3) and tested on 20.04.
v0.12
Changes since v0.11:
- MIDI output support
- Roland MPU-401 emulation
- Sound Blaster 2.0 MIDI emulation
New ibmulator.ini settings:
[midi]to configure the MIDI device[mpu401]to enable and configure the MPU-401 card
Limitations:
- MIDI output only, no input.
- For Sound Blaster MIDI emulation only SB-MIDI mode is tested; UART mode, while emulated, is completely untested (and probably broken) as I don't know of any program using it (please suggest).
- Only MT-32 SysEx messages are saved in save states.
Windows binaries are compiled and tested on Windows 10 Pro 19.09 with the latest MSYS2 release.
Linux binaries are compiled on Ubuntu 18.04 and tested on 20.04. With the provided Linux binaries you'll get better (~10%) performance compared to v0.11 since I started using GCC 10 (ymmv).
v0.11
Changes since v0.10:
- Creative Sound Blaster 2.0 emulation
- Dark style and Zoomed in view for the Realistic GUI mode
- Joystick axes and buttons remapping support
- Adjustable emulation speed, from 0.01% to 500%
- Bug fixing, especially in the audio mixing department
The Sound Blaster DSP v2.01 emulation is a brand new implementation (except the ADPCM decoders taken from the DOSBox project). I tested it as much as I could but I still expect problems, so bug reports are very much welcome.
Adjustable emulation speed was already somewhat implemented, but it was so broken that I consider it a new feature.
New ibmulator.ini settings:
[sblaster]section to set up the Sound Blaster;[gameport]section to enable/disable port emulation and set joystick mappings;realistic_styleandrealistic_zoomsettings in the[gui]section, to set up the new Realistic GUI style and zooming functions;
Windows binaries are compiled and tested on Windows 10 Pro 19.03 with latest MSYS2 release.
Linux binaries are compiled on Ubuntu 18.04 and tested on 20.04.


