"Static recompilation" is "the difference between weeks of work and years of work."
@[email protected]
link
fedilink
English
368M

I’m hoping this gets adapted to cross compiling for all the retro handhelds.

I went through crazy hoops to get a native compiled Mario64 running on my Anbernic and the results were amazing compared to emulation.

This could bring a large library of N64 to every low end handheld.

@[email protected]
link
fedilink
English
12
edit-2
8M

I hope this technology is carried across all of Nintendo’s consoles. Won’t even need emulators anymore if we can just run it natively.

Nintendo in particular, just to spite them, but other consoles would be great too.

@[email protected]
link
fedilink
English
48M

I bet like the emulator they “stole”, they will use this software without even acknowledging the author.

@[email protected]
link
fedilink
English
5
edit-2
8M

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.

@[email protected]
link
fedilink
English
6
edit-2
8M

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.

@[email protected]
link
fedilink
English
38M

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?

@[email protected]
link
fedilink
English
108M

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.

@[email protected]
link
fedilink
English
68M

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.

@[email protected]
link
fedilink
English
48M

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.

@[email protected]
link
fedilink
English
28M

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.

@[email protected]
link
fedilink
English
2
edit-2
8M

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.

XNX
link
fedilink
English
38M

Did you write about how you achieved it? Lots of other people with anbernic devices (new included) would be interested

@[email protected]
link
fedilink
English
3
edit-2
8M

I followed this guide:

https://retrogamecorps.com/2020/12/28/guide-super-mario-64-port-on-rg351p/

It was tricky both because the website that retrogamecorps linked sometimes didn’t work and there are many variations of the SM64 ROM that all play identically but the website that reads your ROM only works with one particular version. I downloaded several before I found one that worked.

@[email protected]
link
fedilink
English
28M

Note that SM64 (and OoT, but I don’t think that’s on Android yet) are special cases. These have been reverse engineered by the community to the point that they’ve manually decompiled the entire game, and then separately ported to modern platforms. The project in the OP is different, as it’s made for games that don’t have this effort behind them

@[email protected]
link
fedilink
English
448M

Honestly, this article shouldn’t be called how to. I’m trying to make heads or tails of this documentation but I would love to see more. I just want to recompile Mystical Ninja starring Goemon as it’s my favorite N64 game from my childhood.

@[email protected]
link
fedilink
English
158M

This is - crazy enough - the first time I‘ve ever read someone mentioning Goemon and I couldn‘t agree more

@[email protected]
link
fedilink
English
38M

Is that related to Goemon’s Great Adventure? I played that a ton but I never really understood if it was a franchise, a one off, etc. I think I was just too young at the time to understand much beyond smacking monsters with a pipe lol

@[email protected]
link
fedilink
English
28M

It is! I‘ve ever only known it as „Goemon 2“ and it‘s very different from the first game (it‘s a 2.5D sidescroller) but also a fantastic game IMO. The first game is kinda like an N64 Zelda game… Kinda.

Altima NEO
link
fedilink
English
5
edit-2
8M

DASH DASH DASH!

Gimme more IMPACTO

Create a post

Welcome to the largest gaming community on Lemmy! Discussion for all kinds of games. Video games, tabletop games, card games etc.

Weekly Threads:

What Are You Playing?

The Weekly Discussion Topic

Rules:

  1. Submissions have to be related to games

  2. No bigotry or harassment, be civil

  3. No excessive self-promotion

  4. Stay on-topic; no memes, funny videos, giveaways, reposts, or low-effort posts

  5. Mark Spoilers and NSFW

  6. No linking to piracy

More information about the community rules can be found here.

  • 1 user online
  • 141 users / day
  • 757 users / week
  • 2.28K users / month
  • 6.31K users / 6 months
  • 1 subscriber
  • 4.88K Posts
  • 100K Comments
  • Modlog