I'm currently digging my way through Brawl's ASM in an attempt to make a unique application of the Mushroom Stacker Code. I've got what I think is a pretty solid footing on how the mushroom stacker code works. I've started looking into how I would hook into animations to force characters to use the growing animation (to force the characters to update to a new size). But before I can even write code to bug test, I need to find out how the game is keeping track of time.
My initial plan is to write a Gecko code that would replace the instruction that is writing the frame's time into the RAM. From there I would write the time to the ram like normal, but also be able to do a modulo on the value and check for zero remainder. When it's zero, it's time to update player sizes and force them into the grow/shrink animation.
My problem: I have no idea how brawl might even begin to store the time. Every other part of the code had an ASM hack pointing directly to the area of interest so I could learn, but no such research has been done into the timer from what I've searched. I thought I might be able to use cheat engine and search for a float increasing every few seconds, but I did some testing and came to the conclusion that memory in dolphin probably isn't at static addresses (couldn't find P1 size as I used the mushroom stacker).
Even if I had access to a method to scan the memory, I have no idea if I'm searching for a float where the whole numbers are seconds, or a float of minutes, or integer values of seconds, etc. And after all of that if I do find a RAM address, 5.0 can't do memory write breakpoints from what I've searched, it would be hard/impossible to find the write instruction without being able to freeze the registers. Does anyone know of how I might start this journey?
My initial plan is to write a Gecko code that would replace the instruction that is writing the frame's time into the RAM. From there I would write the time to the ram like normal, but also be able to do a modulo on the value and check for zero remainder. When it's zero, it's time to update player sizes and force them into the grow/shrink animation.
My problem: I have no idea how brawl might even begin to store the time. Every other part of the code had an ASM hack pointing directly to the area of interest so I could learn, but no such research has been done into the timer from what I've searched. I thought I might be able to use cheat engine and search for a float increasing every few seconds, but I did some testing and came to the conclusion that memory in dolphin probably isn't at static addresses (couldn't find P1 size as I used the mushroom stacker).
Even if I had access to a method to scan the memory, I have no idea if I'm searching for a float where the whole numbers are seconds, or a float of minutes, or integer values of seconds, etc. And after all of that if I do find a RAM address, 5.0 can't do memory write breakpoints from what I've searched, it would be hard/impossible to find the write instruction without being able to freeze the registers. Does anyone know of how I might start this journey?