Thread with 8 posts
jump to expanded postLord forgive us for comparing everything to psychosis, but this one is fun:
Users of touchHLE would probably really like it if we added the magic “make all games work in touchHLE” button. It would take 20 lines of code. It would work.
But it makes the emulator psychotic!
What I'm referring to is that, touchHLE is designed by someone with Senior Engineer Brain (us). Whenever the emulated app tries to call a function that we haven't yet implemented support for, or in general do anything we as the developers aren't sure we can handle, it crashes.
That's a very important failsafe. We deliberately do not let the emulation veer into an “irrational” state, because things quickly start going very, very wrong once you do that.
But it would be trivial for us to just… not do that. Simply Pretend Everything's Already Implemented
And sure, 10,000 games would suddenly start working, in a similar way to how if you're manic, suddenly your elevated self-confidence makes you better at 10,000 things, because you dare to try, right.
But there are massive downsides to this! The apps are now subtly broken!
In a similar sort of way to how the human brain no longer comes to reasonable conclusions once it is unable to reason properly, the same thing happens to the internal state of the apps. Reading garbage memory works. Calling nonexistent functions works. Everything becomes nonsense
And the apps will end up in paths in their code that would never happen in a “sane” world, and then the users will ask us developers to fix the “1% that doesn't work” in these apps, and we will lose our sanity trying to figure out why apps don't work, as they become undebuggable!
If you don't have Senior Engineer Brain you might think these are the rambles of a schizophrenic, but alas I think every serious emulator developer knows of the dangerous path of temptation we speak of. We… happen to be quite close to someone who works on Dolphin, you know.
I hope that was interesting :)