Nes Programming: Where To Start?


dnlgreenwood

I'LL END YOU!!!
Joined
Jul 17, 2010
Messages
705
Age
29
Location
BC, Canada
ohaither!

I am thinking about getting into NES programming, but I don't know where to start... can anyone either teach me, or know of any online lessons?
I have done some C++ programming, but thats about it. I find it rather easy. Anyone know of any good IDEs I can use for this?


Anyway, I'm in a rush so I don't have a lot of time to type this out.
 
Funny you mention that, because I was starting to get into this recently.

Are you up for learning Assembler?

I believe that a C compiler exists, but it's hard to get peformance out of such a low spec machine. I would hazard a guess that C would only slow down your game.

http://www.nintendoage.com/forum/messageview.cfm?catid=22&threadid=7155

That was the tutorial I was following. Good luck!
 
I haven't ever done any NES programming, but for assembly programming in general, I think you should have a very good idea of how numbers are represented in binary (two's complement integers, maybe IEEE 754 floating-point representation), and be able to translate between binary and hexadecimal without thinking about it. Once you can do that, learn about digital logic, Boolean algebra, and so forth. Make sure you understand everything completely. At this point you might be able to start learning assembler, but you'll probably give up after a (short) while, because it's easily an order of magnitude harder than higher-level languages, even after you get past the large number of useful libraries that make things easier when you're programming on a normal system.

Or it might be that you have the inborn talent to grasp intuitively these things, and you'll eventually gain the ability to write useful software. At some point it will become obvious whether or not this is the case.

It could be that I'm generalizing too heavily from my own experience, here. :unsure:

edit: if you're asking about IDEs, you're asking the wrong questions.

edit again: One thing I'm trying to say here is that learning the specific machine architecture is very important to writing, say, NES software, but 95% of what you need to learn, the most difficult stuff, is not architecture-specific.
 
You're going to be dealing with an older architecture that is accumulator-based so it is going to be a bit of a pain in the ass to program versus a more modern CPU with many registers.

You should look into purchasing a used book on the topic. The NES used the same CPU that was used in many home computers of the 80s, so there were many great books published on 6502 assembly.. not that I have read any of them (yet). You need to learn the CPU instruction set before you learn the NES video hardware. You might want to use a C64 emulator to learn 6502 assembly. It still has people actively programming it to this day, so an enormous amount of electronic literature is available for you. Hell, someone might even have even created an entire suite of assembly tools that will ease your learning curve. Maybe even a GUI!

Tom` said:
edit: if you're asking about IDEs, you're asking the wrong questions.
True!
 
Last edited by a moderator:
...wow. Thanks for all the suggestions! I might look for a book about 6502 assembly tomorrow, but it might be hard to find. Some places with used books have no organization whatsoever... I will try all of the used book stores around here... I found C++ and SDL kind of easy, so how hard could it be? I might have a knack for these things.

As for binary and hex, once I get into good practice of doing things, I find it easy to memorize those things... That's also the reason I can't remember certain people's names... if I don't do something too often, or see someone too often, I forget.
 
fishybawb said:
The Nerdy Nights tutorial that SomeGuy99 posted is definitely the best way to start. The NesDev forums are also a great source of info.

Yeah, I had a head start what with already understanding binary, hex and assembly.

However, the tutorials cover everything, even if it is fairly brief.

Learning the Nes architecture and it's quirks alone makes it worth doing. B)

I have a PDF of the book 'Programming the 6502'. If I can't find the link I'll upload it for you. Weirdly, it turns out I already owned this book! Talk about serendipity... I just saw it staring back at me from my shelf.

Com64 said:
As for binary and hex, once I get into good practice of doing things, I find it easy to memorize those things... That's also the reason I can't remember certain people's names... if I don't do something too often, or see someone too often, I forget.

I'm the same way to be honest.

The problem so far with doing Nes programming in assembly are the memory addresses you need to remember.

I say screw it and just make notes to refer to. That's what I've done anyway.

Regarding an IDE, there is this:

http://www.nesicide.com/

But I can't seem to get it going. Looks useful though.
 
Last edited by a moderator:
Back
Top