• CodexArcanum
    link
    fedilink
    English
    22 months ago

    So similar to how WINE works then? This is taking the MM binary and building a wrapper around it that translates it’s system calls into something generic?

    • vaguerant
      link
      fedilink
      122 months ago

      That’s closer but rather than being a wrapper, it takes the original architecture’s instructions (MIPS in the case of N64) and generates a C/C++ function which implements that instruction. Then you call those functions in the same sequence as the original compiled machine code ran instructions.

      That’s a relatively inefficient way to make a port, because you’re basically reimplementing the original CPU in software, hence why some have described it as emulation. At the same time though, most recompiled games are like 15-20 years old, so a bit of overhead on a modern PC isn’t going to hurt you too much.

      But anyway, unlike WINE, the original binary is not used any more after recompilation. Instead, you have a native binary for the target platform, the translation having occurred at the time of recompilation (when you built the port binary).

      • CodexArcanum
        link
        fedilink
        English
        32 months ago

        OK, now I understand! And I get why they say the code isn’t human readable, haha. Thanks for taking time to explain!