Posts for Alyosha


Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
GBAHawk v2.1.1 is released! This version adds a sync setting for EEPROM timings, along with various bug fixes. This allows me to add a check mark to DKC 101%. I also fixed a bug in reading from BIOS while not executing in BIOS region, which is supposed to return the last fetched instruction from BIOS. I was not properly reading the correct byte when only byte sized data was asked for. I found this out when trying to figure out a desync in Fire Emblem. It turns out this game has a bug in calculating enemy movement when enemies are on the edge of the map and attacking characters also close to the edge of the map. In this case the game ends up reading from an incorrect address (in this case 0x00000007) which is in BIOS region. After fixing this I was able to get a resync of Fire Emblem to work on console. All the actual moves are the same with only small RNG adjustments needed, so I'll go ahead and give that one a check mark too. I'm half way through the same process for Sacred Stones as well, so that one will be next up for verification. It's pretty satisfying to get the Fire Emblem runs working, as when I first started testing it I couldn't even get past the first start press. Good Progress!
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/638446788869509673 With a bit better understanding of how the lag resync script works, I was able to get a good resync of Mario Vs Donkey Kong. Unfortunately it doesn't work on console because the save time is just way too long on my cart. As far as I can tell it's like 50% longer than the stated maximum on the data sheet, which is causing sync issues. My cart uses the same Flash chip as Sonic Advance, so I'm not sure why the timings are so different, but perhaps after 20 years this is just what you get.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
despoa wrote:
Is it okay if you could provide extra input for the credits stage? It's kind of silly for a TAS for the credits to run while the player does nothing but fall into the abyss multiple times.
I'm not really interested in doing so, but I won't object if you or anyone else wants to add something there.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
RTA timing starts at character select and ends at the last goal. By RTA timing this run is ~2:07.
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
Deadcode wrote:
Saved another 0.72 seconds (primary-submitted replay file for this submission) using the information TAStudio provided, and that truly appears to be the best possible with this set of solutions. (But I still find it a bit of an inconvenient way to do this; a log file would be much better. And then at first I thought, after seeing what TAStudio could do, that it explained how you did this: But it appears that TAStudio loses the ability to do that magic when the GBHawk core is in use, and the replay file you posted was based on the GBHawk one. So how did you do that?
Cool, looks good! Oh, I was playing around with possible improvements in 3-9, and I ended up with a solution that was a couple steps longer but shorter in frame count. I was doing the moves manually, so I was doing all the moves as fast as possible just holding buttons down, so I figured something had to be wrong with the original file.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Deadcode wrote:
Wait, what? How are you interpreting that graph in that way? It shows 4 frames in a row that are all the same color, against a gray* background. Can you actually tell just by looking at it that it accepts input on the 2nd? Why not the 1st? *I guess it's grayish cyan, using a color-picker, but to my protanomalously colorblind eyes it looks gray. That's not the problem though, as all 4 frames in a row from 1313 to 1316 are the same green (I had to check, to make sure there wasn't just some color difference I wasn't seeing)
All the later moves also accept input on the second green frame and not the first, so I guessed it was the same for the first move. It's just something you get a feel for with experience.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
TAStudio is really helpful for cases like this since you can (generally) see where input is accepted. Here is the first start press in your movie, you can see one green input frame 10 frames earlier: Here is the first move in level 1-2, you can see the 'left' button is pressed on the fourth (green) input frame but input is accepted on the second:
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Deadcode wrote:
These post-submission improvements have all been incorporated into this BizHawk 2.9.1 (Gambatte core) replay file, along with fully optimizing its UI delays. This is now meant to be the primary file associated with this submission, so please ignore the "15:27.21" one and use this 15:13.34 one instead when judging the submission.
Seems like there are still some script issues. The very first start input can be pressed 10 frames sooner. Also a lot of levels are 2 frames late on the first move, with some even being 4 frames late.
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/638444031574122837 2 steps saved in 3-10, couldn't find anything new in the other non-optimal levels, but that was a fun revisit.
Deadcode wrote:
How are you writing the replay in the same clean export format as I've been using, which only holds the joypad button for 1 frame exactly when it's needed?
I just use TAStudio.
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/638443831255464202 I saved 2 steps in 3-9 with better use of the 'T' shaped block in the first half of the level.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Deadcode wrote:
So anyway, yeah, this means I'm going to have to re-solve all the levels that involve filling holes. Wow.
Why do they need to be resolved? Isn't just going back and removing the extra frames at each hole fill sufficient? The original reason I stumbled upon this is that I wanted to look at 3-9 again (but my idea didn't pan out.) But yeah if I have anything else I'll use gambatte version for convenience.
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/638443243569823355 I'm not sure what happened, but it seems like all the moves in the last 2 levels are taking too long to move after a block has been placed. Here is a partial improvement of those levels. I didn't check earlier levels, or checked if they had always been that way in previous movies. EDIT: Looks like this happens in the earlier levels as well, even in the Gambatte movie, perhaps a bug in the script?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
This is amazing work! That 3-6 was very surprising, I never would have thought that shoving that 3x1 all the way to the right could have been part of the solution. 3-7 also looks super smooth now, really cool. The other small improvements were also neat though I'm a little disappointed in myself for not finding that 2-8 or 3-1 route. I always like seeing big projects like this come to fruition, even if some of the levels are still out of reach. Great work!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Gooftroop wrote:
Hello, I'm new and having problems recording longer TAS projects, so I have two questions. Is it normal for Bizhawk / TAStudio to start lagging when recording over 100,000 frames / 5 hours? And is it possible two TASPROJ. / BK2 from the same game and divided into sections to be put together via the input log? Sorry for my English - I use a translator.
It's possible BizHawk is running low on memory for longer TASes, you can try turning down the buffer settings in TAStudio under metadata -> savestate history settings. You can patch together segments by stopping a current movie, and recording a new one using the Record from: 'now' setting in the movie recording dialog. From there you can use TAStudio again and later just copy paste the input logs together.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I'm having no success getting any other runs to sync for games I have. Here's a quick summary: Fire Emblem: desyncs in second stage, doesn't seem fixable fixed in 2.1.1 Fire Emblem Sacred Stones: desyncs about half way through the run in the same fashion as the first game. fixed in 2.1.1 Banjo Kazooie: I can't fix the RNG of the enemies, so damage boosts don't happen. Rayman Advance: Syncs about half way through with some manual effort, but then breaks. Fixed, new run submitted. Advance Wars 2: Seems like it might sync in emulator but desyncs in a strange way on console, the game polls input in a weird way. Mario vs. Donkey Kong: See below Turok Evolution: bad enemy RNG in first stage. Mega Man Battle network 2: Bad encounter RNG So yeah, definitely hitting a road block in terms of resyncs. I did manage to console verify the Donkey Kong Country 101% run though: Link to video It turns out I had a wrong EEPROM setting which was preventing sync at the start. After that I needed to adjust timing of EEPROM writes to be about 10% faster than the GBA Tek baseline to get it to sync. GBAHawk version 2.1.1 will have a sync setting to account for this. Eventually I'll add a similar setting for Flash, but that is more complicated so just EEPROM for now. Some time ago RetroEdit sent me a resync of Donkey Kong Country 2, but I don't currently have a cart to test it, seems like it should work though.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I haven't had any luck with RNG and resyncing runs, so I'm working on a few more small accuracy issues. One of these is a known error in sprite rendering where too many pixels are rendered. I made a test for this and also a similar thing that happens when hblank interval is free: Fixing it was pretty simple, but it's possible I'll need to redo sprite rendering in the future if there are other side effects. The next thing I'll do is fix the weird behavior involving DMA in ROM area.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I finished up verifying Metroid Zero Mission runs thanks to RetroEdit's resync script greatly speeding up the process. The new Metroid Fusion Memory Corruption run also worked on console so that was cool. That's all runs of GBA Metroid games verified along with ~50% of associated ROM hack runs, good progress. Now I will try to fix some runs where RNG doesn't work.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Cool glitch! I resynced to GBAHawk and managed to console verify: Link to video
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
EZGames69 wrote:
Why not do the other stages as well?
Lack of interest. This game is painful to optimize and not veru sync friendly, beginner stages was enough for me.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
GBAHawk version 2.1.0 is released! This version comes with numerous accuracy improvements along with a small but noticeable performance improvement. With this release I was able to add console verified check marks to Shrek 2 and the baseline run of Metroid Zero Mission. I should be able to do the low % zero mission TAS this week along with the pending 6 scrolls ROM hack. I tried resyncing Fire Emblem with RetroEdit's script but it desynced at the same point as when I tried manually, so I guess RNG for that game will prevent verification of the current run as is. I also tried Turok Evolution but desynced due to RNG as well. RNG is also preventing me from making progress on Banjo Kazooie. I'm going to focus on fixing some of those RNG issues as well as making a few test TASes of different games that I haven't previously used for testing. Still a lot of work and verifications to do, with Mega Man Zero and Battle Network Series, various Castlevanias, Zelda Minish Cap and Mario Super Star Saga. I'm hoping the most tricky and time consuming emulation issues are behind me so I can focus more on the TASes.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
The quest to find the bug that was keeping Shrek 2 from being console verified is over! Today I found that it was a rather simple issue with timing of the case where a DMA pauses an already running DMA of lower priority. This also fixes the desync with Metroid Zero Mission. Link to video With that, I have no TASes known to desync due to emulator accuracy issues. I have to do some work to verify the fix in all edge cases, but it fixes the two desyncs and doesn't break any existing TAS, so it seems solid. At the same time I also redid part of the DMA loop, which gave a ~5% speed up due to skipping a lot of steps when no DMA is running. It's not much but I'll take every fps I can get. Once I have everything tested and verified good I'll release v2.1.0. Now that Shrek 2 is no longer stuck in the back of my mind I can focus on the long list of relatively less important edge cases like undefined / implementation defined cpu behavior, running DMA in decrement mode in ROM region, running FIFO DMAs very close together, etc. I also tried to verify Donkey Kong Country but the EEPROM timing was way off, no small or even relatively large change to the baseline timing could possibly fix it. I'm not sure what I'll do about such cases yet. Maybe just use extra blank frames since saving only happens at the very start and very end of the run, but I'd much rather have something cleaner. Anyway finally time to test some new runs!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Testing with Metroid Zero Mission is going well. I already verified a couple of the ROM hack runs and the 100% run. Two of the hacks require a 32MB card which I don't have, so I'll to get one before I can do them. On the baseline run I actually got a desync. Haven't figured out the cause yet, but I can see the desync point pretty clearly and the error would have to be fairly large (~50 cycles) to get a desync in that spot. I would think such a large error at this point can only be caused by something with audio DMA, but nothing obvious sticks out at me so far. Zero Mission also revealed an emulation error in the ppu blending effect. This was an an easy fix but pretty surprising this case didn't come up before. Banjo Kazooie continues to reveal bugs as well. It turns out I missed a case of dma pausing another dma resetting access timing to be non-sequential. This happens to occur in Banjo Kazooie and was causing failures in my testing. After fixing that I can finally get past loading and the intro with correct timing. I tested up to about 4 minutes into the run and it seems RNG is still good. So maybe that game is good now, but I can't get correct enemy movement so far trying to manipulate RNG with jumping so not sure yet.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
We just reached 350 console verified runs! That is out of 3335 currently published runs, so managing to stay above 10%. I think 400 is reachable without too much trouble, mostly just a matter of time. Past that I think resyncability of old runs will start to become a major hurdle on the road to 500. I also have almost 10% of all GBA runs verified, so that's pretty neat. I'm hopeful to reach 50 total this year, seems doable. The biggest variable here is long it will take me to track down remaining accuracy issues. So onward to 400.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Occasionally I look around for any homebrew or tech demos that I missed testing, and I recently came across this Yoshi's Island tech demo that I hadn't seen before and was broken in GBAHawk: It turns out I was not doing rotation and scaling correctly in this case, so I went back and redid that code. With a better understanding how it was supposed to work, the rewrite was more accurate and also quite a bit faster since I got rid of the floating point arithmetic. It gives a couple fps boost to games that use mode 7 stuff. Now the demo works correctly: I'll probably go back and do the same clean up for rotation and scaling of sprites, might get a small performance boost from that too. Now that I finally have a Metroid Zero Mission cart I will be testing that game and associated ROM hacks.