4 ms·
I suspect you mean UltraHLE (Ultra 64 was the original name of the Nintendo 64) - https://en.wikipedia.org/wiki/UltraHLE https://en.wikipedia.org/wiki/UltraHLE
by stordoff 9y ago
I suspect you mean UltraHLE (Ultra 64 was the original name of the Nintendo 64) - https://en.wikipedia.org/wiki/UltraHLE https://en.wikipedia.org/wiki/UltraHLE
Another oddity is the GBA - an emulator for the machine existed before it was even released (GBAemu - I believe it was capable of at least running Nintendo's tech demos), and BoycottAdvance was, IIRC, at least somewhat viable around the time of the US launch of the console.
- chungy 9y agoNintendo DS and 3DS emulation both were attained pretty early in the lifetime of the consoles.
- deaddodo 9y agoARM-based machines are kinda a gimme though. The ARM is remarkably well documented, very straightforward to decode (both THUMB and ARM modes) and every ISA level is a superset of the previous. You could write the entire opcode table for an ARMv7 chip and run ARMv3, ARMv4, etc code on it. Assuming there aren't any illegal instructions and that you've got the timing right, it should run just fine. So, essentially, you've got 1/3 the hard part done. The GPU for the GBA was basically a chimera of the GB engine and the SNES's. Even had similar modes built into the BIOS. The Switch has a Maxwell based GPU. One very similar to that in the Tegra X1, which is very well documented (If you're willing to dig through their massive Technical Reference Manual (https://developer.nvidia.com/embedded/downloads https://developer.nvidia.com/embedded/downloads) and the nouveau source. That just leaves audio, the bus, game formats, etc to be "discovered" or reverse engineered.
- photojosh 9y agoIIRC the official GBA SDK was leaked online pretty early, and that was really useful to the emulator developers. I've tried searching to verify it's as I remember, but looks like the dev forums are long vanished. (Used to follow the scene pretty closely and still have my flash cartridge for loading homebrew stuff somewhere around, even if I didn't actually do anything with it.)
- derefr 9y agoThe dev forums are dead-ish†, but the docs are still around; I was just trying to pick it up the other day and I found everything I needed (including modern things like a Rust libgba: https://github.com/tbelaire/rusty-TONC https://github.com/tbelaire/rusty-TONC). I decided against pursuing GBA homebrew in particular, though, because Nintendo DS homebrew is slightly more fun while not being particularly higher-level than the GBA. You've still got sprites and backgrounds and scale/rot/shear effects; but now you've got two GPUs (where either GPU can address either screen), and a 3D layer sandwiched in amongst the background layers and sprite layers. † Though, I mean, that's a matter of interpretation; all the modern 3DS and Wii U homebrew is still released/discussed/developed on the GBATemp forums, which—obviously—had its roots in the GBA homebrew scene.)
- photojosh 9y agoAlmost 20 years later, I'm still following and intrigued by the homebrew scene and I take my hat off in particular to emulator developers... but I get to do embedded/microcontroller development in my day job, and that's enough difficulty for me. ;)
- jchw 9y agoI'm myself wondering how much use Nouveau will be here. I imagine the approach that Yuzu will take is actually to HLE the entire operating system and implement things on the service level. During the Switch hacking talk at 34c3, they mentioned that there was a service containing the GPU driver. So basically, the idea would be to reverse engineer how the API works and try to implement the GPU on top of it. At least, this seems like a sane approach to me. It benefits from less of the existing reverse engineering work on NVidia chipsets, BUT it's higher level, which probably means it will be easier to understand and yield better performance in practice, especially since it is going to have to be implemented on top of higher level GPU APIs anyways.
- Buttons840 9y agoOf course, emulating a portable gaming system on the PC is only half as damaging, since it is not portable. I'm enjoying some of the Switch games, and might want to relive the experience one day, but for now an emulator cannot easily duplicate the portability of the Switch. I would still be happy to know there's a good emulator out there though.
- centizen 9y agoThe dev's of GBAemu had access to a full devkit and documentation from nintendo, which is pretty rare for emulator developers these days. They usually have to wait for them to trickle out on the secondary market.
- deleted 9y ago[deleted]