this post was submitted on 05 May 2025
230 points (97.9% liked)

Games

38423 readers
2043 users here now

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 and here.

founded 2 years ago
MODERATORS
all 18 comments
sorted by: hot top controversial new old
[–] Stovetop@lemmy.world 15 points 4 days ago (1 children)

Is this similar to the Ship of Harkinian recompiles, just as a different project?

[–] vaguerant@fedia.io 39 points 4 days ago (2 children)

Not really. The Ship of Harkinian ports are based on decompilations, which is where you reverse engineer some equivalent source code using the final binary as a reference point. Then, you can port that source code to anything else you can build for, like a PC, phone, Wii U or Dreamcast.

Recompilation, which is what this project is, is closer to (and some have gone as far as to say that it is) emulation. It's taking the final binary and then, without actually working backward to get source code, translating the raw instructions directly into code that compiles for a different platform.

It's kind of difficult to get across the difference without being familiar with what both are doing behind the scenes, because the result is obviously similar. Both require human intervention, but decompilation is the more labor-intensive approach, while recompilation is somewhat more automated.

The advantage of former is that you end up with a relatively human-readable codebase to work with, while the latter doesn't bring you any closer to understanding how the game works internally. Both ultimately allow for porting the game to new platforms. Decompilation will almost certainly result in a more optimized final game, because it avoids the overhead of "emulating" the original architecture. However, for the same reason, recompilation can be generalized to other games that originally ran on the same hardware.

[–] Stovetop@lemmy.world 11 points 4 days ago (1 children)

Thank you for the detailed explanation! I had thought Ship was decompiling and recompiling it into its own package, but what you describe makes more sense.

[–] NewNewAccount@lemmy.world 6 points 4 days ago

Ship of Harkinian does indeed get recompiled but the steps before recompilation are more accurately described as decompiling.

The Majoras Mask recomp might be better described as “automated recompilation”, implying there was no/limited human involvement in the _de_compilation step first.

[–] codexarcanum@lemmy.dbzer0.com 2 points 4 days ago (1 children)

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@fedia.io 12 points 4 days ago (1 children)

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@lemmy.dbzer0.com 3 points 3 days ago

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

[–] Flagstaff@programming.dev 12 points 4 days ago (1 children)

If OoT could be made to look as good as TotK, that'd be something!

[–] Stovetop@lemmy.world 5 points 3 days ago* (last edited 3 days ago)

At first I was like "Why would anyone want to change OoT's art and mess with perfection?", but I do have to admit that I have really been craving a modern Zelda game in the vein of the N64 releases, which is a formula they haven't touched since Skyward Sword in 2011. And Oblivion just recently showed me that sometimes a new coat of paint really is all you need.

Wind Waker at least is a game that (visually) aged very gracefully and I think can still stand against newer games even now, but I've played it to death and just wish we had something new.

Also not to discredit BotW/TotK or anything, I think they are still great games and I also really enjoyed them, but they're just built different. Zelda is now a franchise of 3 distinct styles, but only two of them (2D and open world) are still getting new releases.

[–] KindaABigDyl@programming.dev 9 points 4 days ago (1 children)

I'm just waiting for the melee decomp to be finished

[–] bpev@lemmy.world 5 points 3 days ago

Or Majora’s Mask but with wave dashing

[–] Vopyr@lemmy.world 5 points 3 days ago

Wait, modding?! WOW!

[–] LolcatXTREME@lemmy.world 7 points 4 days ago (2 children)
[–] Stovetop@lemmy.world 2 points 3 days ago

This is the video I didn't know I was looking for in life.

I've been very into Zelda rando stuff lately, but the mod support shown here just seems above and beyond what I've seen so far from my limited experience with Ship/2Ship.

[–] Jeffool@lemmy.world 3 points 4 days ago

The above link is recommended to learn more about the added mod support! (Just to add some context.)

[–] makyo@lemmy.world 7 points 4 days ago

Does this finally mean Ben Drowned can be realized?

[–] warmaster@lemmy.world 1 points 3 days ago

Is there any project doing a decomp/recomp of Mario Kart 64?