Joined: 11/20/2004
Posts: 236
Location: United States
Emulator InformationEmulator:Visual Boy Advance Re-RecordingEmulator version: v23.6 svn480
Problem?: De-sync due to SRAM/clock settings...?
----------
I have a rather odd scenario which I'm not sure can be helped, but I figured if anyone could, it'd be the guys who modified the emulator.
Long-story short? All but one of my recordings in Pokémon Crystal de-synchronize upon playback. And I'm 100% sure I know why.
Recording 1 was started using the "From start (power-on)" option which clears the SRAM.
Recordings 2-7 were started using the "From reset (SRAM)" option, which does not.
In using that choice, however... apparently, certain counters, variables, and whatever else didn't line up right when trying to play the footage back.
I'm a little irritated this happened, though I understand why. If I'd started recording using the "From now (snapshot)" option after setting the time, everything would probably be fine. Live and learn. On top of that, I know Super/Game Boy/Color emulation in Visual Boy Advance is a little iffy compared to a lot of other emulators, such as GBG BGB and BizHawk (using Gambatte's cores), so I guess I'm not terribly surprised...
Anyway, to get to my my point, I was wondering if there was anything I could possibly do to salvage these movie files. I'm thinking not, but maybe someone out there knows something I don't which would be helpful...
Thanks in advance!
(And if anyone's curious, this isn't for a TAS project. I just like Re-Recording's movie options more than vanilla VBA's.)
I still wince when your Endless levels come up.
As far as salvaging the VBM files... am I correct in assuming that recordings 2-7 play back correctly when you have no SRAM file?
One thing you could do is hex edit your movie files. According to the movie file specs page VBM address 0x014 carries the flags for movie start. If these playbacks are supposed to start clean, 0x014 should have a zero value.
Directly hexing in a starting savestate is outside the scope of my knowledge, but could probably be replicated by playing back the movies in order, making a savestate-anchored 'recording' with no inputs, then diff'ing the old recording with the empty one.
Joined: 11/20/2004
Posts: 236
Location: United States
I hadn't thought of trying that... and unfortunately, it seemingly made no difference whatsoever. They punch in a seemingly random time, seem like they play correctly for a little while, then usually during the first random battle, the movies just go full-derp. Slowing things down, it almost looks like the input is running a little faster than the game, or something... And playing back the same movie often returns different results for random encounters and even setting the time. Even stranger, though... I just noticed that if I stop the movie prematurely, the in-game time radically shifts (which can be pretty funny, but not very helpful).
But I think you're right. Making these recordings and tying them to save states is probably the better way to go, given the mechanics of the game. Not sure if I can figure out how to associate current movies with newly-made save states, though...
Thanks for the input! Oh, and...
I'm sorry.
Hee hee hee...
Can you upload the VBMs to userfiles, and post the hashes for your game dump? I want to have a look at what's going on, maybe there's an easy fix (or at least a not-impossible one)
Joined: 11/20/2004
Posts: 236
Location: United States
Mmm... is MediaFire alright, instead? I don't want to waste server space on something that's not even for the site.
I uploaded it over here, if so. I also included a text file that has the hashes and stuff (obtained from ROM Hasher) within the ZIP.
I'm playing around with hex editing but I don't think I'll be able to make these sync because of the Real-Time Clock issue. I tried flipping the RTC bit in the movie file and the character wound up fighting a ratatta on Thursday Morning.
You may have to start over from part 2.
Saying VBA is a little iffy for DMG and GBC is more than an understatement. VBA is utter crap.
VBA is so bad that it causes random softlocks / crashes in a few specific games (Dark Duel Stories for example, randomly softlocks after a duel due to a memory timing error, which also randomly causes card ID 0x00 Blue-Eyes White D. to drop from every opponent).
It also loads the wrong opponent's data from time to time in a GBA game, Reshef of Destruction (confirmed by several people).
(and the emulator you're thinking of is BGB, not GBG :P )
TAS i'm interested:
Megaman series, specially the RPGs! Where is the mmbn1 all chips TAS we deserve? Where is the Command Mission TAS?
i'm slowly moving away from TASing fighting games for speed, maybe it's time to start finding some entertainment value in TASing.
Joined: 11/20/2004
Posts: 236
Location: United States
----------
Quick update for the curious: Starting from a point after setting the clock did indeed fix my desync issues completely. I'm back up to five parts (of the original seven) without error!