4 ms·
Here is humble opinion of a person who is not QEMU developer, but looked at it's code more than once for purpose of debugging my gaming VMs with VFIO. QEMU is
by SXX 3y ago
Here is humble opinion of a person who is not QEMU developer, but looked at it's code more than once for purpose of debugging my gaming VMs with VFIO.
QEMU is a great project, but to begin with flexibility was not a primary design goal. Majority of QEMU targets are PC-like hardware and older consoles have unique or alien architecture. To emulate it using QEMU you'll have to patch it internals heavily. It's also written in C so you can't just integrate a lot of fancy libraries into it.
QEMU is also important infrastructure project playing crucial part in *nix virtualization stack. Which means getting any code upstreamed is hard. Emulation projects primary goal is to make games run both accurately and as fast as possible which means developers will use as many shortcuts as possible.
QEMU is a massive code base too. Getting into it will take a lot of time and it could be easier to maintain single-target emulator instead since it's easier for new contributors to start working on it. You'll have to fork QEMU anyway and won't be able to push your changes upstream then what the point to use it?
- netol 3y agoI just wanted to add that this may not apply to the original Xbox and PS4, as there are emulators based on QEMU. These are XQEMU/xemu and Orbital.
- tehbeard 3y agoThe key part there is that the original xbox is a Pentium III PC with, iirc some northbridge/southbridge shenanigans. And the PS4 uses a custom AMD x86-64 chip. An Xbox 360 is slightly more difficult as that is a PowerPC architecture (RISC vs. CISC of x86) Same for the PS3 except you also have those incredibly weird "SPE" cores to try and emulate as well.
- badsectoracula 3y agoIn addition to what tehbeard mentioned, Xemu at least (which is what i have experience with as i used it to do some homebrew development[0] with the open source nxdk[1] SDK) is far from accurate and largely just a means for playing OG Xbox games on modern hardware. However the GPU emulation does not take into account NV2A's performance at all and simply translates the calls to OpenGL (despite the "DirectXbox" name, the GPU is actually designed around OpenGL :-P) so it is much faster than the real one and depending on what is going on the CPU performance can also be quite faster. IIRC it doesn't even emulate the real CPU the OG Xbox has as you can accidentally use instructions in Xemu not available on the real hardware. Of course if your goal is to just have games from OG Xbox playable on a PC that is fine (if anything for most games it is an improvement as they'd run smoother) but if you want cycle accurate emulation it doesn't fit the bill. In that case basing the emulator on something like 86box might be better as that has been designed with the goal of achieving cycle accurate PC hardware emulation. [0] https://www.youtube.com/watch?v=gQpK6eX-04M https://www.youtube.com/watch?v=gQpK6eX-04M [1] https://github.com/XboxDev/nxdk/ https://github.com/XboxDev/nxdk/