Patoke / re-plants-vs-zombies

A project to rebuild all functionality via reverse engineering from the GOTY version of Plants VS Zombies (and expand upon it)
Creative Commons Zero v1.0 Universal
91 stars 12 forks source link

Where does most of the codebase come from? #1

Closed minerscale closed 11 months ago

minerscale commented 11 months ago

Hi Patoke,

My name's Aaron and I've been fiddling with this decomp for a bit (getting it to build with the extra x64 registers and from clang+cmake instead of visualstudio, stretch goal making the thing work on native Linux for giggles) and I'm wondering how this decompilation came together. I have a few questions and I can't work out how to contact you outside of a GitHub issue so here I am:

  1. How much of the work is your own and how much was done by Kopie?
  2. Is it a fork of https://github.com/rspforhp/PVZdotnet-ready-to-mod (which appears to be the mobile version) or is it something else? I couldn't make sense of Kopie's public repos.
  3. Is there a community I can talk to about the reversing effort and is it all in Chinese?
  4. Since I don't have a windows machine to test the build in a sane environment, I don't know how much of this decomp is working but I still have already found a few bugs (mostly related to uninitiated values) which I might submit a pull request for soon. I expect they're not a problem in VS because it clobbers the exact right value for things to be coincidentally clobbered but I don't know. Anyway I'm wondering where the build is at, does it run? I expect since you're talking about achievements and stuff it probably does. I've gotten a good way through resources unpacking before it kills itself (I think Wine is having a hard time with the widechars. Or I've just messed something up..)

Thanks very much for your time and your hard work on this project I think it's very cool,

Aaron.

Patoke commented 11 months ago

Hello Aaron, I hope you're having a great day.

It's great actually seeing people interested and actively working on this project and expanding onto PopCap's old game engine and the work that has been put into reversing this game You can contact me in discord with the username "gsds" for more comfortable and casual talk about this project To answer your questions:

  1. Most work was done by Kopie, she had an old game build up and running almost completely flawlessly outside of some tiny mistakes, most of my work was re-reversing the game and checking for code differences between Kopie's decomp and mine (from the latest GOTY version of the game), you can check for stuff I've reversed myself by searching for comments that go @Patoke and stuff that Kopie reversed by searching for // 0x as most of my comments have the latter mentioned prefix
  2. No, it is not a fork of that repository though it was used to aid reversing as there's not public PvZ binaries with symbols or atleast that I could find
  3. I'm not really sure as I'm not chinese myself nor did join a community to discuss development, I just found Kopie's project very interesting and decided to expand on it as to implement the latest game functionality into it
  4. The build for what I know is fully playable and everything seems to work fine from the playing I've done, there's still some really small problems like text in the almanac not properly formatting and a softlock when you finish a level which is supposed to show you a screen with the new stuff you got from that level like achievements and plants that I didn't finish implementing (or probably just failed to, lol) so as u mentioned, it might be a problem with Wine (though the public version of PopCap's resource system is quite unoptimized)

I have completely forgot to publish some of the scripts and tools I've used to make this project which I'll do very soon as I see some people are still interested in this project!

Best regards, Patoke.

minerscale commented 11 months ago

Thanks for the excellent answer it's much appreciated :1st_place_medal: