Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Posting an update since I'm back to working on this. I've cleaned up MBC1 emulation and added multi-cart support for Bomberman collection and Mortal Kombat I & II.
Next step will be finally tackling audio which is the last step before the core is nominally functional.
Going forward, GameBoy emulation will be disabled from Gambatte and and switched to GBHawk. Color GameBoy emulation will continue to be provided by Gambatte. This should allow time for bug fixes and improvements to the core before I add CGB support to GBHawk and remove Gambatte altogether.
Also I have removed BIOS support from Gambatte since I don't think it's worth the time to sort out the bugs.
I expect I'll be able to start making Dev builds within the next month.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
This was one of those games that had banks swapped internally. Added to the internal list with the others like Congo Bongo fixes it.
The failure actually occured at the function that tries to differentiate between NTSC and PAL. Probably I should do something so silent crashes like these are avoided.
EDIT: Done. Now the core will throw an error when a frame seems endless instead of just looping forever.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Indeed. Ok I'll set aside other stuff and prioritize finishing GBHawk. Obviously my attempts to add BIOS support to Gambatte resulted in too many bugs to be useful. It's about time anyway, Gekkio has done so much new research that Gambatte now looks really outdated.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I see this line in the publication (and looking up I also see it in the judgement.)
This is not the case. The movie is longer because StarvinStruthers was able to end input sooner without costing an in game timer tick. I on the other hand had to hold the fire button until much later. Emulation accuracy is not at issue here, it is purely game mechanics.
This might seem counter-intuitive, and well, it is, so maybe the assumption was that it must be due to emulation differences. But no, this game is just weird.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Thanks for the repro steps. I suspect these errors are different from the original one though. Still an error none the less.
Hmmm, that sounds bad. I'm surprised this wasn't reported earlier. I'll try to sort it out, or maybe I'll just buckle down on GBHawk so we can deprecate Gambatte, at this point it's quite outdated anyway. Either way I'll put this on the issue tracker since it seems pretty serious.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Good on you for deciding to step away and let some things go. It can be difficult to stop doing things you feel responsible for, even when the alternative is crashing and burning. Hope you find a good balance and get rested!
I think maybe you are being a bit too hard on yourself here. Perhps aside from DKC2, I would say that we really didn't have anything to offer, and I don't think that would have changed if someone else had taken your place. I would offer up the opinion that TASBot, much like TASVideos itself, has more or less run it's course with what's currently possible. We need some serious R&D before we are in a position similar to 2014 where there was novel and exciting stuff to offer.
Anyway, good luck with the prep!
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Yeah, it's extremely obvious just from your uncharacteristic posts. Take a break man. D:
As for the actual info, cool stuff! Nice work to team TASBot for making the most of limited opportunities.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
It looks like the crash happens when going from 'enable BIOS = true' to 'enable BIOS = false'. I'll look into it.
EDIT: It looks like the core is not able to properly dispose of the state pointer for some reason. I don't know why yet.
EDIT2: I don't know, now it just seems to happen randomly. I rebuilt the emulator several times, sometimes it happens, sometimes it doesn't. What does this imply? Compiler bug? Memory management issue?
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Agreed with the sentiment that technical gimmicks aren't likely to hold many people's attention anymore. I don't know, the selection committee said they wanted typical TAS stuff, but I'm not sure they really actually do.
My personal opinion is something interactive is needed to boost interest. Like, maybe we can do the SMB in SMW ACE, but give TASbot real time control of various aspects of the game, like enemy behaviour, to make it super hard and trolly. Then we can have a race between SMB runners to see if they can beat TASbot-SMB.
Well, just an idea for something different.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
The story surrounding Todd Rogers' Barnstorming time is filled with as much intrigue as Dragster.
Basically there are 4 times at issue:
32.04: Originally enterred into the databast at TwinGalaxies. Obviously impossible but still took a lot of effort to get it removed. I guess this was at a time when belief in the 'human factor' was still quite strong and Todd Rogers' reputation still un-blemished.
32.74: The 32.04 was changed to this since the thought is that 32.04 was just a typo and 32.74 is the lowest readily achievable score, which Todd probably legitamitely achieved numerous times (but I'm not sure if a specifc instance was used as justification for changing the 32.04 to this instead.) 32.74 is the current record according to TG.
32.50: This is one of those legendary times that there are claimed witnesses to but no evidence other then hearsay. There would need to be some kind of serious glitch discovery in order for this score to be achieved. At some point this score was the world record but was removed for reasons I'm not clear about.
32.67: Another legendary time, but this one is borderline believable. RTM, the former chief referee at TG, claims to have witnessed it personally. And actually, it might legitamitely be possible. There are several spots in my current run where it's possible to gain time, but I cannot maintain it throughout the run. Perhaps if someone really understood the games mechanics, they could work out how to improve the time here, it might even be decided in Todd Rogers' favor, who knows.
But, I'm not interested enough to bother. My only motiavtion here is that the current TAS fails to beat the RTA record, which is even recorded on video, so it's a bit embarrasing that the published TAS should fail to beat it.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
I just recently went back to try to match the RTA world record for game 2. I was able to beat it just slightly with a 49.95.
I don't know the programming details of what I changed, I just compared against my old run until I found some improvement.
http://tasvideos.org/userfiles/info/42764456087635749
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Debugging is definitely one of BizHawk's big weak points at the moment. Lack of subframe inputs is as well.
For in-house cores, the situation is at least tractable. NESHawk for example already has the entire core state available on every single clock tick. I've made progress on making other cores work this way as well. Eventually all in house cores will work this way. As feos mentions though this would require a new ecosystem to have any real use, but it's basically doable.
For ported cores the problem seems to be much more complicated. I'm not sure it's really even practical, and the maintanance burden would likely be quite large. But, these are also the cores that people are most interested in, so that's awkward.
Maybe we are just seeing the limits of this kind of multi-system, multi-source architecture?
I think this is already a feature request, not sure if its exactly the same:
https://github.com/TASVideos/BizHawk/issues/267
Sounds difficult and unlikely to happen.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Can I waterbox Mednafen's PCE core? lol no. 8D
I don't know anything about waterbox or mednafen or any of the relevent infrastructure stuff. natt would have to do that one.
I could potentially fix PCEHawk, I've looked into the code base in the past and it's not that much worse then other cores (except for the CD stuff.) It would need a ton of work though starting with a new CPU core.
But, there's really no point in having both in BizHawk. If Mednafen's core was ported, it would 100% obsolete PCEHawk. Properly fixing PCEHawk would by necessity make it on par with Mednafen, so porting it wouldn't be needed at that point.
I think I'll end up doing Coleco Adam next, so at least on my end the PCE can will be kicked down the road a bit longer.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
You win this round QuickNES....
I just added Mapper 114 support for Aladdin SuperGame.
I also cleaned up NESHawk a bit, but it didn't speed anything up.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
There is an MMC3 version that is marked as [!] from GoodNES:
Aladdin (SuperGame) (Mapper 4) [!].nes
md5:505DE5B7465F89013D6797523A079D61
This version hes no lava wall in the last level, it also doesnt run in FCEUX (due to obscure IRQ stuff that I forgot the details of.) Nevermind it seems to run just fine, i must have been thinking of something else.
There is also a 'Mapper 114' version which doesnt work in NESHawk.
So yeah, seems like one of these 2 would be the prefered version?
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Thanks for the testing, that is consistent with what I would expect.
Sorry Sonia but it looks like you just got unlucky :(
I'll try to find some general optimizations that will at least get you back up to 1x speed in games like Kirby. A NES emulator not being able to hit 1x, even under abnormal conditions, just seems silly, there must be something I can do to get some better performance.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
So it seems certain that the PPU changes are the culprit here, but I looked over the code again and there just really isn't anything that would slow it down so much. (It's just a mess of 'if' 'switch' and 'for' loops really.)
From a compiler / different OS perspective (I do all my testing on Windows 10) the biggest change I made was taking FrameAdvance out of 'unsafe' mode since it was no longer relevent. I suppose there is a chance this could have a real impact on performance for your machine, but I wouldn't know anything about why. In looking over things again I also had a spurious 'unsafe' array I just removed, but I doubt that has any impact.
So far the only thing I can see that sticks out is that you are using windows 7. If anyone else with Windows 7 is reading this, can you please try NESHawk and see if you are having any similar slowdowns?
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Thanks for the feedback so far.
I'll look into at least getting Trace Logger going in mGBA, that seems pretty important. I'll probably look at Code Data Logger in NESHawk, although that's less important. The debugger more or less needs a rewrite, so that won't be happening soon.
Our GPGX build is very dated, That one will need natt.
Can you give an example for this one?
Still so much to do! 8D
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Hi all,
I'm looking for input on what things people want to see that I might be able to work on in BizHawk. Up until now I've just done whatever without any real direction. But now I'd like to try to do things that people are actually interested in.
So, just to be clear, I'm looking for things that people would actually, really use to make a TAS, not just 'it would be cool to have this system in BizHawk.' I really want to focus on something that would actually be used to do some TASing.
I've had a request for arcade PacMan, so I'm thinking of doing that, but I'd still like to hear other ideas.
Anyway, I'm open to suggestions. I do still plan on working on GBHawk but it's on the back burner until I can muster up the motivation to do the audio. I like to be working on a few different thing at once anyway.
Editor, Experienced Forum User, Published Author, Expert player
(3536)
Joined: 11/30/2014
Posts: 2733
Location: US
Hmm, strange stuff.
Maybe it's something like anti-virus or drivers, but I can't think of a reason why only NESHawk would be affected.
Thanks for trying though.