Emulator Issues #9528
Final Fantasy Crystal Chronicles GBA <-> GCN Issue
[Final Fantasy Crystal Chronicles]
Game ID? (right click the game in the game list, properties, info tab)
MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)
What's the problem? Describe what went wrong.
[Characters will not stop jittering/hitching on multiplayer mode, also attacks and magic can not be charged up and released]
What steps will reproduce the problem?
[Using any of the latest Dolphin builds and the latest Visual Boy Advance-M from github. Start the game up with the default settings provided on the wiki page for this game. Next start the game up in multiplayer and then go to any dungeon run around and you will see the jittering/hitching. Next focus the characters attacks by holding down the action button. You will see that instead of the character charging up their attacks they just keep rapidly attacking instead. Same thing with magic, its like turbo is on for the action button but its not.]
Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?
[4.0-9289. Nope any older version of Dolphin and Visual Boy Advance does not solve the issue. ]
What are your PC specifications? (CPU, GPU, Operating System, more)
[OS: Windows 10 Pro x64
CPU: i7 6700K @4.8
GPU: Radeon Fury X
RAM: 16GB DDR4 @2400Mhz]
Is there any other relevant information? (e.g. logs, screenshots,
[Here is a youtube video I found showing the issue. It is highly important to look at it and get a clear idea of what am talking about, https://www.youtube.com/watch?v=UEUnDb3eAMk ]
#4 Updated by rookiecookie over 1 year ago
Hello I'd like to help in correcting this issue. I believe I have an "idea" of what is happening with this but my understanding of this code is very limited.
I'm going to guess that the data transfer is being handled by CSIDevice_GBA::RunBuffer in SI_DeviceGBA.cpp on line 292.
My "idea" is that basically with something like this data is being passed and you have a listener waiting for instruction, or it actively looks for updates on some interval.
If it is the former, this would explain why this issue is occuring. This issue ONLY seems to occur if any player is viewing the radar screen on the GBA.
Now if we think about this for a moment, the Radar screen is the only "view" on the gba that needs to be actively updated from the gamecube side. It is tracking the positional data of your game character on the gamecube in relation to the world map. Every other option screen on the gba is dealing with static information that is only updated as necessary (items for example).
Now, i'm not sure exactly where the conflict lies but I would guess that the "jitter" (which is not actually jitter but held button presses being interpreted as multiple button presses) is happening in the exact same interval that the gba is receiving updates from the gamecube for the map data when using the radar screen.
The other thing is i'm not sure if this happening on the Dolphin side of things, or the vba-m side of things. I don't know exactly how the link cable passes data, or how the gba receives it. But this issue would seem to be something that is happening with GC sending data to the GBA, not the other way around.
I'd be willing to work in tandem with someone who understands the codebase better than I do. Please let me know so we can get in touch!