Live data from Hacker News

Ryujinx (Switch Emulator) Update

blog.ryujinx.org

11–20 of 27 posts

Re: Ryujinx (Switch Emulator) Update

#11
post #9

I hadn't seen this before and I was curious what approach Ryujinx and Yuzu (mentioned here) take to emulate the GPU. Both appear to emulate the actual hardware rather than patch the guest to intercept graphics calls in some way. This includes recompiling Maxwell shader machine code into host-compatible shaders (GLSL or whatever). Impressive. 1. https://github.com/Ryujinx/Ryujinx/blob/master/Ryujinx.Graphics.Shader/De…

This is fairly common in many console emulators, see:

- PS3 (Nvidia RSX): https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/rsx...

- PS4 (AMD GCN): https://github.com/AlexAltea/orbital-qemu/blob/master/hw/ps4...

The hardware is known ahead of time, so console platforms take advantage of that: GPU drivers allocate a context and hand it over to userspace which can do nearly anything it wants with it (abstraction layers are quite thin), and graphics APIs are essentially a 1:1 mapping of the hardware.

Because of that there's little difference between emulating the API or emulating the GPU (the subset of the GPU accessible through the API).

The only major difference I'd say is emulating the entire GPU (including VM, GART/IOMMU, display controller, multi-contexts, etc.) vs just emulating a single GPU context (which feels quite similar to implementing a graphics API).

Re: Ryujinx (Switch Emulator) Update

#15
post #2

I’ve used yuzu a bit before but not Ryujinx. Does anyone know what the main differences between them are? Looks like both still require owning a hacked switch which is quite a barrier to entry.

Ryujinx is using C#, which is kind of neat, given that on computing it seems one needs to prove a point to make it clear for others.

Re: Ryujinx (Switch Emulator) Update

#17
post #3
post #2

I’ve used yuzu a bit before but not Ryujinx. Does anyone know what the main differences between them are? Looks like both still require owning a hacked switch which is quite a barrier to entry.

> both still require owning a hacked switch which is quite a barrier to entry This has not been necessarily the case for years.

By which you mean that if you have a fusee-glecee (sic) compatible switch, no hardware mods are necessary beyond turning it on holding a usually inaccessible button combination, right? After that, everything is perfectly legal backup and format shifting.

Re: Ryujinx (Switch Emulator) Update

#18
post #9

I hadn't seen this before and I was curious what approach Ryujinx and Yuzu (mentioned here) take to emulate the GPU. Both appear to emulate the actual hardware rather than patch the guest to intercept graphics calls in some way. This includes recompiling Maxwell shader machine code into host-compatible shaders (GLSL or whatever). Impressive. 1. https://github.com/Ryujinx/Ryujinx/blob/master/Ryujinx.Graphics.Shader/De…

This is fairly common in many console emulators, see: - PS3 (Nvidia RSX): https://github.com/RPCS3/rpcs3/blob/master/rpcs3/Emu/RSX/rsx... - PS4 (AMD GCN): https://github.com/AlexAltea/orbital-qemu/blob/master/hw/ps4... The hardware is known ahead of time, so console platforms take advantage of that: GPU drivers allocate a context and hand it over to userspace which can do nearly anything it wants with it (abstraction…

Fascinating, and still an impressive technical lift especially for hobby projects without full time funding.

Re: Ryujinx (Switch Emulator) Update

#19

Earlier quoted context omitted.

What are the conditions under which do you still need a hacked switch?

https://github.com/Ryujinx/Ryujinx/wiki/Ryujinx-Setup-&-Conf... > Your Switch keys and either your dumped firmware or recent game cartridge untrimmed XCI > Your dumped Nintendo Switch games or homebrew You don't need a hacked switch if you can find the homebrew apps / games / firmware on the internet and if you can find a donor set of keys. But that enters questionable territory

Fortunately, it's way easier to dump keys/etc from recent eras of of consoles than consoles of old.

Re: Ryujinx (Switch Emulator) Update

#20

Why do this kind of software use .Net? Shouldn't this be implemented with portability in mind?

They appear to distribute Windows, Linux, and macOS builds. I'm not plugged into the .NET/Mono scene, but the download (the Linux one at least) appears to be an AOT-compiled ELF file, with no dynamic dependencies (well, aside from possibly dlopen()ing things at runtime) on .NET/Mono components. I was able to run it without installing the Mono runtime or any libraries.
Post reply on HN