UniPCemu build 2021/07/06 20:19 is now live!


A new version of UniPCemu is now out, with the latest bugfixes and improvements.

UniPCemu:

  • Improved floppy read and write sector with implied seek to seek to the requested track if it thinks it's on a different track with implied seek enabled.
  • floppy: Started implementing implied seek timings for read/write/format commands.
  • floppy: Further improved implicit seeks using the implicit seek command.
  • floppy: Implemented implied seek using the seek timings.
  • floppy: Cleaned up unused implicit seek label.
  • floppy: Improved implied seek to properly fill read/write sector results.
  • Fixed floppy code.
  • Fixed implied seek to properly not raise an IRQ when not supposed to during transfer.
  • Faults during faults always set the EXT bit.
  • ICEBP/INT1 never throws faults due to CPL being lower privileged than the interrupt descriptor table entry.
  • Restored the EXT bit handling to give the old results again.
  • Optimized the emulated CPU type detection to be faster.
  • Modified the i430fx/i440fx chipsets to be able to work properly with a 80286 CPU (bypassing RAM for the required ROM area).
  • Any fault raising a fault sets the EXT bit, no matter what fault is thrown.
  • Implied seek doesn't clear the disk changed flag.
  • Seeking without disk doesn't clear the disk changed flag.
  • Improved floppy disk changed erroring out when processing read/write/format actions.
  • Improved floppy disk formatting a read-only IMD disk image to properly handle it as read-only.
  • Fixed floppy MSR positioning mode issues.
  • More floppy positioning mode fixes.
  • Improved floppy drive abort when ejected during a data command.
  • Replaced disk changed checks with ejected during the current command checks.
  • Fixed ejected during the current command checks to compile correctly.
  • Set the external bit in protection faults using it for any level past the first level of faults.
  • Implemented the settings menu options for setting up the gaming mode buttons with face button mapping support.
  • Hardware interrupts always set the EXT bit in exceptions.
  • Swapped ATA-1 multiplesectors and multiplemode variable naming. multiplemode is now the mode that's set using the set multiple ommand and multiplesectors is the mode used for the current transfer.
  • Added configuration entries and settings menu options for the new gaming mode joystick setting for each face button.
  • Don't show the modem and nullmodem settings in the settings menu when the network support isn't installed and ready to use.
  • Added the modem listen port to the settings menu.
  • Added the analog minimum range to the input settings menu.
  • Split the CPU debugger settings into it's own CPU submenu.
  • Cleaned up the CPU menu and it's item ordering and item numbers.
  • Cleaned up the CPU debugger internal menu item ordering.
  • Fixed up the CPU debugger settings menu option in the CPU Settings menu.
  • Improved ending character for text inputs.
  • Fixed the input cursor to use proper UTF-8 encoding.
  • Fixed text input to use proper UTF-8.
  • Updated Android gradle to the latest version.
  • Improved Settings menu text attributes that were missing their correct colors.
  • Properly abort generating a static image when shutting down the emulator.
  • Improved dynamic image defragmenting to support termination through terminating of the app.
  • Fixed dynamic disk image defragmenting to work correctly again.
  • Improved cleanup during dynamic disk defragmentation.
  • Improved logging during dynamic disk defragmentation.
  • Fixed dynamic disk defragmenting detection of failed renaming of the defragmented disk image.
  • Fixed floppy disk type setting cancelling to give correct results.
  • Added informational text showing the raw analog stick inputs when selecting the analog minimum range setting to use.
  • Widened text font dumps to 16 pixels for full SVGA dumps.
  • Improved EGA CRTC readable registers.
  • Disabled EGA index registere being readable.
  • Improved Odd/Even mode planes wrapping.
  • Improved EGA/VGA Odd/Even mode handling of A0.
  • Improved EGA+ Odd/Even mode to support better A0 handling during Odd/Even modes.
  • Improved video support for Odd/Even reads.
  • Improved (S)VGA only invertion of the A0 bit from the Misc Output Register.
  • EGA also inverses the Misc Output Register bit 5, setting A0 when it's cleared, clearing it otherwise.
  • Fixed EGA port 3CA write to be graphics 2 position instead of feature control register.
  • Fixed EGA port 3CC write to be graphics 1 position instead of miscellaneous output register.
  • Use CPU address bit 14 instead of bit 16 in Odd/Even mode when in 64K RAM limiting mode.
  • Improved EGA color monitor support.
  • Fixed EGA graphics register 03h to use the correct amount of bits.
  • Improved EGA/VGA light pen register support.
  • Improved VGA EVRA bit support.
  • EGA has input status #0 bit 7 and input status #1's display signals inverted according to the documentation.
  • Improved EGA special CRTC register handling different from VGA.
  • Improved EGA horizontal blanking end to properly match 5 bits instead of 6 bits.
  • Fixed EGA/VGA CRTC register writes to work properly again.
  • Improved EVRA to only take effect on reads, not on writes.
  • Fixed the EGA graphics card colors to produce a correct DAC.
  • Fixed the EGA palette to be using the proper colors.
  • Improved EGA color monitor detection.
  • Changed EGA switches to enhanced, only EGA monitor.
  • EGA: Enable extended memory by default if more than 64K is installed.
  • EGA has input status #0 bit 0 inverted compared to VGA.
  • EGA uses a Display Disabled signal just like the VGA.
  • Fixed EGA video MUX on the input status #1 register.
  • Improved VGA video status mux inputs to match the EGA ones.
  • Reverted the VGA video MUX inputs to their original state as documented.
  • Improved the documentation on the EGA MUX input.
  • Disable the DAC Output reporting on the MUX inputs when retracing.
  • Undefined EGA behavior: when the attribute controller is in data mode, treat writes to port 3C1 the same as port 3C0.
  • Fixed EGA 4-bit color modes using the Positive Sync Polarity.
  • Fixed missing parentheses for the EGA 64-color DAC palette.
  • Improved EGA overscan to also use the VSync polarity.
  • Added extra paging fault bits for debugging.
  • Improved page fault address for 32-bit objects.
  • Improved page faults for dword accesses to become a proper byte granularity.
  • Fixed paging 32-bit non-faulting detection.
  • Fixed page fault inhibition when checking only.
  • JMPF/CALLF with a register operand isn't allowed!
  • Fixed JMPF/CALLF #UD to perform a correct return statement to compile.
  • Optimized BIU requests buffering to always be 64-bit aligned.
  • Decode the opcode of UD2 without ModR/M parameters.
  • Opcode FF(GRP5) /7 has priority of #UD over addressed memory access faults.
  • Improved i430fx/i440fx to have a faster reset command execution of the BAT. Normal BAT has unchanged timings.
  • Updated the common emulator framework to the latest commit.

Common emulator framework:

  • Improved LCTRL being pressed after RALT to be detected correctly with and without RALT having been pressed cases, with it still being properly ignored when simulated by RALT.
  • Improved gaming mode entering to accept the face buttons as extra options for selecting different mappings for gaming mode.
  • Added missing PSP OSK keys for rwin, rctrl, ralt and rshift.
  • Fixed PSP OSK lwin key to use the correct name and key.
  • Made the Gaming Mode Joystick vs Normal input setting to be specified for each of the face buttons.
  • Improved text handling of starting active output on a new line.
  • Added support for UTF-8 to the text display (although limited to 8-bit character codes for compatibility).
  • Fixed UTF-8 parsing of the initial UTF-8 byte.
  • Fixed OSK unicode characters.
  • Improved parsing of extended ASCII characters.
  • Made the GPU text surface border color become the border color of the foreground pixel instead of the border pixel.
  • Fixed OSK Windows and Apps character codes.
  • Improved the OSK to properly support UTF-8.
  • Improved displaying of unsupported character codepoints to resolve to a question mark.
  • Made raw inputs available to the applications using the common emulator framework.
  • Improved i430fx/i440fx to have a faster reset command execution of the BAT. Normal BAT has unchanged timings.
  • Fixed UTF8 code point warnings.

The most important of these updates being:

  • Proper ctrl key handling on supporting keyboards.
  • All builds now properly display special extended ASCII characters on screen.
  • The cursor of text input in the admin menus is now properly working on all platforms.
  • BIOS menu font colors are now improved.
  • All possible configuration settings (other than the packet server settings themselves) are now configurable from within the Settings menu.
  • IBM EGA is now properly emulated.
  • Gaming mode now has more options for mapping up to five different gaming input modes.
  • Various CPU bugfixes have been made.
  • Floppy disk emulation has been improved.

Files

UniPCemu.apk 4 MB
Jul 06, 2021
UniPCemu_PSP.zip 1,019 kB
Jul 06, 2021
UniPCemu_win64.zip 1 MB
Jul 06, 2021
UniPCemu_win64server.zip 1 MB
Jul 06, 2021
UniPCemu_win32.zip 1 MB
Jul 06, 2021
UniPCemu_win32server.zip 1 MB
Jul 06, 2021

Get UniPCemu

Leave a comment

Log in with itch.io to leave a comment.