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

No warning or error is given when playing back a movie with a different firmware than it was recorded with #2498

Open
Sanqui opened this issue Nov 29, 2020 · 5 comments
Labels
App: EmuHawk Relating to EmuHawk frontend Repro: Affects 2.5.2

Comments

@Sanqui
Copy link

Sanqui commented Nov 29, 2020

The movie was made in BizHawk version 2.5.2 and with the Sameboy bootrom (free to distribute). I'm attaching both as a zip as GitHub doesn't allow other file extensions:

bizhawk_sml_movie.zip

When loading this movie into BizHawk with a different bootrom loaded, BizHawk will just attempt to replay it and it will desync. It should give some sort of warning.

This is happening on Fedora but I believe @CasualPokePlayer reproduced it on Windows.

image

@YoshiRulz YoshiRulz added App: EmuHawk Relating to EmuHawk frontend Repro: Affects 2.5.2 labels Nov 29, 2020
@nattthebear
Copy link
Contributor

Ideally, the firmware system should temporarily service firmware requests with the hash specified in the movie when loading movies.

@alyosha-tas
Copy link
Contributor

@Sanqui How did you make this movie? GBHawk should only load with the official BIOS files. I can't play the movie in 2.5.2. with only the Sameboy BIOS in the Firmware folder.

@Sanqui
Copy link
Author

Sanqui commented Jan 10, 2021

@JL2210 made this movie, but I can sync it with this setting:
image

I presume he reacted to this prompt to choose a firmware file, and just picked a (free) firmware he had on hand.
image

@alyosha-tas
Copy link
Contributor

Ok, so you can right click on a firmware and set customization, I didn't even know you could do that.

Anyway, the movie firmware hash doesn't get sent to the core constructor, so this case will always be missed.

I guess it could get sent in with GameInfo.FirmwareHash, but the rom loader which creates the core doesn't know about it either.

Currently, the queued movie information which contains the hash is not accessible from where we need to get it in MainForm.

So, fixing this would be a pretty significant refactor.

@alyosha-tas alyosha-tas changed the title GBHawk doesn't warn when loading a movie made with different firmware Firmware hash in movie header is not accessible to cores, which can lead to desyncs in playback Jan 10, 2021
@nattthebear nattthebear changed the title Firmware hash in movie header is not accessible to cores, which can lead to desyncs in playback No warning or error is given when playing back a movie with a different firmware than it was recorded with Jan 10, 2021
@YoshiRulz YoshiRulz added this to the 2.8 milestone Feb 5, 2022
@YoshiRulz YoshiRulz modified the milestones: 2.8, 2.8.1 Feb 19, 2022
@YoshiRulz
Copy link
Member

YoshiRulz commented Feb 26, 2022

Remaining work:

  • Expand check to cores using FirmwareSHA1 (seems to be old+new BSNES, CPCHawk, PCEHawk, and ZXHawk)
  • Make FirmwareManager scan for and remember all options, not just the final customisations (and use these when calling from CanProvideFirmware)
  • Set a temporary override dict on the CoreFileProvider when loading a movie (not sure when/where to clear)
  • Allow FirmwareManager to apply patches when calling from CanProvideFirmware

@YoshiRulz YoshiRulz removed this from the 2.8.1 milestone Feb 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
App: EmuHawk Relating to EmuHawk frontend Repro: Affects 2.5.2
Projects
None yet
Development

No branches or pull requests

4 participants