UniPCemu build 2023/01/03 14:55 is now live!
UniPCemu » Devlog
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.
Files
UniPCemu.apk 5 MB
Jan 03, 2023
UniPCemu.nro 8 MB
Jan 03, 2023
UniPCemu.vpk 1 MB
Jan 03, 2023
UniPCemu_PSP.zip 1 MB
Jan 03, 2023
UniPCemu_win32.zip 1 MB
Jan 03, 2023
UniPCemu_win32server.zip 1 MB
Jan 03, 2023
UniPCemu_win64.zip 1 MB
Jan 03, 2023
UniPCemu_win64server.zip
Jan 03, 2023
Get UniPCemu
UniPCemu
A cycle-accurate PC emulator
Status | In development |
Category | Tool |
Author | Superfury1 |
Tags | 16-bit, 32-bit, cycle-accurate, Emulator, i430fx, pc, x86 |
Languages | English |
Accessibility | Configurable controls |
More posts
- UniPCemu build 2023/04/11 18:33 is now live!Apr 11, 2023
- UniPCemu build 2022/10/19 22:02 is now live!Oct 19, 2022
- UniPCemu build 2022/10/16 14:49 is now live!Oct 16, 2022
- UniPCemu build 2022/10/01 14:51 is now live!Oct 01, 2022
- UniPCemu build 2022/09/10 12:42 is now live!Sep 14, 2022
- UniPCemu build 2022/06/24 12:22 Android bugfix!Jun 24, 2022
- UniPCemu build 2022/06/19 19:15 is now live!Jun 19, 2022
- UniPCemu build 2022/04/07 22:49 is now live!Apr 08, 2022
- UniPCemu Switch release and PSP/Vita bugfixesSep 26, 2021
Leave a comment
Log in with itch.io to leave a comment.