UniPCemu build 2020/12/16 08:35 is now live!


Since it's a bit of a large update (over 490 commits), I've summarized the main changes and bugfixes for this release:

  • Fixed i430fx device ID.
  • Improved floppy sense interrupt and perpendicular mode.
  • Don't send ACK for enabling the second PS/2 controller.
  • Improved Pentium Pro and Pentium II emulation.
  • Improved x86 CR register bits.
  • Improved CPUID instruction.
  • Improved BIOS text input cursor to be a block character instead.
  • Added FS breakpoint support.
  • Added i440fx motherboard emulation.
  • Increased memory limit to 1GB.
  • Improved CPU-depending memory limits during detection. 15MB for 80286, 16MB for Compaq, 128MB for i430fx, 1GB for i440fx.
  • Improved PIT emulation.
  • Implemented a basic Qemu-style logging method for software to use.
  • Improved PCI BARs.
  • Fixed POST code logging without (valid) translation file.
  • Improved ATA and ATAPI device emulation.
  • The i440fx uses a default speed of 10MIPS or 66MHz.
  • Improved Pentium/Pro/II MSRs.
  • Implemented extended CMOS data storage at port 72h/73h.
  • Improved PIC interrupt tracking.
  • Implemented Local APIC, IO APIC and SMP.
  • Implemented Intel 28F001BXT/28F002BXT flash BIOS on i430fx/i440fx.
  • Implemented IMCR register.
  • Improved CPU INIT vs RESET.
  • Made the CPU state per-CPU instead of global.
  • Improved Android support for SDL2_net. It's now properly compiled in.
  • Hard disk lists in the settings menu can now be viewed, but not un/remounted on a running machine.
  • Implemented i430fx/i440fx BIOS flash write protection.
  • Fixed first PS/2 port IRQ on the output port.
  • Implemented SMP bus locking.
  • Multiple processors(up to 2) can now be specified in the settings.
  • Improved SMP CPU reset vs INIT.
  • The debugger is only attached to the BSP.
  • Improved SMRAM emulation.
  • Improved CPU reset/init with data locking.
  • Updated Android gradle to the latest version.
  • Implemented CPUID limit options on the function number.
  • Fixed IPS clocking mode bus deadlock.
  • Bus locks use a random chance generator.
  • Updated the common emulator framework to the latest commit.
  • Fixed CMPXCHG affected flags.
  • Improved CMPXCHG8B.
  • Added missing debugger for the CMPXCHG instructions.
  • Improved double fault during page fault.
  • Improved 32-bit addressing handling of special register opcodes.
  • Implemented all base Pentium Pro/II instructions(no FPU).
  • Widened the memory bus to 64-bits.
  • Optimized paging.
  • Modified the remaining instructions to use the BIU for memory accesses.
  • Improved CMOS timer update flag to be reported correctly.
  • Flushing the paging TLB also flushes the PIQ.
  • Fixed PS/2 keyboard typematic rate/delay command.
  • Fixed the paging accessed bit to be always handled.
  • Accessing paging structures in RAM now locks the bus.
  • Don't fault on pseudo-interrupts checking CPL.
  • Log paging pending events during advanced logging.
  • Don't check paging for the destination during jumps and call instructions.
  • Fixed 16-bit CMPXCHG.
  • Fixed VGA scanline data updating during register writes.
  • Made VGA byte panning an extension of the horizontal pixel panning register.
  • Latch the VGA byte panning during vertical retrace.
  • Latch the VGA horizontal pel panning during the end of vertical retrace.
  • Improved VGA byte panning to be an extension of horizontal pel panning.

Common emulator framework:

  • Implemented a command-line parameter to enable Qemu-style logging support.
  • Safeguard log against threads.
  • Safeguard file closing.
  • Fixed big file close protection.
  • Improved sound samplehandlers list.
  • Fixed RandomShort not being inlined.
  • Fixed random shorts to properly round to generate the full range of possibilities.
  • Improved random short with equal chance.
  • emu_misc.c: Improved border case of random short chance being out of range.
  • Fixed signed/unsigned warning in the 64-bit file read line function.

Files

UniPCemu.apk 4 MB
Dec 16, 2020
UniPCemu_PSP.zip 975 kB
Dec 16, 2020
UniPCemu_win64.zip 1 MB
Dec 16, 2020
UniPCemu_win64server.zip 1 MB
Dec 16, 2020
UniPCemu_win32.zip 1 MB
Dec 16, 2020
UniPCemu_win32server.zip 1 MB
Dec 16, 2020

Get UniPCemu

Leave a comment

Log in with itch.io to leave a comment.