• Excrubulent@slrpnk.net
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    6 months ago

    This is going to be important for maintaining the legacy of old video games.

    Like, emulators are fine, but access to recompilation makes it much easier to keep things in a generally useful format.

    Honestly one of the reasons I don’t play emulated games much is that the extra step of configuring and running the emulator is a hassle, and sometimes it straight up doesn’t work.

    Edit: Anyone who thinks access to the source code is somehow worse than the original executable code, just ask yourself, what is the legacy of say, Doom, for which we have access to the source, versus literally any other closed source game of that era that requires DOSBox to be run? Doom is a meme that “runs on anything” and has a thriving modding community, and it’s hard to think of examples of DOSBox games because you never think about them. Source code is important.

    • AProfessional@lemmy.world
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      6 months ago

      This is the worst format for that?

      Binaries will never get bug fixes or improvements like an emulator. The rom is the only relevant archive of a game.

      Your complaint is just they have terrible UX, which is true.

      • cucumber_sandwich@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        6 months ago

        C code that reproduces a running binary on an up to date compiler is worse than a machine code binary for a legacy machine of which complete Emulation is not guaranteed?

        • Nibodhika@lemmy.world
          link
          fedilink
          English
          arrow-up
          12
          ·
          6 months ago

          Yes, because machine code for the legacy machine is how the game was made, you can’t be 100% sure that recompiling it for other platforms won’t introduce bugs because of the difference in platforms. For example, the original Space Invaders used the CPU to it’s maximum to render all of the invaders, they weren’t normalizing by the dt between one frame and the next like we do today for most games, so this results in the game running as fast as possible, which in turns translates to the less enemies on screen, the faster they move. If you recompile that binary for a modern system it’s game over in less than 1 second, because current hardware can handle all of those spaceships as if it were nothing.

          • cucumber_sandwich@lemmy.world
            link
            fedilink
            English
            arrow-up
            6
            ·
            6 months ago

            Ah, i think i misunderstood your comment.

            In terms of archiving I agree, in terms of restoring a running copy from an archive, maybe not.

            • Nibodhika@lemmy.world
              link
              fedilink
              English
              arrow-up
              5
              ·
              6 months ago

              I’m not the person who wrote the original comment, but again go back to my example of Space Invaders, if it had been archived that way it would now be essentially lost, because running a copy that was archived that way would cause the issue I described on my other comment. So I don’t understand your point, this is objectively worse in terms of preserving games, it might cause unwanted behavior that you’re not predicting, an emulator is not perfect, but can compensate for these things by emulating the hardware.

              • eyeon@lemmy.world
                link
                fedilink
                English
                arrow-up
                4
                ·
                6 months ago

                it’s not a valid comparison really. this is an alternative to an emulator than a ROM.

                If you used this to compile a native version of space invaders that ran incorrectly it would be no worse than if you used an emulator to run space invaders that ran incorrectly. in either case you treat it as a bug in the emulator/recompiler and fix it and re run the process.

                Nobody is suggesting deleting their roms and keeping only the current copy of a recompiled game. I don’t think that would even work… as far as I know you still need the original ROM to load inside of the recompiled executable for the non-code assets.

                • Nibodhika@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  3
                  ·
                  6 months ago

                  First of all this is a chain of replies to someone who said that this would be the way to maintain games for the future. So that’s the argument that’s being attacked here.

                  Secondly with an emulator you can emulate hardware, so recompiling space invaders would cause the issue I mentioned and you wouldn’t be able to fix it because it’s a “bug” in the original code (not really a bug, but rather using hardware limitation as a feature), and my point is that you don’t know what sort of similar issues you might find here, therefore this is the worst format for preserving old media, ROMs and emulators are better for preserving (which again is the discussion here)

                  • Blue_Morpho@lemmy.world
                    link
                    fedilink
                    English
                    arrow-up
                    2
                    ·
                    6 months ago

                    While I agree that ROM + emulator is best for preservation, you absolutely can fix the space invader bug because you have the C code which would let you add in delays. Just like there are many versions of Space Invaders for different consoles an none of them use emulation but play like the original. I’m a fan of si78c, a memory accurate reimplementation of the 1978 arcade game written in C.

                    Of course Space Invaders wasn’t written in C so this new tool doesn’t apply.

                    But the article does talk about how the decompiler sometimes introduces bugs and how they were manually fixed before compiling.

                    So you were right but the problem you brought up has already been addressed. (And will continue to need to be addressed as more cross compiling bugs are found in each game.)

                    I interpreted the word “legacy” the OP used as the fandom for old games rather than perfect preservation.

          • Excrubulent@slrpnk.net
            link
            fedilink
            English
            arrow-up
            3
            ·
            edit-2
            6 months ago

            Right, but it’s not just pushing a button to get the recompiled code, there’s still translation work to be done. Crucially, a framerate will need to be chosen, so you can just choose to base the framerate on the processing done.

            Sure, the ROM is “original” but I’d argue that accessing the source code - or an analogue to it - is a more fundamental way of archiving the original, since without that source code we don’t have access to how it was originally made.

            The point is not that it competes with ROMs or replaces them, but it adds to them and makes the archive that much more complete.

            Also for games where emulation doesn’t work or isn’t practical, recompilation can allow us to maintain games that otherwise couldn’t be.