Posts for Alyosha


Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
That doesn't sound right, non-sync settings shouldn't be part of the state or related to movie settings, I'll take a look at it.\ EDIT: fixed
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Dusting off this thread as I prepare for renewed NES console testing. Surprisingly there are some notable changes since I last looked at this. Probably one of the first important things to look at is this: https://forums.nesdev.com/viewtopic.php?f=3&t=18414 This glitch (currently unimplemented in NESHawk, but is in Mesen) actually effects a published TAS: http://tasvideos.org/3314M.html . It also occurs in Streemerz (but I can't tell yet if it effects sync.) The internal workings of Mesen timing have changed significantly as well. I used to be able to match execution between NESHawk and Mesen but as of 0.9.9 I am unable to do so. There isn't much testing here yet, could be interesting, maybe just using current Mesen will solve all the problems. Unfortunately, Sour has since left emulation, so if something doesn't work, it's not really clear what to do. I have several games lined up for testing: Donkey Kong: No agreement between NESHawk, Mesen 0.9.8, and 0.9.9, will be interesting to see what console shows. Nightshade: Again no agreement Bionic Commando: NESHawk and both versions of Mesen agree that this run should work on console, but it never has. Lolo 3: shows interesting power up timing variability between emulators Lots of interesting stuff to work on. My goal (still) is to see Streemerz work on console.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
EZGames69 wrote:
Just as a note, I did not add the console verification flag to this movie because the current video is of the old run, not the more current one. I can set it as console verified once a new video is posted.
New console verification video added to the submission.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Here are 2 runs I made, one to unlock 800cc and one to beat 800cc and unlock world circuit. I guess a real run should be done on world cup, but the 800cc one is pretty well optimized itself. Unlock 800cc: http://tasvideos.org/userfiles/info/69190303673171301 Unlock World Circuit: http://tasvideos.org/userfiles/info/71807288799326461
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Ok, thanks for your help anyway. HandsomeRudy removed as co-author and submission notes updated. I think this is a good place to wrap this one up anyway.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Did some testing of castlevania adventure in the dev build with updated gambatte. Execution is now identical up to a desync due to mode 3 timing.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
The changes were made two days ago.
movie.getinput(emu.framecount() - 1)
is what would make it break. Now it should just be
movie.getinput(emu.framecount())
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
After comparing video again, I realized that something wasn't right with how input was getting sent to the console. As it turns out, the recent fixes I made to fix the BizHawk issue with autofire broke the dump script (because it was decrementing the frame count from core, which it no longer needs to do.) After fixing that (updated script posted to OP), everything syncs just fine, there is no mystery here, only me not keeping track of stuff carefully. @CasualPokePlayer: this might effect gambatte too, might want to check input dumps in dev build. I did have to delay input in one spot because input was polled right on a frame boundary, nothing I can do about that one. It also syncs with or without the window timing fix, so I'll have to investigate that one on it's own some more. Gambatte will still need the mode 3 fixes and the end-of-VBL fix to work, but those are already known issues. So, I'm calling this one closed.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
CasualPokePlayer wrote:
Here are the tests the hacky "fix" made fail: https://cdn.discordapp.com/attachments/842947491435118622/845859569195417610/failed_tests.zip
Thanks, looks like GBHawk still fails about a dozen of those, including some single speed ones. The last time I worked on screen timing stuff was quite painful, hopefully nothing is too seriously wrong. I took a closer look at where things go wrong compared to console, and it's actually much earlier then I thought. The game turns on the screen mid way through a frame when it's ready to start gameplay, and this gives a helpful visual queue of how things are syncing. Here is what GBHawk and Gambatte show: and here is console: So something is wrong in between pressing start and game loading, I have no idea what, I don't think there are any sprites involved at this point. If I make GBHawk's VBL behaviour match Gambatte, then I do get the same screen as Gambatte, so it seems like there might be some new behaviour at play here.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Yeah this is a case where gambatte being tuned to older model GBC's is definitely making things difficult. Do you have a list of the other 38 tests that failed with your fix? I'd be interested to see how they fair in GBHawk. Anyway, after looking at tracelogs with GBHawk modified behaviour on VBL, and matching window enable behaviour to gambatte, the next place there is a desync is in a sprite + scroll mode 3 timing check. I'll take a closer look, but I'm pretty confident in GBHawk's mode 3 timing, and Gambatte is known to need some work in this area, so I think this is a problem on Gambatte's end. All of that being said, I tried a test run with a fixed window behaviour in GBHawk and it still desynced on console (almost made it to the rope but not quite) so something is still not right, this game is proving interesting for emulation.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I changed GBHawk's behaviour to match gambatte on the end of VBL just to see if it would otherwise match execution. After doing that it looks like GBHawk has an error in window enable. I'm still looking to see if an existing test tests this particular case. It's surprising that this relatively basic case hasn't come up before (activating window at LY>WY), still a lot of work to be done.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I'm starting to look at the console desync in Castlevania The Adventure (JPN, GB) Runs made in GBHawk also desync on console. Unfortunately, trace logs deviate between Gambatte and GBHawk even before there is any input. The immediate reason is that gambatte returns STAT mode 0 for 4 cycles in between vblank and the start of mode 2 on scanline zero. This behaviour can be verified to be incorrect (at least on GBP) with the test ly00_mode1_2-C.gb. I tried it on my GBP and it passes there, so this needs to be fixed before I can dig any deeper into it. I made an issue for this in Gambatte speedrun.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Doomsday31415 wrote:
... From there, it took a week or two to understand why it was randomly doing non-Open Bus commands while on Open Bus, and then decide to actually pursue this route that probably won't be verified on console due to what that would require.. ...
Oh so this probably can't be console verified without some new technology? That's a shame, oh well, maybe someday.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
That's crazy. How long did it take you to work everything out? yes vote.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Woah, any% time save and 0xA progress only days apart, incredible.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
EZGames69 wrote:
There was a problem I ran into with Super Cobra where the movie header didn’t list “PAL 1” to adjust the time for PAL playback, however I found that it still shows the incorrect time even if PAL 1 is on. I made a ticket here a week ago: https://github.com/TASVideos/BizHawk/issues/2684
Fixed in master.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Link to video (I had to mute part of the video due to copyright claim.) Catching up on some stuff. Here is a resync of Operation C that I console verified. The original does not sync in level 2, so I redid parts of it (the second boss is a few frames faster.) But I didn't keep track of lag in level 3 so I don't know if it's faster overall, it's too much of a hassle to compare to VBA.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
FCEUX simply takes 2 frames before turning the ppu on. It's hard coded in there. This is well known to be incorrect, but most games don't do anything before the ppu is ready so it doesn't matter in many cases. It really only matters for games that run their RNG in the idle loops between frame code. And since NES console verification is mostly poll based, and no polls are happening, it's almost invisible.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
HandsomeRudy wrote:
It's probably too late but: Round 43, faster solution: LRRRRLRRRRRRRUUUUUUULLLLLLLLRRRLLLLRLRRRRR I'm sorry I didn't find this earlier, my own TAS projects are keeping me rather busy. Also, I wasn't expecting to find anything.
I'll add you as co-author. I won't be re-syncing this for a while though. So I guess set it to delayed for now, unless HandsomeRudy makes a new bk2. It will be a few weeks before I get to it.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I updated the console verification video to match the current file.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
HandsomeRudy wrote:
Alyosha wrote:
http://tasvideos.org/userfiles/info/70745678207258995 ok here is a replacement file. Another 10 seconds cut so it was definitely good to look over everything again.
Round 78, faster solution: RUUUUUULLLLURRRDDRLLLLLUUUUULLURRRRRRRDRRULLLLLLLLLLLRRRRDDRRLLLLLLLLLRRRRRRUUUUUUULLLLLLLLLLLLLLLLLLDRRRRL
That's too many letters for me to follow, but I'm guessing you mean push the top block off the left edge before dropping down and moving the bottom block into place. This does save time, I'll get the movie resynced (again) and post a new file. Thanks for the tip. EDIT: New file: http://tasvideos.org/userfiles/info/70768304310313796
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
http://tasvideos.org/userfiles/info/70745678207258995 ok here is a replacement file. Another 10 seconds cut so it was definitely good to look over everything again.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
feos wrote:
I tried comparing the 2 video dumps, and it's a nightmare to figure out actual frame numbers that come from VBA, because it dumps the same frame several times on screen transitions and possibly in other situations. So maybe my numbers are messed up, but still worth checking. . . .
Slowly making my way through these. Some are false positives (seem to be some frame rules occasionally mess things up.) Others are mistakes, I also found some new improvements.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
http://tasvideos.org/userfiles/info/70526268622635359 Complete game WIP here. The refights are mostly the same as the original. There is a lot of extra lag once respawning in the main lobby after each fight, not really surprising considering how much lag has added up in the game so far. Also a lot of extra lag on Sigma, maybe destroying some of his green ball attacks can cut down on it, but sometimes that also causes extra lag too, I'll try some things and see what happens. I think this is close to done though. I console verified up to the start of Sigma 3, which is also good as it means all the extra lag is at least accurate to console.