Posts for Alyosha


Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I tested again using the same game and steps you used above. Everything runs fine and recording happened at 60 FPS. The resulting video looked and played correctly. If you want you can send me your specific movie file and I can try making a recording of it to see if anything happens, but other then that I'm not sure what I can do since everything works correctly for me.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Oh that was fast, thank you! I didn't see that option. One other thing, is it possible to add an option to have the VBlank flag set at power on? Most games are pretty good about checking first but there are important examples where the game just blindly waits for 2 vblanks and obvious differences appear when it is set at power on.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Some console testing needs to be done with paperboy before a new run can be made. The arrangement of customer houses after power on is determined by power up timings in the emulator, and I am almost certain that the configuartion in the currently published run is not accessible at power on.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Thanks for the fixes! One other thing I noticed is that when I pause the emulator, the counters disappear. This makes it a bit difficult to compare frames, is there a way they can be made to stay visible?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Dwedit wrote:
Why does the Atari 2600 sound chip used by 7800 games sound so awful?
Well, it doesn't sound all that great on console, but also the EMU7800 core used in BizHawk is not partiuclarly strong. Comparing against other video online of this game, there are pretty obvious emulation issues. Might be worth while to make an in house 7800 core that is less buggy.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Sour wrote:
Surprisingly, there wasn't - I've never had a need for one, and nobody ever asked for one until now. I just added one though - it's in Options->Emulation->Advanced Not sure what you mean by powering from a reset routine? Both power & reset in Mesen call CPU::Reset which runs the PPU/APU for a number of clocks while the CPU is starting and fetching the reset vector's value, etc.
Thanks! I mean counting the CPU cycles that takes in the trace logger so it starts at 8 (9?) instead of 0. EDIT: Also I'm noticing that Mesen seems to not be resetting everything completely on reloading a game / doing a power cycle. I am working with the game Bible Buffet (USA) (Unl) (v6.0) and when I first open Mesen and load the game, it takes 9 lag frames to get to the title screen. But, if I subsequently load the game or do a power cycle, it takes 10 lag frames, any ideas what is causing that?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
@Sour: is there a frame counter in mesen? I found a lag counter but couldn't find the frame counter. Also , what do think of powering on nes from CPU reset routine ? This is what biz hawk currently does and it would make it easier to compare trace logs.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Sour wrote:
Thanks, here are the results: -Both Bionic Commandos sync to the end. -With a small modification (altered the PPU/APU sync after reset in CPU::Reset), Battletoads syncs at first, but then desyncs a bit after the warp. -Both streemerz runs desync. streemerz_joe desyncs almost right away. The other one gets relatively far (maybe ~2 mins in?) and eventually desyncs in a room that had ~10 clowns. For the bugs after compilation, the build process is silly and you need to build 2x for it to work properly (otherwise the resource files will be missing from .exe) - it shouldn't be an issue except the very first time you build it. Also, I just commited support for MD5 hash checks in bk2 files (had only implemented SHA1 ones since it seemed like they were the only thing used), you'll need that if you want to try the Bionic Commando/Battletoads movies.
DId you mean altered PPU/CPU sync? because I don't think battletoads is affected by the APU in any way. Building twice worked! Ok cool now I can do tests. I'll do some more tests as time permits and try to track down where the two emulators differ.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
pirate_sephiroth wrote:
Alyosha wrote:
It's possible with the mini boss skip that doing level 7 first is slightly faster over all then stage 8 first. It probably would be pretty close, at least worth looking into if a serious attempt to optimize this is being made.
We wouldn't have the buster upgrade and the laser to kill enemies faster or escape the capsules and boss door for 2 stages
Oh yeah, I forgot about that one, you are right. Also, are we sure this game is emulated well enough that all these glitches are valid? Some of the glitches seem to strain the system pretty hard, and debugging utilities are currently pretty limited.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Sour, here are a couple of bk2's to test against Mesen, They are for Bionic Commando. I'll get a few more editted into this post by the end of the day too. This is a good test since it requires fairly careful timing but not quite down to the ppu tick. http://tasvideos.org/userfiles/info/37881733414401898 http://tasvideos.org/userfiles/info/37881743719985076 If you are feeling ambitious, this battletoads run is known to sync completely through on console: http://tasvideos.org/userfiles/info/38673693612623545 Battletoads requires exacting ppu level timing from power on to sync, so this run is probably the single strongest piece of evidence that BizHawk is actually doing something correctly beyond what FCEUX is able to do for actual games. You might need to fiddle with power on timing to get it to sync though. EDIT: Here are 2 more test runs for Streemerzzz. They sync on BizHawk but console testing indicates they both should desync. I'll be very interested to see what Mesen does with them. http://tasvideos.org/userfiles/info/36472647975351756 http://tasvideos.org/userfiles/info/36428673262038989 I tried testing myself but after I compile Mesen and try to run it I get errors (both in x86 and x64):
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
It's possible with the mini boss skip that doing level 7 first is slightly faster over all then stage 8 first. It probably would be pretty close, at least worth looking into if a serious attempt to optimize this is being made.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
NES: Works for me, can you give a specific example of a code that doesn't work? SNES: not sure Genesis: known to not work in 1.12.1, should work now in the dev build though so give it a try.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Sour wrote:
Things I recorded in NesHawk and played back in Mesen: -Super Mario Bros: OK -Super Mario Bros V.S: OK -Akumajou Dracula: Desyncs - the FDS implementation between Mesen/NesHawk is pretty different with regards to how the drive is emulated, so this is mostly unavoidable unless we agree on very specific timings. -Contra: Desyncs near the end of level 1 Things I grabbed off TasVideos: -Balloon Fight by Weegeechan: OK -Castlevania 3 (Warp glitch): Desyncs, but seems to desync in NesHawk too? -Addams Family by ventuz: Desyncs, but seems to desync in NesHawk too? The main thing I had to modify in Mesen was the moment the frame number is changed (scanline 241 for NesHawk, was scanline -1 for Mesen), else almost everything was desynced. One thing I noticed in NesHawk, after a reset (Scanline = 0, Cycle = 0), FrameAdvance is called, which calls this: runppu(postNMIlines * kLineTime - delay); This might mean that the CPU and PPU are running for ~20 scanlines, before resyncing back to scanline 0? I'm assuming I'm wrong since that would probably screw up a lot of stuff.. At this point, I guess I would need to use NesHawk's trace logger & compare it with Mesen to see why Contra desyncs - the rest is hard to judge since FDS will desync no matter what at this point, and the other 2 also desync in NesHawk. EDIT: Forgot to mention, this only supports reading bk2 files, not creating them.
Contra uses the DMC so any stray controller read glitches will throw off the run. I imagine we don't emulate that exactly the same so I'm not surprised that one fails. After reset, BizHawk runs a ppudead frame similar to power on, so no it doesn't jump into a frame in that awkward way, but it also isn't exactly the same as hitting reset either. This is a work in progress. I only slightly modified FDS code to improve sound emulation and otherwise have not looked at all into how it is emulated, yeah probably hopeless to sync for now. I'll try to post some BK2's that should sync in mesen in the next couple of days when I have a bit more time.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Wow that ending input early trick. Well done finding that one. Congrats team 4. We only missed 3rd by a couple frames.... ouch. XD I have to say great work to Tompa for basically carrying the team. Also he found an instant mini boss kill that i didn't see in the winning submission, so good work on that too. This game sure was glitchy! Thanks for hosting ThunderAxe31, I didn't really like the game but the time frame to TAS it in seemed sufficient so good job estimating that right.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Sour wrote:
Alyosha wrote:
NESHawk happens to set to FF
Yea, I just learned this from trying to add support for BK2 movies to Mesen.
natt wrote:
The vrc6 tests at the end are based on my best understanding of a translation of some Japanese documentation, but to my knowledge they've never been verified on real hardware.
Actually, it looks like someone eventually ran it on a real VRC6 chip and got the "All tests passed" screen: https://forums.nesdev.com/viewtopic.php?p=138055#p138055
bk2 support in mesen would be amazing! It should improve the verification and emulator improvement process significantly.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
The values at the end are read from un-initialized RAM, which NESHawk happens to set to FF, so at least that much I'm not worried about. I'll look into the $06's a bit more though. Some console testing was done on this and the results were highly variable.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Played through the first race in TAS studio and seeked to various points in the run without errors. I'll need specific reproduction steps to do anything here.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
PikachuMan wrote:
I just received a error like this: System.IndexOutOfRangeException: Index was outside the bounds of the array. at BizHawk.Emulation.Cores.Nintendo.NES.PPU.FrameAdvance() at BizHawk.Emulation.Cores.Nintendo.NES.NES.FrameAdvance(Boolean render, Boolean rendersound) at BizHawk.Client.EmuHawk.MainForm.StepRunLoop_Core(Boolean force) at BizHawk.Client.EmuHawk.MainForm.ProgramRunLoop() at BizHawk.Client.EmuHawk.Program.SubMain(String[] args)
Seems like a NESHawk error but I'll need a lot more information then that in order to debug it. Game? Movie file? Repro steps?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
@Sour: what are the test_apu_2 tests doing? I've never seen those before.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Finally had a chance to get Ninja Golf working and fix A7800 save states. Here is a bk2 that runs in the current dev build of BizHawk It should be usable to make a new encode for Ninja Golf that has correct color palette. http://tasvideos.org/userfiles/info/38458302684398268 It should probably also replace the published movie file since it works in current builds and won't cause crashes but I guess that's up to you.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Yeah having an updated test rom set hosted in one place would be really valuable. Stumbling across test roms by chance in the forums is frustrating. Also, we really need to move beyond these fundamental test roms , and the first step in that is just accounting for all of them. True's console testing shows that we still don't have sufficient information to TAS games that require ppu tick level accuracy but there is nothing new to test to point out what is wrong.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I didn't notice this until now. Almost certainly that RTA run was captured from a reset. Reset can change these internal timers slightly, you can see a similar effect in dragster.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Sour wrote:
On a north american NTSC NES, count_errors should technically only have a maximum of 4 different results (there are only 4 possible alignments CPU/PPU alignments) - but I could be wrong on this.
Maybe, but since it's not characterized yet no one really knows. Based on some console testing with read2004.nes there might be more.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I think is is still a bit misunderstood, but having '*' in the count error tests is passing, not failing. FCEUX is failing the test by having no '*' . The problem is that the test is inconsistent on things like powerpack since it DMC counter is always running. I still suspect that if run from power on, and on a cart, there will be consistent (or only a small number) of actual test results. If anyone is able to do this I think it will really clear things up and help understand DMC start up state.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Also, if you don't mind the very dated gameplay experience, Atari 2600 has many possibilities for TASes where you can learn a lot in a pretty simple environment.