Okay found the .map file, been trying to give random values to a alot of addresses that i think Should do at least something.
But nothing seems to be affected.
Not sure if i do it correctly.
I am supposed to use the Address and not Virtual right?
And the Value is the value for that function right, so just changing it randomly should corrupt the results when that function is used and therefore different results is expected?
That should work some of the time but I don't think it always works exactly like that. I'll use the frame rate address from this game as the example. I set address 803988a0 as a memory breakpoint and in the log, I get MBP 80048174 (waitRetrace__11DGXGraphicsFv sysDolphin.a dgxGraphics.cpp) Read32 00000001 at 803988a0. We see that the function waitRetrace__11DGXGraphicsFv is reading the value at that particular address and it's that same value you change to 00000002 to get 30fps. Address 803988a0 is not an address we will find in the .map file. Let's say we only knew that the frame rate had something to do with function waitRetrace__11DGXGraphicsFv and we didn't know about address 803988a0. Would we be able to find that address by checking out just this function? I would say yes, but I don't know how to do it aside from setting a memory breakpoint range of 80000000-817FFFFF and searching for a value that traces back to that function. I'm not so sure you could mess with the frame rate by changing values in waitRetrace__11DGXGraphicsFv. The JIT Block Viewer could be useful if you understand the information it gives, which I don't. In Pikmin 2, the frame rate code is from one of the values in the list of functions and doesn't read from some other address like the Pikmin 1 example I used here.
As for using Virtual or not, I really don't know for sure. I just use the regular address.
Note that I only explain this as I see it. Some of what was said could be a little off.
I have actually been tracing around near that function, though i didn't noticed it looked for the framedivider, i know that when i searched for the adress where it lies it was outside the .map symbol so i i had no way of knowing where it would get called (cause i don't know if you can search for that?).
I am thinking that we should look for the "next frame" function, there has to be something like that somewhere, cause you can kinda modify the files where the camera movement and position is.
And as it reads that file it will just go through those values each frame, so if possible one can make it only do it once every other frame.
As it already has a check for the framerate, it shouldn't be That hard to just make a condition for it.
Okay can update this page as i done some work.
I think i have been able to make Cutscenes play at 30fps, but the game is rendered at 60fps (not much that can be done as the cutscenes are statically set to 30fps beforehand).
I also solved Particle generation being twice as strong in 60fps, as well as the rotation speed for the Whistle being twice as fast.
I have also found a workaround for the Throw glitch, sadly it's not ideal, it forces every pikmin that's being thrown to be the one farthest away from you.
It always seem to work, but it's a bit slower as you can guess.
I have been trying to solve this for so many days, i think i have atleast been able to conclude that this function in the source:
00101f70 0003cc 801074d0 4 init__18NaviThrowWaitStateFP4Navi plugPikiKando.a naviState.cpp #Prevents Throw - This gets Executed even on Fail at 60fps
As i said on the 60fps thread, any help or ideas on what can be going on is very much appreciated.
As i am extremely new to this, (my first time ever doing ASM and Gecko) i am pretty much just stumbling around in the dark.
But it's very fascinating and have learned a lot from people in the 60fps thread as well as here

!
(10-22-2016, 05:12 PM)Zerowalker Wrote: [ -> ]Okay can update this page as i done some work.
I think i have been able to make Cutscenes play at 30fps, but the game is rendered at 60fps (not much that can be done as the cutscenes are statically set to 30fps beforehand).
I also solved Particle generation being twice as strong in 60fps, as well as the rotation speed for the Whistle being twice as fast.
I have also found a workaround for the Throw glitch, sadly it's not ideal, it forces every pikmin that's being thrown to be the one farthest away from you.
It always seem to work, but it's a bit slower as you can guess.
I have been trying to solve this for so many days, i think i have atleast been able to conclude that this function in the source:
00101f70 0003cc 801074d0 4 init__18NaviThrowWaitStateFP4Navi plugPikiKando.a naviState.cpp #Prevents Throw - This gets Executed even on Fail at 60fps
As i said on the 60fps thread, any help or ideas on what can be going on is very much appreciated.
As i am extremely new to this, (my first time ever doing ASM and Gecko) i am pretty much just stumbling around in the dark.
But it's very fascinating and have learned a lot from people in the 60fps thread as well as here
!
Hi! Would you be able to share the "workaround" mentioned above. My friend and I are working on this and the throwing bug is very irritating. I thought it might give us more insight on how to fix the issue.