Spider-Man (Neversoft) decompilation project Progress Checkpoint - May 2024

submited by
Style Pass
2024-05-10 18:00:03

In 2019, I started the decompilation the PC version of the Spider-Man game developed by Neversoft, which is most commonly called Spider-Man 2000. Work didn't last long, I made few commits the last being done on 10th of August 2020.

Fast-forward to 2023 and my interest in going back to the decompilation had re-ignited, all thanks to a few community members that still actively create mods and explore the game. Here's a non-exhaustive list of the most active ones:

Restarting was a no-brainer has I had completely shifted my approach to the project and learned a lot more about the game. Even though I knew the game was written in C++, I had previously decided to use C. I had no strong reason to do so besides the fact I was more comfortable with C. This time I did not make the same mistake.

Previously, I was live-testing the code. I would re-write a method, hook into the game code and run the game and see if it worked. Not only, this method was tedious it left the door open for the correctness of the code - did I mess up the signdness? did mess the edge case?. This time I would follow a process similar to matching decompilation projects, but instead of trying to recreate the game as close to the byte I would strive for function parity. This means that each function/sub-routine would be recreated trying to match as close as possible the original version. For cases where it didn't match, they'd need to be analyzed as it's quite easy to make a change in code that changes the register allocation or instruction order.

Leave a Comment