PSVita Home
What's New
Homebrew
Plugins

UniPCemu v2022.10.19 by Superfury1
Last Release: Oct 19, 2022
Downloads: 469

The UniPCemu (Universal PC emulator) emulator, originally made to play games on the PSP, now built for Android, Windows, PSP and PS Vita! Play your old classic PC games on Android! It's a cycle-accurate x86 emulator (previously called x86EMU before the rename, This isn't based on the other cpu-emulator called x86emu (lower case)). It's a 8086(IBM PC) up to Pentium II (Compaq Deskpro 386, Compaq Deskpro 386 with PS/2 mouse (adds PS/2 mouse to the Compaq Deskpro 386 chipset, optional BIOS ROM replacement (loading it instead, or alternatively a i430fx Pentium or i440fx Pentium Pro/Pentium II chipset with PS/2 mouse) and seperate CMOS settings like the other architectures) emulator(with various, configurable hardware), with up to 80386 timings (80486SX and Pentium using 80386 timings or 1 cycle for newer/unknown timings/instructions, both having no floating point unit)).
Name Version Released Hits DL Link QR
The latest build of UniPCemu is now released!

It has various CPU and hardware improvements, various hardware settings changed to become architecture-specific and the System Management Mode CPU mode added to it's emulation on some emulated architectures!

UniPCemu:

Implemented a configuration option to protect the BIOS boot ROM block.
Fixed BIOS flash ROM issues.
Optimized BIU memory read caching.
Implemented x86 SMM on Pentium, Pentium Pro and Pentium II processors.
Improved hidden IDTR/GDTR cache emulation to include access rights.
Improved x86 PAE loading and caching of the PDPT entries.
Improved PAE and PSE reserved bits faulting.
Improved CR4 PGE emulation to flush caches when needed.
Improved debug messages.
Improved ejected CD-tray to show an icon of an ejected CD-ROM disc tray.
Implemented i430fx/i440fx/i450gx STPCLK signal and CPU halting.
Made SMRAM compatible with 4 CPUs instead of just two CPUs.
Fully implemented i430fx/i440fx/i450gx SMI.
Improved ATAPI IRQ handling when finishing a command.
Implemented APIC SMI triggers.
Implemented serial control lines to immediately send control signals without timing when nothing is queued.
Improved APIC reads and writes to non-existing addresses to always be zeroed.
Implemented IO APIC SMI signal mapping.
Implemented i450gx 512K memory block to be properly unmapped if required to be unmapped.
Fixed APIC unmapped error status to work correctly again.
STPCLK blocks interrupts only.
Improved STPCLK to affect instruction boundaries only outside of SMM.
Improved NMI masking to be performed at the CPU itself.
Implemented STPCLK during NMI handling.
Improved interrupt masking during SMM, NMI and STPCLK assertion.
Ignore STPCLK for interrupt handling by (A)PIC during SMM and NMI handling.
Simplified memory address precalcs to not be using reserved memory.
Fixed maximum memory to be using the proper translated address.
Fixed Compaq mid memory block lowering.
Cleaned up MMU mapping code unused variables.
Improved the information row to allow dynamic content.
Fixed debugging row to display content correctly.
Fixed i430fx memory remapping.
Restored Compaq mid memory remapping.
Fixed ISA memory hole start address.
Fixed SMM to force a CPL of 0.
Implemented CR0 and CR4 register validation and shutdown when executing RSM.
Fixed SMM RSM shutdown detection when verifying CR0/CR4.
Improved directory autodetection support.
Made directory support more cross-platform.
Made path seperators proper on non-linux paths.
Made the Sound Blaster IRQ configurable as a architecture setting.
Split the GPU functionality into the GPU unit from the headers.
Fixed code to compile again with the new common settings support.
Fixed input settings to be properly updated again.
Cleaned up 386 opcodes.
Cleaned up MMU variables.
Made the video card input to the 8042 setting a parameter to the initialization function.
Moved the CMOS loading and saving support to the BIOS.
Fixed missing CMOS function in the BIOS module.
Moved all architecture-specific hardware settings to be automatically loaded into and from the architecture-specific settings instead of global settings.
Fixed converting from the old settings file format to the new settings file format.
Fixed the settings version to be compatible with older versions again.
Fixed CMOS saving to properly leave the new transferred fields alone in the settings file.
Fixed missing comments needing to be moved to the CMOS fields.
Cleaned up settings loading code.
Renamed the video 'synchronization' setting field to become 'videocardsynchronization'.
Moved not common PS/2 keyboard data to the PS/2 keyboard module.
Fixed kp* key shift handling.
Implemented backing storage for all XT RTC registers.
Implemented the XT RTC status register.
Implemented the XT RTC counter/RAM reset writes.
Implemented the XT RTC "GO" command.
Implemented the XT RTC Alarm function in with limited compatibility.
Properly trigger OPL2 CSM note-off.
Fixed OPL2 CSM forcing a key on.
Made the 320us timer use further division of the 80us clock.
Implemented different XT RTC Synchronization modes. It can now not synchronize again, fully synchronize or synchronize to 100th or whole seconds.
Improved the OPL2 timer control register to behave better than it did before with timer status flags, clearing them in some cases.
Updated the common emulator framework to the latest commit.
Cleaned up CMOS time updating code.
Fixed scancode set 0 tilde key break scancode.
Updated SDL2 on Windows and Android to version 2.26.1


Common emulator framework:

Made UniPCemu always support a debug text surface for text rendering.
Fixed rendering of text surfaces when other modules aren't initialized yet.
Fixed invalid CPU speed display when the speed is undefined.
Moved the debug surface text layer to the common emulator framework.
Added a simplified overlapping detection support for precalculated values.
Improved video updates on static screens to be properly handled.
Count the SDL_RENDER_TARGETS_RESET fixed on the SDL2 2.24.2 and up and disable the bugfix.
Added a CD tray to the custom font.
Fixed the definition of the triangle UTF code point.
Improved the information row to allow dynamic content.
Cleaned up screen updates when using static screen resolutions.
Added a global define for the path seperator of the host.
Made path seperators proper on non-linux paths.
Split more functionality into the GPU structures.
Moved GPU framerate settings to be using a set function.
Made all input settings local to the input unit.
Properly initialize input settings.
Cleaned up GPU framerate to no longer require bios headers.
Fixed missing main function headers including.
Fixed storage detection.
Fixed GPU missing input header for input OSK support.
Fixed missing setting loading when not compiling UniPCemu.
Moved common storage and setting support to the emu_misc header.
Cleaned up unused log headers.
Don't make releasing last keys take the shift status into account.
Made the amount of usable input keys a global define.
Moved common keyboard data to the input module.
Removed the PS2 keyboard data module, as it isn't common.
Fixed PSP-style OSK keypad to use the correct kp key names and mapping for the divide, multiply, minus and plus keys.
Fixed PSP WiFi connection menu input delay code to compile again.
Name Version Released Hits DL Link QR
UniPCemu v2022.10.19 10/19/22 144 Download QR
UniPCemu v1.0 09/26/21 325 Download QR