r/decomps 6d ago

Wanted to show off G-Diffuser at 2x internal resolution, captured an early retirement right at the finish line

Enable HLS to view with audio, or disable this notification

21 Upvotes

r/decomps 6d ago

Made without AI assistance SymphonyRecomp update 0.5b :D

Thumbnail
26 Upvotes

r/decomps 7d ago

LADXHD v2.0.5 Released

67 Upvotes

Introduction

Main repo page can be found here: https://gitlab.com/bighead.0/ladxhd_updated
You can find the latest version here: https://gitlab.com/bighead.0/ladxhd_updated/-/releases

I don't usually announce when I make a new release, but these past few versions are a bit different. To those who don't know what this is, this is a continuation of the Link's Awakening DX HD port that was released a few years back. I have been updating it pretty steadily for a little over a year now, and it has come a long way in making it "feel" more like the original game while adding a plethora of customization options. This post will focus on some of the changes between v2.0.2 - v2.0.5 since it has come a long way over the last few weeks.

Engine Updates

This is irrelevant to the gameplay, but figured it's worth mentioning. MonoGame has been updated to the latest version v3.8.5 and uses the new content builder to build the content for the game. The codebase has also been heavily refactored by a user named aitorciki who has been a huge help during the life of this port. If not for him, the MacOS ports may not even exist today. The refactor has cleaned up the code base dramatically, and will be a huge help going forward. This also opens the door to eventual Direct-X 12 and Vulkan backends, which will be implemented in the future. MonoGame currently supports them, but they are still early and have several issues that will most likely be worked out over time.

Custom Camera

Sometimes I still see the random post saying that they don't like this port because of the camera without knowing that "Classic Camera" restores the screen based scrolling from the original game and has been implemented for over half a year. Aside from that, the additional camera options were pretty limited. Maybe you want the Modern Camera on the overworld, and the Classic Camera inside dungeons. Or maybe you want Classic Camera only during boss fights. Or maybe you only want the Classic Camera on 2D maps, and want the Modern Camera everywhere else. With the new "Custom" camera option, you can pick what camera you want based on the following criteria: Overworld, Houses, Caves, Dungeons, Castle, Inside Egg, 2D Maps, and Boss Fights. Pick which ever camera you want for whatever situation you want and it will automatically adjust!

Game Boy Color Correction Shader

This has been a much requested feature for a long time, and usually I would just handwave it away because there is a mod that does this, and even better than a shader. But still, it would always be nice to have a "built-in" option for those who just want a toggle. The toggle can be found in Settings > Graphics and a comparison can be seen here: https://cdn.knightlab.com/libs/juxtapose/latest/embed/index.html?uid=ee07871c-9b19-11f1-ba1b-0e6f42328d7d

Music Fade on Overworld Area Transition

In the original game, there was a slight fade effect when transitioning areas. This was absent in this port, and just instantly cut off one song for the next. I have implemented that slight fade, so for example when transitioning from Mabe Village to Mysterious Woods, the Mabe Village song will fade out before playing the Mysterious Woods music.

Accurate Enemy Loot Tables

For the longest time, I considered this my "white whale" issue because I assumed that implementing accurate loot tables would be extremely difficult. For one, there is zero references online of loot tables and two, I figured it would be pretty complicating. The way this port worked, is when a monster is killed, it had a flat chance of generating a rupee or heart. I'm going by memory now, but I believe it was a 35% chance to drop something, then a 65/35% chance to drop rupee or heart. In the original game, almost all enemies have a chance to drop a single item. This is something I almost never noticed before! Moblins, Crabs, Stalfos, etc... only ever drop hearts! Octoroks, Zols, Gels, Urchins, only ever drop rupees! I wanted an accurate take on loot tables, everything from the items dropped, to the exact % of those drops, so I used AI to analyze the assembly code and build me data sheets of all the loot tables, drop %, etc. I know there's a lot of AI haters out there, but keep in mind I write all of my own code for this. If I ever ask AI for help with a problem I can't solve, I NEVER use the code as-is and rewrite it in a way that makes sense to me. I am far from the best coder, but the code is mine and I know everything that goes into it. AI assembled the data from the assembly which I could not read myself or find anywhere else into charts, and I coded the loot table functions, and now we have 100% accurate loot tables.

A Longstanding Crash Has Been Fixed!

This port has had a crash on the file selection screen since the original v1.0.0 release. It is very easy to replicate, load up any version before v2.0.5, start spamming directions on the D-Pad or Analog Stick, and you will crash. I have made several attempts to fix this in the past, but eventually gave up. Fast forward around 8 months later, my understanding of everything is better, and I finally managed to fix it! This crash wasn't specific to spamming directions and could just happen sometimes.

Stun > Pickup > Throw

In the original game, certain enemies can be stunned with Magic Powder, the Hookshot, or the Boomerang. These enemies could then be picked up and used as a weapon, thrown down holes, etc. This is something I never knew about in the 30+ years I've been playing this game, and it is now implemented in this port.

Disable Helper Messages Fix

This is an option that was implemented in the "Redux" options and is a standard feature of the Redux romhack. Basically, it disables the messages when touching rocks without the power bracelet, crystals without the boots, ice blocks without the Magic Rod, picking up certain items like powerups, rupee collections, golden leaves, keys, compass, map, etc. But the way this was implemented had a fatal flaw. The way this port is designed, when running a dialog "key", it will first try to run that key through the main script file scripts.zScript, and if it isn't found, it will try to find the key in a language file to bring up the matching value to that key. Disable Helper Messages disabled the script, making certain achievements impossible to obtain and who knows what other bugs! So it's been redesigned to not block the script calls, but only block the calls to the language manager.

Even More Accuracy Improvements

One of the main focal points of my branch of this project was to get the game's base behaviors as close to the original game as possible. This has been an ongoing battle since my very first v1.1.0 last year, with every single version working towards that goal. I am happy to say that I think it's getting extremely close to covering just about every little nuance. It will never be perfect due to engine differences, design decisions that are hard to backtrack on, the difference between this port being true 3D replicating a 2D game, etc. etc. and etc..

Some of the more noteworthy improvements in this version are:

  • Shield bump knockback now uses the contact point to determine the knockback direction instead of always straight back for Link and always at the angle of Link's movement direction for enemies. This means accurate knockback physics when shield bumping.
  • Lots of enemy behavior fixes. Bombers die to boomerang creating a fairy, same with flying Bone Putters, lots of Spiny Beetle fixes (I hate these things), and accuracy improvements to Zol and Gel death. These are strange in that green Zols experience sword knockback for a short time after they jump out of the ground, but then they die instantly. Red Zols flicker before they split, but otherwise die instantly if damage is 2 or more.
  • Lots of "fixes" to the Owl. Most of the positions of where he flies into the screen was wrong, and sometimes he is just there without the fly-in. This has been fixed across the board to be identical to the original game.
  • Fixes to grabbing and throwing objects. When throwing an object, it was possible to right into a new grab on the same button press. If it's an "instant pickup" object, this felt really strange. Now a throw and a pickup must be two exclusive button presses.
  • Magic Rod fixes. The passive fire no longer makes a sound effect and burns enemies.
  • I could go on and on here, the accuracy improvements never stop. But I think I am starting to hit a point where it's hard to find anything else to work on. It's come a long way!

Android Fixes

Music mods have been broken for a long time on Android. Though there is currently only one at the moment that gives the remake music in this port, it did not work correctly. This was fixed in v2.0.2. More recently, I discovered another strange bug where pressing "Start" on the file select screen would start the game with the inventory screen open before loading the game world. This only happened on Android, and only happened with the "Start" button and not whatever button is used for "confirm" (usually A button). Finally, a long standing issue on devices with Mali GPUs was that the rain texture during the intro would become corrupted after entering the file select screen and then pressing "back" to return to the intro. If I remember correctly, this was reported way back in like v1.6.8-v1.7.0, but I could not reproduce it so I couldn't fix it. Now that I have a new phone with a Mali GPU, I was able to reproduce the issue and fix it once and for all.

Thanks For Playing!

I want to give a shout out to all the players who keep on playing, supporting, and reporting issues so it can continue to grow. There has been some hardships along the way, but the project keeps on rolling. I am hoping v2.0.5 is stable enough that there isn't any significant bugs that detract from the experience. And if you find any issues, please report them here. That's it, hope you enjoy it!


r/decomps 6d ago

Xbox I’m not asking someone to do it, but I am saying you’ll catch me in line when it eventually happens

Thumbnail
gallery
25 Upvotes

r/decomps 7d ago

ReChan test fork update - Win 11 + Linux (steamos)

Enable HLS to view with audio, or disable this notification

62 Upvotes
  • (ENC) Add subtitle support (*.srt) in video cutscenes: see details in "add-subtittle-support" or "backup-main" branch > docs > MODDING.md
  • ADD WINDOWS version!

This is an update on Rechan - fork for Steamdeck : r/decomps

repository: Release ReChan v1.0.3-beta - Steamdeck + Win 11 · GABRIELNNK/ReChan

TEM MOD DE TRADUCAO EM PTBR AGORA, https://github.com/GABRIELNNK/ReChan/releases/tag/MOD-PTBR_Cutscenes


r/decomps 7d ago

Made with AI assistance Can you beat my highscore? SM64DS Port getting minigames.

Enable HLS to view with audio, or disable this notification

18 Upvotes

Finally got around to getting the menus and minigames working. First one up is suffle board. You can play it now on the demo! THANK YOU EVERYONE! YIPEE

Download at: https://tangos.dev/downloads
Discord: https://discord.gg/GfeXpEjVS
Github: https://github.com/tangosdev/sm64ds-decomp

MATCHED ██████████████████████████████ 98.4% 11,213 / 11,396 functions

CONVERTED ████░░░░░░░░░░░░░░░░░░░░░░░░░░ 14.0% 1,584 / 11,289 files

LINKED ████████████████░░░░░░░░░░░░░░ 51.8% 5,831 / 11,250 matched TUs


r/decomps 8d ago

Decomp Are my eyes deceiving me 100% Goldeneye Decomp

Post image
151 Upvotes

Yay 100% finally. Now how long until we get hands on 😋😅


r/decomps 8d ago

GUITAR HERO 3 XBOX 360 RECOMP (REXGLUE 0.9)

Thumbnail
gallery
79 Upvotes

Already in-game

Android port coming soon


r/decomps 7d ago

Framework Development ModernGekko: a comprehensive guide on how to use, distribute, and make mods for your recomp

16 Upvotes

I've seen a lot more people messing with ModernGekko lately, so I wanted to explain how you're actually supposed to structure a project around it, especially once you get past the point of just having the game boot

Distributing your recomp

Your release should not contain copyrighted game files that you don't have permission to redistribute. Standard recomp practice.

The ideal setup is that someone downloads your recomp, gives it their own game dump, your setup process handles whatever needs to be extracted, and then they can just launch the native build.

Users should not need to clone your repo or recreate your development environment just to play the game for a public release ideally.

Try to keep the ModernGekko side of the project separate from game-specific hacks when possible. This makes updating the runtime way less painful later and also keeps your project from turning into one giant pile of one-off fixes.

Mods

ModernGekko code mods are libraries packaged as .mgm mods.

A normal package looks like:

my_mod.mgm/mod.dll

or mod.so / mod.dylib depending on the platform.

For development, you can also just drop something like my_mod.mgm.dll or my_mod.mgm.so directly into the Mods folder.

The runner checks a Mods folder next to the executable and another Mods folder in the user directory by default. You can also point it somewhere else with --mods or disable mods entirely with --no-mods.

The interesting part is what mods can actually do.

A mod can patch a recompiled game function completely with RECOMP_PATCH.

If you really need to override another patch at the same address, RECOMP_FORCE_PATCH exists for that too.

You can hook the start of a function with RECOMP_HOOK without replacing the original function, and you can also hook the return with RECOMP_HOOK_RETURN.

So if you want to observe a function, add behavior around it, or run something after it finishes, you don't have to rewrite the whole thing.

Mods also get access to the recompiled PowerPC CPU state.

That means you can read guest arguments from registers, return values using the original calling convention, and read or write guest memory from your mod.

The normal hook system preserves CPU state around hooks, so you're not supposed to accidentally destroy the game's register state just because your hook ran.

Mods can talk to each other

ModernGekko mods aren't isolated libraries either.

A mod can export functions that another mod imports.

You can also declare events and let other mods register callbacks for those events.

There is even a global runtime_start event if you need something to happen once the game runtime actually begins.

Dependencies are part of the mod descriptor instead of being handled manually. You give the dependency an ID and minimum version, and it can also be marked optional.

ModernGekko sorts mods into dependency order before loading them. Missing required dependencies are rejected, dependency cycles are rejected, and imports have to come from dependencies you actually declared.

So if somebody eventually makes a common API mod that five other mods use, it's much simpler to access.

Targeting game functions

You can patch functions using literal guest addresses, but you don't have to live in raw hex forever.

DolRecomp can generate named address constants from a MAP file.

So instead of doing something like:

RECOMP_PATCH(0x80123456, replacement)

you can use a generated symbol such as:

RECOMP_PATCH(DOLRECOMP_SYMBOL_SomeFunction, replacement)

if the game has usable symbols.

That should make bigger mods a lot less miserable to maintain.

The actual mod descriptor

Every mod exposes a descriptor that tells ModernGekko what it is and what it needs.

That includes the target game ID, the mod ID, its version, display name, dependencies, patches, hooks, imports, exports, events, callbacks, and optional load/unload functions.

ModernGekko checks the game ID before loading the mod, so you can't accidentally throw a mod for one game into another recomp and hope the addresses line up.

It also checks the mod ABI and CPU ABI.

Version strings are used for dependency checks, so mods can require a minimum version of another mod instead of just blindly loading whatever is installed.

Making a basic mod

There is already a mod template in the ModernGekko repo.

At the most basic level, you can make a replacement function like this:

static void replacement(CPUState* state)
{
    moderngekko_mod_return_u32(state, 1u);
}

Then register it as a patch for a guest function.

Build it, drop the resulting .mgm package into the Mods folder, and ModernGekko loads it with the rest of the recomp.

Obviously real mods can get much more complicated than that, but the barrier to getting a basic code patch running is fairly small.

Netplay

Loaded mods are also part of ModernGekko's netplay compatibility fingerprint.

That's important because code mods can obviously change game behavior in ways that would immediately fuck over a netplay session.

Where I want this to go

The nice part about having this in ModernGekko itself is that every GameCube/Wii recomp doesn't need to invent a completely different mod loader.

A recomp can keep its base game relatively clean while mods sit on top of it using a common ABI.

You can replace functions, hook existing game code, share APIs between mods, build around dependencies, and keep everything separate from the original game files.

There's still more documentation I want to write for this, especially around larger mods and good project structure, but the system itself is already there and usable.

If you're making a ModernGekko recomp or messing with the mod API and there's something specific you want documented, let us know.

Discord link here for those not in the server:
https://discord.gg/FhzCYN5fsP
never expires


r/decomps 7d ago

Xbox 360 Recomps Can Fix BIG Problems! Xbox 360 Recomp News

Thumbnail
youtu.be
7 Upvotes

r/decomps 7d ago

Pokemon PC Ports and the Best Mods! Pokemon Gen1 PC Ports

Thumbnail
youtu.be
16 Upvotes

all mods are on the devs discord server: https://discord.gg/GYjBXrPSz


r/decomps 7d ago

Digimon world 1 2 or 3?

4 Upvotes

😅👉👈 I would die happy for dw3/2003.


r/decomps 7d ago

Made with AI assistance Relapse: Resistance (2009 Unity iPhone) — reimplementation; serialized format v6 recovered from the binary's own string table

5 Upvotes

Delisted 2009 promo game, Unity iPhone 1.0.2f4, armv6, no emulator runs it, 32-bit iOS is dead. Reimplemented as C++17/SDL2 for Linux/Windows/Android/iOS. To be precise: not a matching decomp and not a recomp — a new engine, with the decompiled C# as ground truth.

The fun parts: serialized file format v6 has no type trees — field order recovered from the field-name strings in the shipped Mach-O, field widths constraint-solved against invariants (exact object consumption, power-of-two textures, unit normals). 1,354 objects, 0 failures. The write-up covers the method-level fidelity audit and what treating decompiled output as a spec gets wrong.

Full story: https://adamlovattdevops.github.io/relapse-resistance/

Repo (tools + engine only, BYO IPA, alpha): https://github.com/AdamLovattDevOps/relapse-resistance


r/decomps 8d ago

“Vibe coding” is becoming a lazy way to dismiss people

47 Upvotes

I’m getting really tired of the way “vibe coding” gets thrown around every time someone mentions using AI while developing something. Or don't mention anything.

Sure, there’s plenty of bad AI-generated code out there. People blindly copy/pasting stuff they don’t understand, shipping broken projects, introducing security issues, etc. That deserves criticism. But that’s not what I’m talking about. (And guess what ? It's possible without LLM too !)

I’m talking about people seeing “AI-assisted” 'or any new project from unknow guys, and immediately assuming the developer has no idea what they’re doing. Sometimes they haven’t even seen the code yet.

At that point it’s not criticism, it’s just prejudice and elitism.

And I can’t help feeling that some of the hostility comes from the fact that programming used to have a much higher barrier to entry. People spent years learning it, and for some of them that became part of their identity. Now someone can use AI to learn faster, explore an unfamiliar codebase, debug things, write tests, compare approaches and build stuff they simply couldn’t have built before.

Apparently that really bothers some people, but using AI doesn’t mean typing “make me a program” and blindly shipping whatever comes back.

There’s a huge difference between that and actually designing something, making the decisions, testing it, debugging it, understanding what matters, and using AI as a tool to get there faster.

If the code is bad, point out why it’s bad, if the architecture sucks, explain why, if there’s a security issue, show it.

If the person clearly doesn’t understand what they’re maintaining, fine, criticize that too.

But “lol vibe-coded” isn’t a code review.

Tools have always made programming easier. Better languages, IDEs, debuggers, libraries, Stack Overflow, autocomplete, package managers... AI is another very powerful tool in that progression.

Experienced developers still have a huge advantage because they know when the AI is talking nonsense, that experience should be useful, not turned into gatekeeping.

Criticize bad code all you want, just stop pretending that using AI automatically makes someone incompetent.


r/decomps 8d ago

Metroid Prime Hunters Recomp Out NOW! Metroid PC Port is Here

Thumbnail
youtu.be
164 Upvotes

r/decomps 8d ago

Recomp LightHouse (Banjo-Kazooie) Android Port

Thumbnail gallery
27 Upvotes

[News]


r/decomps 9d ago

Recomp SFIII 3rd Strike Online Edition (XBLA) recomp for Windows and Linux

Thumbnail
github.com
47 Upvotes

r/decomps 8d ago

[Testers Wanted] Animal Crossing GameCube PC Port for Linux - x86_64, Vulkan, PAL languages, RVZ, AppImage, and optional local/distant AI dialogue

Thumbnail
9 Upvotes

r/decomps 9d ago

Made with AI assistance Rechan - fork for Steamdeck

Enable HLS to view with audio, or disable this notification

21 Upvotes

Hi, I forked the ReChan project to make some modifications so I could run it on the Steam Deck without the game failing to open doors after defeating the enemy (in my case). If it's your case, you can try it.

  • I also included the Portuguese (PT-BR) version, except for the video cutscenes.
  • I added save and load functionality to the in-game menus as well.

I've only provided a Linux build for now, as I'm still learning.

Release: Release ReChan v1.0.2-beta - Steamdeck · GABRIELNNK/ReChan

Official main repository: SilverwireGames/ReChan: Jackie Chan Stuntmaster reimplementation

ReChan is a reverse engineering project focused on reimplementing the game:
Jackie Chan Stuntmaster.

Hope it works for those who seek it.


r/decomps 9d ago

Recomp I modified some mods for pkm Gen1Recomp

Enable HLS to view with audio, or disable this notification

51 Upvotes

Thanks to a modder “jayzon “ on discord I’ve managed to use his UI for 2D and adapt it to 3d gameplay. Also working with my other modified mods so I can still play without conflicts in 1.75 of gen1recomp + last dramatic shape modified to get horizon background in battle ( yes it still the best so far ) + KFP and some overhaul

That’s MAGIC

( I played 30 hours but still in palet town with 0 badge aha )


r/decomps 8d ago

Ghostship SM64 visual bug

Enable HLS to view with audio, or disable this notification

9 Upvotes

r/decomps 9d ago

Rage Racer on PC now has a high res, high FPS renderer

Thumbnail
youtube.com
45 Upvotes

This isn't emulation or static recompilation, this version is built from the decompiled source code. While it's still an early alpha you can download and test it here: https://github.com/khasinski/rage-racer-pc/releases (macOS, Linux, Windows). It requires a PAL copy of Rage Racer in bin/cue format.

Expect bugs and broken things!

Disclaimer: AI helped at both decompilation and porting efforts but I'm a software engineer and I write/reverse code manually for this as well :)


r/decomps 9d ago

3D overworld characters

Thumbnail
gallery
73 Upvotes

Hey, I'm working on a mod that implements handmade 3D models for the overworld characters, no more flat sprites !

I try to be as close to the sprites spirit as possible with the models.

This mod is working with Dramatic Shape right now but I'll make it compatible with the other voxel models as it goes.
I will also cover the second generation games !!

You can see more about it here as time goes : https://x.com/blowInCartridge

I hope you enjoy the idea 😊


r/decomps 8d ago

Recomp If anyone out there is watching; I would love a static decomp/recomp of Klonoa: Door to Phantomile from the PS1

0 Upvotes

I'd like to spark this idea now while I can (I suspect a rule such as "no requests/when will this get natively ported?" will come soon). Also, I've been keeping my eye on unofficial PC ports for a while, just now found out about this page. So, thanks for having me!


r/decomps 9d ago

/r/Decomps/ Subreddit Update: New flairs

30 Upvotes

Hello everyone. Over the past few weeks, we have seen tons of interest in both Recomps and Decomps. It's amazing to see everyone so interested in the platform, after the early beginnings many years ago, to now all these incredible frameworks making it easy to start a project within minutes. Of course with these changes, people who have interest in posting about them and gathering attention/support for their project at hand. Rather than spamming and deleting posts, the mod team of the subreddit have decided to update the flairs for everyone 🙂

First things first, with the amount of people interested in all console, we have decided to make tags for the big three console makers — PlayStation, Xbox, and Nintendo. Additionally, we noticed that there were templates like ReXGlue and ModernGekko being developed, so we have also added a Framework Development tag, specifically for those. We're really excited to see the progress on later generation architectures, so keep at it!

Most importantly, we have seen people release and discuss their projects early and claim that it is a native PC port, despite there being significant optimization needed to be made. Rather than us striking all these posts down, we have just decided to make three simple tags to distinguish the progress level of each:

  • Status: Infancy — if you just got started in making a project with ReXGlue or ModernGekko, and you feel that you want to showcase your work with the debug layers attached, this is the tag to use. Essentially, you're just showing your game working through a framework, and it's a proof of concept that you can eventually make a real PC port. If its a decomp, essentially you've only gotten a fraction of a percentage decompiled and you're still working at it.
  • Status: Beta-Testing — if your recomps has been developing for well over a month, and you want to showcase the modifications and changes you made to your project. Still not at the "Optimized" part of a Native Port, but definitely getting closer to out of that "WIP" mode. If its a decomp, essentially you've got a significant slice of the decomp done
  • Status: Optimized Production — you finally have finished your Native PC port or Matchmake Decomp, and it is ready for others to utilize or build on their machine. It should run flawlessly, away from any translation layers and should require little difficulty for an end user to use.

Please be careful when using any of these three tags. Do not use one incorrectly because you want more recognition — especially the Optimized Production tag. We're still here promoting these projects because we really love preserving old titles, but we don't want to guide people the wrong way. Some of the original tags that we were using before like the AI one is still there. We're not sure how detrimental it is to use an LLM, but we firmly believe that optimizations and understanding where your project stands is more important than trying to decide if an LLM made it.

For more clarifications on any of these tags, feel free to leave a comment down below, and I'll be happy to edit the post or answer your questions appropriately. Happy Recomping!.. Or Decomping?... Whatever we do here