Releases: barotto/IBMulator
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
-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
toFUNC_INSERT_MEDIUM
- Renamed
FUNC_EJECT_FLOPPY
toFUNC_EJECT_MEDIUM
- Renamed
FUNC_CHANGE_FLOPPY_DRIVE
toFUNC_CHANGE_DRIVE
Old FUNC_*
names are deprecated but still valid.
How to upgrade:
- 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 and 22.04.
Note for Windows users: 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.ini
file to create an updated version. - 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.
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
-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:
- 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_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
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
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
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
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_style
andrealistic_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.
0.10
Changes since v0.9:
- Video capture, see the
[capture]
ini file section. Use the CTRL+F7 key combo to start/stop recording. - New SDL 2D renderers, see the
[gui]:renderer
ini setting. Use the renderer that works best for you:accelerated
should work fine if you use IBMulator in a VM like Virtualbox, otherwise use the defaultopengl
renderer (provided your video card has OpenGL 3.3 drivers). Thesoftware
renderer is for when nothing works. - Native file dialogs, see the
[program]:file_dialogs
setting. Use thenative
value if you want to use your OS's standard file dialog. Related issue: #46. - Revamped keymap system: now portuguese and other keyboard layouts with dead keys should work (I can't test this on a hw keyb, so YMMV). Related issue: #50.
- New
[gui]:framecap
setting.
The configuration ibmulator.ini
file has changed, if you are upgrading please delete or rename the old one.
The Linux binary works on my Ubuntu 19.10 machine, but it should work on Ubuntu 18.04 and 20.04 as well. Other distributions are untested. You need libSDL2 installed in your system.