Nintendo has confirmed backward compatibility on the Nintendo Switch 2. Let’s discuss how it works in some detail.

  • 00:00 - Recap
  • 02:35 - Switch 2 confirmed to be using emulation/translation layer
  • 08:59 - A closer look at the compatibility list
  • 14:32 - Conclusion/Outro
  • Kazumara@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    2 days ago

    For your convenience here is the interview he’s going over in the video: https://www.nintendo.com/us/whatsnew/ask-the-developer-vol-16-nintendo-switch-2-part-4/

    An interesting part is this:

    Dohta: If we tried to use technology like software emulators, we’d have to run Switch 2 at full capacity, but that would mean the battery wouldn’t last so long, so we did something that’s somewhere in between a software emulator and hardware compatibility.

    Sasaki: This is getting a bit technical, but the process of converting game data for Switch to run on Switch 2 is performed on a real-time basis as the data is read in.

    Is it like having Switch games “simultaneously translated” for Switch 2?

    Sasaki: That’s right. […]

    So it sounds like they are doing some recompilation. /u/jonathansmith14921 had an interesting comment over on reddit, his suggestion is that they have to recompile the shader bytecode from Maxwell to Ampere to fit the new GPU. Makes sense to me.

    Another interesting titbit from that thread, there are official (in)-compatibility lists: Launch-able but has issues and has issues even launching

    • BlackEco@lemmy.blackeco.com
      link
      fedilink
      English
      arrow-up
      15
      ·
      edit-2
      3 days ago

      Most likely they use a translation layer (think Wine, Proton or DXVK) rather than emulation, since the Switch 2 hardware is not completely different from Switch 1 and it’s not as costly as emulation, so I would say neither.

      Edit to clarify emulation vs translation layer:

      Emulation re-creates the entire hardware, while translation layer translates programming instructions intended for one platform to another, just like you would translate “one plus two” from English into “um mais dois” in Portuguese for exemple.

      Since both Switch don’t have completely different hardware (unlike PS3 and PS4 for example) it’s probably easier and much more efficient to simply translate instructions that were specific to Switch 1 into Switch 2 instructions.

      Edit 2: also Yuzu and Ryujinx are designed to emulate Switch on the x86 architecture, and since Switch 2 (and Switch 1) run on ARM, I’m pretty sure these emulators wouldn’t run on Switch 2 without massive re-engineering efforts. Also, as someone else said, these projects are reverse-engineered, it makes much more sense that Nintendo engineers create an emulator from scratch using their own internal documentation of Switch 1 architecture (again, it’s unlikely they went for emulation as I stated above) so the result is much more reliable than both Yuzu and Ryujinx.

      • sugar_in_your_tea@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 days ago

        Exactly this. It would be a lot more work to port something like Yuzu or Ryujinx than build a small library that translates syscalls and whatnot from Switch 1 to Switch 2.

    • misk@sopuli.xyzOP
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      3 days ago

      Yuzu is licensed under GPL so that’s a no go because of copyleft clauses. If they use Ryujinx code it’ll have to be listed in legal / copyright notices because it’s using MIT license.

      Then again Yuzu devs were able to keep latest builds behind a paywall so they probably could get all of the developers to sign the rights over.

      In-house solution would still be preferable to those. Yuzu and Ryujinx had to be reverse engineered and Nintendo has all the docs.