alyosha-tas / GBAHawk

Gameboy Advance Emulator fork of BizHawk
Other
12 stars 2 forks source link

Lag frame marking in multi-GBA is not ideal #31

Closed RetroEdit closed 3 months ago

RetroEdit commented 6 months ago

Multi-GBA doesn't identify which GBA(s) the lag frame occurred; it will only mark if both lag. This is inconvenient for certain use-cases.

I don't think this is easily fixable because lag marking is sort of deeply embedded into TAStudio and the movie architecture in general.

Nonetheless, there are a few minor enhancement ideas I still have:

alyosha-tas commented 6 months ago

Fixing this properly is a very low priority. Probably what I can do for now is make it a sync setting which (if any) consoles should be used to determine if a frame is a lag frame.

What should the default be? No lag frames at all?

RetroEdit commented 6 months ago

I think a sync setting is a bit inconvenient to use. Allowing the lag type to be switched on-demand to target a specific console or consoles would be slightly more convenient, although I realize that would only affect frame played back after the setting change and could get confusing.

To me, disabling lag by default would be worse than the current setting; the basic issue here is that lag marking is ambiguous, not that lag marking exists. To me, this issue is more something that I wanted to make note of rather than something actionable in the near future.

I agree a proper fix should be low priority, since it introduces another layer of complexity and potential for many new bugs. Long-term, I'd like to work on an improved base emulator interface that would be carefully designed to organize these kinds of use-cases gracefully. I had some planning in the direction a few years back.

RetroEdit commented 4 months ago

@alyosha-tas After hearing about how other consoles in BizHawk do it, the best default behavior is to only mark lag when there's lag on both GBAs.

alyosha-tas commented 4 months ago

So my current code does have lag only when both consoles are lagging. According to the commit log it has been that way since august. Can you give an example where you are not seeing this behavior @RetroEdit

RetroEdit commented 3 months ago

I think you're correct. I would still benefit from more configurability, but I'll look into implementation myself if/when I end up doing more multi-GBA TASing.