Posts for Alyosha

Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
re there any (not input related) timing inaccuracies that come up from not having the SNES there?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
The TAS is unwatchably boring, but it's pretty impressive how fast you were able to put all this together. I'm not really familiar with the technical aspects of SGB (besides the clock issue between SGB 1 and 2), would TASes generally sync between Gambatte and BSNES? If there is some technical reason they wouldn't, what would it be?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Game: Bad Dudes Emulator: BizHawk: NESHawk, 2.6.3 dev Console Verification Device: TAStm32 Movie: http://tasvideos.org/userfiles/info/73986905672957577 Description of Desync: Initially desyncs because it needs an extra poll on console at the start of level 1, then desyncs in level 2. Research: This run initially starts from a reset, which might be part of the problem, but additionally the run won't even play back the first level properly unless there is an extra blank poll inserted right before inputs for level 1 start. I don't know why this happens. The game fiddles with the screen more then most games, turning rendering on and off between loading, maybe this is causing spurious polls in the bot? I don't know. If I do add in the extra poll, it syncs level 1 but then desyncs in level 2. Level 2 uses MMC3 IRQs, so this might be related to imprecise reset timing, but combined with the need for the extra poll there are too many variables to tell. The game also polls $2002 after loading between levels (most other games don't do much with it after initial start up) so maybe this is an issue as well if there is some unknown issue with $2002. Possible Next Steps: The cause of the need for an extra poll has to be understood. Maybe it is related to the need to always start the bot with one blank poll, and why Paperboy needs 3 blank polls. Status: Open
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/73958462647295157 There is a new-ish trick in 3-3 that allows you to beat the mouser with a star. The above test run saves about 7 seconds over the published warpless TAS this way. You can also see the trick in the current RTA world record video. The star running out also allows part of the boss defeated fanfare to be skipped. I don't know how to do the subpixel stuff, so the movie desyncs right after this, so I'll just leave this as a starting point for anyone interested. It does make the current run somewhat outdated.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Link to video So it turns out that Metroid Low % works but needs a unique set up compared to other runs. The game polls input in a very odd way. It polls player 1 input but then polls all over again for player 2. This seems to give the bot some trouble, and causes desyncs when using the usual poll based script. The frame based script however works correctly and without the extra blank input I usually need. After I applied these settings, I did not need to clear RAM for it to work. I also resynced to BizHawk but the non-lag inputs are the same (I think, wasn't keeping too close track.) So that is all of the current Metroid runs verified! The only remaining run of the a game that I have that should work but doesn't (that doesn't use DMC) is Silver Surfer. I'll still be trying it a bit more though. EDIT: Was able to get Silver Surfer working. I had to use a reset since apparently some RAM is decaying too fast while swapping with power off, but using 0 delay and holding reset while swapping from the RAM clear cart worked right away.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Here is Rad Racer as well: [2847] NES Rad Racer by FatRatKnight in 20:32.89 https://youtu.be/sXwDVEwIvDI Silver Surfer still fails, Metroid low % I think I need to figure out how to clear SRAM first, so that's it for now. EDIT: also Metroid Low % [1443] NES Metroid "low%" by Lord Tom in 11:08.78 https://youtu.be/3pSCEC1v99E
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Ah, I should have been more clear. BizHawk also uses the FCEUX start up RAM state, I just call it that since it originated from there. There isn't any particular reason to use it though, it's simply a convention. I currently don't have the hardware to check what RAM actually looks like at power on, I can't remember if it's been done in past somewhere either.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
[4349] NES Marble Madness by Aglar & LeKukie in 02:42.07 https://youtu.be/WjrZMKhZ-Y4 [717] NES Monopoly "4 CPUs" by FractalFusion in 01:07.67 https://youtu.be/HNFyfXa_V4U [4104] NES Monopoly by adelikat in 00:29.53 https://youtu.be/zpft_vg5VF0 These TASes are now console verified. They required RAM clearing of the console in order to work. The process is a bit finicky but I hope to have a few more done later in the week.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I tried browsing around in my usual fashion. Movie pages loaded much faster for me, which is nice. There seems to be a big lack of visual separation between just about everything though, and overall the site felt really dense, I found it pretty difficult to use (maybe this is just because it's still in development though.)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Since I'm pretty stuck on DMC for now, I decided to try to make a RAM clearing cart and test some games that relied on un-initialized memory. So far results are promising, I was able to verify Monopoly by running the cart, then turning off power and switching. no hot swap was required. Here is a console verification video: Link to video My NES is not the most reliable, so this process can take a couple tries. I'll be doing some more testing and hopefully can get a lot of the previous difficult games verified. One other note, for better or worse this does use the FCEUX RAM state, at least for now. EDIT: Here is the 4 cpu's run as well: Link to video
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Small update to The World is Not Enough sync issue. An updated version of the run syncs but only after a reset of the Game Cube. The game doesn't use uninitialized RAM in any way that I can tell, and has no SRAM, so I'm not sure why it only works from reset. From power on it desyncs consistently, and from reset it syncs consistently. Perhaps the timing offset from reset is slightly different, enough to offset the error from rounding and random polling time? I've never encountered this situation before, so right now I'm not really sure what's going on. EDIT: using floor instead of ceiling works from power on. Doesn't explain why ceiling works from reset only, but good enough for now.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Whiteted wrote:
A goldeneye hoard called 'TASpap' is releasing in just under 2 days time (10pm Saturday UK) and the name is kinda misleading but nonetheless I do have at least one IL TAS in it :) On https://www.twitch.tv/TheEliteGaming Runtime ~ 1 hour
Was able to catch the end of the stream just in time to see the new Dam TASes. Incredible strat, seemingly so simple yet unintuitive. Great work once again.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
NES Double Dragon now has a video verification: [3211] NES Double Dragon by Alyosha in 08:50.28 https://youtu.be/FtMmyxpyTkU
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I've made some good progress on DMC, the basics all work as expected. I made a test run of Ninja turtles where i press pause about a dozen times on frames where a DMC glitch occurs, which has the effect of skipping the pause. This run syncs through all of those pauses on console, but then desyncs on a sub weapon drop. This indicates that probably some edge case behavior is being missed. Tiny Toons similarly syncs through all DMC glitches but then desyncs on the mole boss RNG. These runs also need the behavior I mentioned in the previous post of skipping glitch polls on vertain addresses, confirming that behavior. I think some new test roms need to be made still though, I really need nesdev to be back up and running. One example of something that needs testing is encountered by Time Lord, where the DMC channel is disabled as a DMA is about to be triggered. What happens? It's kind of funny how all the DMC games I try manage to encounter the edgiest edge cases possible. Everything really does need to be perfect to work. So, I'm kind of stuck for now. Might try a few other games just to see what happens. If anyone has any suggestions of games they want to see tried let me know. Sometimes you never know which game will provide the crucial hint to make everything make sense.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I encountered a desync in The World is not Enough in both Gambatte and GBHawk: Gambatte: http://tasvideos.org/userfiles/info/73232337575963718 GBHawk; http://tasvideos.org/userfiles/info/73232329922675139 I'm not entirely positive, but I'm pretty sure this an input timing issue and not an emulation issue. The only difference between the GBHawk and Gambatte movies is that I had to add a few frames to Gambatte to account for the start up offset. Using the most recent Gambatte script I have, the run desyncs on console near the start of level 3. With the GBhawk script, it desyncs on the the code screen before the start of level 3. If I change this script to use 'floor' instead of 'ceiling' then it instead desyncs in the same manner as Gambatte. Haven't looked through trace logs or anything yet, but since both movies play the exact same input timing in the scripts seems likely.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Memory wrote:
FREE MATH BLASTER.
FREE MATH BLASTER!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
After a lot of head scratching, I finally managed to reproduce exact results for the count_errors tests. As it turns out, the way to actually get this correct is an undocumented behavior! When a DMC DMA happens, the address bus changes so that the DMC unit can read a sample value. The controller glitch occurs when the DMA happens on a controller read cycle. The controller shift register sees the address bus change to the DMA address and then back again, resulting in double clocking of the controller. However, if the DMA address happens to have the same bits set as the controller register (I think it is (DMA ADDR & 0x401F) == 0x4016 but am still narrowing it down) then there will not be an extra clock. I guess in hind sight this kind of makes sense, but still it's pretty neat to discover a new behavior on a system as well studied as the NES. Getting really close to correct DMC emulation now.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Thank you for the detailed report. I am in NES development mode for now, so my recommendation is to use Gambatte in the dev build for the time being until I can look further into this (which may not be for a month or so): https://ci.appveyor.com/project/zeromus/bizhawk-udexo/build/artifacts
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Making slow progress on DMC stuff, most of the pieces seem to be correct now, but timing is still off somewhere in some subtle way. It's hard to tell where exactly, might need some new more detailed tests. Some games are starting to work correctly though. I made some small tests of Ninja Turtles and Tiny Toons, and they now display the same behaviour as console. Another Interesting example is Time Lord, which uses the DMC channel as kind of a back up IRQ source. Here is a video demonstrating that you can get only one cycle of mushroom collecting with no backtracking, saving several seconds over the published run. As you can see in the video though, it desyncs before beating the second level, but it's still good to see some real prgoress. Link to video
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
GJTASer2018 wrote:
Alyosha wrote:
NESHawk currently does not match any of the 4 options, as expected since no DMC games work. But now I very clearly know what I'm looking for, should only be a matter of time.
So once the DMC games work would NESHawk be close to 100% emulation of an actual console?
Pretty much yes. It's the last major step. Although I should qualify that as saying it's only true for consoles similar to mine, which is pretty common but might not apply to top loaders. Currently though I'm only able to match about half of the behavior seen in that test ROM, so something still is not exactly right.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Finally got a dev board up and running with count_errors.nes running. The results are promising, with only 4 different start up states, so it seems to be deterministic (at least after a decently long power cycle.) I also determined that the TAStm32 responds correctly to the DMC glitched polling with the --overread option used. NESHawk currently does not match any of the 4 options, as expected since no DMC games work. But now I very clearly know what I'm looking for, should only be a matter of time. If anyone is interested here is a video where I turn the NES on and off for about 30 minutes with test ROm used: Link to video
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
No I didn't resync it, I just made a brief test run, just playing through the first level. Paperboy does use the DMC channel for certain sound effects, (glass breaking, car horn, etc.) and this does occasionally produce a controller glitch (doesn't really matter how many times per frame the controller is polled.) Once I get some dev boards working the first thing I'll check is if the bot responds the same as a real controller (and what options make that happen.)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Link to video Nightshade does work currently. For Paperboy, I mean that when I run the bot script, I need to use --blank 3 instead of the usual --blank 1 to get the game to start. It has nothing to do with emulation differences. I always need 1 blank frame, I guess the first input gets eaten somewhere by the bot, or maybe just by the power on pulse or something, but I have no idea why I need 3 for Paperboy. It could be DMC related, and what I am really seeing is 2 inputs getting lost to DMC glitch, I just haven't investigated it much yet. The next MMC3 game I am looking at (not using DMC) is 8 Eyes, but converting it to BizHawk did not require any resyncing so probably it is not timing sensitive. I'll try it on console this week hopefully. I'm also trying to resync Bad Dudes but it desyncs pretty painfully in the second level, not sure I can fix it.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
theballaam96 wrote:
Alyosha wrote:
Well, the benefits you are getting from SRAM come from previously entered levels. To me this seems counter to the goal.
If necessary, I can provide a movie which generates the SRAM state but with the SRAM generated movie also complying with the NLE ruleset. If that is what you are getting at
No, it's just that you are restricting yourself to playing through the levels in order, while using the benefits you got from in fact already having been in all the levels previously (regardless of the order you did so.) It just seemed like an odd combination of things to me. But whatever, I suppose in a game this glitchy you have do something to get a 'middle of the road' style goal choice. I'll still give it a yes vote.