Project

General

Profile

Actions

Emulator Issues #9528

closed

Final Fantasy Crystal Chronicles GBA <-> GCN Issue

Added by ACE1997 almost 8 years ago. Updated over 2 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:
5.0-14753

Description

Game Name?

[Final Fantasy Crystal Chronicles]

Game ID? (right click the game in the game list, properties, info tab)

[GCCE01]

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)

[a6d6064396b20c0d0d836afad97d3a4c]

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,
configuration files)

[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 ]


Related issues 1 (0 open1 closed)

Has duplicate Emulator - Emulator Issues #9558: Final Fantasy Crystal Chronicles -- Multiplayer broken in various waysDuplicate

Actions
Actions #1

Updated by ACE1997 almost 8 years ago

Also other then the issues I mentioned, the game runs smooth on both emulators. Dolphin runs at a constant 30fps, and Visual Boy Advance runs at a constant 60.

Actions #2

Updated by UzumakiNaruto almost 8 years ago

Please Please, will some one look in to fixing this issue? I am having the same problem and can't play the game with 3 of my friends. I would even donate for fixing the issue.

Actions #3

Updated by JosJuice almost 8 years ago

  • Has duplicate Emulator Issues #9558: Final Fantasy Crystal Chronicles -- Multiplayer broken in various ways added
Actions #4

Updated by rookiecookie over 6 years 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!

Actions #5

Updated by TarnishedBones about 5 years ago

I have an idea myself. While messing around with the settings on the VGB I noticed after booting my VGB would be running at 200% and reporting 12 FPS and the stuttering would cease. The second that the Gameboy would stabilize and start running at 100% the game would resume stuttering. The only temp fix I can find was as the last guy mentioned stop viewing the radar screen

Actions #6

Updated by wormite over 4 years ago

TarnishedBones wrote:

I have an idea myself. While messing around with the settings on the VGB I noticed after booting my VGB would be running at 200% and reporting 12 FPS and the stuttering would cease. The second that the Gameboy would stabilize and start running at 100% the game would resume stuttering. The only temp fix I can find was as the last guy mentioned stop viewing the radar screen

I am having exactly the same problem. Once the radar screen is turned on the character starts to "jitter".

Actions #7

Updated by anr2000 over 4 years ago

I agreed with @rookiecookie, the stuttering probably happening because it's treated as press-release-press-release-(so on) instead of continuous presses
Why is this happening? I suspect the game code probably detecting abnormality and attempt to reset the joybus may be (it's been years since i use VBA-M & dolphin, but as i remember i saw reset command FFh in the joybus logs when strange things occurring), or may be the game reset the joybus because it didn't received data within a certain time (in-game timeout)

@TarnishedBones: As i remembered overclocking the GBA to 200% helped reduce the stuttering because it's giving enough time for the GBA to process the data (ie. render the radar tiles), while with normal speed 100% the GBA might not have enough time to fully render it at the time new data is coming from joybus (changing the joybus interval might help but may cause other issue like in-game timeout), when i was playing with the joybus interval i remembered there are cases where i saw the radar tiles didn't get fully rendered and refreshed with new data (where i'm seeing some missing radar tiles near the bottom)

So we need to make sure the GBA-side gamecode is having enough time to fully process joybus data and reply properly to GC before receiving new joybus data, and making sure both side didn't reach the in-game timeout which making them thinking the joybus is having connection issue and attempt to reset it.

PS: if anyone wanted to test different joybus interval value to see the difference, or wanted to see the joybus logs you can use my modified VBA-M (very old version) https://www.ngemu.com/threads/vba-m-svn1030e-support-linking-for-gb-gbc-gba-games.161897/

Actions #8

Updated by Pop000100 almost 4 years ago

This is the issue that is blocking me right now and Running the game at 200% is a awful workaround that I can't guarantee I'll always maintain that high of framerate

Actions #9

Updated by ZephyrSurfer over 2 years ago

Is this resolved now since the integrated GBA?

Actions #10

Updated by JMC4789 over 2 years ago

  • Status changed from New to Fixed
  • Fixed in set to 5.0-14753

Yes, but the patches were needed too. So probably fully fixed by 5.0-14753

Actions

Also available in: Atom PDF