Posts for Alyosha

Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I wanted to take another look at the save corruption run since it doesn't include BIOS time and timer emulation is now console accurate. The first thing i wanted to check is if there are any easy manipulations in CGB in GBA mode for red, since it has console verifiability and the color bios is much shorter then the gb bios. There are 4 places you can delay to do TID manipulation, from masterjun's old submission here are the values we want for the second byte (the birst one needs to be 0x64): 0x11, 0x13, 0x15, 0x16, 0x17, 0x1A, 0x1B, 0x1D, 0x5A, 0x71, 0x76, 0xCF, 0xD0 and 0xEA. Also in Mrwint's submission we see that 0xBD is possible as well. Here is a complete list of possiblities with delay values 0-9 for each of the four inputs (starting from the first possible frame each input is selected.)
CGBinGBA	         CGB		         GB
0 8 0 9 0x38		0 3 7 5 0x50		0 9 1 2 0x48
0 8 1 8 0x37		0 3 8 4 0x50		0 9 2 1 0x48
0 8 3 6 0x39		0 3 9 3 0x50		0 9 3 0 0x47
1 6 7 6 0x6D		0 4 0 1 0x54		0 9 6 1 0x94
1 6 8 5 0x6D		0 4 0 3 0x78		0 9 7 0 0x95
2 3 3 8 0x6A		0 4 1 0 0x54		1 4 2 9 0x9A
2 3 4 7 0x68		0 4 1 2 0x78		1 4 5 6 0x9A
2 3 5 6 0x67		1 0 0 4 0x65		1 4 6 5 0x99
2 3 7 4 0x67		1 0 1 3 0x65		1 4 8 3 0x9A
2 5 8 1 0x37		1 0 2 2 0x66		1 9 2 7 0xC5
3 5 8 9 0xDA		1 3 1 4 0xE6		1 9 4 5 0xC6
3 5 9 8 0xDB		1 7 8 1 0x65		1 9 7 2 0xC5
3 8 0 9 0x6E		1 7 9 0 0x66		2 0 6 5 0x70
3 8 1 8 0x6F		1 8 5 0 0xF7		2 1 7 7 0xBD
3 8 3 6 0x6F		1 9 1 4 0x07		2 6 2 8 0xBD
3 8 6 3 0x6E		2 4 0 6 0xD2		2 6 5 5 0xBE
3 8 7 2 0x6E		2 4 0 8 0xF8		2 6 7 3 0xBE
3 8 8 1 0x6E		2 4 2 4 0xD2		2 7 8 9 0x94
3 9 2 4 0x42		2 4 2 6 0xF8		2 7 9 8 0x95
3 9 3 3 0x43		2 8 0 6 0x1F		2 8 0 1 0x30
3 9 8 6 0xD6		2 8 1 8 0x58		2 9 0 3 0x6F
4 3 9 5 0xC6		2 8 2 4 0x1F		2 9 1 2 0x6F
4 7 1 8 0xA9		2 8 3 3 0x20		2 9 2 1 0x6F
4 7 9 0 0xA8		2 8 5 1 0x21		2 9 8 9 0x78
6 2 3 8 0x5E		3 3 7 0 0x2A		2 9 9 8 0x78
6 2 4 9 0x82		3 7 7 2 0x91		4 0 8 5 0xB8
6 2 5 6 0x5D		3 7 8 1 0x91		4 6 7 9 0x4E
6 2 7 6 0x81		4 8 5 8 0xC8		4 9 0 0 0x5B
6 2 8 5 0x82		4 8 6 7 0xCA		4 9 2 0 0x80
6 2 9 2 0x5F		4 8 8 5 0xC8		5 5 4 9 0x23
6 9 3 7 0xC1		7 2 5 9 0x9F		5 5 5 8 0x23
6 9 4 6 0xC1		7 4 5 9 0xC9		5 5 7 6 0x21
6 9 6 4 0xC2		7 4 6 8 0xC7		5 5 8 5 0x21
6 9 9 1 0xC2		7 6 6 6 0xC9		5 5 9 4 0x21
8 1 5 8 0xA4		7 6 9 3 0xC9		5 8 6 8 0x5F
8 1 7 6 0xA4		8 0 0 2 0xC1		6 4 7 8 0x37
8 6 7 2 0xA7		8 0 1 1 0xC1		6 6 0 4 0x93
8 6 8 1 0xA6		8 0 2 0 0xC1		6 6 1 3 0x94
8 7 0 3 0x86		8 2 0 3 0xE7		6 6 3 1 0x93
8 7 1 8 0xF2		8 2 2 1 0xE7		6 6 4 0 0x93
9 0 1 8 0x59		8 3 1 8 0xB4		6 8 5 9 0x73
9 1 0 4 0x14		8 3 9 0 0xB7		6 8 7 7 0x72
9 1 2 2 0x14		9 6 2 9 0xDC		7 6 4 2 0xCC
9 3 8 4 0x06		9 6 3 8 0xDD		7 7 6 9 0xCE
9 3 9 3 0x06		9 6 6 5 0xDC		7 7 8 7 0xCE
         			9 6 7 4 0xDC		8 1 7 9 0x51
	         		9 6 8 3 0xDC		8 1 8 8 0x51
	         		9 8 0 8 0xC8		8 4 7 8 0x60
	         		9 8 1 7 0xC7		8 8 3 6 0x3E
	         		9 8 2 6 0xC7		8 8 6 3 0x3D
		         	9 8 8 0 0xC7		8 9 4 0 0xF1
	                 	 				9 0 7 8 0x3F
		                  				9 0 8 7 0x3F
		                  				9 5 3 6 0x27
		        	          			9 5 4 5 0x28
		                	  			9 5 5 4 0x28
		                	  			9 8 8 5 0x95
So, none of them work in GBA mode. I'll try again for normal CGB mode, and the for GB mode and update this post with results. EDIT: done for CGB, no positive results. EDIT2: So it looks like at least for red, the only viable options are 2 1 7 7 and 2 6 2 8 in GB mode. Not sure if any of these other values have any usefulness. Also I'm not sure how big MrWint's original search space was. technically I guess I'd need to look up to 17 since that's the amount of delay in the current run, but that's beyond the current scope of what I wanted to do. http://tasvideos.org/userfiles/info/59639073305669766 Here is a resynced run of MrWint's movie to the current BizHawk builds. With a time of 1:21, it's quite a lot longer then the publication would indicate. If the yellow version run also worked, it would be several seconds faster since it uses the CGB instead, so my personal opinion is that yellow should be able to obsolete this one.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I thought the intent here was to wait for the next bizhawk release so the encode is fixed at the end?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/59599426135136939 I went back one more time to the refights and found a better route. It's not optimal in terms of pathing but it's 3 seconds faster overall compared to what I had before. I still lost some time on sigma's first fight, so I'll have to go back and test different RNG patterns to see fi I can make some time back, but otherwise this run is done and will be submitted once the next BizHawk release is ready.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I have been grinding away at refights trying to get decent RNG. I also had to go back and change the boss order in order to get good spider RNG. After all of that I have finally made it by the refights with an actual improvement. http://tasvideos.org/userfiles/info/59570921781781631 This is about one second improvement in game play over the existing movie. It's not much but an improvement is an improvement. It's actually closer to 3 seconds of improvement, but I'm not counting using charged shots on the shuriken boss, which can be trivially patched into the original run. I was about 5 seconds ahead going into the boss fights, but RNG has been destroying me. This is the best I could do after dozens of different paths and iterations through sigma 2 and the refights. No doubt someone can find a better RNG setup with enough time grinding it, but I'm happy just to make it to the end of the game at this point with real savings.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I realized I made a few mistakes and went back and made some improvements to the new route. I am now 3 seocnds ahead of the published TAS up to the start of the sigma stages. http://tasvideos.org/userfiles/info/59437582906677118 I'm still going to try to get a better wheel gator fight a few more times before continuing on, but it looks like I should be able to have an actual improvements by the end of this.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/59377544391501511 It turns out changing the dash button in game is much faster, I did that and then resynced up to the refights. I lost a second to bad spider RNG. Also, it seems that it would be slightly faster to go magna -> chill -> spark -> morph rather then spark -> morph -> magna -> chill. I did a test run with that route, but I lost a few frames here and there and wheel gator didn't work so I ended up slower, here's a test TAS with that route (I think an optimized version should be 1 second or so faster.) http://tasvideos.org/userfiles/info/59377615098181647 Anyway that's probably all the effort I will be putting into this one. Anyone can feel free to try from these files.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Nice! Cool to see all those savings that built up over the years finally come together.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
That's incredible. It's only a two instruction payload but hopefully this is just the beginning.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/59213186188302258 http://tasvideos.org/userfiles/info/59260197308497447 Sync correctly up to centipede Here is a partial resync of the vba run in GBHawk. I wanted to work on this game since the encode has glitchy cutscenes and the run starts from a savestate. one of the side effects of this is that start is not enabled as dash by default, you have to enable it in the menues which costs several seconds. For completeness, here is verification movie that gets up to Xtreme mode for the purposes of creating SRAM. http://tasvideos.org/userfiles/info/59200698609300308 I did it by hand with only a few rerecords so it's quite long and basically a normal play through, but for the sake of cleaning up the old run starting from savestate it felt worth it to make. Over time I will clean this up but if anyone else wants to work on this feel free. This should be a good starting point and make the game much more accessible to TAS in a modern environment.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Patashu wrote:
https://forums.nesdev.com/viewtopic.php?f=2&t=15931
Fascinating, thanks for the link.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Jigwally wrote:
There is a lot of shared code, particularly all of the Koei games have the built-in virtual machine + a standard C library in their Root page, so it is a lot faster going now that I worked most of it out already.
how did you figure that out? Is this information available somewhere? I'd be interested to see a write up on it.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Cool! I'm impressed how quickly you are able to work through these games and find these solutions.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/59126674124379554 Here is a resync of the movie in the dev build. Overall it synced pretty faithfully. There are some desyncs which seem to be due to elevator timing, but they were easy to overcome. Overall I would say this movie is about 30 gameplay frames longer then the 2.3.1 version. I'm pretty sure this is just emulation differences, as I was not able to overcome different elevator timing even though I tried lots of different ways. Also the time of 17:42 is correct, the original time of 17:34 is not correct due to frame timing errors.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I fixed the bad scrolling in the ending on GBHawk. I can help resync to current dev build if it desired, not sure if there will be any desyncs or not since a lot has chagned recently (there will definitely be frame definition desyncs but those are trivial.)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Lag Count is the same as frame count for SubNESHawk, so you can get frame count just by turning lag counter on. Just be aware it's only accurate if you are at the end of the movie / last emulated frame.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
GJTASer2018 wrote:
Alyosha wrote:
I wanted a I8048 cpu core so this seemed worth it.
Is there an advantage of using this type of core vs. the waterboxed O2EM?
The I8048 is the sound processor in the original Donkey Kong arcade system, so my thought when I first came up with the idea was to use Odyssey 2 as a proof for the CPU and a stepping stone to that. However with the impressively rapid development of MAMEHawk, this goal now seems unnecessary. So no there isn't really an advantage, I just felt like doing it. Presumably the O2 is simple enough that having the fine grain details of an in-house core won't really matter.
Fortranm wrote:
http://tasvideos.org/forum/viewtopic.php?t=19598 Is a Coleco Adam core still being planned?
I have a WIP version of the MC6800 which is used in all the Adam's peripherals, so it's closer then it was, but I don't yet have a proof for it. The only system that used the chip was the APF MP1000, and I lack the motivation to work on such a boring system. Also, the expansion pack for the colecovision that makes most of the Adam games (or ports of them) workable makes it a low priority for me. Still, if someone made an APF MP1000 core to proof out the MC6800, I'd be willing to help put everything together to get a proper Adam core going, but otherwise no.
KAGE-008 wrote:
How possible is to implement a Dreamcast core? Using flycast source as base: https://github.com/flyinghead/flycast Flyinghead is okay with forking it as long as you guys use the same name for the core.
Not very possible I'd guess, that would be a huge undertaking, it would probably take a new, dedicated person to do it.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I've started work on an in-house Odyssey 2 core. I know we have an unfinished O2EM waterbox core, but I wanted a I8048 cpu core so this seemed worth it. It will be slow going but if anyone has any suggestions feel free to ask.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Cool! I'm always surprised how these type of things end up with a useful result instead of just random nonsense. Nice work, yes vote.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
There is not. There is already an issue on the tracker for this, probably won't happen any time soon.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I mostly fixed this. Saving won't change the displayed value to hex anymore. Loading still will, but at least you can change it back now since the 'display as' button now works correctly. Some things with signed values are still wrong, so I don't recommend using them.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Cool transparency effect! I dont think i would have noticed if you didnt point it out.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
http://tasvideos.org/userfiles/info/58687251796716780 I managed to recreate the game end glitch in Wario Land in the most recent GBHawk build. It's not exactly the same as the original, but I found another suitable setup with only small modifications. the levels are played the exact same, only the ending input changes. This one would be cool to see console verified. The Gambatte version does not work, it seems the STOP instruction is emulated differently in current builds. I'm not entirely sure what's going wrong. EDIT: Game de Hakken!! Tamagotchi - Osutchi to Mesutchi (Japan) now works in GBHawk (except for RTC.) this is a Japan only Tamagotchi game that has it's own unique cartridge hardware. The game is playable in non-RTC mode at least now. I might go back to fix up the RTC someday but it's not a priority, I just wanted the mapper implemented.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Alright I added an RTC offset correction factor. It doesn't directly translate into the Gambatte equivalent setting, but I doubt there will be too many 2+ hour runs where it will be all that noticeable. From what I can tell the error is only around 1/32768 of a second. EDIT: http://tasvideos.org/userfiles/info/58555860013787500 Finally, this long exercise is at an end and I have a complete re-sync of the pokemon crystal run in GBHawk. This has been an excruciating but also very rewarding task, as I learned a great deal about the GBC in the process and fixed many bugs both small and large. With both the crystal run and yellow run working, the Gen 2 catch em all should be doable with realistic accuracy (although linking is not tested for accuracy itself.) Now we should finally be able to start pushing forward with other games. I already pass many more sprite timing tests then Gambatte does, and with these two runs as bench marks it strongly constrains what in the code can be changed in the future.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Yeah we should definitely be able to start cracking some of the simpler games. for single speed mode at least (and GB games) there really shouldn't be much standing in the way of console verification anymore. I guess we'll find out. After that double speed mode basically isn't even touched yet, so that should be interesting. Anyway I'm over half way through the run now (past the radio tower.) Truth be told there are some inconsistencies with the RTC but it isn't effecting sync yet, and I can always adjust that as needed so it's not a big deal.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I ran into a desync around frame 60000, surprising it made it so far without running into it. Turns out it was a window timing bug. This process has revealed a lot of small errors here and there that I'm glad I'm getting the opportunity to fix. Now I'm up to frame 116000 (just past the third gym.) I don't think there will be any more desyncs unless something comes up with the RTC, but anyway I'll make sure to make it to the end. Pokemon Yellow and Crystal both rely on careful mode 3 (HBL) timing but in different ways. Yellow relies on reading STAT mode 3 status, while Crystal relies on mode 3 interrupts. So, getting both the Crystal run and yellow run working at the same time strongly constrains what else can be right and wrong with PPU timing (at least for this part of it) so this is all really valuable for accuracy. Cool stuff!