Skip to content

Releases: barotto/IBMulator

v0.19

16 Nov 16:13

Choose a tag to compare

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 mode and dev settings from the [serial] section.
  • Added port_a, dev_a, port_b, and dev_b settings to the [serial] section.
  • Added speak, pipe-server, and pipe-client values for port_X settings in the [serial] section.
  • Added speak setting to the [lpt] section.
  • Added color_mode setting in the [display] section.
  • Added theme setting in the [gui_dialogs] section.
  • Removed software value from the renderer setting 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:

  1. rename or delete your current ibmulator.ini file to create an updated version.
  2. rename or delete your current keymap.map file 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.

ibmulator-0 19-screen1ibmulator-0 19-screen2

v0.18

11 Jun 14:07

Choose a tag to compare

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 -r to restore a savestate at launch
  • Added command line switch -s to start the machine at launch
  • Fixed command line switch -u when 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_gui to [soundfx]:drives_gui
  • Renamed setting [soundfx]:fdd_balance to [soundfx]:drives_balance

Changes to keymaps:

  • Renamed FUNC_INSERT_FLOPPY to FUNC_INSERT_MEDIUM
  • Renamed FUNC_EJECT_FLOPPY to FUNC_EJECT_MEDIUM
  • Renamed FUNC_CHANGE_FLOPPY_DRIVE to FUNC_CHANGE_DRIVE

Old FUNC_* names are deprecated but still valid.

How to upgrade:

  1. rename or delete your current ibmulator.ini file 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.

ibmulator-0 18

v0.17.1

07 Jan 11:20

Choose a tag to compare

Changes since v0.17:

  • Fixed MPU-401 interface not working.
  • Fixed possible crash when the shader parameters window is opened.

This release is to fix bugs only, no changes to ibmulator.ini or savestates.

v0.17

31 Dec 13:34

Choose a tag to compare

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:

  1. rename or delete your current ibmulator.ini file to create an updated version.
  2. rename or delete your current keymap.map file 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.

ibmulator-0 17

v0.16

03 Apr 19:40

Choose a tag to compare

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 -c command 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:

  1. rename / delete your current ibmulator.ini, otherwise a crash will occur because old shaders cannot be loaded.
  2. rename / delete your current key map file (keymap.map) for new key bindings to take effect.

To use RetroArch shaders:

  1. go to https://github.com/libretro/slang-shaders and download the zip package
  2. extract the slang-shaders-master.zip inside the "shaders" directory that IBMulator creates in the user directory
  3. rename the "slang-shaders-master" directory to "shaders_slang"
  4. specify the desired *.slangp preset in [display]:normal_shader or [display]:realistic_shader with 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

15 Sep 17:00

Choose a tag to compare

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_dialogs removed (setting moved to the new gui_dialogs section)
  • [gui]:ui_scaling value changed from real number to percentage
  • [gui_dialogs] section added, with options to set GUI dialogs properties
  • [drives] section completely revamped
  • [floppy_a]:type and [floppy_b]:type removed
  • [hdd]:readonly and [hdd]:save removed (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

23 Dec 20:26

Choose a tag to compare

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_timeout to set the auto-hide timeout for the compact mode control bar
  • [gui]:ui_scaling to set the scale factor of the GUI elements.
  • [capture]:video_quality to set the compression level of the video capture stream
  • [display]:type to set the monitor type (color or monochrome)
  • [display]:normal_scale to 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

06 Aug 16:15

Choose a tag to compare

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]:keymap can now have multiple keymap files specified
  • [serial] section to configure the the Serial Port
  • [gui]:show_indicators to enable the status indicators
  • [program]:log_file to 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

25 Dec 20:20

Choose a tag to compare

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

12 Sep 17:22

Choose a tag to compare

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_style and realistic_zoom settings 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.