Another approach to the SNES besides a clock mod is adaptive playback where you intercept the video signal and wait for a certain pixel to appear a certain color. This would work for games like Mega Man X and Battletoads where RNG isn't the issue. For example in Mega Man X I get desyncs around closing text boxes, where due to audio clock randomness there is basically a three frame window where the next action could be taken. In emulator I can easily match the first such event, but there are many of these 3 frame windows throughout the run, and I've had no luck matching them all (these include each refight for example.) This is easily fixed by adapting to when a text box fades or when an explosion ceases. Obviously this wouldn't help for runs that require cycle exact timing between emulator and hardware, but it's a tradeoff with having to mod the system.
I'm starting to test some of the longer SMW ROM hacks and to my surprise the first one i tried, Super Dram World 2, worked right away after syncing to Morilli's dev build:
Link to video
So that's pretty cool. I remember base SMW to be pretty finicky, and since this is twice as long as that one I didn't expect it to work. I'll try some of the other ones that are 2MB as well.
Since this worked I guess it's worth it to get some 4MB EPROM's for some of the other hacks too.
I also retried the homebrew game Jet Pilot Rising, and I was able to get a resync of the run, but was unable to get it to work on console. It desyncs very quickly in the first level. Currently I don't have any heuristic on which games / runs should work or not, it's pure trial and error.
EDIT: Thanks to RetroEdit's resync script, I also got Kaizo Mario World 2 to work:
Link to video
Technology!
More notes.
Don't hit the yellow switch: Desyncs some time after the voice messages ~ 20 minutes, sensitive to audio frequency.
Kaizo Mario World 3: crashes on console when entering the final level. I asked about it on SMW central (the issue is known to them) and opened an issue for it in Ares. The crash is not specific to TAS frame perfect inputs, even just loading a save RAM file and manually proceeding to the last level it still crashes. There is a patched version which apparently doesn't crash, and the TAS does sync to it, but then it desyncs on playback for unknown reasons.
Super Metroid: Is resyncable but is extremely sensitive to audio frequency, even going from 32040 to 32045 causes problems, unlikely to make much progress here.
Next testing I will do is with 4MB SMW ROM hacks.
Joined: 1/24/2018
Posts: 394
Location: Stafford, NY
Alyosha wrote:
Don't hit the yellow switch: Desyncs in emulator around 15 minutes in, it's pretty boring so I didn't look more into it.
Looking back in the discussion thread of that submission, I noticed that around 15 minutes in is when the music stops playing, so that's probably when the desync occurs. Timing changes?
c-square wrote:
Yes, standard runs are needed and very appreciated here too
Dylon Stejakoski wrote:
Me and the boys starting over our games of choice for the infinityieth time in a row because of just-found optimizations
^ Why I don't have any submissions despite being on the forums for years now...
Don't hit the yellow switch: Desyncs in emulator around 15 minutes in, it's pretty boring so I didn't look more into it.
Looking back in the discussion thread of that submission, I noticed that around 15 minutes in is when the music stops playing, so that's probably when the desync occurs. Timing changes?
Oh, my mistake, 25 not 15, Mario hits the switch at 25:11 when I change the audio clock from 32040 to 32045, though nothing obviously desynced before then.
EDIT: got it to sync in emulator but desyncs on console, presumably due to the voice message loading / playback.
I got a 4MB cart working (this one: https://www.muramasaentertainment.com/product/snes-advanced-dip42-4mb/ )
I tried This Hack Needs a Name, but it desyncs after the first level, seems like an extra poll happens before save finishes. Tried default BSNES115 settings and my console tuned settings, no difference.
I think this is the end of the road for this round of SNES testing. Further progress needs something new.
EDIT: Extra notes:
Nonsense: Timing sensitive, RNG on 1st boss?
Celeste: Resync didn't seem to work, default settings desynced