-
-
Notifications
You must be signed in to change notification settings - Fork 795
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
Super Mario Advance 4: SMB3 Link with e-Reader communication error #2925
Comments
Can reproduce. Communication after getting the save is unaffected. |
@endrift Can we add this to a milestone,so that it gets fixed. |
I have traced down the regression to lines 517 - 534 of lockstep.c ...
if (node->id < 3 && attached > node->id + 1) {
value = GBASIONormalSetSi(value, GBASIONormalGetIdleSo(node->p->players[node->id + 1]->d.p->siocnt));
} else {
value = GBASIONormalFillSi(value);
}
enum mLockstepPhase transferActive;
ATOMIC_LOAD(transferActive, node->p->d.transferActive);
if (node->id > 0 && transferActive == TRANSFER_IDLE) {
int try;
for (try = 0; try < 3; ++try) {
GBASIONormal parentSiocnt;
ATOMIC_LOAD(parentSiocnt, node->p->players[node->id - 1]->d.p->siocnt);
if (ATOMIC_CMPXCHG(node->p->players[node->id - 1]->d.p->siocnt, parentSiocnt, GBASIONormalSetSi(parentSiocnt, GBASIONormalGetIdleSo(value)))) {
break;
}
}
... (removing the lines fixes the bug), and know the regression is caused by the GBAs having different transfer modes. I don't know what causes the transfer mode desync, however. My best guess is a race condition in setting the SIOCNT. |
As of version 10.2, the link function between Super Mario Advance 4 and the e-Reader will fail. The last known working version is 10.0. 10.1 will have the e-Reader ROM speed up when in a multiplayer window, but I successfully scanned a card over to SMA4. With 10.2, and the latest development build, the link fails to establish between the two ROMS, resulting in a communication error. The same speed-up issue persists as well.
Edit: Also of note, when using the installed version of 10.0, the communication fails. When using the portable version, it works.
SMA4 Bug Report.zip
The text was updated successfully, but these errors were encountered: