Post subject: Nintaco: Cycle-accurate NES emulator with TAS support
Moderator, Senior Ambassador, Experienced player (898)
Joined: 9/14/2008
Posts: 1007
Today I stumbled on Nintaco (http://nintaco.com) which is a new cross-platform open source cycle-accurate NES and FDS emulator and I was really floored with how many features it has. The main interface looks fairly standard: It has full TAS features, as well as a TAS Studio style input method referred to as the History Editor: The FAQ indicates that the emulator seems to cover... literally every peripheral and configuration I've ever heard about the NES/FDS supporting. There's even an API and examples of how to use it to, say, display messages on screen using various languages like Python and C#. There are several other things of interest such as the fact that it uses the LGPL 2.1 license, the fact that it is written in Java, and the fact that it adds a virtual R.O.B. window for the two games that use it. One of those three things may be a problem for some but I'm quite surprised at how much the author has accomplished. This leads to an obvious question - if it proves itself as a reliable emulator that's in many ways more feature rich than even FCEUX, what's the possibility of allowing the emulator and its movie files to be accepted on the site for submissions?I have to say, before I saw this I wasn't thinking to myself "What the world needs is another NES emulator" but now that I see what it purports to have support for I'm rather intrigued. What are your thoughts? Discuss. :)
I was laid off in May 2023 and could use support via Patreon or onetime donations as I work on TASBot Re: and TASBot HD. I'm dwangoAC, part of the senior staff of TASVideos as the Senior Ambassador and BDFL of the TASBot community; I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
It's basically just ported fceux to Java, with occasional additions and, seemingly, full rewrite of the internals. As for movie acceptance, the main question would be "how much unique stuff does it offer over fceux and bizhawk?"
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
feos wrote:
It's basically just ported fceux to Java, with occasional additions and, seemingly, full rewrite of the internals. As for movie acceptance, the main question would be "how much unique stuff does it offer over fceux and bizhawk?"
How is it both a port and a full rewrite at the same time?
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
You got me :D I tried to say it's a replication of fceux features in Java.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
I see. For acceptance, so long as it meets all of our relevant guidelines to a sufficient level (open source, tasability, dumpability, accuracy), I don't think should have to be better than fceux or wizbawk.
Moderator, Senior Ambassador, Experienced player (898)
Joined: 9/14/2008
Posts: 1007
I may do some tests with a couple of games that have historically been poorly emulated and report back. I'm not sure when this will happen as three are a lot of new shiny things to chase (C64 support in Bizhawk being one of them, console replay advancements on several fronts being others, etc.) but I'm definitely intrigued by this emulator.
I was laid off in May 2023 and could use support via Patreon or onetime donations as I work on TASBot Re: and TASBot HD. I'm dwangoAC, part of the senior staff of TASVideos as the Senior Ambassador and BDFL of the TASBot community; I post TAS content on YouTube.com/dwangoAC based on livestreams from Twitch.tv/dwangoAC.
Post subject: Re: Nintaco: Cycle-accurate NES emulator with TAS support
Alyosha
He/Him
Editor, Expert player (3535)
Joined: 11/30/2014
Posts: 2732
Location: US
dwangoAC wrote:
Today I stumbled on Nintaco (http://nintaco.com) which is a new cross-platform open source cycle-accurate NES and FDS emulator and I was really floored with how many features it has. The main interface looks fairly standard: ... This leads to an obvious question - if it proves itself as a reliable emulator that's in many ways more feature rich than even FCEUX, what's the possibility of allowing the emulator and its movie files to be accepted on the site for submissions?I have to say, before I saw this I wasn't thinking to myself "What the world needs is another NES emulator" but now that I see what it purports to have support for I'm rather intrigued. What are your thoughts? Discuss. :)
Not cycle accurate yet, it fails some of the more difficult tests, but it defniitely has some cool features. My opinion though is that at some point we really should be raising the standards of accuracy for NES submissions, especially with Mesen becoming available, otherwise we'll never advance console verification.
Post subject: Re: Nintaco: Cycle-accurate NES emulator with TAS support
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Alyosha wrote:
My opinion though is that at some point we really should be raising the standards of accuracy for NES submissions, especially with Mesen becoming available, otherwise we'll never advance console verification.
Would that mean no more FCEUX?
Player (170)
Joined: 7/1/2016
Posts: 263
!vote mesen. It should be easier to add tas tools to mesen then develop bijilion new cores.
Post subject: Re: Nintaco: Cycle-accurate NES emulator with TAS support
Alyosha
He/Him
Editor, Expert player (3535)
Joined: 11/30/2014
Posts: 2732
Location: US
natt wrote:
Alyosha wrote:
My opinion though is that at some point we really should be raising the standards of accuracy for NES submissions, especially with Mesen becoming available, otherwise we'll never advance console verification.
Would that mean no more FCEUX?
Yes. If Nestaco improves in accuracy and/or Mesen gets some TAS tools I think it would be time to deprecate FCEUX (and quicknes as well.) That's just my opinion, but I do think we're getting to that point.
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
I agree. I'd like to keep QuickNES in Bizhawk unless we find something really good to replace it, but for TASVideos purposes, everything must go.
MarbleousDave
He/Him
Player (12)
Joined: 9/12/2009
Posts: 1555
If we do a TAS of Gyromite using Nintaco, we can beat all 40 phases using the intended method, may obsolete its previous publication. Only when Nintaco is acceptable for TASes.
Spikestuff
They/Them
Editor, Publisher, Expert player (2305)
Joined: 10/12/2011
Posts: 6341
Location: The land down under.
Alyosha wrote:
Mesen gets some TAS tools.
Mesen just needs a TASeditor as it does have movie creation, debugging and dumping. Haven't played around with Mesen's recording myself in a while so I don't know to what extent it works or doesn't. The other issue Mesen currently the input file (.mmo) can't be edited in a simple text editor similar to FCEUX's .fm2 format or be basically a zip file like BizHawk/lsnes in order to access the input.
PikachuMan wrote:
We can beat all 40 phases using the intended method
What does this even mean? What do you mean by "intended method"? Does it mean using R.O.B.?
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Joined: 6/29/2016
Posts: 53
Spikestuff wrote:
Mesen just needs a TASeditor as it does have movie creation, debugging and dumping. Haven't played around with Mesen's recording myself in a while so I don't know to what extent it works or doesn't. The other issue Mesen currently the input file (.mmo) can't be edited in a simple text editor similar to FCEUX's .fm2 format or be basically a zip file like BizHawk/lsnes in order to access the input.
I'm actually in the middle of adding support for over a dozen of the controllers missing from Mesen at the moment (including keyboards, barcode readers, etc.), rewriting the movie file format and allowing every kind of input device to be recorded or used via netplay. The new format is essentially the same as bk2, it's a zip file containing text files for configuration & input log. After that, I still need to make some sort of TAS editor, but that may still take a while (I personally haven't ever used one and don't really know what features people want/need from one)
Post subject: I support descriptive identifiers
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
dwangoAC wrote:
It has full TAS features, as well as a TAS Studio style input method referred to as the History Editor:
I really like it when software has things labeled clearly so anyone can know its purpose, instead of some marketing-hype name which doesn't have a clear or obvious meaning.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
Sour wrote:
After that, I still need to make some sort of TAS editor, but that may still take a while (I personally haven't ever used one and don't really know what features people want/need from one)
http://www.fceux.com/web/help/taseditor/
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Expert player (3535)
Joined: 11/30/2014
Posts: 2732
Location: US
Sour wrote:
I'm actually in the middle of adding support for over a dozen of the controllers missing from Mesen at the moment (including keyboards, barcode readers, etc.), rewriting the movie file format and allowing every kind of input device to be recorded or used via netplay. The new format is essentially the same as bk2, it's a zip file containing text files for configuration & input log. After that, I still need to make some sort of TAS editor, but that may still take a while (I personally haven't ever used one and don't really know what features people want/need from one)
Cool! Good luck with development! As feos already linked, the TAS editor in FCEUX is the best place to start. Also, since you are thinking about it from the ground up, it would be a good idea to keep in mind being able to do sub-frame inputs natively. there is a lot of potential and demand for this right now that BizHawk can't meet.
Joined: 6/29/2016
Posts: 53
Thanks for the link - I'll take a look at FCEUX's docs before getting started on a tas editor. I'm relatively close to being finished with the input rework, actually. Just a few minor things left to fix and implement in the core, and then add the UI for the key bindings for the new input devices, basically. As for sub-frame input, at the moment I've moved to frame input (as opposed to before where the input was polled whenever the NES game asked for it). But it would be relatively simple to make the process repeat itself multiple times per frame, at a configurable scanline interval (e.g every 65 scanlines for 4 inputs per frame, etc). This wouldn't be all that useful for regular gameplay (since each frame is emulated in a couple of milliseconds and then the cpu sleeps until the next frame), but would allow for more flexibility TAS-wise. Also, I'm trying to figure out the best moment to poll the input normally. Bizhawk/FCEUX both do it on scanline 240, iirc? Was this chosen because games typically check the input in their NMI handler?
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11274
Location: RU
Sour wrote:
Thanks for the link - I'll take a look at FCEUX's docs before getting started on a tas editor.
Note, that while being quite complicated, taseditor has no workflow bugs. Literally. With just my tests and AnS's development, we perfected it so much, that if one tries to implement some feature of it with the clean room approach. they will get trapped in design loopholes AnS has already resolved years ago. Bizhawk's tastudio, while being designed for multiplatform and having some more features, suffers a few design mistakes that would have been avoided, if existing experience was studied better.
Sour wrote:
I'm relatively close to being finished with the input rework, actually.
I think you remember who should be the main tester :)
Sour wrote:
As for sub-frame input, at the moment I've moved to frame input (as opposed to before where the input was polled whenever the NES game asked for it). But it would be relatively simple to make the process repeat itself multiple times per frame, at a configurable scanline interval (e.g every 65 scanlines for 4 inputs per frame, etc). This wouldn't be all that useful for regular gameplay (since each frame is emulated in a couple of milliseconds and then the cpu sleeps until the next frame), but would allow for more flexibility TAS-wise.
lsnes, the first tas emulator to provide subframe input, allows to specify what tick you want some input at. But that's for the Reset button, which can literally interrupt anything. We don't need that for the NES, only poll-based controller input. My idea for fceux back what I thought I had time for it, was to allow poll advance in addition to frame advance, and if some presses are recorder for pull #N, specify that number in the movie somehow.
fceux manual wrote:
|commands|port0|port1|port2| Field commands is a variable length decimal integer which is interpreted as a bit field corresponding to miscellaneous input states which are valid at the start of the frame. Current values for this are: 1 = Soft Reset 2 = Hard Reset (Power) 4 = FDS Disk Insert 8 = FDS Disk Select 16 = VS Insert Coin
My idea was to use yet another flag (32) to indicate pull-based input, and then at the end of the line append the poll number that input should be read at.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.