Nintaco -- NES-Famicom-Dendy Emulator

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

hackfresh
Posts: 100
Joined: Sun May 03, 2015 8:19 pm

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by hackfresh » Sun Mar 05, 2017 1:45 pm

hackfresh wrote:Is there anything that would make netplay better/worse than nestopia+kaillera p2p? Or should it be roughly the same?
I never tried netplay under Nestopia. My implementation is just a simple TCP protocol. I really only intended it for intranet play; it may not be performant over a larger network.[/quote]

Gotcha. Its probably equivalent performance then.

hackfresh
Posts: 100
Joined: Sun May 03, 2015 8:19 pm

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by hackfresh » Sun Mar 05, 2017 4:45 pm

Found the fix for my friend on MAC which was a solution for minecraft.

Had him download the 2.9.3 release of lwjgl

Copied these files from the /jar folder of the download into the nintaco/lib folder:
Jinput.jar
Lwjgl.jar
Lwjgl_util.jar



Copied these files from the /native/macosx folder of the download into the nintaco/lib/native folder:

ibjinput-osx.jnilib
liblwjgl.jnilib
openal.dylib

Then copy and renamed openal.dylib to libopenal.dylib

User avatar
zeroone
Posts: 932
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by zeroone » Tue Mar 07, 2017 9:34 pm

Matsuda Seiko's Rock'n Rouge.zip
(1016 Bytes) Downloaded 312 times
Here's something fun to try. Load the following ROM into Nintaco:

Family BASIC.7z <Family BASIC (J) (V3.0) [!].nes>

Then, select Machine | Family Basic | Load Program... and select the bas file within the attached zip.

Then, type: RUN

User avatar
zeroone
Posts: 932
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by zeroone » Fri Mar 10, 2017 12:15 pm

TetrisBot.zip
(12.65 KiB) Downloaded 321 times
Want to see a Tetris Bot in action? Start Tetris (UE).7z <Tetris (U) [!].nes> in Nintaco. Then, select Tools | Run Program... Click on the Find JAR... button and select the .jar in the attached zip. Then, press Load JAR. And, finally press Run.

Within Tetris, start the game as either type A or B and at any speed or height. The Bot will take control once the game begins.

To see it play faster, hit the Stop in the program controls window. In the arguments field, type in: fast. And, finally press Run again.

Be sure to hit Stop before closing the game.

I have yet to document the API. But, it provides full programmatic control of the emulator and it's designed to work from any language. From the main menu, Tools | Start Program Server... enables remote API access into the emulator. I translated the bot to Python, Lua and C# to demonstrate (other languages pending).

User avatar
zeroone
Posts: 932
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by zeroone » Sun Mar 12, 2017 3:20 pm

I made some minor updates (new build in OP): I fixed some issues with Netplay and I added a high-speed button that can be used to skip past intermissions or to hasten rewinding.

hackfresh
Posts: 100
Joined: Sun May 03, 2015 8:19 pm

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by hackfresh » Sun Mar 12, 2017 4:22 pm

What was fixed with netplay? When I tried it the old version the client bore all of the lag/frame delay which makes it useable in a LAN setting only.

User avatar
zeroone
Posts: 932
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by zeroone » Mon Mar 13, 2017 6:28 am

hackfresh wrote:What was fixed with netplay? When I tried it the old version the client bore all of the lag/frame delay which makes it useable in a LAN setting only.
That mechanism has not changed; all the clients are synchronized with the server. Is there a better way to approach netplay?

tepples
Posts: 21980
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by tepples » Mon Mar 13, 2017 7:19 am

There are a couple methods to improve netplay experience over a link with latency in the tens of milliseconds. Both are used by things like GGPO.

Adding constant lag
Send the input received from the local keyboard/gamepad immediately, but run the emulator a couple frames behind to allow input from other players to arrive.

Backdating
If other players' input does not arrive in time, make the "dead reckoning" assumption that the input hasn't changed. When the received input differs from the dead-reckoned input, rewind to the difference and re-emulate.

If you're relying on input sync to keep the players' emulated machines in sync, you want the reliable in-order delivery of TCP. This means that if you're using UDP to reach a server behind NAT in cases where TCP traversal doesn't work, you'll probably end up reimplementing most of TCP on top of UDP. Or do you instead require users to run their own server on a machine not behind NAT, such as a VPS leased from a hosting provider?

hackfresh
Posts: 100
Joined: Sun May 03, 2015 8:19 pm

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by hackfresh » Mon Mar 13, 2017 10:46 am

EDIT: Removed question
Last edited by hackfresh on Mon Mar 13, 2017 10:52 am, edited 1 time in total.

tepples
Posts: 21980
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by tepples » Mon Mar 13, 2017 10:52 am

You rewind, replay the corrected inputs, and fast-forward, so that the frame rate is constant. There will be a small amount of teleporting in the twitchiest of twitch games; if it gets too harsh, increase the constant lag. But if a game already incorporates delays into its animation, the effect of backdating will be invisible. Games with such delays include Punch-Out!! (as Dwedit described), games that run at a low frame rate (such as anything by Micronics), and platformers with a momentum mechanic.

hackfresh
Posts: 100
Joined: Sun May 03, 2015 8:19 pm

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by hackfresh » Mon Mar 13, 2017 10:53 am

Ya I should have spent a few minutes looking at few more article about it before asking. Thanks.

AnnaWu
Posts: 23
Joined: Sun Oct 07, 2012 12:31 am

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by AnnaWu » Sun Apr 02, 2017 1:08 pm

Family BASIC

Is the Play/Record tape function working?
(*.tape)

User avatar
zeroone
Posts: 932
Joined: Mon Dec 29, 2014 1:46 pm
Location: New York, NY
Contact:

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by zeroone » Mon Apr 03, 2017 4:45 pm

AnnaWu wrote:Family BASIC

Is the Play/Record tape function working?
(*.tape)
It does indeed work. The *.tape files are a proprietary format.

kazblox
Posts: 34
Joined: Thu Feb 23, 2017 2:27 pm

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by kazblox » Mon Apr 03, 2017 5:20 pm

Nice job on the emulator-- It's the only one that will let me emulate the Subor Keyboard nicely without surrendering the joystick controls or having it not work at all! If only settings didn't default on Power Cycle...

Aside from all games I've tested so far, completely working, there's some issue going on with the boot up of Subor v3.0, v6.0 and v10.0 in your emulator. There's supposed to be a chime that rings three times, and with the correct "TV System" setting (Dendy), it only rings once. Mesen gets this correct.

Nintaco

Mesen

AnnaWu
Posts: 23
Joined: Sun Oct 07, 2012 12:31 am

Re: Nintaco -- NES-Famicom-Dendy Emulator

Post by AnnaWu » Tue Apr 04, 2017 12:04 am

zeroone wrote:
AnnaWu wrote:Family BASIC

Is the Play/Record tape function working?
(*.tape)
It does indeed work. The *.tape files are a proprietary format.
Sorry, it doesn't work for me, tested with the Family BASIC V3.
Maybe my old Notebook (Windows XP SP3 32-bit) is too slow for this program (Java 8).

No problems to load/save tape files with Nestopia, VirtuaNES, nester, kindred, vdmgr and eFamilyBASIC.

Can you upload a saved/working *.tape file to check I am able to load it or not?
Thanks.

Post Reply