I have an interest in console-verifying TASes and resyncing movies to newer, more-accurate emulators can assist with this.
I also generally like to have my own movies on the latest version of the emulator I'm using if possible.
I have some tools for automating resyncs, but I still have to polish them a bit before I'm ready to publish them for general use.
I'm mostly focused on GBA games currently. There are 329 GBA games in the site catalog (as of 4 October 2023). I generally start by resyncing to the newest BizHawk version to see how sensitive the game is to emulation changes. Afterwards, I attempt to sync to GBAHawk.
Successful resyncs
- GBA Donkey Kong Country
- User file: Technickle's GBA DKC ''Warps'' in 43:59.71
- Resynced to US version to compare to a WIP TAS (there's one minor regional difference at the end: Cranky has two dialogue boxes after K. Rool is defeated in the Japanese). Overall, the Japanese version is a bit faster on mGBA in a few dozen loading screens, but the dialogue boxes make it slower overall by frame count in a TAS. For TAS purposes, the movie rules ignore these types of regional differences anyway.
- TODO: upload or link to on TASVideos
- TODO: [3465] GBA Donkey Kong Country "101%" by Avanor_ in 1:25:57.64 partially resynced, but it's on the VBA core of BizHawk, so it desynced somewhere random.
- Save type: EEPROM 512 bytes
- User file: Technickle's GBA DKC ''Warps'' in 43:59.71
- GBA Donkey Kong Country 2: Diddy's Kong Quest: I resynced the published any% TAS to a new BizHawk version and I'll post a GBAHawk resync soon.
- TODO: link to it on the TASVideos site...
- GBA DK: King of Swing: I resynced all three movies to GBAHawk, but it was more a matter of converting the inputs to the GBAHawk schema. It was almost entirely frame-for-frame identical to the original movie.
- TODO: link to it on the TASVideos site...
- Save type: EEPROM 8kB
- GBA Legend of Zelda, The: The Minish Cap
- Original movie: [3228] GBA The Legend of Zelda: The Minish Cap by Tompa & quo in 1:40:02.18 (VBA-rr v24)
- Resync to BizHawk 2.9.1
- (Compared to VBA-rr v24) net +4515 frames; +132*16 = +2112 frames were from mGBA implementing save delays
- Resync to GBAHawk 2.0.1
- (Compared to BizHawk 2.9.1) net +489 frames; -8*16 = -128 frames were from 16 save differences
- TODO: attempt console-verification
- Save type: EEPROM 8kB
- GBA Shrek 2: I made a TAS of this game, but the lag emulation was very inaccurate. The newest GBAHawk 2.0.0 resync should be fairly close to real-console (EEPROM save timing is the only specific issue I'm aware of, but there could be other accuracy issues).
- Original movie: [5469] GBA Shrek 2 by RetroEdit in 21:15.53 (BizHawk 2.9.1)
- Resync(s): Resync to GBAHawk 2.0.0
- Save type: EEPROM 512 bytes
- Console verification status: apparently desyncs in level 5-4 around 19:18 where Shrek jumps over the flames.
- GBA Wario Land 4
- [1736] GBA Wario Land 4 "Hard" by andymac in 40:04.88 (VBA-rr)
- Resync to BizHawk 2.9.1
- (vs. VBA-rr) Diff: net +911 frames. Brief perusal says this is extra in-game lag + load times (also, +272 at the beginning for added GBA BIOS).
- Resync to GBAHawk 2.0.1
- (vs. VBA-rr) Diff: net +952 frames. BizHawk 2.9.1 is only 41 frames faster!
- Resync to BizHawk 2.9.1
- Save type: SRAM
- Notes: 3 TASes, one from VBA.
- [1736] GBA Wario Land 4 "Hard" by andymac in 40:04.88 (VBA-rr)
WIP resyncs
- Other Wario Land 4 publications
Failed resyncs
- GBA Castlevania: Aria of Sorrow
- Original movie: [1478] GBA Castlevania: Aria of Sorrow by Kriole in 20:58.62 (emulator: VBA-rr 1.72 v22)
- Resync attempt: userfile (emulator: BizHawk 2.9.1)
- Resync failed in the room at frame 14402 or 4:03 (https://youtu.be/xPpXbxOxceM?t=243); one of the enemies had a different movement pattern and damaged the player.
- I'm a bit surprised it was able to sync so far with simple lag adjustments. There might be some hope for resyncing the full run. I'm not sure if it desynced at some point before, but the RNG on this screen would alternate between matching and not; perhaps there were some RNG inconsistencies before. I'm not sure if it's a matter of the game storing some game state that desynced earlier and incidentally caused issues on this particular game screen, or whether there were emulation differences in how this screen's actions were processed. One thing I've noticed throughout the entire run is that the flame light patterns are different.
- There are some scripts and memory address resources, so I might come back in the future to investigate.
- GBA Donkey Kong Country
- Original movie: [3465] GBA Donkey Kong Country "101%" by Avanor_ in 1:25:57.64 (BizHawk 1.12.2, VBA-Next core), target emulator: BizHawk 2.9.1, mGBA core
- My automated resync got fairly far. I'm not really sure why it failed in one of the later Candy's Dance Studios when all the earlier ones synced up properly, but it seems overwhelming likely that it could be properly synced with manual adjustment.
- TODO: diagnose why it failed and hopefully fix it.
- GBA Incredibles, The: Rise of the Underminer
- Original movie: Userfile: "WIP 004" (BizHawk 2.9.1), target emulator: GBAHawk 2.0.0 (?)
- Unfortunately, this game seems to have a lag-independent RNG mechanism. Overall, with custom RNG manipulation, this might be approachable, but it's outside my current goals.
- GBA Legend of Zelda, The: A Link to the Past: input poll resync failed early on in the menus
- Original movie: [2139] GBA The Legend of Zelda: A Link to the Past "Palace of the Four Sword" by Tompa & Yuzuhara_3 in 05:16.73 (VBA-RR v24)
- Target emulator: BizHawk 2.9.1
- This desync might be fixable if the automated resync was sensitive to the game logic context. Or it might fail if the RNG is dependent on the older behavior. But it's a short enough TAS, and ALTTP doesn't seem like it would have RNG cascades, so there may be ways to mitigate it.
Resyncs proven impossible
- GBA Spyro: Season of Ice
- Save type: EEPROM 512 bytes
- Original movie: [5608] GBA Spyro: Season of Ice by McKniggediKnack in 49:18.24 (BizHawk 2.6.2), target: BizHawk 2.9.1
- A "proper" console-verification of the publication will never be possible, but a basically equivalent run is likely doable, though finnicky.
- The speedway autoscrollers are dependent on an LCG RNG, and the RNG is seeded by the frame count which increments basically every frame, lag + loading frames included. GBAHawk will have more lag than mGBA so the frame count that seeds the RNG will never be able to match without significant time loss. However, it is probably possible to redo the autoscroller sections to have a comparable equivalent run that completes the whole game. Also, the lag is a bit messier to work with than most games, because the game still polls input and does game logic during "lag" frames. Fortunately, resyncing lag adjustments still seems possible and I had luck manually resyncing between BizHawk versions.
- I do have a script for marking game lag, but automatically fixing it might be difficult at the moment. There's not necessarily one unambiguous handling that I'm aware of.
- I would imagine Spyro: Season of Flame will have a similar issue.
See also
- ConsoleVerification wiki page
- Resyncing movies officially forum topic