Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why wouldn't one create and emulator for this using QEMU? Couldn't that be possible? Doesn't a bunch of hardware faking have to be rebuilt in C# that QEMU already does (well¿)? Or is it too hard to introduce custom hardware/firmware (like this audio stuff) into QEMU?


For emulators that intend to run games at full speed, the sorts of shortcuts and tricks needed to achieve high level emulation (which can sometimes fall short of emulation in a strict sense) are often incompatible with writing a plugin or extension to an emulation framework that focuses on accuracy.

In the case of the Switch, it's not necessary to emulate the whole device or even processor, especially if the intention is to run Switch games on a computer. Rather, high level emulation is more than sufficient — anticipate what the software depends on the actual hardware to do and redirect it to do the same using what the computer has available.


>In the case of the Switch, it's not necessary to emulate the whole device or even processor, especially if the intention is to run Switch games on a computer

Switch has an ARM processor so it's definitely a requirement to emulate that, which QEMU is well-suited for. But to your point, Windows has great graphics APIs that would make it easier to pipe the graphic stack from the Switch OS into rather than writing your own implementation. The processor can be taken care of via JIT as well, but it still needs to be lifted.


There is one emulator currently that does do that, the "XQEMU" emulator for the original Xbox https://xqemu.com/

It's in its infant stages at the moment according to the "Emulation General" wiki and focuses heavily on "accuracy" over performance

Other emulators such as CXBX-Reloaded have made larger strides, currently emulating roughly 10% of the software library

It's also worth stating, while the Xbox seems like an "easy" target, being based on an ia-32 (Pentium III) PC with an Nvidia GeForce chip (somewhere between a Geforce 2 and 3 at the time) it is an absolutely monstrous beast with minimal documentation about its hardware and numerous "gotchas"

It also has a very small library of 'exclusive' content which detracts from gaining many developers


Your information on xqemu is dated. xqemu was forked to xemu a while back. Development of xemu is very active now: many games are now playable with accurate graphics and sound with performance up to native framerates. Improvements to speed and accuracy are coming in on a regular basis. xqemu is basically dead, with its discord shut down and the main developer off the project. Now is a good time play around with xbox emulation if it is of interest to you.

https://xemu.app/

https://github.com/mborgerson/xemu/commits/master


Interesting, I used to keep up with xqemu but stopped a while back. Do you know what lead to the fork? I can't find it on their website.


> Couldn't that be possible?

I mena, in principle, presumably.

> that QEMU already does

Potentially a couple devices. But for most of the hardware, probably not.

Regardless they might—I would—find QEMU harder to hack on, harder to extend, because it is written in C. C is of course the lowest level of all high level languages.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: