Skip to content

kholdfuzion/GoldenRecomp

Repository files navigation

In order to get this game to work some things had to be done on both the decomp and the recompiler side

On the decomp side: The source has been refactored to avoid using TLB, simply because N64Recomp doesn't support TLB yet, this means the game now needs 8 MB of RAM if you want to run the ROM on console (Expansion Pak). In addition to removing TLB, the ROM generated by the decomp project will now be in a decompressed state, this needed some changes on the linker side as well as some code changes I can't recall right now. This is a problem because people are required to build this special branch of the decomp project to be able to play the recompiled game, unless we provide a BPS patch, that could be a solution to this problem, Mr Wiseguy has informed me he already has some code to BPS patch the game in runtime but i haven't given access to that code yet.

On the recompiler side: N64Recomp doesn't seem to support recompiling jumptables that are outside of the same segment the code is from, not sure why they're stored like that, i haven't really investigated much, but the important thing is that N64Recomp was modified by Kholdfuzion to support them. However, the changes seem to be incomplete, because even though N64Recomp is able to generate recompiled code from the ELF, it isn't able to do it while using the ROM and symbol files. This problem is serious because we're unable to build this project without having the ELF which comes from building the decomp, not only that but newer versions of N64Recomp have been redesigned in a way that functions can't be 'RECOMP_PATCH'd if the generated code comes from an ELF.

State of the game and problems to be solved before an eventual release:

The game works and is perfectly stable. Sound is good

  • Multiplayer support (UI).
  • Skybox in the DAM / Sky and Water in Frigate need to be re-coded because RT64 doesn't support the custom commands the game uses to draw it. The Perfect Dark PC port had this same problem and it was solved by recoding the sky, i tried using a variation of their code to solve it but i failed in the process, i was able to see it working in an emulator but not when patched into the recomp, the code is inside skybox.c
  • Certain guns shoot too fast because the game is running at native 60 all the time, their fire rate needs to be adjusted.
  • Modern Dual Analog control implementation.

Building instructions:

git clone https://github.com/kholdfuzion/Goldenrecomp --recurse-submodules
.\N64Recomp.exe us.toml
.\N64Recomp.exe us.toml --dump-context
.\RSPRecomp.exe aspMain.us.toml
  • Open the project folder with visual studio
  • Select the GoldenRecomp.exe target
  • Set either x64-Debug or z64-ReleaseWithDebInfo as required
  • Build

About

WIP Recompilation of a game about a special agent who saves the world from a traitor.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages