Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Your thoughts on UniPCemu? Sticky

A topic by Superfury1 created Mar 03, 2018 Views: 1,168 Replies: 6
Viewing posts 1 to 6
Developer

I'm curious, what do you, the user of this app, think about this app? Any ideas on improvements?

UniPCemu needs more performance, because as for now it cannot compete with Bochs and QEMU ports for Andorid.

Developer

Well, one thing UniPCemu is that those emulators aren't is that it's a cycle-accurate emulator. And as is known, accuracy takes power. A more fast mode is already implemented using IPS mode(which makes the CPU function much like Dosbox, but with maintained mechanics for CPU-BIU communication for emulator compatibility with both modes).

There are currently two parts of emulation that are very demanding on the CPU: CPU emulation(interpreter emulation at ~30% CPU usage on Intel i7-4790K@4.0GHz) and (S)VGA video card emulation is measured at ~15%(CGA is faster due to using the base 14MHz bus clock like other hardware). CPU can be slowed down without visual effect, but slowing down the (S)VGA actually lowers the framerate, leading to even worse performance, from a user point of view. The basic accuracy of both is required to properly function, so the only way ahead is just to optimize further, which still takes (more) time.

Developer

The latest builds squeeze out some more performance in IPS clocking mode(up to 25-30% speed increase). So it's at ~25% speed at 3MIPS(Intel i7), depending on the CPU mode. The same on Android on 500KIPS.

Developer (1 edit)

Some more speed has been gotten with recent optimizations, bumping it up to up to 35-39% at 3MIPS in IPS clocking mode(depending on host and processor mode and features active). It's kind of hard to get faster, seeing as most time is spent performing RAM memory accesses and address verification (x86 protection mechanisms), which is kind of hard to optimize out without losing compatibility.

Edit: Said speed in full synchronization mode for the video card was the cause of the emulator's video card emulation running in the "Synchronize depending on the host" setting equivalent (with incorrect synchronization parameters), which approximates the old incorrect synchronization result on full synchronization (lowering the video card speed to make the CPU emulation reach higher speeds).

I'm not familiar with older hardware, could this play the early fallout games?

Developer (5 edits) (+1)

Fallout 1/2 might:

https://www.reddit.com/r/classicfallout/comments/fapeeq/fallout_12_pc_system_req...

https://www.reddit.com/r/classicfallout/comments/fapeeq/comment/fj1qy60/

As long as the FPU and MMX instruction set can be emulated by Windows or it's drivers inside UniPCemu (it doesn't support them itself, other than trapping #UD exceptions and FPU emulation exceptions, which might be possible with the right drivers on 9x/NT 3.1). NT 4.0 and up(2000/XP and up) don't boot properly yet(NT 4 runa till it reaches the desktop for the GUI part of setup, after which it crashes so far. I'm still trying to figure that one out why that happens and what unknown CPU bug causes it).

Edit: NT4 installs and runs properly now. No 2K/XP yet though, due to unknown boot device issues.