Conversation
|
I'm not sure it makes sense to have the core_controller, CoreController and multiplayer_controller all split up like that. Looks like a lot of this would simpler if we took the core-level turbo out, which endrift would rather we did, as well. |
I don't really understand what's going on. I'm not an emulator guy. I actually had a better working version for SDL client, not in this repo. |
|
Judiciously avoiding mentioning that this is vibe coded this time I see. |
|
I wasn't trying to avoid it. I'm just trying to figure out. |
|
I assumed it was, based on (the code itself, obviously, but also) the remark about not knowing if it was implemented correctly. I had also assumed that was why it was split into 3 separate headers and files, but it sounds like it's that way because the Qt frontend does it that way, too. That makes it much more acceptable, IMO, if it makes it easier to track upstream changes to those Qt frontend files. |
|
Generally speaking, tracking reimplementations of those files is suboptimal. One of the things I'm planning to do in 0.12 with the netplay support code is lower-level implementations of core coordination for multiplayer purpose, for cases like this. It should be possible to do with even single-threaded code, akin to how TGB-Dual swaps between cores every so often. But it may be a year before I even get there, so who knows i it's worth waiting or just yanking it out and replacing it later. |
I tried this a while ago because it makes perfect sense. Why do lockstep and mutex on the same thread, just run the cores one after another. But I could NOT get it working. |
|
What the hell I'm going to try anyway. By "I" you get the point. 1% I, 99% Autocomplete bots. |
54e6369 to
28bc5da
Compare
|
Hey I got lucky. Working singlethreaded lockstep. I faced timing and desync issues and solved it with "pumping" (and cycle skips if pumping occurred) |
28bc5da to
21530f3
Compare
21530f3 to
0c72697
Compare
|
Don't mind the last two force pushes, they are just cosmetics. |
|
Sounds good. I'll see if we can get some testers. |
|
I tested it on macOS when developing. |
|
One thing eating my brain is Network possibility because technically let's say. You have 2 people running the game. But I have no idea where someone would even begin with this. Edit: I got netplay working but uhhh that discussion should be for another PR... |
|
Replaced "pumping" with individual running based on state |
|
@SomeoneIsWorking is this ready to go, from your perspective? or are you still actively working on it? @endrift do you have any thoughts on any of it? I/we don't want to step on your toes merging something you think would be a problem down the road. I haven't actually done any testing on it myself, yet, so it wouldn't be merged immediately anyway, just to be clear. |
|
@hizzlekizzle it is ready to go IMO. I'm going to submit the netplay PR after this which contains some further refactoring. |
|
Advance Wars is the only link cable game I had handy, and I was able to get through the menus to choose either single-cart mode or, if I chose multi-cart, it would get through the setup menus, but in both cases it eventually stalls out and RetroArch becomes unresponsive. The last debug messages were: Any thoughts? In the meantime, I'll try to dump some other link-able games to try. |
|
I can't reproduce this but maybe I need to play for longer |
|
I was able to play Kirby and the Amazing Mirror for a bit, but it ended up freezing the same way after a couple of minutes. |
|
I had a freezing issue around 10-30 minutes in the earlier versions but the latest should be working fine. |
|
Oh wait. I discovered something. I was always building with |
|
Sorry I was testing on netplay branch (I swear I had switched). |
|
I found a strange case with Advance Wars |
|
Okay I added something that bypasses lockstep when transfer is not active. |
|
my pleasure! Unfortunately, since the syncArmed commit, neither Advance Wars nor Kirby will actually link. They just sit at the linking screen waiting for the other player(s). On the bright side, they haven't frozen since, either. |
|
That's strange. Try a clean build maybe.
This is how I always build it. |
|
The tree was clean, but what did help was reverting the syncArmed commit while leaving the sanitizeDelay one intact. That brought linking back and I didn't experience any freezes through entire games of both Kirby and Advance Wars. I do like the concept behind the syncArmed commit, though, so if that could be brought back without breakage, it seems like a smart addition. |
|
I tested on macOS first and I just tried syncArmed commit on Bazzite and it worked there too. |
|
I'm trying this for testing, but I'm having no luck. I have Kirby and the Amazing Mirror on my SteamDeck; can you kind of walk me through setting up the game for two players using your commit? |


I wanted to play Kirby & The Amazing Mirror split-screen co-op.
This works but I need a second opinion.
I have no idea if it's implemented correctly.