Devlogs
UniPCemu build 2021/05/17 19:40 is now live!
UniPCemuA downloadable emulator for Windows and Android
Since it's another large update, it has again been condensed into a shorter summary of the changes:
- Implemented MMU-induced waitstates to delay giving inputs to the CPU core instead of just delaying the CPU core itself after a read/write.
- Improved settings value capping.
- Implemented the ET4000/W32 extensions to the ET4000AX emulation.
- Improved existing RAMDAC emulation to work properly and be properly detected.
- Added emulation of the Dosbox UMC UM70C178 RAMDAC.
- Added emulation of the AT&T 20C490 RAMDAC.
- Added emulation of the SC15025 RAMDAC, adding support for true-color modes.
- Improved the video subsystem enable registers to affect the (S)VGA as a whole instead of remapping to the memory enable bit.
- Improved Tseng KEY emulation.
- Improved Tseng VRAM size detection and applying.
- Improved Tseng video card detection.
- Fixed Tseng clocking divider.
- Improved ET3000 1M linear memory map bank size to be a proper 256K.
- Improved the Tseng definition of the extended memory bit in the Sequencer Memory Mode register.
- Improved 8-bit vs linear memory modes.
- Improved generic video card initialization for EGA and up.
- Improved (S)VGA data latches to be more cross-platform.
- Improved (S)VGA clock rates and dot clock rates to not be multiplied anymore.
- Improved EGA horizontal total to be +2 instead of +5 clocks.
- Improved VRAM address handling and non-existing VRAM detection.
- Implemented modem break signal emulation.
- Improved SLIP server handling of packets and filtering.
- Improved APIC and IO APIC emulation.
- Implemented a simple memory viewer (16x16 grid) into the debugger.
- Improved 8086 REP and REPNZ prefixes with MUL/IMUL and IDIV instructions undocumented behaviour.
- Improved protected mode structure fetching to be properly done with bus locks.
- Linux-based builds now can use an environment variable (UNIPCEMU) to use for the path of the program's files (an absolute path. The current working directory "." is also allowed).
- Added a setting for setting different luminance modes when in greyscale mode (Averaged and Luminance modes).
- Added a setting for the different DAC modes on the Tseng chips.
- Added a setting to switch between the different ET4000 chips (ET4000AX vs ET4000/W32) (applied when the ET4000 is selected in the VGA chip setting).
- Added various nullmodem configurations to the modem emulation, with a setting to switch between them. These are: simple nullmodem cable, nullmodem cable with line signalling, nulmodem cable with line singalling and outgoing connect using phonebook entry #0.
- Said nullmodem cable can also be connected and disconnected from the settings menu.
- Fixed x86 RCR shift amount masking.
- Made the DRO player able to stop when playing delays as well.
- Made the video card able to overrule RAM mapped at the same location.
- Improved i430fx/i440fx upper memory area handling.
- Improved i430fx/i440fx special DMA handling to only respond to the E-segment in the upper memory area.
- Improved Tseng register mapping and (not) responding.
- Improved Tseng memory deallocation.
- Implemented an option to set a black pedestal of 7.5 IRE for all active display rendering.
- Improved Tseng memory detection.
- Improved (S)VGA video subsystem enable emulation.
- Improved VGA not responding to SVGA register accesses where they don't exist.
- Improved (S)VGA ALU latches, logical operations and masking.
- Improved lightpen to only affect active display.
- Fixed the attribute bit 3 emulation.
- Improved the different type of video memory address masking.
- Improved Sound Blaster emulation to be more accurate.
- Improved UART emulation with ports without devices connected or devices that can't receive.
- Fixed MSR 1Bh mask and ROM bits.
- Added ET4000/W32 as a seperate VRAM type, meaning it automatically will try to redetect installed VRAM amount when selected or deselected.
- Improved Tseng ROM mapping.
- Updated Android Gradle to the latest version.
- Updated the common emulator framework to the latest commit.
Common emulator framework:
- Added FIFO buffer size reporting.
- Fixed TCP failing to connect to a client reporting correctly.
- Improved touch inputs.
- Improved clickable screen areas.
- Implemented support for audio devices connecting and disconnecting.
- Slight PSP shutting down timeout before terminating the app.
- Implemented support for touch inputs mapping to light pen inputs using the middle mouse button and right mouse button touches as a trigger.
- Added full support for the new SDL 2.0.2 and 2.0.4 video events.
- Added a parameter on Windows/Linux to use the SDL2 scaling method instead of the legacy method.
- Added support for screen DPI changes to affect the text layers to switch to adaptive mode when the DPI becomes too high (more than 96 DPI).
- Improved GPU module initialization.
- Prevent framerate rendering while the internal UniPCemu debugger is running.
- Fixed buggy memory difference detection.
- Improved multithreading.
- Improved PSP memory heap setting.
- SDL2 builds now uses a parameter "fullscreenwindow" to make the window become the size of the desktop.
Files
UniPCemu.apk 4 MB
UniPCemu_PSP.zip 1,004 kB
UniPCemu_win64.zip 1 MB
UniPCemu_win64server.zip 1 MB
UniPCemu_win32.zip 1 MB
UniPCemu_win32server.zip 1 MB