Posts for Alyosha

Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
After resyncing to dev build and using my RAM clearing cart, I was able to get Adventures of Tom Sawyer to sync on console. It lost a few frames but is mostly the same: Link to video I am encountering more runs that use both uninitialized RAM and the DMC channel. These runs are probably the most difficult to make work because you need to clear the RAM (which means turning the console on) but the DMC initial state requires the console to be off for at least a few seconds (which will likely undo most of the effect of clearing the RAM.) Very unfortunate. I don't have a good solution for these cases. Maybe changing the RAM chip to one that starts in a known state? Oh well, just another example of how messy real world effects can be.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I have mega Man X V1.1 so I tried the password glitch run, which surprisingly wasn't too hard to resync to BSNES115: https://tasvideos.org/UserFiles/Info/637786637961602621 Unfortunately the run desyncs at the the second Vile fight. Here is one example (I tried 3 times all with slightly different results): Link to video Even though it doesn't work I still think it's cool to see it get that far.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
https://tasvideos.org/1116M screenshot broken on this one.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Great write up! I'm not really surprised you are getting desyncs with all the in between steps you have to do. Do you think working with original hardware from the time period would give better results? Would it be harder or easier to work with?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Thanks to Morilli upgrading the BSNES115 core with the ability to do poll based dumping, I'm making some progress in SNES verifications. Mario All Stars to start: Link to video Still some obstacles though, Battletoads desyncs randomly, for unknown reasons. I think a good direction to look into would be to see which games wait for the audio hardware and which don't. Then at least if something desyncs we can know for sure if it's audio or not.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Strider and Bionic Commando are the only current examples, so ~2/150 runs encounter this issue. So yeah maybe a few others encounter this issue that didn't work before, but most failures are probably just inaccurate emulation or uninitialized RAM. Anyway, I only have a few cases left where I both have the game and a syncing run of it to test, so please let me know if any other interesting looking cases pop up because I'll be looking for new / useful things to test.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I dumped the run with frame based inputs, tried a few times to verify and always failed at first screen glitch. here is the file: https://github.com/alyosha-tas/NES_replay_files/blob/main/strider_f.r08 Tried again with poll based dump, worked first try.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I don't filter out latches if I can avoid it, it's not how a real controller works and introduces a potential source of error (which games do encounter ex Bionic Commando.) But ill dump by frame and try it later today and see what happens.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
There are 2 start presses in the .r08 file because the controller is polled 2 times in the same frame. All my verifications (except for Metroid where the bot has issues) are done based on input being polled/latched. If input is latched 3 times in a frame, 3 copies of that input are sent to the .r08 file.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Bigbass wrote:
In the video description, the bk2 file you provide doesn't seem to match the r08 dump; and I'm not able to get either to work on my console.
Are you using the dev build and the poll based dump script? EDIT: also you probably need to use an original cart from power on.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
https://tasvideos.org/3944M Not sure if this is specifically related to the new site, but this publication should be the Ubi Soft game, not Taito.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Link to video Here is a resync of Strider console verified. This one lost about 2 seconds in the resync process due to general difficulties making the inputs work, but I did the best I could. This is a glitchy run, and the original in FCEUX desynced on console right at the first glitchy part, so this is another good data point to check accuracy against.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I tried adjusting lag definition on the BSNES 115 core, and started getting some good results. Getting desyncs but I'm not familiar enough with SNES to make anything of them yet. Link to video It's a start though.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Link to video I console verified a resync of Rollergames. I had some trouble syncing this one to NESHawk so it's slightly different then the original in some places, but the important thing here is that I had not previously used this game in developing NESHawk, so it's a good indicator that I didn't accidentally fine tune emulation simply to the games I was working with. There are some edge cases left that are pretty difficult and will require a rewrite of a big chunk of code, but they shouldn't come up in actual games, so I'll wait for test ROMs to become available to verify the expected behaviour before working on them. For now, progress is blocked not by emulation but by not having any runs that actually sync on the updated core.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
With some more help from Fiskbit in working out some edge cases, and puzzling out a few remaining unknown effects myself, the milestone of being able to console verify NES games with full DMC emulation is finally being achieved. The end result is verification of a resync of Super Mario Bros 3 Warpless: Link to video At the moment, I do not have any TASes known to desync on console due to emulation issues. Other games using the DMC channel also work, such as Tiny Toon Adventures 2: Link to video (I also have a TAS of Time Lord that syncs on console up to the last boss but very unfortunately desyncs due to uninitialized RAM.) Starting with 2.7.1, most NES games should be console verifiable with NESHawk.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I didn't realize just how many verifications happened in 2021, that's pretty cool. Thanks to Bigbass for making things more organized as well, it really helps with getting a big picture idea of where work needs to be done. NES verifications really accelerated last year, and there is still a lot of potential left, I'm really hopeful 2022 will see some more high profile games too like the Mega Man series. It also has to be said that a lot of the easy stuff is done now, a lot of difficult work lies ahead to advance verification into new consoles, but that's also where the fun is, I'm looking forward to it.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Great work and congrats to the dev. team, site is looking good.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
ThunderAxe31 wrote:
Here is a movie that I'd really wish to see getting console-verified: #7247: Darkman425's GB The Final Fantasy Legend in 35:57.10 Don't mind the fact that the sync settings of this movie have GBA mode to False, it also synced after setting GBA mode to true.
Done! https://youtu.be/R2KtkdPXI3g
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Award Suggestion: Best Submission Text Submission texts are my favorite part, I almost always get more entertainment value from reading them then from watching encodes, I think they should get more recognition.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
After fixing numerous subtle bugs in IRQ/NMI handling, i finally have a run of tiny Toons that makes it to the end of the game on console. The current run is here: http://tasvideos.org/userfiles/info/76487677575343984 Not submittable as a new run in it's current form as it's longer then the published run by a few seconds, and I think with some good luck manipulation it can be a few seconds shorter, but it's a baseline for now. I believe the only remaining issues involve edge cases of disabling the DMC channel, getting really close to correct DMC emulation now. Time Lord can now beat the second level on console due to implementing DMC IRQ delay that surprisingly went untested until now, so making progress there as well.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Thanks to Fiskbit and Lidnariq from NesDev, I was able to implement some new findings related to DMC DMA. Now some DMC runs are starting to work for the first time. For example this is the first time ever I have gotten past the third level of Tiny Toons on console: I'm going to try to get a full game run of Tiny Toons working next, then probably Ninja Turtles if that works. This isn't quite the last step for DMC games, as Time Lord still needs some edge cases worked out, but should be getting really close now.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Finally able to start doing some more verifications. here is mickey mousecapade: [3000] NES Mickey Mousecapade by Alyosha in 07:16.58 https://youtu.be/pyij77vgYuY
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
http://johnsarcade.com/nintendo_vs_ppu_info.php I think this is the most complete resource available for dip switches and their effects. Implementing what you described would be a lot of work, since the name of each switch would have to vary by game, but most of the information seems to be there. Maybe just compiling all the info into a one document reference would be a good start? I'm personally not interested, but such a thing would be nice to have.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
After some more research, I have updated the power up state of NESHawk again. With this new state, now all available APU tests pass at the same time. This was not the case with the previous state, in particular count_errors_fast gave a result that I never saw on console. Fortunately, the new state also has high compatibility. Most of the previous timing sensitive games work with only minor tweaking of inputs, including Battletoads and Nightshade. Some games will require new movies, Roger Rabbit doesn't work anymore (but that's ok since it was slower anyway by a wide margin.) Excite Bike also doesn't work, but I probably just need to put some more time into that one. I am in the process of updating movie files and .r08 files and will be replacing them in the repo when I get a chance. I did some test runs with Tiny Toons in with the new state, but it desynced at the same point (but in a different way.) So, I still need the last few DMC edge cases working, but at least now everything is consistent. I have reverted the above changes pending further testing, as that state seems to have very low probability and doesn't work with one of the tiny Toons DMC test runs I use.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Some interesting new quirks are being discovered in the NES by the folks at NesDev. In particular, OAM DMA will read data from the external bus whenever the cpu is accessing the external bus. One implication of this is that there are 0x20 bytes at 0x4000 that OAM DMA can read but the CPU cannot (because the CPU will always access registers there.) It works in the other direction too, OAM DMA will access registers if cpu is executing from register space. (Setting this up is very non-trivial, the test ROM Fiskbit came up with is a pretty good emulator test just to get the setup right.) I just implemented this into NESHawk: This doesn't really mean anything for TASing, I just think it's cool to see new things still being discovered.