VOGONS


x86EMU emulator releases

Topic actions

Reply 100 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest build:

Filename
x86EMU_20160221_1330.zip
File size
568.09 KiB
Downloads
95 downloads
File comment
x86EMU build 2016/02/21 13:30
File license
Fair use/fair dealing exception

- Implemented a high pass filter of 1Hz into the sound module to prevent Direct Current (DC) on the sound output.
- Fixed MIDI sample overflow by clipping with too high a volume.
- The SFDIMG disk image now will use a smaller, platform-independent header. This will now be correctly read and written on all platforms. It also has compatibility with the older padded headers, updating them to the new format (which is incompatible with older versions of x86EMU) when the disk images have new data written to them. New disk images will use this new unpadded format.
- Implemented BIOS settings to the Sound menu to enable and disable the generation of PC speaker sound (this won't disable the controller that uses it for IBM PC compatibility).
- Implemented BIOS settings to enable and disable the Adlib and Disney Sound Source/Covox Speech Thing(Found in the menu as "LPT DAC"). This will enable and disable the entire hardware emulation though (since it's not required in a PC).

Changing the new BIOS settings in the Sound menu will require a reboot of the emulator, since it will need to stop and restart audio rendering and buffers to work. The same applies to the loaded Sountfont(it emulates the MPU-401 only when a valid Soundfont is loaded, look at the logs directory for errors when loading the soundfont).

The parallel port is now always emulated, regardless of the LPT DAC setting(it's only not attached to the port when disabled).

Disabling some sound hardware might improve performance when not needed by software. All sound hardware is disabled by default. You'll need to enable them to emulate the hardware (it was always enabled, except MIDI, on older versions of x86EMU).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 101 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20160222_1452.zip
File size
568.1 KiB
Downloads
92 downloads
File comment
x86EMU build 2016/02/22 14:52
File license
Fair use/fair dealing exception

- Implemented MIDI attenuation. It will now produce more correct volume levels for it's sounds.
- Fixed MIDI volume issues.
- Fixex sound module issues (applies to all hardware producing sound).
- Fixed 8088 clock speed to 9 cycles instead of 8 cycles of an 8086 (verified with 8088 MPH sound testing at the credits).
- Implemented PIT high pass filter of 18.19999Hz(up to 18.2Hz, the minimum PIT frequency) to prevent any low frequency whining if present.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 102 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest build (a little fix):

Filename
x86EMU_20160222_1915.zip
File size
568.01 KiB
Downloads
72 downloads
File comment
x86EMU build 2016/02/22 19:15
File license
Fair use/fair dealing exception

Removed all filters but the required MIDI low pass filter (required by the Soundfont 2.4 specification).

The filters are currently messing up audio being generated (like the Adlib and even MIDI audio(high pass filter)). They will probably be implemented correctly later, but for now they're disabled to give clear sound and to actually sound correct.

This does mean that with non-AC coupled speakers sending samples that would generate DC(Direct Current) will burn or damage the speaker coil, should an application attempt to do this or hang while outputting positive/negative charge(in the case of the Covox Speech Thing that has no buffer, since it's directly connected to the renderer's output signal). Although this isn't supposed to be a problem with modern devices, as they're all supposed to be AC coupled(according to various people on this forum).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 103 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest build:

Filename
x86EMU_20160223_1535.zip
File size
568.01 KiB
Downloads
71 downloads
File comment
x86EMU build 2016/02/23 15:35
File license
Fair use/fair dealing exception

- Enabled the sound high pass filter again to protect sound output from DC (this works correctly, according to captures. The sound low pass filter is still disabled (global emulator low pass filter).).
- Fixed Covox Speech Thing not clearing output when the CPU thread isn't generating samples anymore.
- Removed Covox Speech Thing left and right channel logging. This should be working correctly.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 104 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest build:

Filename
x86EMU_20160224_1612.zip
File size
568.24 KiB
Downloads
78 downloads
File comment
x86EMU build 2016/02/24 16:12
File license
Fair use/fair dealing exception

- Globalized low and high pass filters for all hardware.
- Changed PC speaker low pass filter to 20kHz instead of 22kHz(22050Hz).
- Improved VGA vs CPU ratio depending on available CPU speed (slower CPUs will have slower VGA, faster CPUs will have faster VGA rendering, up to actual CPU vs VGA being synchronized 100% realtime when the VGA rendering is fast enough to keep up with the CPU).

VGA is now running at ~32 FPS on 4.0GHz Intel i7 4790K. CPU is running at ~96% using Default speed(~8086@4.77Mhz, with 8 cycles/instruction on 80(1)86 and 9 cycles/instruction on 80(1)88).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 105 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest build:

Filename
x86EMU_20160305_1656.zip
File size
567.79 KiB
Downloads
80 downloads
File comment
x86EMU 2016/03/05 16:56
File license
Fair use/fair dealing exception

- MIDI: Implemented default instrument #0.
- Improved MIDI volume according to Soundfont 2.4 specification.
- Implemented MIDI concave/convex formulas.
- Changed PC Speaker low pass to run at 1.19MHz instead of 44.1kHz, before downsampling, for accuracy.
- Optimized PC speaker audio locking.
- Fixed some errors in PIT emulation.
- Fixed PIT mode 0/1 reload handling during mode set.
- Removed PIT status #4.
- Added resetting of the gate low to high transition detection during PIT mode set.
- Implemented TSS fault (TSS still unemulated).
- Implemented Segment not Present and Stack Faults.
- Fixed General Protection Fault.
- Optimized protection routines for 80(1)86/88 processors to run faster.
- Simplified PIT emulation a bit.
- Adjusted the PIT to only listen to gate and reloads when used by the current mode at the current step, which is listening to the changes.
- Disabled floppy disk emulation of density and gap length for now to enable booting from old disks, since some BIOS (Turbo XT BIOS) ignore them, which give errors on booting disks with unmatched Density and Gap parameters (compared to the parameters assumed to be used for those disks).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 107 of 119, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
timofonic wrote:

Is it a fork?

I'm not sure its relation to other emulators. *shrug*

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 108 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

No it's not a fork (the only thing that's from another emulator is the VGA BIOS emulation(based on Dosbox-X's vga_modes.cpp and character ROM generation, which are modified for x86EMU(types, I/O operations etc.)) and Adlib emulation(previously). The adlib emulation used to be a copy of Fake86's Adlib emulation, but I've almost completely rewritten it(The only things that are left from that code are the register storage variables itself and the volume envelope lookup tables). The rest is converted to formulas based on sinus signals(sin() function) instead of the normal lookup tables.

The rest of the emulator I've completely written myself (Although I've been looking at fake86's CPU emulation for fixing some bugs, although it's CPU emulation has errors too (which are fixed in my emulation)).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 109 of 119, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

I have a feeling he asked this because there's other projects out there named x86emu:
https://www.google.com/search?num=100&safe=off&q=x86emu

Though, to be fair, yours is named x86EMU. 😀

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 110 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

A big update this time:

Filename
x86EMU_20160417_1544.zip
File size
583.48 KiB
Downloads
94 downloads
File comment
Latest x86EMU build (build 20160417_1544)
File license
Fair use/fair dealing exception

- Fixed various audio bugs.
- Optimized VGA.
- Added VGA synchronization modes: Full synchronization (fully based on the CPU, allowing cycle accuracy) or Old-style and New-style synchronization methods(depending on the Host CPU).
- Fixed keyboard input.
- Improved MIDI by lowering the volume(preventing overflow).
- Added a BIOS Settings menu option to dump VGA&CGA/MDA registers, fonts, VRAM and Color Lookup Tables(CLT) of the Attributes and DAC and timings(text file).
- Added VGA monochrome support ("MODE MONO" command), allowing it to support modes 7h(MDA text mode) and Fh(EGA B/W graphics mode).
- Improved BIOS Video Interrupt (without graphics card ROM installed) to better support the monochrome modes.
- Fixed VGA character set updating and selection.
- Implemented EGA/VGA Switch Sense dipswitches to properly detect the monitor(Monochrome VS Color monitor).
- Fixed screen captures.
- Fixed BIOS Settings menu.
- Added VGA with NMI, Pure VGA(VGA without NMI) modes.
- Added VGA with CGA and VGA with MDA hybrid modes(The adapter switches to CGA or MDA mode when the VGA Protection bit (protecting the CRTC registers) and the Display Enable(CGA/MDA Mode Control Register) are set). This will provide CGA and MDA compatibility modes, while starting out as a VGA. To return to VGA mode, disable the CGA/MDA Display Enable bit(This reenables the VGA CRTC registers), allowing the VGA to be used as normally with VGA timing and clocking.
- Added CGA/MDA ROM support using CGAROM.BIN and MDAROM.BIN files.
- Added full CGA and MDA(Pure CGA and Pure MDA modes) emulation, emulating full CGA and MDA graphics cards using the VGA codebase(It's essentially built on top of the VGA CRTC, but with CGA timings and clocks).
- Fixed PPI ports. They now properly allow the hardware to be detected as MDA/CGA/(EGA/)VGA.
- Using the debugger, the PSP Square key (Numpad 4 on PC) now skips the current REP instruction instead of refreshing the screen(which is no longer supported, as the graphics emulation is paused).
- Added CGA New-style and Old-style NTSC and RGB modes. This will effect the emulated CGA hardware and output (NTSC(Using NTSC Composite conversion from the latest PCEm-X commit(approved by Reenigne)) or RGB monitor).
- Fixed the window updating it's size too much.
- Make screen captures only when there's something to capture(not empty frames).
- Designated new RALT(Right alt/Alt Gr.) keyboard shortcuts to the emulator:
-- RALT-F10: Toggle emulator input(alternative method to the middle mouse button and both mouse buttons at once). Dosbox compatible.
-- RALT-F5: Screen capture.
-- RALT-F6: Start/stop recording audio
-- (RALT-F9: Emulator reserved key for diagnostics dumps when enabled, currently disabled)
- RALT emulator key combinations now no longer will be inputted into the emulated system.
- Loaded ROMs will now all use the .BIN extension. Option ROMs will now be named OPTROM.<number>.BIN and BIOS ROMS will now be named BIOSROM.U<number>.BIN .
- Fixed IBM PC 5160 (808X/8018X CPU) BIOS ROM memory mapping.
- Fixed floppy disk allowing up to 4 Sense Interrupts after reset. This is fully optional. Thus fixes booting and reading using both the Turbo XT BIOS v2.5 and original IBM PC XT BIOS first revision(Tested using the first revision only).
- Added CGA screen aspect mode ("Force 4:3" renamed as "Force 4:3(VGA)").
- Improved all hardware and CPU clocks to be more accurate, using clocks based upon divisions (to get exact 14MHz, 1.19MHz, CGA, MDA and VGA clocks).
- Made the forced display aspect modes (4:3 and CGA) force the display to be their resolution instead of being based on the maximum resolution and resolution provided by software.
- The debugger will now also debug HLT state(The time the CPU is in HLT state, waiting for external signals), providing debugging even when the CPU is in a (semi-)permanent HLT(unresponsive otherwise) state.
- Fixed DMA controller bugs.
- Fixed IBM PC XT keyboard compatibility.
- Added empty DMA DRAM Refresh channel(currently doesn't have any effect, except making the counter run).
- Applied the Keyboard to only auto-initiailize with a 286+ CPU(IBM PC AT).
- Added Floppy Disk Controller 82077A Version, Configure and Lock commands.
- Optimized the GPU renderer (increasing overall emulation performance greatly).
- Optimized CPU Prefetch Input Queue.
- Optimized DMA data transfers.
- Optimized Screen rescaling/resizing.
- Modified the BIOS Settings menu to always show all options, but ignore options chosen when not allowed to be changed(MIDI Player and Loading BIOS Defaults still hidden, since it's not a changable option, and they're unusable when the emulator is running).

The emulation is now accurate enough to even run 8088 MPH(a 2015 CGA demo) with almost full accuracy (except it's Kefrens Bars, which rely on cycle-accurate CPU timing, which isn't supported yet).
https://www.youtube.com/watch?v=VJhpp2Rp_eE

Last edited by superfury on 2016-04-18, 12:26. Edited 4 times in total.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 111 of 119, by Scali

User metadata
Rank l33t
Rank
l33t
superfury wrote:

The rest is converted to formulas based on sinus signals(sin() function) instead of the normal lookup tables.

Is that correct?
My understanding of the workings of the OPL chips is that they are a 'digital analog' synthesizer.
As in, they work like analog synthesizers in the sense that they use an LFO to generate the base signal, and then process that with modulation circuitry and filters and whatnot.
The difference with analog synthesizers however is that their LFO is digital, and consists of a table containing the basic sine waveform (a quarter of a sine in 256 words, extrapolated by some simple logic to generate the full sine of 1024 samples).
So using an actual sin() is not a correct emulation of the circuit. You want to emulate the table.

Not also that it uses log-transformed values so that it can use addition rather than multiplication. It uses a second table to convert back to exponential.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 112 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

Well, using those lookup tables also generate a lot less quality audio (looking at the sine waves used). It might not be accurate when looking at the input and output, but it does generate better quality sound(as it uses pure sinusoidal signals instead of rounded values).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 113 of 119, by Scali

User metadata
Rank l33t
Rank
l33t
superfury wrote:

Well, using those lookup tables also generate a lot less quality audio (looking at the sine waves used). It might not be accurate when looking at the input and output, but it does generate better quality sound(as it uses pure sinusoidal signals instead of rounded values).

Well, perhaps the tables in that implementation were not correct. I'm just saying that the original hardware uses tables, so using a sin()-function would not be comparable to real hardware (I doubt that it significantly improves sound quality over a real OPL chip though).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 114 of 119, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:
superfury wrote:

Well, using those lookup tables also generate a lot less quality audio (looking at the sine waves used). It might not be accurate when looking at the input and output, but it does generate better quality sound(as it uses pure sinusoidal signals instead of rounded values).

Well, perhaps the tables in that implementation were not correct. I'm just saying that the original hardware uses tables, so using a sin()-function would not be comparable to real hardware (I doubt that it significantly improves sound quality over a real OPL chip though).

Just for reference, Robson Cozendey made a OPL3 emulator in java, using floating point calculations. Not bad at all!
Still, I prefer accuracy to the original implementation over quality. If you change the algorithms it won't sound exactly like the original.
Also using floats for a job that does not need them will just consume extra CPU time.
(Plus, there's even slight differences between the original OPL3 and later low-voltage OPL3-SAx versions).

Reply 115 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

The hardware does sum it's channels as floating point values (although not 32/64/128-bit floating point values). Maybe it actually uses floating point values internally(3 bits of exponent and 10 bits mantissa according to http://yehar.com/blog/?p=665 ), at least in part of the calculations?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 116 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20160503_2038.zip
File size
589.09 KiB
Downloads
75 downloads
File comment
x86EMU build 20150503_2038
File license
Fair use/fair dealing exception

- Optimized VGA, CGA and MDA.
- Optimized DMA controllers.
- Fixed special emulation modes.
- Fixed VGA on boot screen (emulation modes other than BIOS ROM mode).
- Optimized various parts that have to do with rendering.
- Implemented OPL2 rhythm.
- Disabled 640K ISA memory hole(this gives problems with some software).
- The MIDI player has been renamed to Music player and DRO support has been added. It can now play DRO(Dosbox recordings, both early, v1.0(/v0.1) and v2.0 DRO formats) music files using the adlib emulation(you'll need to have the adlib enabled to make it work and hear the sound. High chip&register set output is ignored, since the adlib(OPL2) only has one channel and register set).
- Fixed CGA/MDA updating flags, crashing the emulator when quitting it.
- The sound debugging emulation mode now searches for ADLIB.DRO to play as well as the MPU.MID used in older versions of the sound debugger/tester.
- Simplified adlib/OPL2 feedback calculations (only last sample instead of last two averaged).
- Made the adlib much more accurate to the original soundcard(using reverse-engineering documentation on the chip), using the original tables as it's source (LogSin, Exponential).
- Implemented Tremolo and Vibrato using pure sine waves at their respective frequencies.
- Most of the adlib now uses integer values, except for output(Exponential) and signal timing (based on 2 times PI being one wave, using the formula 2xPIxFrequencyxTime+Phase modulation).

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 117 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20160520_0144.zip
File size
589.52 KiB
Downloads
77 downloads
File comment
x86EMU build of 2016/05/20 01:44
File license
Fair use/fair dealing exception

- Fixed ISA 640K memory hole. Now software made for MS-DOS and 640K memory will run better again.
- Disabled MMU NMI notifications.
- Optimized various parts of the emulator.
- Optimized audio rendering.
- Added global audio buffering support for all emulated devices.
- Improved OPL2 modulation using improved formulas closer to the original device.
- Optimized text surface rendering.
- Changed the left shift for mouse percision to right shift(to match the right ALT used for the emulator and for improved compatibility with software using the left shift).
- Fixed adlib gain.
- Added a BIOS menu option to easily restart the emulator and execute the BIOS Settings menu.
- Applied OPL2 KSL.
- Improved adlib rhythm(not perfect yet).
- Increased the files and item list possible from 256 to 1000 entries for large file lists.
- Changed OPL2 Tremolo and Vibrato to use Triangle waves based on the OPL2 Sine wave.
- Fixed DRO file loading crashing when the file isn't found.
- Added proper OPL2 NTS and CSM mode bit emulation.
- Fixed OPL2 Exponential calculations.
- Moved the DRO player to the main emulation routine for better accuracy and speed.
- Fixed CPU continuing to run when playing DRO files and other modes executing emulation without running CPU (also decreasing latency when playing DRO files).
- Converted the DRO playback time to HH:MM:SS format, removing any information smaller than 1 second.
- Improved OPL2 feedback.
- Improved OPL2 FM modulation.
- Fixed OPL2 volume envelope range.
- Fixed and implemented proper OPL2 Key Scale Level emulation.
- Changed the OPL2 Volume envelope to continue from the current volume when retriggering active volume envelopes.
- Fixed precise mouse movement using the right shift to use the correctly translated range.
- Changed the Sound Source volume knob to integer percentages instead of floating point for better accuracy. This makes the new BIOS Settings file read and written incompatible with older versions.
- Fixed Sound Source volume to use better decibel conversion instead of the old conversion.
- Fixed adlib double volume for Rhythm instruments.
- Optimized and fixed OPL2 absolute sine waves.
- Fixed CMOS 12/24 hour format checking.
- Optimized sound and input I/O buffers.
- Fixed ISO file reader validation-entry data check.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 118 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20160610_1912.zip
File size
484.21 KiB
Downloads
77 downloads
File comment
x86EMU build 2016/06/10 19:12
File license
Fair use/fair dealing exception

- Improved sound accuracy with more accurate PI.
- Optimized window resizing and rescaling, removing the requirement for the SDL_gfx dll(This is now a custom version optimized for x86EMU).
- Optimized various parts of the emulator.
- Fixed VGA graphics modes.
- Updates BIOS with new and improved timekeeping.
- Improved input response.
- Fixed various bugs.
- Added BIOS menu option for rebooting the emulator with and without automatically entering the BIOS menu.
- Optimized video palette updating.
- Made the 8086 CPU mostly cycle accurate according to the found documentation.
- Implemented CGA waitstate memory.
- Improved system-specific logging with correct line-endings (Linux vs Windows).
- Improved dynamic disk defragmentation, skipping unallocated sectors. This does make it unforgiving to corrupt dynamic disk images(previously skipping the corrupt sectors, now it aborts the conversion process).

The accuracy is now good enough to pretty much run 8088 MPH fully, except for the Kefrens Bar demo(small problems with synchronization because of the limited accuracy) and the credits music is now almost completely correct. For some reason (still not found out why) some software doesn't detect the adlib and/or PC speaker anymore(adlib probably due to timing differences and PC speaker having an unknown reason(Since it's hardware is always present on any PC-compatible and not auto-detected). The PC speaker problem has been verified by running Links: The Challenge of Golf with Default(8086 cycle accuracy when using an 80(1)86/88 CPU, running at 4.77MHz(which is rounded here, but emulated accurately)), which doesn't produce any sound anymore.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 119 of 119, by superfury

User metadata
Rank l33t++
Rank
l33t++

My latest x86EMU build:

Filename
x86EMU_20160715_1651.zip
File size
768.01 KiB
Downloads
196 downloads
File comment
UniPCemu build 2016/07/15 16:51
File license
Fair use/fair dealing exception

- Implemented ET3000/ET4000 video card emulation, which is almost fully working(except 640x480x256 color mode).
- Improved VGA clocking (Shift/load rates, Byte/Word/DWord modes and Memory Clock divide).
- Added support for ET3000/ET4000 ROM(ET3000.BIN and ET4000.BIN).
- Added 4:3 SVGA 768p and 1080p aspect ratio modes.
- Disabled loading the normal VGA ROM when using ET3000/ET4000 graphics cards.
- Improved (S)VGA precalcs detection.
- Added XT joystick hardware emulation.
- Added XT Expansion unit emulation.
- Added ET4000 16-bit DAC.
- Added XT RTC chip(which mirrors and extends the normal RTC chip used on the AT) for usage with TIMER.COM v1.2.
- Fixed dynamic disk defragmentation and optimized the defragmentation process.
- (S)VGA rendering is now done properly in 32-bit units.
- Fixed bugs with the BIOS menu(reentrant when not supposed to be).
- Improved VGA memory modes(Odd/Even vs Planar modes).
- Horizontal/Vertical total doesn't count as clocks anymore(saving one clock per scanline/screen).
- Adjusted emulator timing to be able to run virtually forever(without overflowing timing counters), while also keeping the timing constant(instead of a drift after 10 minutes).
- Implemented new VGA debugger command for usage with the softdebugger hardware to dump VGA memory accesses(new verboseVGA command).
- Implemented joystick emulation to map to the active joystick(the last joystick connected to the device) on devices supporting it.
- The XBox 360 controller is now supported besides the PSP input, with mapping like a PSP.
- SDL1 builds can now manually connect/disconnect using a special BIOS Setting menu option. The new SDL2 builds now do this automatically(switching between the last connected joystick and keyboard input when plugged in or plugged out).
- Fixed a bug in the softdebugger hardware, giving incorrect overflow status results.
- Added support for loading the memory dumps from Hackipedia when the files are placed in the VGAdump subdirectory(overriding normal input during the video card test mode).
- Improved VGA Sequencer Reset bits emulation. This now correctly halts the sequencer, while the CRT emulation continues outputting the same output.
- Added emulation of the Gravis Gamepad, Gravis Analog Pro and Logitech WingMan Extreme Digital joysticks, configurable through the BIOS Settings Menu's Input menu.
- Fixed the issue of the emulation speeding up when emulation is paused(during the BIOS Settings menu being opened).
- Fixed the 8042 PS/2 microcontroller not responding correctly.
- Floppy disk booting now correctly checks for the signature to prevent booting unbootable disks.
- Fixed internal BIOS interrupt 13h sector formula.
- Improved internal BIOS interrupt 16h, 18h, 15h and IRQ1 handling.
- Added a special debugger mode that only logs interrupt calls(INT instructions).
- Fixed DRO music file player hiding the Music Player by not restoring the emulator running status correctly.
- Added SDL2 support for better usage of the emulator, with SDL1 fallbacks and compatibility.
- Fixed application terminating when the BIOS menu is opened and when running.
- Fixed the emulator terminating incorrectly.
- Added Makefile support for linking SDL2 statically(currently unused).
- Improved joystick termination when quitting the emulator.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io