Posts for Alyosha

Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Ninja Golf is done and linked in the opening post. It synced easily with just some minor lag adjustment. Scrapyard Doog is converted but failed to sync (desyncs early in level 1.) This game is sensitive to timing so I'm not surprised. It's also linked in the opening post anyway though. Barnyard Blaster I'll try later but I doubt anything useful will come from it. I'll also try Choplifter later as well.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
It turns out that movie recording for A7800Hawk was broken in the current BizHawk release. Frustrated, I decided to buckle down and implement the Pokey sound chip, which was the last thing holding up the removal of EMU7800. Removing it allowed a cleanup of the core swapping code and naturally fixed movie recording. (As a side note, I went back and looked and a one line copy-paste error was what broke movie recording, and had I been less frustrated I would have probably just fixed that instead, but at least the end result is good! :) ) Now Ball Blazer and Commando, the 2 games requiring Pokey emulation for sound to work, will have proper sound in A7800Hawk. Along with this I have removed EMU7800 as an option from BizHawk's core list. Going forward new releases of BizHawk will only contain A7800Hawk, as it is vastly more accurate then EMU7800. I recommend new movies only be made with A7800Hawk, although obviously EMU7800 is not officially deprecated and submitting runs made on it in older versions of BizHawk is still permitted. If anyone has any runs they started in EMU7800 that they would like converted toA7800Hawk and can't figure out how, send me the movie file and I can do it. (It's a pretty painless process that takes < 5 minutes once you figure out the details.) I cant promise it will sync after though. EDIT: On the front page I linked to re-synced movie files of published EMU7800 runs for anyone interested.
Post subject: Re: Highlighting GDQ runs, runs specifically for GDQ, game ideas
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Warp wrote:
Isn't that what the live commentary is for? The commentary is what makes the run interesting to the viewers.
TASeditor wrote:
As Warp already said, these runs wont be uncommentated. Infact the right commentary should make the key difference between holding peoples attention or not.
My point was meant to be that even with live commentary it won't be very interesting without something interactive, sorry this wasn't clear. Right now we're talking about 3-4 people sitting on the couch for ~30 minutes playing pre-recorded inputs off someone's laptop. There won't be a 'runner', no one will even have a controller, and TASBot doesn't even need to be there. Sure this will be more representative of typical TASing, but to me it doesn't sound very fun.
Post subject: Re: Highlighting GDQ runs, runs specifically for GDQ, game ideas
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
dwangoAC wrote:
Having said that, I really do like the idea of a badge / icon that indicates a given run has been shown at a GDQ for the ones that *are* published. Thoughts?
I think it's a good idea. GDQs are our only real exposure to a general audience, and runs featured there are also some of our best content.
dwangoAC wrote:
I, for one, would welcome a fun exploit with a short but interesting payload if it fit in with the rest of the block well. Bonus points if said ACE allows us to do a credits roll to on-screen highlight the efforts of everyone who contributed to the TAS block, that was a good choice during AGDQ 2017. Yet again I end my diatribe with the question - thoughts?
I don't think a TAS block would be much fun or entertaining without something like this. As Mothrayas pointed out earlier, a lot of the fun of watching GDQs comes from the humanness of live runs and runners. Even with good commentary, we miss out on this entirely (especially if it's just replayed on a computer which is another step removed from actually playing the game.) Something interactive in real time with a real person (like SMB3 or Mario Kart choco mountain were) is much more entertaining in my opinion. I'm not purposely trying to be a downer here, but I'm pretty skeptical that just playing several normal TASes back to back will hold many people's attention. EDIT: I guess since I'm advocating for something interactive I should give an example of something that could be done within the relatively short time available and without great technical difficulty. One avenue of ACE that is untapped so far is sending information back to TASBot via controller pings. As long as it's only a few bytes per frame, there should be enough time to send information to some offboard script for processing, and send the results back to TASBot to write back to the game. Ex SMB in SMW, you could have TASBot directly control the enemies for example and have them do trolly things they couldn't ordinarily do to react to the player. As long as the resources for the original SMB in SMW run are still available, this might be something that could be done pretty easily as well as be pretty funny to watch. There are probably lots of ways to do interactive things with TASBot (imagine a trolly anti-coop AI player 2 in Battletoads for example) but this is just something I thought might be plausible.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Any news on submitting the new run? It's strange to be stuck with the outdated publication when the new one is sitting right here.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
The game requires player 2 to select their car. If you don't want to use player 2, you still have to hit enter on player 2 controller to bypass their car selection.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
@ThunderAxe31: I'm not following. Is the glitch supposed to be there or not? Making good progress so far. Right now all of the CPU, DMA, and timer tests from Gekkio's mooneye gb page pass, so I'm pretty confident the core is internally consistent and accurate up to this point. Background and sprites are working just need to do windowing and graphics will be initially done (though not in a cycle accurate way yet, that will be the next step.) I have a couple bugs in some register bits and interrupt timing to work out, but those should be easy enough to work out so games should be fully playable (except for sound) pretty soon.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
This is a tough one. Highly entertaining runs are rare. We don't really have any fresh runs of the caliber of Brain Age or SMB 3 ACE. As a viewer I'd probably just tune out of any of the listed runs so far, (maybe except for Battletoads, but even that is more technically interesting then really entertaining.) I don't know, I'm tempted to say just sit this one out rather then submit something mediocre. Maybe the time would be better spent searching out new ideas.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
So far so good. It's a good thing the Gambatte core already exists in BizHawk, it probably would have taken me 10x as long to debug some of these tests without it. instruction timing tests pass as well, so the basics of the CPU are functioning correctly. Next steps will be Memory access timing, Timer tests, and interrupt timing. Once those are done the core should be on a pretty firm footing to start on the more difficult stuff.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I'm making decent progress here. So far I'm doing everything in single clock steps, so breaking out into a debugger should be simple. Trace logging works for the new CPU core, and I'm able to compare logs to gambatte. So far it makes it through the bios corectly (even though there is no rendering yet so there is nothing to see.) There is a couple of cycles of variation in timing the scanline counter, so it doesn't exactly match Gambatte, but all that stuff is still very preliminary (and the deviation doesn't show up until about 13000000 cycles in, so I guess it's pretty small.) Savestates are already functioning as well, so all the basic foundations of the core are coming together. Next steps are to get rendering going. I have sprite evaluation and the timer done, just need to do all the actual rendering steps and start firing interrupts and such. Once that's in place I can start varifying the CPU and working through all the various test ROMs. I think rendering shouldn't be too bad, certainly the biggest hurdle will be the dreaded APU, but that's still a ways off. Also I looked at Terrifying 911. At first I thought that was going to be some kind of murder mystery that starts off with a phone call to 911, but after googling it ... it's something else entirely 0_0
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
That's an amazing demonstration ! I had no idea you can do all that stuff with just LUA, that could become quite a powerful framework for longer 3D games. The tracking algortihm could always be improved, I think that's a small part of the puzzle compared to getting the rest of the infrastructure working. I'll be watching progress on this with great interest, good luck!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I'll be using this opening post to keep track of current progress on console verifications and other testing. Currently testing: - HDMA edge cases in single speed mode _____________________________________ Dev Build: https://ci.appveyor.com/project/zeromus/bizhawk-udexo/build/artifacts Repo for input timestamp files: https://github.com/alyosha-tas/GBI_timestamps Dump script for 2.6.1 and older: http://tasvideos.org/userfiles/info/68761073876269603 Dump script for 2.6.2 and up: http://tasvideos.org/userfiles/info/71650785644185599 NOTE: use the setting 'TotalExecutedCycles Return Value' in GB->Settings in BizHawk and set it to GBI for double speed mode games _____________________________________ Several games use uninitialized RAM in a way that causes desyncs on real hardware, below is a list of some examples I found: Race Days (Select Dirty Racing) : This game checks a memory address to see if a block needs to be initialized. It does this many times in different locations. The same movie will desync in different ways each playthrough on console. Ex:
02EB:  EA 24 C2  LD   (#C224h),A         A:00 F:90 B:A8 C:FC D:02 E:00 H:A0 L:00 SP:DFFA Cy:61216123 LY:128 ZnhCie
Super R.C. Pro Am : This game checks 4 locations in memory before initializing them, these could be related to linking but I'm not really sure. There seems to be a high probability of these cases passing on a real console in my testing:
FFCD > 0x02 (FFCD unwritten)

FFCC != 0xDE (checks 3 times, FFCC unwritten)

FFCC != 0xDE (checks 3 times, FFCC unwritten)

FFC9 != FFC8 (FFC9 unwritten, FFC8 written 1)
Pokemon Crystal: When loading up the credits sequence it checks player state in the wrong bank, this doesn't seem to have any real impact, but would possibly cause a desync if you wanted to continue a movie past the credits:
4384:  FA 5D D9  LD   A,(#D95Dh)         A:00 F:80 B:C2 C:91 D:0A E:00 H:C2 L:91 SP:C0B9 Cy:323183331 LY:149 ZnhciE
4387:  FE 01     CP   #01h               A:00 F:80 B:C2 C:91 D:0A E:00 H:C2 L:91 SP:C0B9 Cy:323183347 LY:149 ZnhciE
Daiku no Gen-san - Ghost Building Company (Japan): uses uninitialized RAM at the start of level 2, this causes a desync towards the end of the level. It looks like all it does is use these values for starting xscroll possibly for the clouds. Battletoads: Reads from HRAM at the start of level one to set some values in WRAM. Doesn't effect the TAS but might effect casual play, not sure
09F9:  F0 C2     LDH  A,(#FFC2h)         A:24 F:00 B:00 C:20 D:C9 E:18 H:9A L:C3 SP:CAFC Cy:105661311 LY:0 znhcie
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
NOTE: probably this is only relevent for MESHUGGAH but I felt I should mention it anyway. Adelikat managed to make the 'platform' A78 again instead of 'A7800.' So this is now consistent betweeen cores. (I tried and failed to do this previously.) This is now present in the official release, so anything made using the dev build should have it's platform made to be A78 again. Other then that movies should work as normal.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Really well done TAS, I like the pikachi platform part especially. Yes vote!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
The encode itself was quite boring, but your short story to go along with it made it feel interesting and was a nice touch, that's good enough for a yes vote for me!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Woah improved Castlevania, that's surprising, great work Challenger!
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/40758803637547300 - galaga http://tasvideos.org/userfiles/info/40758797349008389 - water ski Things to watch out for: In the header section, platform should be A7800 not A78 (which is assigned to EMU7800 and cant be used since it breaks the controllers.) The sync setting.json file should look like this:
{"o":{"$type":"BizHawk.Emulation.Cores.Atari.A7800Hawk.A7800Hawk+A7800SyncSettings, BizHawk.Emulation.Cores","_port1":"ProLine Controller","_port2":"ProLine Controller","_Filter":"None"}}
replace the 'Proline' with 'Joystick' as appropriate. In the input log, the first console section has 7 columns, i.e. |.......| Lightgun conversion wont work since EMU7800 has x and y swapped, so I never changed the mnemonics, sorry I wasn't clear about that. Hope this helps. Also it looks like you need to add 1 frame at the beginning of the bk2's for them to sync, but otherwise both galaga and water ski worked just fine. I've kind of run out of interest in this core, so except for bug fixes I'll probably be stopping development at this point. So, pokey chip, A2600 mode and filters for Tower Toppler will be left to future work.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Cool! Seems like a good start to me so far, nice work!
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
If you post your movie and provide a link I should be able to get it working and figure out what went wrong. I imagine it's something fixable since things seem to be working on my end.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
0.1703 should contain everything light gun related, all the mnemonics, and the addition of a filter selection option in the A7800Hawk menu. The filter doesn't do anything yet, it's just a stub for now, but I needed to do a bit of reorganizing to the core so I decided to have a place holder for it. Should probably be done this week though.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
That's strange, I am getting identical LogKeys (both match the top one), not sure what to make of that. I don't see anything else to change and it works on my end.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Another milestone is finally reached wiith Scrapyard Dog's sewer level finally being correctly emulated. This level was another main driver for me to create this emulator after seeing Mothrayas' TAS of this game contain a pretty bad graphical glitch in this level. What this glitch comes down to is DMA timing around what is called 'holey DMA.' Basically DMA can be told to ignore certain address blocks, and when it does so there is no DMA read penalty for addresses in that block. Except, there is a penalty for the first read in order to identify that block in the first place. Getting this (and pretty much everything else DMA related) right is what fixes scrapyard dog. EDIT: @MESHUGGAH: I unified the controller definitions between EMU7800 and A7800Hawk (at least for 2 button and joystick controllers) so you should be able to compare movies now I think.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
I still can't repro this, does it still happen in master? I rewrote the lgiht gun algorithm to match what Barnyard Blaster expects. That game goes through a two step process of first detecting light to a resolution of about 20 pixels, then going through a second loop that improves the resolution to about 4 pixels. This should clear up the issues experienced in shooting cans in Barnyard Blaster. I also imrpoved vertical accuracy a bit, but if I go up too much then Sentinel is aiming too high, so I chose a middle ground. This is probably as good as lightgun is going to get, as I don't think I'll put a lot more effort into it.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
Thanks to The8bitbeast we are down to 12 runs now! I plan to get back to this after A7800 is sorted out.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3572)
Joined: 11/30/2014
Posts: 2744
Location: US
MESHUGGAH wrote:
- I can't test it with controller (with cursor). Controllers joystick: can't shoot. I also had a random glitch from changing light gun to joystick, reset core, start game, white screen every 3rd-4th frame (like an autofire) without any input pressed/shown in display
I am unable to reproduce this, seems really strange though. Also the game only works with the 2 button controller. I am looking into the other lightgun issues now, I have a good idea what is going on, just need to find the best solution.