Man…last night was interesting. I started with looking into the function used to create CPU clones, “dopplegangers” at like 8pm, along with a few other things, and then next thing I know it’s 2 in the morning (my girlfriend is out of town so I’m going ham with research that takes a lot of focus/time while I can). I definitely found some interesting things.
So I investigated the injection point used in wparam’s doppleganger code and got the basic gist of how it worked. Then I just got immersed in the surrounding functions relating to creating in-game characters trying relentlessly to understand what was going on. Undocumented ASM gets very hard/frustrating to follow. But I basically caught on to how the game checks for if it is going to load a player and figured out how to load 6 players in a match. What I learned is this:
- Loading 5 or 6 players from a match started on the [vanilla] debug menu works completely normally, meaning P5 and P6 can be different characters than P1-P4.
- Loading 5 or 6 players from VS. mode only partly works. P5 and P6 CAN ONLY be a character that any of the previous players (P1-P4) is using. I am unsure as to exactly why this is.
But yeah…the functions involved are very interesting and I definitely want to look into them further.
So this was also an interesting find….
Disable Screen Rumble
044807EC 00000000
So this code completely disables the screen from shaking. This happens during a lot of events in a match, specifically things like strong attacks, throws, missing a tech, grabbing the edge (I think), Pokemon stadium transforming, etc..
It makes the game play look really smooth, but a little odd at the same time because we have been playing with the screen shaking for 13 years. Our brains naturally know when it is supposed to happen in-game and when it doesn’t, you notice the effect immediately. I think I like it off though…idk…it’s just super interesting to play with. You guys have to try it.