Posts for Alyosha

Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Thank you for the encode FractalFusion. I didn't know about (or maybe forgot) there was a score screen at the end. I don't really consider it part of the run, but if it's necessary whatever. I also didn't test how different endings would change the time if I burned one of the players lives, but that seems pointless to me anyway, as I consider the run over once the top of the tower is reached regardless of the ending cutscene.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Okay! After a very long delay I finally got around to getting Game Gear linking working. I tested using Dr. Robotnik's Mean bean Machine and it seems to be working correctly. The GG linking isn't as well documented as gameboy, so some things aren't 100% nailed down yet. The most important thing is that there needs to be some latency between sending a byte and raising an NMI on the other console to read the byte. I have it set to 256 cycles currently, 128 is definitely too few and causes the game to crash. So this is something that requires some more research and refinement. So if you are interested in playing Game Gear linked games, please test things out and let me know what problems you run into.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
EZGames69 wrote:
Alyosha wrote:
You wouldn’t judge someone’s singing talent based on a digitally ‘fixed’ version of their singing
Not a good comparison. It’s more like being a good singer but the microphone you’re using has a loud static noise to it, and you judge the singing based on that.
No, it's not like that. The output a SNES provides for a SNES game is the correct output. Personally I would even consider the word 'fixed' a misnomer in this case, but whatever.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Yes that is a big weakness of the current setup that I have thought about how to fix but haven’t come up with a satisfying solution for. I’ve had that happen to me too when downloading a dev build or something and forgetting to add firmware , and it is quite annoying.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Seems like a pretty justifiable criticism to me. The first encode is what an actual snes would output, why should someone base their opinion on what not-a-snes would output? You wouldn’t judge someone’s singing talent based on a digitally ‘fixed’ version of their singing. But there are lots of aspects of the movie that someone may find entertaining , and perhaps the ‘fixed’ encode just removes the distracting parts, but the run itself is the first one, not the ‘fixed’ one.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
you can run GB games in GBC mode by picking it in 'console mode' under sync settings.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
It's cool to see how robust console verification has become for pokemon games now. Do you guys plan to push this in any new directions with other games or other pokemon gens TiKevin83?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Can you give any more details aout what you are seeing? Does it work in gambatte?
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Even watching the encode that gets rid of the long loading screens, its just a car driving around occasionally punctuated by rather irritating 'execution' screens. I'm not familiar with the game, it just looks rather bland to me. It's not just this game though, the star tier in general seems to have lost it's luster. It seems like something we do just out of inertia / habit. I don't know, maybe it's just me.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Hard to say, I won’t have much time in the next two weeks so only a little progress might get made during that time . I’d say there is a good chance of it being more or less done by June though
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I haven't had all tat much time to work on things lately, but I thought I'd mention what Vectrex progress has been made. the MC6809 is up and running and I can currently run through much of the vectrex BIOS code. It doesn't display anything or have any input yet, but I'll be incrementally working on that. Also I haven't forgotten about Game Gear linking, just haven't gotten around to finishing it up yet.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
hey cool find! Maybe you can find some other improvements and make a new submission. It always kind of bugs me when the puzzle games don't have fully optimal solutions.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Already? Wow that's amazing! Hopefully this breaths some fresh life into SNES work. It feels like it got so close but never quite overcame issues of complexity and hardware timing. This is just a suggestion, but you might want to contact DwamgoAC and some of the other TASBot folks. I remember them having some really serious issues working with the snes a while back. Maybe they can offer some input in how to future proof this or give it more options to behave like a real snes.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I've started working on a vectrex core. A lot of components already exist as parts of other cores so development shouldn't be that hard. the toughest part is the MC6809 cpu which is pretty involved for an 8 bit cpu but shouldn't be too much of a hurdle. Probably not a core with much utility but i wanted to try something a bit different.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Unless another Asnivor pops up, I don't think you'll find much developer interest in older systems. However, if you are interested in such systems, I can help with core building within BizHawk. The VIC-20 for example is a pretty standard and simple design, and uses the 6502 CPU which we already have. If you aren't interested in the inner workings of BizHawk's infrastructure, I could even put together a blank core that is already hooked up, so you would basically just be responsible for putting together audio, video, and system layout stuff (which is admittedly the bulk of the work, but is really simple in terms of actual coding.) It's a great way to learn about console design and even basic coding. Porting existing emulator's is out of my capability though, so I can't help there.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Did you try it? There are various supported Nanjing mappers.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I could make a version that always runs a constant number of cycles, in fact that is what GBHawklink does by necessity. However I don't like how this makes input frames disconnected from video frames, so I'm willing to live with slight anomolies when the screen is off instead. As I've said in the past, I might make a constant cycle count version when everything is more mature and finalized, but for now it's not a priority.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Do you have GB -> settings -> sync settings -> use existing save ram selected? The intent of this setting is to allow for play without having to worry about accidently modifying your working save ram file.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I notice that is a kirby's dreamland thread. Yeah that game turns off the screen a lot, so it will appear to run fast. GBHawk isn't really build for RTA anyway so I'm not that worried about it.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
It’s currently non-functional. So far I have the ppu cou and apu converted to C++ and have removed the reflection that proved pretty annoying. But I haven’t stitched them together yet.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
https://www.dropbox.com/s/rr4mn6trfh5iqgj/streemerz_joe.bk2%20%281%29.frame.r08?dl=0 http://tasvideos.org/userfiles/info/71811809490780451 Here is a streemerz input file for superb joe mode. once again this sync on Mesen and my personal build but not on Bizhawk dev build.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I made some improvements to NESHawk that give a roughly 5 fps boost in performance through some simple code optimizations. Some gems of wisdom include:
if (true)
else if (false)
replaced by simply:
if (true)
else
I also rewrote the audio handling to bring it in line with other cores and simplify it a bit. Note that these changes break savestates (but not sync)
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
feos wrote:
Haha, yeah baby! It should have happened sooner or later. 10 years ago writing a core in C# maybe looked like a grownup approach, but over the years it's been getting more and more accurate, slower and slower, and at this point it's obvious that if we can't emulate 6502 or Z80 based systems at full speed, we're doing something wrong. It also means there's no way younger consoles will ever run at usable speeds if the same approach is taken. Though I don't think anyone will be using it for further development, as opposed to just running movies on it. There are tons of NES emulators now, and it's kinda getting old. Even bizarre accuracy isn't that novel anymore. So I don't know if this is eventually adopted by hawk again, but this undertaking is obviously something worthy.
Indeed, C# just isn't suited for this type of thing. It's kind of a shame too, since we're at a cross roads where making new in house cores in C# is not even practical except for the few remaining 8 bit systems and old computers. But on the other hand our ability to interact with ported cores is usually difficult and limited. It's also unfortunate that so many NES emulators have code bases that are quite difficult to work with. Wouldn't it be great to be able to drop the NESHawk core into the FCEUX frontend and suddenly have a fast, complete, and accurate NES TASing emulator? I think so, but I don't dare to even try.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
I have started work on a derivative of NESHawk ported to C++. Current repo is here: https://github.com/alyosha-tas/NESHawkplusplus The motivation here is that NESHawk is super painfully slow. It's way too slow to do serious bot work with. QuickNES is 20-30x faster. But, NESHawk is very highly accurate, unlike QuickNES. Also, NESHawk can be run at the precision of one PPU tick. This provides easy access to subframe resets and inputs. So I thought I would try to port the NESHawk core to C++, cut out the fluff, maybe do some optimizations, and see how fast it could run. So far porting the core is been relatively pain free. I'm about 30% done. I'm hoping to have the porting done in a week and see if I didn't break anything. The goal here is to have a framework for a build-it-yourself emulator that won't limit the user in any particular way. Anything you can do with C++ you can wrap around NESHawk++. You will have full access to the core state, and can increment it with a single function call. And since it will be the exact same core as running on BizHawk, you can create BK2 files of your work that will still sync on actual BizHawk. Also, this won't be an actual emulator in the usual sense. There won't be any controller support, mapper support (maybe some common mapper examples), gui, user settings, or similar extras. It will basically be a virtual NES (cpu, ppu, apu) that users will have to develop their own tools for. That's basically it. If anyone is interested in helping with this or has a project in mind they think this would be helpful for, feel free to contribute or let me know.
Alyosha
He/Him
Editor, Experienced Forum User, Published Author, Expert player (3560)
Joined: 11/30/2014
Posts: 2744
Location: US
Hmm, this made me think, NESHawk is currently very slow, but it is also in a form where one can run the entire underlying core one cycle at a time. You also have access to the entire state at all times. So you could basically extract the entire core as is and directly translate it to C for example and be able to increment the core one cycle with one function call. You could then wrap any machinery you like around that and have no extra BizHawk overhead. You could probably also simplify things a bit for a specific application for additional performance benefits . I’m not sure if this would be faster then QuickNes, but you could do some serious stuff with it. And the results would still be valid on BizHawk. Just a thought . I might consider trying it in the future.