shiiion / dolphin

Dolphin fork intended to give Metroid Prime Trilogy mouselook controls
Other
466 stars 43 forks source link

[Request] Expand Primehacks M+KB controls to other FPS games #170

Closed Neuromek closed 1 month ago

Neuromek commented 2 months ago

*only for Gamecube & Wii exclusive games (such as 007: Goldeneye, Red Steel & Conduit series, etc)

Will this ever be considered in future releases?

SirMangler commented 2 months ago

The problem is PrimeHack is very specific to the Metroid Prime engine (aka the RUDE engine). There’s an active reverse engineering community for Metroid Prime that provides resources that helped with some of our mods, and support for those mods on the later revisions and sequels were developed by cross referencing, ie searching sequences of bytes from one build in another to find common code (eg the code to do a springball jump is nearly identical across the games).

We would have to separate everything metroid specific in the ui and mod managers, etc, and basically rewrite most of it. Then we would have to start from scratch with reverse engineering these new engines, most of which are complete black boxes. All in all we would just start a new project from scratch instead.

A long while ago we looked at Conduit 2 before on the request of a very enthusiastic c2 fan in our community and found that modding it was a complete pain. Metroid Prime was written in C++ and most of the features were written into the engine rather than scripted, so in layman’s terms we just had to find the right code and patch it. In C2, the engine is just a massive and very ugly byte interpreter. Everything was scripted. The scripts aren’t loaded at the same memory address every time, on the filesystem they’re stored in archive file format that needs reverse engineering and new code needs to be written into the engine and interpreter to handle interoperability between primehack and the emulation software. To completely reverse engineer the script engine we would have to figure out literally hundreds of op codes. Reading it isn’t as simple unless we found a disassembler for the language (which may be proprietary, i dont recall). All in all, the work is far more to get a simple mouselook mod going.

It sounds like fun, each engine has its own challenges and some are easier than others, but me and shio are working full time jobs so our spare time is significantly less than when we were working on PrimeHack.