ethernet for the NES

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

Post Reply
User avatar
miker00lz
Posts: 235
Joined: Thu Sep 23, 2010 7:28 pm

ethernet for the NES

Post by miker00lz » Fri Dec 23, 2011 4:21 am

has anybody ever looked into the possibility of an ethernet adapter for the NES? i know it's not really practical, but should definitely be possible. it would of course require a custom cart PCB.

think how bad ass it would be to IRC from a NES, or better yet run a web server on it.

Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Post by Shiru » Fri Dec 23, 2011 8:56 am

Chatting from a gamepad going to be really badass. Like entering password in Guardian Legend. 32 characters per row also helps it.

Isn't there is not too much RAM by default to run a webserver?

It is certainly possible to hook up an ethernet adapter, was done with other 8-bit systems, but to make any use for it you may need a pile of extra hardware.

mic_
Posts: 920
Joined: Thu Oct 05, 2006 6:29 am

Post by mic_ » Fri Dec 23, 2011 11:48 am

has anybody ever looked into the possibility of an ethernet adapter for the NES?
Yes. See this topic

johannesmutlu
Posts: 26
Joined: Fri Mar 11, 2011 2:22 pm

Post by johannesmutlu » Wed Dec 28, 2011 9:36 am

there was a famicom modem wich allowed you to down load games,doing quiz games,or getting info about the wheater,news etc,,,
and you can even play multi player games online.trough it was an opscure unit wich required a phone line.

slobu
Posts: 275
Joined: Tue Jul 12, 2011 10:58 am

Post by slobu » Wed Dec 28, 2011 9:39 am

johannesmutlu wrote:there was a famicom modem wich allowed you to down load games,doing quiz games,or getting info about the wheater,news etc,,,
and you can even play multi player games online.trough it was an opscure unit wich required a phone line.
I remember Windows 2000 Server had the capability to allow dialing INTO the server for Internet access. If you had the Famicom Modem and knew enough about coding a TCP/IP stack (maybe use code from Contiki) it could be done with an of-the-shelf PC.

zzo38
Posts: 1059
Joined: Mon Feb 07, 2011 12:46 pm

Post by zzo38 » Fri Dec 30, 2011 7:32 pm

It might be able to do a very simple gopher client

Bisqwit
Posts: 248
Joined: Fri Oct 14, 2011 1:09 am

Post by Bisqwit » Fri Dec 30, 2011 8:32 pm

So has anyone began the work at coding a PPP & TCP-IP stack on the NES? By now there should be plenty of example code to make the task easy.

But there will certainly be some limitations; TCP does require some amounts of RAM. But if you overlook some compatibility issues, and e.g. assume that a packet is never lost, you might be able to make a ROM-based web server on the NES.
Then, use an UDP based protocol to conjure up extra RAM for the game through serial / LAN link!
Molasses slow RAM, but still RAM. Possibly windowed for efficiency.

User avatar
clueless
Posts: 498
Joined: Sun Sep 07, 2008 7:27 am
Location: Seatlle, WA, USA

Post by clueless » Fri Dec 30, 2011 8:47 pm

If I were to do this... I would put the OSI layers 1-4 (physically transceiver through the TCP packet mangler) into a co-processor. The NES would access it as if it were memory mapped IO, or some simple serial protocol.

If I were to do this with minimal cost, I would connect a serial port on a PC to a serial port expansion for the NES, or bit-bang the 2nd joypad port, and let a PC do all of the heavy lifting.

I know that this isn't a "pure" solution, but it would be much easier to develop and test, and probably cheaper. If you really want the NES to to packet re-assembly, you're going to burn lots of CPU cycles and needs lots of RAM.

User avatar
Memblers
Site Admin
Posts: 3786
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers » Sat Dec 31, 2011 11:13 am

The idea of ethernet on NES has came up several times over the years, you can search this forum to find everything. chykyn is a recent developer who had been working on the hardware and software for it.

The older version of Contiki was able to compile with CC65, so there is that existing code. But I tend to agree with what clueless was saying, about leaving the heavy lifting to a separate coprocessor.

I had previously looked around for software that would let the NES access the internet over the PC's serial port, but the only software I could find to do it was commercial, and also requires entering the target IP address on the PC-side.

I'm wanting to build the NES to USB adapters, so anything like this would be great. I'd really like to make an FTP client for NES, but I'm not sure how I would deal with the TCP stuff.

User avatar
chykn
Posts: 108
Joined: Sun Feb 21, 2010 6:06 pm

Post by chykn » Wed Jan 04, 2012 7:39 am

Sorry guys, I haven't really had much time to work on this lately. I blame it on the new baby.
miker00lz wrote:has anybody ever looked into the possibility of an ethernet adapter for the NES? i know it's not really practical, but should definitely be possible. it would of course require a custom cart PCB.
Yes, Virginia, there is a Santa Claus. Or in this case a functional demo hardware ethernet adapter for the NES. It's called the ENIO (Extended NES IO). It provides ethernet, USB KB and serial connectivity. Yes, it does require a custom cart since signals must be sent over the EXP pins...
http://nesdev.com/bbs/viewtopic.php?t=7 ... hlight=exp

Here are pictures of the dev board (50-pin cable connects to EXP) as well as the first board that actually mounts under the NES.

A dev board for a 100mb ENIO
http://www.chykn.com/ENIO-DevBoard.jpg

Bottom shot of the first "mounted" 100mb ENIO
http://www.chykn.com/ENIO-Rev1.jpg
clueless wrote:If I were to do this... I would put the OSI layers 1-4 (physically transceiver through the TCP packet mangler) into a co-processor. The NES would access it as if it were memory mapped IO, or some simple serial protocol.
Yes, that is exactly how it works. The PIC32 offloads the TCP/UDP processing and provides buffering. The NES sends commands to the ENIO telling it where to connect; the ENIO replied with a VCID (virtual channel ID) for the new session. There's still plenty of opportunity for refinement, but the client functionality is there.

Post Reply