Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update GameCube to GBA link cable emulation #2139

Merged
merged 1 commit into from
Mar 20, 2015

Conversation

skidau
Copy link
Contributor

@skidau skidau commented Feb 27, 2015

Preliminary update to the GameCube to GBA link cable emulation. Fixes Zelda Wind Waker's Tingle Tuner connection, Pac-Man Vs, Final Fantasy: Crystal Chronicles multiplayer, and most other Gamecube to GBA link cable games.

  • Changed the SI buffer processing so that transfers do not have to be completed instantly
  • Added a second socket at port 49420 (0xc10c) which sends clock information to the GBA slaves
  • Checked for connections every 2 seconds instead of every second to reduce CPU load
  • Handled disconnections from the GBA and GC
  • Made the transfers asynchronous
  • Blocks the socket before the connection times out

Windows VBA-M build and patch:
http://www.mediafire.com/download/d1h8u2hokg4b1ed/VBA-M_update_GameCube_cable.zip

@skidau
Copy link
Contributor Author

skidau commented Feb 27, 2015

static std::mutex cs_gba_clk;
static u8 num_connected;

namespace { volatile bool server_running; volatile bool clock_server_running; }

This comment was marked as off-topic.

@JMC47
Copy link
Contributor

JMC47 commented Mar 9, 2015

Poke. Latest version seems to work as well as any prior version.

… Zelda Wind Waker's Tingle Tuner connection, Pac-Man Vs, Final Fantasy: Crystal Chronicles multiplayer, and most other Gamecube to GBA link cable games.

* Changed the SI buffer processing so that transfers do not have to be completed instantly
* Added a second socket at port 49420 (0xc10c) which sends clock information to the GBA slaves
* Handled disconnections from the GBA and GC
* Made the transfers asynchronous
* Blocks the socket before the connection times out

Requires VBA-M SVN 1235 or later.
skidau added a commit that referenced this pull request Mar 20, 2015
Update GameCube to GBA link cable emulation
@skidau skidau merged commit 9b1c2d3 into dolphin-emu:master Mar 20, 2015
@aFoxNamedMorris
Copy link

From this version on, I get a core dump when attempting to start the program. Xubuntu 14.04 64-bit, Linux 4.0-rc5 and latest Intel graphics drivers from Oibaf PPA. I am stuck using 5897 for now, which works decently.

@skidau
Copy link
Contributor Author

skidau commented Mar 26, 2015

@aFoxNamedMorris is there a stack trace that I can view? It would be strange for it to core-dump on starting the program as the code comes into play when a game is started.

@dxgldotorg
Copy link
Contributor

On Windows 10 x64 10041, I can confirm that Wind Waker's Tingle Tuner works, at least for a few minutes at a time. However, it does desync easily, in which case the GBA is stuck and the game on Dolphin thinks it is still connected, even if I close VBA-M.
On the VBA-M side, I would suggest adding a borderless, floating, always-on-top window mode.

@aFoxNamedMorris
Copy link

@skidau No longer happens, for whatever reason. It may have been a driver update that caused both the crash, and now the working state. Carry on. :3

@skidau
Copy link
Contributor Author

skidau commented Mar 28, 2015

Thanks for the update, @aFoxNamedMorris. That problem would have been a tough one to work out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
8 participants