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

Single Pak Link Broken #425

Closed
wildgoosespeeder opened this issue Oct 4, 2016 · 20 comments
Closed

Single Pak Link Broken #425

wildgoosespeeder opened this issue Oct 4, 2016 · 20 comments

Comments

@wildgoosespeeder
Copy link

@wildgoosespeeder wildgoosespeeder commented Oct 4, 2016

In mGBA 0.5.0, any game that supports single pak links is broken during transmission. Tried it with SMA4 and the F-Zero games. Multi pak links are fine.

  • Windows 8.1 Pro 64-bit
  • Intel Core i5-3210M @ 2.5 Ghz
  • 12GB RAM

To allow for single pak mode, you need the GBA BIOS enabled. When the animation is playing, press start+select.

@endrift
Copy link
Member

@endrift endrift commented Oct 4, 2016

Known issue. It's a problem with Normal SIO mode (i.e., it's not implemented at the moment).

@endrift endrift added this to the 0.7.0 milestone Oct 4, 2016
@wildgoosespeeder
Copy link
Author

@wildgoosespeeder wildgoosespeeder commented Oct 4, 2016

Enhancement? Isn't this a bug?

@endrift
Copy link
Member

@endrift endrift commented Oct 4, 2016

It's an unimplemented feature.

@wildgoosespeeder
Copy link
Author

@wildgoosespeeder wildgoosespeeder commented Oct 4, 2016

But it attempts to run but fails. Seems like a bug to me.

@endrift
Copy link
Member

@endrift endrift commented Oct 4, 2016

The reason it fails is because the hardware transmission mode it uses isn't implemented. That's not a bug, it's an unimplemented feature.

@wildgoosespeeder
Copy link
Author

@wildgoosespeeder wildgoosespeeder commented Oct 4, 2016

Do you have any idea how to write it? NO$GBA emulates properly. If it is open source, you can use that, if you don't know how.

@endrift
Copy link
Member

@endrift endrift commented Oct 4, 2016

I had a half-working implementation previously, but I removed it due to it not working fully and breaking some other stuff. I'll put it back and get it working fully later.

Also NO$GBA is not open source, and please don't doubt whether or not I can implement a feature. I wrote the whole emulator basically by myself.

@wildgoosespeeder
Copy link
Author

@wildgoosespeeder wildgoosespeeder commented Oct 4, 2016

I wasn't doubting you. Thought I could save you some time, if at all possible. Turns out I can't because NO$GBA is not open source (bummer).

@endrift
Copy link
Member

@endrift endrift commented Oct 4, 2016

Ah, sorry, it came off a bit harsher than you'd meant it then. There's documentation out there of how it works, but for some reason it would bail out after transferring about 1/4 of the data, and I never got around to debugging it. It was a low priority for me due to the fact that single pak isn't really as useful in emulators as it is on hardware.

@Testsr
Copy link

@Testsr Testsr commented Mar 5, 2020

Is the Normal SIO mode still unimplemented? If so, I would work on it.

@endrift
Copy link
Member

@endrift endrift commented Mar 5, 2020

What do you mean "still"? It's been implemented for ages, it's just kinda broken due to how I sync multiple cores.

@Testsr
Copy link

@Testsr Testsr commented Mar 5, 2020

The last update on this thread had the normal SIO not done.
I think the solution to Single Pak Play is to get SWI 25h implemented.
See https://www.akkit.org/info/gbatek.htm#biosmultibootsinglegamepak

@endrift
Copy link
Member

@endrift endrift commented Mar 5, 2020

You're wrong. The problem is that normal mode is broken (even if it is implemented). SWI 0x25 isn't used.

@Testsr
Copy link

@Testsr Testsr commented Mar 6, 2020

I tested the newest Master build on with a gba bios.
Opened up Sonic Advance 3 in one mGBA multiplayer window and booted the bios in the second multiplayer window.

When Single Pak mode was selected on the Battle screen,the windows connected successfully,
but after pressing start on the rom side, the rom errored out with a communication error.

@endrift
Copy link
Member

@endrift endrift commented Mar 6, 2020

Yes, because (as I said) normal mode is currently broken.

@endrift
Copy link
Member

@endrift endrift commented Mar 6, 2020

Having debugged this only a few days ago, you're again wrong. Normal mode is used for game upload (though in-game communication is done through multiplayer mode).

@Testsr
Copy link

@Testsr Testsr commented Mar 6, 2020

Ok, you are correct. I tested on no$gba, and Normal mode is used for the transfer.

@endrift
Copy link
Member

@endrift endrift commented Mar 6, 2020

As I said already, the way I sync multiple cores is fragile and it's not compatible with normal mode at the moment. It would take some heavy revamping of this sync code to fix, which admittedly I've been talking about doing anyway.

@Testsr
Copy link

@Testsr Testsr commented Mar 6, 2020

I hope the this sync code revamp gets done soon. I am sorry for being foolish about things I did not know. Can I help you with anything?

@endrift
Copy link
Member

@endrift endrift commented Sep 8, 2020

I forgot to comment on this after I did it, but I did some work on Normal Mode a month ago, but this issue still doesn't appear to be resolved. Further investigation is still needed.

@endrift endrift closed this in 7a3f2b1 Feb 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants