Replies: 4 comments
-
No reason why it shouldn't be stackable. If i want to check data for a pokemon that got sent to box 2 slot 15 or whatever, those would be 2 seperate addresses i would want to index by before i check the box data pointer. Same with something like guitar hero having 8 files with 4 difficulties each, having 2 addindexes for that could be useful. |
Beta Was this translation helpful? Give feedback.
-
I ran into this with my one baseball set Needed to offset the address something was pointing to by a different address times another value. AddIndex as shown in your example would have let me directly check the active batter's in-game stats, but without it I could not. Instead of 4 lines of codes, it required a TON of alt groups to check a ton of combinations of things and ultimately I gave up on the concept I was going for because it wasn't worth it. |
Beta Was this translation helpful? Give feedback.
-
I absolutely need a way to apply a complex calculation as an additional offset from the pointer destination for Metroid Prime. |
Beta Was this translation helpful? Give feedback.
-
I believe this has been addressed by the Remember/Recall functionality |
Beta Was this translation helpful? Give feedback.
-
There have been some situations where this would have been nice for simplified logic (like checking tables with an index in an easier way), but today I found a situation where it would be necessary for a set to even exist, Pokemon Ranger: Guardian Signs for the Nintendo DS, this game uses a global pointer for all the important data (this pointer gets updated per session), but it also uses an extra offset added to the pointer itself, let me detail it further:
The global pointer is at 0x0bd570 and it has a value of 0x326ec4, with 0x3c as offset it will point to the gender of the player (Bit 0).
But this is only the case when the index address, at 0x0bd574 is 0x0f.
In other save states, or even when I manually change this index address value, the offset isn't 0x3c anymore, this index address adds to the pointer multiplied by 4, for example, when the index address is 0x01, the offset to the gender of the player would be 0x04, meaning the "base offset" for gender is actually 0x00, the formula would then be: globalPointer + (0x04 * indexAddress), but this is impossible to code as it requires modifying the pointer before accessing it.
This is were the suggested solution comes from, AddIndex.
This adds the value in the specified address to the following address an AddAddress is pointing to, and AddAddress itself can be used before it in case the Index itself is pointed. I don't know how it would work as stacked as it's hard for me to wrap my head around it in a technical level, but it would probably be useful to stack it.
I can give further details if needed and it would be nice if other developers mention similar cases where something like this would be useful to be sure the feature would cover those cases too.
Beta Was this translation helpful? Give feedback.
All reactions