TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.2k stars 385 forks source link

[Vboy] Change the Sync Setting to a Non-Sync Setting. #1695

Closed Spikestuff closed 5 years ago

Spikestuff commented 5 years ago

Wow, we're getting an issue track for Virtual Boy. No it's not a core update... even though it does need that too probably.

DisableParallax should not be a sync setting requirement. image image

image (Top is right, Bottom is wrong in regards to dumping.)

This doesn't affect sync at all whether disabled or enabled. This is a setting which is created mainly for the TASer/runner to not deal with the 3D mode that is the Virtual Boy and have a single screen, it's fine and all but wrong for final dumping on an encoders end. This should not be a thing forced, that we have to go into the SyncSettings file and adjust in, and then get replaced when it is actually used.

This should be a straightforward fix, but the core's waterbox, so have an issue tracker about it.

nattthebear commented 5 years ago

This doesn't affect sync at all whether disabled or enabled.

Citation needed

nattthebear commented 5 years ago

Never mind that. It's specifically called out by the mednafen authors as a sync affecting setting: tha docs. Closing ticket as moronic.

Spikestuff commented 5 years ago

This doesn't affect sync at all whether disabled or enabled.

Citation needed

Author used Disable Parallax after publication I reencoded it without that "shit" feature being enabled: http://tasvideos.org/4052M.html

Also what you're pointing out is literally just what I'm requesting for again.

Reopen it or remove the feature. Don't call this moronic when you can't be bothered fixing something or provide an actual explanation instead of going "tha docs".

Made an edit to what I wrote clearing up some repetition.

Cyorter commented 5 years ago

DisableParallax affects savestates only, not movies

Spikestuff commented 5 years ago

Thank you @Cyorter for putting that in.

Actually, while we're here what you're proclaiming would mean doing the reverse would desync right? Well. If that's the case.

Here are 3 of the currently published VBoy TASes that have the feature disabled, switched to enabled. These all pause on final frame, these are all correct.

Nester's Funky Bowling image

Teleroboxer image Because it's a black screen I'll show you the credits sequence which is a few frames later: Teleroboxer (Japan, USA) 2019-11-06 13 03 06

Waterworld - Game loops at end of 16. image

And before you even think about it, here's the zipped file for those three so you can test yourself. The one for Wario Land is in the discussion thread waiting to be replaced in however long it takes.

That's a case of 4/4 TASes where the sync setting has had the opposite of what's set done to it.

Reopen this tracker.

YoshiRulz commented 5 years ago

If it only affects save states and not SaveRAM then it doesn't need to be sync'd. From a cursory look at the source code it seems the value is only read during rendering.

nattthebear commented 5 years ago

Again, the Mednafen authors, who are the ones that wrote this core and know how it works, specifically call out that setting as one that can affect sync.

Caution: Any settings that change emulation behavior as seen from the emulated game are shown with the setting name bolded in the table. One should be conscious of these settings if one has changed them from the default values when using network play or movies, as they can cause desychronizations if not set the same among hosts(or between the recording emulator and the playing emulator).

So no, we won't be moving sync settings that are actually sync settings to the non sync settings category.

zeromus commented 5 years ago

clarification from mednafen dev: games can read the framebuffer, and this setting affects what gets written in the framebuffer; so games can read this setting. @Spikestuff your analytical process is poor. It pains me to have to explain this, when you could self-service by gaining life experience or studying logic, so I will just point out that based on the explanation from the dev, we could construct a trivial test program which would desync.

Spikestuff commented 5 years ago

Then I have a suggestion. Remove the feature or do something specific (like you've done to snes9x) cause this isn't something that shouldn't be available for a TAS.

@zeromus I'm fine with the analytical process being poor especially when you know what I'm after in the end. What's more annoying is that he up and asked for "citation needed" we have four TASes that don't desync after switching the sync setting and as @Cyorter mentioned this apparently is only affected during TASing. Do you have an extreme case from the mednafen dev where it should affect the framebuffer so we can actually test it with?

nattthebear commented 5 years ago

What's more annoying is that he up and asked for "citation needed" we have four TASes that don't desync after switching the sync setting

It's not even that "4 games worked" isn't enough evidence, as alluded to by @zeromus, it's not even the right way to approach the problem.

Remove the feature

Remove a feature entirely because it doesn't help your one use case? I don't think so. Bizhawk provides a lot of different things for a lot of different users.

Spikestuff commented 5 years ago

@nattthebear if you're going to do selective reading then do a better job at it.

or do something specific (like you've done to snes9x)

Keep in mind, I'm also using the factor of the consumer who wouldn't be using BizHawk for TASing as this is both a casual and a TASing emulator where it allowed snes9x and asked for a switch to BSNES when creating a movie.

And per your response to my "citation needed" comment I also wrote this which you conveniently also glossed over:

Do you have an extreme case from the mednafen dev where it should affect the framebuffer so we can actually test it with?

EZGames69 commented 5 years ago

If spike was able to dump the tas with the setting changed, and didn’t cause desyncs, I’m pretty sure that means it isn’t the sync settings.

Also so what if the mednafen devs say it is a sync setting, have you tested it yourself?

vadosnaprimer commented 5 years ago

When I made "savestate every frame" optional for the bsnes core, I tested how much faster it got and how much desync it introduced. It was reflected in the option description:

RDywz7E

Even if a sync setting only cases 1% of desyncs among all games, it's still a sync setting because it affects sync. If you test 99% of games and conclude it doesn't, and make it free to change on the fly, you may introduce unfixable desyncs that require the movie to be redone. Maybe you want unfixable desyncs in your TAS every time you lose in a lottery, but that's not what a TASing emulator is supposed to offer.

edit because don't want to add more comments to a closed issue: Even if none of the 22 licensed games read the framebuffer in that way doesn't mean homebrew can't. You should be able to TAS those too. --yoshi