Nes Development Kit

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

Moderator: Moderators

mham
Posts: 10
Joined: Fri Jun 28, 2013 9:32 am
Location: Baltimore, Maryland

Nes Development Kit

Post by mham »

Hey all.

New to the nesdev forum. I have posted this on another forum to gauge interest and would love to some feedback from members of nesdev!

This idea has run through my mind a few times since I have started working on my most recent project. I was wondering what the interest would be in an NES dev kit. The kit would be all inclusive to get someone up and running developing for the NES. It would have all the tools I have created for my own development use including:

-Flashable NES cartridge Easily configurable NES dev cartridge (dip switches instead of soldering pads to select things like horizontal/vertical mirroring)
-Custom ROM programmer and transfer cable (connects to computer via usb and to dev cart via a proprietary connection. Cartridge can be programmed in a matter of a few seconds without being removed from the dev system)
-Transfer software for the computer to connect to the programmer and provide services like ROM erase, dump, burn, verify.
-A well written tutorial to get people started, as well as a useful reference guide
-Well documented code and example programs for beginners and intermediates alike to understand how things work
-A few different software tools for users to choose from and documentation on how to use them and pros and cons of all of them (cc65, asm6, nesasm, etc.)

I wanted to gauge people's interest in this, and if it is high enough I would put resources into creating this and also starting a kickstarter to help fund this.

Feel free to reply with ideas, or at least if you'd be interested in something like this or not!

-mham
Check out this recreation of SMB 1-1 I did in javascript. Still has quite a ways to go, but it's coming along.
http://sandbox.mhamdev.com/mario/impact/
3gengames
Formerly 65024U
Posts: 2281
Joined: Sat Mar 27, 2010 12:57 pm

Re: Nes Development Kit

Post by 3gengames »

I'm here, too. I voiced my opinion in PM and on the post, but just some extra tips with the extra info:

Why have dip switches at all if you have a flash cart? I don't get how that'd work and be able to NOT select the mirroring (Or diagonal or 4-screen) from the GUI/Command-line tool that is used to flash the cart.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: Nes Development Kit

Post by infiniteneslives »

I'd imagine it would be hard to gain backers with ideas/plans alone, although I'm just saying that from a nesdev standpoint. I'm always surprised at the things that people on kickstarter will toss their money at considering the high risk of funding something that doesn't even have a prototype yet.

To be honest its a good idea, but there is a lot of work involved with pulling it off. People often come here presenting similar ideas (myself included) which never materialize. Because it's so frequent projects of this sort are taken with a grain of salt. Effectively if you want to get us excited about it, show us something exciting. Talk is talk.

The only technical thing I'd comment on is the majority of people on here already have devices more powerful (but possibly less convenient) than the type of device you're considering. So you'd have to have some 'edge' to convince most people here they need to buy more hardware. Getting people into the project who aren't already nesdever's is a good goal, but it'd imagine it will take a lot of polish and well done tutorials to teach the average joe interested in programming on the nes. There's a large span of the level of knowedge from the people getting started, to be successful I'd imagine you have to cater to all levels without boring them or going over their head.
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
mham
Posts: 10
Joined: Fri Jun 28, 2013 9:32 am
Location: Baltimore, Maryland

Re: Nes Development Kit

Post by mham »

this idea honestly stemmed from the use of my own development tools that I have created/have been working on. I wouldn't start a kickstarter without at least one kit done. I agree with what you said about how it's crazy how some people back kickstarters without any evidence that the product has been built at all.
The idea here, as I also said on NA forum is that this is to gauge interest in a dev kit. I have tools. I just want to see if anyone else wants them. I want to see more people get into nes development, but I want them to have an easier time than most do, including myself.
It's not a programming course. So it's not for the absolute beginner. But it is for the person that has programming experience and wants to see a project of their own come to life on the nes.

One of the suggestions, in lieu of a dev kit, was to release a small book that is well written and has well documented code to help those just starting out with nes development, and those who are are more advanced alike.
Check out this recreation of SMB 1-1 I did in javascript. Still has quite a ways to go, but it's coming along.
http://sandbox.mhamdev.com/mario/impact/
User avatar
MottZilla
Posts: 2835
Joined: Wed Dec 06, 2006 8:18 pm

Re: Nes Development Kit

Post by MottZilla »

I don't think you need to create any new hardware. But it's not a bad idea to make tutorials, references, examples, tools, and other helpful resources that could encourage people to develop on the NES. More of those would be good. As for Flash carts, there's plenty of those now.
User avatar
Movax12
Posts: 529
Joined: Sun Jan 02, 2011 11:50 am

Re: Nes Development Kit

Post by Movax12 »

re: hardware:
Emulation is "good enough" 99% of the time, and for when it's not there is powerpak, or help from forums.nesdev.com
User avatar
qbradq
Posts: 952
Joined: Wed Oct 15, 2008 11:50 am

Re: Nes Development Kit

Post by qbradq »

Why not try contributing to the nesdev wiki's Getting Started section? Also, infiniteneslives has started to produce flashable multi-mapper carts and a USB flashing interface.

I'm not saying to give up, I'm just not nearly as excited as I would have been prior to INF arriving on the scene :)
User avatar
tokumaru
Posts: 12106
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Nes Development Kit

Post by tokumaru »

Don't forget the Everdrive N8, which does have a USB port. I'm not sure what it's for, but I assume you can upload ROMs without having to remove the cart from the console.
zzo38
Posts: 1080
Joined: Mon Feb 07, 2011 12:46 pm

Re: Nes Development Kit

Post by zzo38 »

What tools are you created/work on?

If you are mentioning the tools such as cc65, ASM6, NESASM, note also "Unofficial MagicKit" which is a improved version of NESASM (it is mentioned in NESdev wiki).

Having different cartridges if they have significant differences, can be helpful, though. I can describe what I would find most helpful (but not right now).
[url=gopher://zzo38computer.org/].[/url]
mham
Posts: 10
Joined: Fri Jun 28, 2013 9:32 am
Location: Baltimore, Maryland

Re: Nes Development Kit

Post by mham »

By tools, I don't mean just software, I jump around between compilers. But my hardware setup. It's not revolutionary, but it works for me :)
My dev cart is one that can remain in the console while being programmed. Right now there is a small external programmer (arduino based) that connects to the computer via usb and to the cartridge via a proprietary connection. I have been working a lot on computer side software for burning the binary data to the cartridge. The command line based side of the software simply accepts an input file and writes it to the cartridge.
I have also been working on improving the speed with which the rom is written to. Right now, writing 1's in every address of a 0 - filled 2K eeprom is less than 3 secs. Closer to 2 secs (reliably without any corruption). My goal is 10 seconds or less for 32k. I know this speed is a lot compared to simply compiling the code and running it on an emulator... but for people like me that like to dev on an actual console, it's worth it.

If I were to roll out a dev kit, the cartridge would most likely have the programmer built into it, so it would be as simple as connecting the cartridge a computer via usb.
Check out this recreation of SMB 1-1 I did in javascript. Still has quite a ways to go, but it's coming along.
http://sandbox.mhamdev.com/mario/impact/
User avatar
cpow
NESICIDE developer
Posts: 1097
Joined: Mon Oct 13, 2008 7:55 pm
Location: Minneapolis, MN
Contact:

Re: Nes Development Kit

Post by cpow »

mham wrote:By tools, I don't mean just software, I jump around between compilers. But my hardware setup. It's not revolutionary, but it works for me :)
My dev cart is one that can remain in the console while being programmed. Right now there is a small external programmer (arduino based) that connects to the computer via usb and to the cartridge via a proprietary connection. I have been working a lot on computer side software for burning the binary data to the cartridge. The command line based side of the software simply accepts an input file and writes it to the cartridge.
I have also been working on improving the speed with which the rom is written to. Right now, writing 1's in every address of a 0 - filled 2K eeprom is less than 3 secs. Closer to 2 secs (reliably without any corruption). My goal is 10 seconds or less for 32k. I know this speed is a lot compared to simply compiling the code and running it on an emulator... but for people like me that like to dev on an actual console, it's worth it.

If I were to roll out a dev kit, the cartridge would most likely have the programmer built into it, so it would be as simple as connecting the cartridge a computer via usb.
At least one person has been after me to add support for some kind of programmer interface to NESICIDE. It sounds like with what you're working on it'd be as simple as integrating another 'external tool' [I currently use CC65 toolchain for example...] I'm interested... Would there be any interactivity available such as run/stop/step or is it simply just a programmer?
Shiru
Posts: 1161
Joined: Sat Jan 23, 2010 11:41 pm

Re: Nes Development Kit

Post by Shiru »

10 seconds is a lot, really a lot. It may not seem a big deal initially, until you get into a real game project, when you have to compile and test the code after every few changed lines, many times, thousands of compile/run takes. Especially when you don't have a powerful debugger and have to just guess what is wrong.
mham
Posts: 10
Joined: Fri Jun 28, 2013 9:32 am
Location: Baltimore, Maryland

Re: Nes Development Kit

Post by mham »

as of now, 10 seconds is for writing to the entire chip. ideally, as you keep writing to the chip it should only change what needs to be changed. i know the problem here is that any additional code that is added in will have to push all the code after that back some number of addresses, thus causing everything from the changed code on to have to be rewritten in the rom. but I am still working on this, just fixing a few simple routines helped me to increase speed 100x, so I am sure that I will be able to make this much quicker. considering the byte write time is 150 ns, a full 32k rom should in theory be able to be written to in less than 0.005 seconds.

right now my hardware consists of just a programmer. but I would love to find out more about your plans for NESICIDE, if I can lend a hand I'd be more than willing.
Check out this recreation of SMB 1-1 I did in javascript. Still has quite a ways to go, but it's coming along.
http://sandbox.mhamdev.com/mario/impact/
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: Nes Development Kit

Post by infiniteneslives »

mham wrote:ideally, as you keep writing to the chip it should only change what needs to be changed.
Unless you're somehow lucky enough to only be programming bits (1->0) and don't have anything to erase (0->1). If you need to erase you'll need to re-write the entire sector at a minimum.
considering the byte write time is 150 ns, a full 32k rom should in theory be able to be written to in less than 0.005 seconds.
huh? Pretty sure there aren't any flash chips in the world that are that fast... A single r/w cycle access time is 150ns. It takes lots of cycles to write (program) a byte in flash. Generally several microseconds per byte write time. That and it generally takes several seconds to erase the chip.[/quote]

If you really wanted to optimize for speed you'd want to go with SRAM.
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
lidnariq
Posts: 10677
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Nes Development Kit

Post by lidnariq »

infiniteneslives wrote:Unless you're somehow lucky enough to only be programming bits (1->0) and don't have anything to erase (0->1). If you need to erase you'll need to re-write the entire sector at a minimum.
True for FLASH, not true for EEPROM.
If you really wanted to optimize for speed you'd want to go with SRAM.
I was just thinking the other day from this thread that a battery-backed NRAM cart would be about as nice as practicable for a NES devcart. I suppose that's approximately what the CopyNES RAM cart was.
Post Reply