Posts for Alyosha


Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Warp wrote:
So, I ask once again: Who is the target audience of tool-assisted speedruns? How do you define "speedrun"?
In general I don't think there is a target audience, after all we do this as an enjoyable hobby, we aren't selling anything. I don't see the need to use formal business terms or come up with a definition to what we do. Even in the context of GDQ's, it's more important that preparers and presenters are themselves interested and fascinated by what they are doing, more then trying to cater to some 'target audience.' That earnest interest shows through in the presentation.
Samsara wrote:
Trust me, I'd really rather not see a flood of "EVERY GAME IN 00:02" hitting the site and replacing all of the actually fairly unique GEG runs we already have published, and I think the consensus is the same with almost everyone else as well.
I guess I'm in the minority here, but I would definitely be interested in any and all such runs. (But I think the total number would be rather small anyway in this case.)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
oh nice improvements, 15 frames saved is kind of a lot for this run.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Oh so that's what happened. What a brilliant insight ais523! I'll be interested to see where this leads in the future.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Wow 37 second improvement that's great Zakem66! I've always been curious how much my first TAS could be improved, but did not have the motiviation to take another look at it. I guess the answer is it could be improved quite a bit! Also yeah I am a guy.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
ody wrote:
Alyosha wrote:
Down to just 2 tests...
The results of your efforts are quite impressive.
Thanks! So at this point I think the core itself is in pretty good shape. There are still some things I would like to clean up but for now I'll take a break from the code and move on to other forms of testing. I have taken jlun2's advice and started looking at console verified runs. SMB3 is the most obvious choice for me since it uses the DMC channel and that had a major timing change in my recent improvements. The game end glitch run still syncs as it did on 1.11.6 (you have to remove one frame at the beginning though.) Then I remembered something True had wrote from the warpless run console attempt:
True wrote:
Edit: The run went well. It desynced after 2-1, just as PRG1 did on emulator. This is both a good thing and a bad thing. I need SMB3 PRG0 or a donor to continue, but it may verify yet. I'll see what I can do. Edit 2: I ran PRG0 SMB3 on console. It desycned as PRG1 did on console and emulator. This might (or might not?) be a helpful test in improving emulation.
I tried this on 1.11.6 and realized it desynced in a different spot, in 1-4. This was an excellent test point, so I tried the run on the current version and it instead de-synced after 2-1, just as True describes. This is defintely an improvement, as it behaves just as console does now. I think this is a good sign. Over the next few days I'll re-test some of the longer runs, but they are already highly likely to sync since they were made on the much less accurate fceux to begin with. I'll also see if I can learn anything from other runs that failed to sync, if they desync in the same manner, this seems like a good path forward. ______________________________ Also, if anyone wants to download and test the current version, I am definitely in need of new test cases. So if you see something not quite right, or a game that doesn't work , I could really use a report about it. Update on syncs: SMB 2 warpless syncs. But I encountered an interesting timing issue. I originally deleted a frame at the begining of the movie, since an early vsync allows input a frame earlier. However it turns out that this thorugh the run off all the way at frame 50000. When i didn't remove the frame it synced just fine. This is strange since I would not expect this to be the case in general. It could just be that the run syncs on console through astounding luck. Anyway, that it syncs is good confirmation. I also tried looking at some failed syncs. Looking at Punch out was first on my list. Adelikat's run syncs all the way through, even though it desyncs on console. I'll try looking into this a bit to see what's going on.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I like the new glitch and the run looks well done, nice work! I share others enthusiasm in looking forward to a new best ending run, good luck!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Gamer Maiden Sonia wrote:
Alyosha wrote:
Down to just 2 tests, scnaline and TVpassfail. I'm not really interested in the TV one since it's just a filter, maybe I'll do it eventually.
So it's not important then? I'd like if you could tell me more about TVpassfail (what we'd be missing out if it's not accurate). I like learning about those little things whenever possible.
Well it's important for proper appearence, but it's basically a post processing feature so it doesn't effect core emulation. The test is looking for proper emulation of cross talk between components of the output color singal. I'm no expert so here is a picture of the comparison between 2 filters in punes, the left emulates NTSC video signal output to a real life TV, the right is just raw video output. Bizhawk looks like the right, so at some point a filter needs to be put in to make it look like the left.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
RaijinXBlade wrote:
Alyosha, I know of an NSF player by the name of NSFPlay which was reworked by someone called Rainwarrior. It is considered to be highly accurate, including for the mappers. Do you think that can be of some use to you?
Thanks for posting that, I looked over the code and even there they count up. Every over place I check also counts up, so I'm not really sure why the wiki says it counts down, counting up also gives correct test results, which is good enough for me! Down to just 2 tests, scnaline and TVpassfail. I'm not really interested in the TV one since it's just a filter, maybe I'll do it eventually. Scanline is puzzling. Currently I get results similar to punes, and the test seems to rely a bit on start up state. I also don't see how FCEUX is able to pass it, I'm guessing a false positive. EDIT: I finally fixed the Saint Seiya - Ougon Densetsu Kanketsu Hen glitch. This turned out to be a ppu $2007 write during rendering, for which you simply need to read from address the background renderer is using instead of the normal vram one. A simpler fix then I realized. I'm happy that this one is done, as it was one of the first things I tried fixing.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
hegyak wrote:
What is the white square doing? Is that normal?
Yup it's normal. That square is sprite zero, so presumably it's used for timing, although I don't know how exactly. I got square channel mostly worked out, although something seems off:
NesDev Wiki wrote:
The reason for these odd sequences is that the sequence counter is initialized to zero but counts downward rather than upward
Right now it only works by counting up, not down as is clearly intended, so not sure what all that is about, but the test is much much closer to correct now.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Great Stuff Tompa! Millstone Mayhem was surprising.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Thanks a lot! I really like accuracy too, and I was always curious why NES emulation never really made into the realm of bsnes in terms of accuracy, despite the wealth of research done by NesDEv folks over the past few years. I think we're getting closer now though (at least with NTSC variants.) BizHawk was already really powerful, and my hope is that the accuracy improvements , combined with feos' numerous improvements to TASStudio, might bring in some runs that can be console verified. My personal goal is to have verifications of MegaMan, Punch Out, and Battletoads. I'm making progress on APU Mixer tests. I'm using the full nonlinear mixer now, and DMC and Noise sound perfect. Triangle sounds strange but roughly matches punes, so not sure what to make of that one. Square is a mess. Audio is not my strong suite so it might take a while to track down what's going on, but either way 4 tests to go!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
That's pretty cool. I'm always surprised how such tricks can go undiscovered for so long. I think my name can probably be removed from the author list now. This current work certainly supercedes anything I had to add in the previous run. Nice Work!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Gamer Maiden Sonia wrote:
Just posting here to say I'm impressed with your work, Alyosha. A 100% NEShawk would be really, really awesome. Good luck with the remaining tests!
Thanks! As I expected the remaining tests are going pretty smoothly, only 7 more to go! @feos: oh wow, thanks for pointing that out, I guess the hard part is already done then! EDIT: We're #1! Only 5 tests to go!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Once I got DMC figured out it was relatively easy to sort out the frmae timer. I got it working correctly and cleaned up the regression is DMA_and_IRQ. In the process I also got several other tests passing that were part of the same test suite. So with that, there are only 10 more tests to go! Some of them seem relatively easy, so we should be tied with punes in no time! The only challenging ones here that i am worried about are scanline (which I have no idea how it's supposed to pass and punes doesn't pass either) and tvpassfail which seems like a great deal of work.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
With a little added logic the other DMA test variant, sprdma_and_dmc_dma_512, now passes as well. That's 2 of the most grueling tests passing, so if I can just work out frmae IRQ stuff there will be no more hurdles and only tuning the APU left to worry about. I'm a little worried about the accruing performance hits though. I'm currently at about a 20% penalty over 1.11.6. On my laptop that equates to being able to run at about 140 fps. Well hopefully it will still be at over 2x speed once I'm done, I think it will need some serious optimization work though.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
After days and days of repeated failure, I finally found the last piece of the puzzle needed get sprdma_and_dmc_dma to pass in a cycle accurate way, with full RDY implementation and no hardcoded hacks. Visual 2A03 saved the day here, and without it there is absolutely no way I could have figured this out. The key seems to be an overlooked feature of DMC DMA where if it is called from a write to $4015 and the buffer is empty, it will take one less cycle to complete. This 1 cycle is what had me stumped and there is no other conceivable way it could have worked out (I tried every imaginable alternative.) There is still some work to be done to clean things up, but I doubt there will be any remaining tests as difficult as this one, so onward to 100%!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
^ glad to see a positive response to what must have been a lot of negative feedback after seeing that pricetag. I was definitely excited to see this done...but not $30 worth of excited, so glad it's free now! (It's still an awesome project, nice work)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Wow this is amazing! Great work on some professional looking technology there. I love seeing hardware type stuff like this, keep up the great work!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
cpu_exec_space/test_cpu_exec_space_apu now passes with a few simple fixes. That makes 10 new tests passed, up to 90%! I did not include DMA timing fixes, as I still don't know the problem is, so that 90% can be taken with a grain of salt, but still this is progress. Pretty much every remaining test involves the APU. This is good, since it means the rest of the core is really solid, but that is also the least developed part, so will take some effort to get in order.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Pokota wrote:
Which tests are now failed?
cpu_interrupts_v2/rom_singles/4-irq_and_dma cpu_interrupts_v2/rom_singles/5-branch_delays_irq ^ those tests fail directly as a result of fixing the timing bug, (which is running the CPU one extra cycle before starting OAM DMA.) They are both related to IRQs caused by the frame timer at $4017. I tried repeatedly to fix it, but when I do then other tests fail (jitter, NMI and IRQ, even IRQ timing.) I can't get them all to pass at once, which makes me think there is something else going wrong. Also, srp_and_dmc_dma is consistently off by 1 cycle too many for all 16 tests. Nothing I do makes that 1 cycle go away. I think all these issues are somehow related, but have no ideas.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I finally got Time Lord working, Hurray! This is the only total incompatibility that I know of that remained so I'm quite happy to get it working. It was actually a simple fix, lucky the NesDev wiki already said what needed to be done, it was just a matter of implementing it. Unfortunately things have gone awry elsewhere. NesHawk had a timing bug and apparently passed some rather important tests through shear luck and cancelation of errors. Removing this bug has led these tests to no longer pass , despite my repeated efforts to resolve them. So looks like a long road ahead.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
pirohiko wrote:
I try to make TAS shorter than 30 minutes using mid-frame reset and 52GO.
Oh cool good luck! It's a bit strange having 2 faster known runs then the published one , I hope this one will resolve things.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
scrimpeh wrote:
Yo, I just wanted to drop in and say I'm amazed by all the work you've been doing for NEShawk, Alyosha. Keep it up!
Thanks!
SaxxonPike wrote:
I noticed that the DMA work you've been doing relies on the RDY pin. I've put off working much on the 6502 CPU core until after I could get some automated testing going. However, the IncPc micro-op in the MOS6502X core was missing the dummy read (which would be stalled by RDY.) I've committed that fix today to master. AHX/SHX/SHY illegal opcodes affected by the high byte of the effective address also behave differently based on the RDY pin. More info here: http://csdb.dk/forums/index.php?roomid=11&topicid=94460 If you read that, keep in mind that in the C64 context, RDY is controlled by the video chip and is made inactive when it needs the bus fully.
Oh good catch! After looking at that I noticed that the dummy read for various instructions also is not affected by the RDY pin as it should be, and I think that is part of what is keeping from passing some more of these test, so fortuitous timing.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Aww, too bad, I hope this gets turned into a neat play around so it can get published. I also hope the actual fastest run gets submitted. Anyway to ask the authors about it?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Oh Awesome! Glad to see more progress here. Hope things go smoother now Tompa.