Posts for Alyosha


Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
feos wrote:
Alyosha wrote:
Giving this a bump, I would like to submit some of the runs I have.
Please test by sending a userfile.
It works! Cool I will try to make some submissions.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
fleroviux wrote:
Hello, good job on this emulator so far. I have been following this thread for a while. It's exciting to finally see another GBA emulation project focusing on cycle accuracy.
Hello and thanks! Your test ROMs have of course been a big help in this process, so thanks for your efforts there as well. Still a lot of work to do but I have enjoyed the process so far the GBA is a pretty neat piece of hardware.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
RetroEdit wrote:
I gave it a try myself and submitted a pull request: https://github.com/TASVideos/tasvideos/pull/1601
Wow, thanks a lot! I really appreciate you taking the time to put this together.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Randomno wrote:
Why not add the parser yourself Alyosha? Should be quite simple if it's the same as bk2.
Normally I would try and copy-paste my way to success, but I currently lack the spare brain power to do so.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Alyosha wrote:
I would like to request that my Gameboy Advance emulator, GBAHawk, be supported on the site for movie uploads / submissions. It can be downloaded here: https://github.com/alyosha-tas/GBAHawk/releases It is a derivative of BizHawk, so shares a very similar (though heavily modified / stripped down) user interface. TAS tools are all the same, features like RAM watch and LUA are still supported. Movie extension is .gbmv, but is just .bk2 renamed to avoid confusion. Audio / video recording is the same. Two improvements to existing TASes already exist, and are console verified: https://www.youtube.com/watch?v=avBgeBKQ8_c, https://www.youtube.com/watch?v=rKP7X7TY1_k. Additional capabilities include subframe resets and limited support for linked play. Missing features are RTC, light sensor, and other peripherals. These will be added in future releases.
Giving this a bump, I would like to submit some of the runs I have.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Cephla wrote:
Thanks for finding these much-needed route improvements alyosha. I've started implementing the second improvement but it might be a wait before I post anything final since I'm busy with other stuff.
Additionally, the levels starting at frames 6138, 10035, and 18917 can be improved substantially by using your ghost routing in one direction to collect / deposit gems for you to avoid a lot of back and forth. You used this trick in the last level already, which was pretty clever I didn't think to try it myself, I just looked where else it could be applied.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Cool game. The level starting out 20668 has a better rout , here is a test run , which can be improved by a lot manipulating enemies more to avoid waitng: https://tasvideos.org/UserFiles/Info/638228039595713529 EDIT: https://tasvideos.org/UserFiles/Info/638228100506667353 Another level improved by a couple seconds.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I would like to request that my Gameboy Advance emulator, GBAHawk, be supported on the site for movie uploads / submissions. It can be downloaded here: https://github.com/alyosha-tas/GBAHawk/releases It is a derivative of BizHawk, so shares a very similar (though heavily modified / stripped down) user interface. TAS tools are all the same, features like RAM watch and LUA are still supported. Movie extension is .gbmv, but is just .bk2 renamed to avoid confusion. Audio / video recording is the same. Two improvements to existing TASes already exist, and are console verified: https://www.youtube.com/watch?v=avBgeBKQ8_c, https://www.youtube.com/watch?v=rKP7X7TY1_k. Additional capabilities include subframe resets and limited support for linked play. Missing features are RTC, light sensor, and other peripherals. These will be added in future releases.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Making some progress on linking. Here is a short video demonstrating single pack linking for Mario Kart Super Circuit: Link to video EDIT: Mario Kart multi pack linking also seems to work, as does advance wars 2 single pack linking, so it's a bit more robust than just this one example, though I didn't try anything else yet. I made this using TAStudio, so at least under initial testing sync is stable, also movie playback and recording was at least at 60 fps, so surprisingly still full speed (on a modern desktop cpu anyway.) So far what I have is only very rudimentary and takes a lot of shortcuts, but its a worthwhile proof of concept. Linking for GBA is pretty well documented in GBA Tek, so getting things working is really just a matter of carefully sorting through everything there, but it is much more complicated than ordinary Gameboy as there are several modes and more shared state to keep track of. Now that I have a basic proof of concept working, refining it and improving it over time is a more approachable task. Back to accuracy improvements for now though.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I agree with WarHippy, this should be handled differently, unless there was some external discussion, which should have been noted if that was the case.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I've added SubGBAHawk which has (experimental) support for subframe resets. It should work exactly the same as for GBHawk, pick a cycle in the frame you wish to reset at and hit the power button. At the moment I don't plan to add subframe inputs, unless someone comes up with a specific use case. Subframe resets for save ram abuse seem to have the most utility, so hopefully this opens the door to some neat examples on GBA. I've also been fixing various bugs, though none of the remaining 3 not working test roms yet. I'm hoping in the next few weeks to do some work on actual linking, it seems like multiboot is an easy place to start.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
GJTASer2018 wrote:
Alyosha wrote:
Three or Four player at full speed is probably out of reach (unless you are a professional overclocker or something) so I don't think I'll implement that like I did for GBHawk.
Maybe out of reach with today's technology, but I still think that it would be possible sometime in the near future (late 2020s)...
Well I should say that it's out of reach for GBAHawk. Surely with mGBA you could do 4 linked instances at double or triple speed right now without a problem, even on a weak computer. Even a more accuracy focused emulator like Nanoboy Advance could do full 60 fps with 4 linked instances pretty easily on a strong modern day cpu. My core architecture is just really slow, but it also makes actually implementing linking particularly easy.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I fixed two of the above test roms (vram mirrors and window test.) PPU open bus shouldn't be too hard, just need to be careful with keeping track of accesses. OBJ window looks like just understanding internal state updates, but I haven't looked at it carefully yet. World Map seems the most difficult, it relies on audio FIFO DMA timing not interfering with HBL IRQ code execution. I haven't looked at audio since I first got it working, so I imagine there are numerous timing errors to sort out still. Taking a break from the accuracy grind, I decided to at least put the infrastructure for linking in place, even though there is no linking logic yet. This was surprisingly not too difficult and for now at least even can run at above full speed on a modern desktop cpu. I haven't even started serial port emulation, so this is a long way from functional linked play, but it's a start. Three or Four player at full speed is probably out of reach (unless you are a professional overclocker or something) so I don't think I'll implement that like I did for GBHawk. I'm not sure what the TAS possibilities are here, maybe all the interesting ones would be 4 players. Anyway at least for 2 player it's something I will work on in between accuracy improvements.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Link to video Console verified.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Alright so I improved prefetcher emulation so that the new AGBEEG cart tests now pass, improved sprite horizontal mosaic based on a new test rom by fleroviux, and fixed latching of rotation parameters so that Gadget Racers now displays correctly. Plus I fixed some other miscellaneous bugs. Making steady progress. I looked around at the various emulator issue trackers and looked over the test roms I have, and it looks like I fail the following tests: world_map.gba - some kind of hblank timing issue maybe EDIT: The issue here is Audio DMA happening at the end of a scanline, delaying the HBL IRQ code from starting, which in turn delays updates to rotation and scaling parameters until after the start of the next scanline. Need exact audio DMA timing and FIFO emulation. win_demo.gba - I don't yet implement the glitchy vertical window effect vram-mirror.gba - some kind of check for upper VRAM memory map mirrors, haven;'t figured it out yet. test_obj_window.gba - glitchy effects of the OBJ window that I haven't looked at yet sbb_reg.gba - I need to emulate open bus on the ppu vram accesses for OOB addresses So if I can get these working I will be passing all test ROMs that I know of. Aside from that I need to emulate STOP mode and RTC / light sensor for basic functionality (ignoring things like e-reader and other peripherals.) Finally getting close to the frontier of GBA emulation.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Nice and unexpected improvement. Nothing can stop Jaffar (and eien86)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
What an incredible homebrew, very impressive work by the dev team. Also good work on the TAS, Roll's fast movement and quick attacks keep this one interesting.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Cool run and a great submission text read. So much stuff had to come together for this one, great work figuring it all out.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I haven't had time to focus on this recently but going into the summer I hope to make a big push towards getting accuracy high enough to get first party games console verified. I realized I had skipped some cases in my prefetcher emulation. which was causing some accuracy issues. Fixing this made the Inside-cap visual novel (Higurashi no Nakukoroni (J)) finally pass the emulator check. Note to actually play this on GBAHawk you need to fix the header, which requires adding the Nintendo logo and fixing the checksum (address 0xBC to be 0x23.) At the same time this also helped Fire Emblem sync pass the title screen (because I wasn't making accessing SRAM impact the prefetcher.) It still desyncs a little ways into the first level, but its getting further at least. Surprisingly this didn't effect Metroid Fusion at all, oh well. I'm not quite done with prefetcher yet, the new version of AGBEEG cart tests adds some tests that I currently fail, but these seem to effect enabling and disabling the prefetcher, (which games don't really do, they tend to just turn it on and leave it) so I don't think that that will effect much. I'll still fix it anyway though. So the accuracy grind continues.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Link to video I found an improvement in Coin Fall and console verified the improved movie in GBAHawk. So along with Power Pig this can eventually be submitted to add another 2 runs to the console verified list. This game samples input at irregular intervals, so I needed a slight adjustment to the dump script to get it to work. Something I'll need to keep in mind when investigating desyncs in the future. I don't believe I verified where input is sampled for Metroid Fusion or Fire Emblem, I'll have to double check and keep better notes.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I recompiled NESHawk with much faster decay rate (by a couple orders of magnitude) and the run still syncs. This decay rate is faster than I saw on my own NES, so presumably the run would work there, except I don't have the hardware to do so. In fact this rate is even faster than Bigbass' console, so seems like it has a chance of working there too if it was done from power on and the power on states match. So seems plausible.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
https://tasvideos.org/UserFiles/Info/638189969203933938 I tried a bit more to get a good Kraid fight. I ended up about 5 seconds ahead of the published run leaving Kraid's lair. Currently the run desyncs due to an extra enemy spawning that I don't know how to fix. If anyone can fix it feel free to continue the run.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Awesome! Really surprising that that one would be the first one to get working. Looking forward to more progress, good luck!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Link to video V2 test. Same basic results as V1. Seems to be a couple orders of magnitude faster than what NESHawk has now (but shouldn't really matter since in this case the reads seem to be happening during rendering, so even quicker decay should still be ok.)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Currently all published GBC homebrew TASes are console verified, a minor achievement but still something I think worth noting. There are a lot of pieces involved in console verification so I think breaking things down into little categories can be helpful in identifying where gaps exist. I can't say the same about GB homebrew for example because I don't have a suitable MBC1 flash cart. A lot of modern NES homebrew rely on a modern mapper so those need their own dedicated board as well (or a multi-mapper board where timing isn't too critical.) I tried a few of the GBC bootlegs as well, some don't sync in modern emulator versions. Some, like Donkey Kong 5, poll input in an uneven way not suitable for the current GBI based approach. It's already known that some GB/C games require a verification process with a smaller time resolution to work so this isn't anything new, just another example. There is also a lot going on with Genesis homebrew, even if there aren't that many TASes yet, could potentially be a good way to jump start Genesis verifications.