shanus
Smash Hero
- Joined
- Nov 17, 2005
- Messages
- 6,055
Been chatting with PW, have some useful information:
Phantom Wings said:Hmm... Well I once touched upon landing detection when I made the Stand In Midair/Fall on Ground code but I didn't go too deep into the assembly for that - just a simple ASM override. I'm almost finished another project that I'm currently working on, so after that's done I'll see about looking into it.
As for the variables, I know exactly where they're stored.
Hopefully you're familiar with the Character Root Address which was the basis for all the Super Codes and such. If not, message me back and I'll elaborate.
Anyways, use the P.O. to navigate along the following path:
[[80623320 + 4] + 60]
That will get you to the Field Accessor of the first character.
Next Navigate to:
[+70]
Which will get you to so Work Manage Module Impl, the module that handles all variables. (incidentally, the 12XXXXXX group of events in PSA directly access this module)
Now, I can't check at the moment, so I only remember how to access the Longterm variables but:
[[+20] + 0C] Longterm Basics
[[+20] + 14] Longterm Scalars
[[+20] + 1C] Longterm Flags
basics are stored as 32-bit Words, Scalars are stored in floating point (as opposed to the base 4000 that PSA runs off of) and flags are based on single bits, so you'll have to use the gecko register OR, AND and XOR commands to modify those.
I'm not sure if you're still using memory write codes or ASM codes, but in case you need it;
80000000 80623320
80000001 00000000
60000006 00000000
60000003 00000001
4A001000 00000000
4A101001 00000000
36000000 00000032
58010000 00000004
DE000000 80008180
58010000 00000060
DE000000 80008180
80100001 00000008
62000000 00000001
E200000F 00000000
80000001 00000000
80100000 00000244
62000000 00000000
E0000000 80008000
Anything in the middle section will execute with the P.O. equaling the Field Accessor of all currently active characters. From there, you could simply add something like:
58010000 00000070 < Work Manage Module
58010000 00000020
58010000 0000001C < Flags
to make the P.O. equal the start of the Longterm Flags section.
Keep in mind that I'm working out of memory here, so I could be mistaken in various places. I'll contact you tomorrow to confirm the addresses and offsets as well as provide you with the Random Access variables.