After Yuzu got shut down I'm not sure what this leaves people with for switch emulators. I'm going to try and find archives and will update the post when I do.

Last windows build: archive.org

Slightly older, but has linux and mac builds archive.org

Okay there we go, a github mirror: https://git.naxdy.org/Mirror/Ryujinx

  • PorkrollPosadist [he/him, they/them]
    ·
    edit-2
    2 months ago

    Eh, it isn't black magic. It's just very labor intensive to nail down the broadest degree of compatibility possible. Requires tons of testing, and eternal vigilance against regressions (i.e. fixing one game breaks another). The fundamental concepts are well documented, and often times already available in generic implementations (CPU emulators / JIT recompilers / OpenGL / Vulkan implementations / compatibility layers, input libraries, etc). A project like WINE (famously not an emulator) is a lot more complex than a virtual machine which just runs the official binary system firmware.

    Not to say it is easy, but it is an interesting subject with tons of literature and free software implementations to study. It has a lot of moving parts, but part of doing effective software development is understanding you don't need to roll your own JIT recompiler when llvm and gcc-jit exist. Most contributors will specialize more or less in one thing (cpu architecture / graphics / audio / networking / debugging / reverse engineering / etc).

    • git [he/him, comrade/them]
      ·
      2 months ago

      Implementing a CHIP-8 is a good way to get into emulation:

      • https://github.com/mattmikolay/chip-8/wiki/CHIP%E2%80%908-Technical-Reference
      • http://devernay.free.fr/hacks/chip8/C8TECH10.HTM
    • Mardoniush [she/her]
      ·
      2 months ago

      Yeah. It's not easy, but if you're a competent assembly programmer it's all fairly straightforward at the theory level.