This Noob Needs Direction

Are you new to 6502, NES, or even programming in general? Post any of your questions here. Remember - the only dumb question is the question that remains unasked.

Moderator: Moderators

Post Reply
Nightowljrm
Posts: 3
Joined: Wed Nov 09, 2011 1:42 pm

This Noob Needs Direction

Post by Nightowljrm » Wed Nov 09, 2011 1:59 pm

Hey, guys. First post, so... bear with me if I say something that's incorrect or something.

So, I'm extremely interested in NES Development, basically because I'm a hardcore retro gamer/collector. Go figure, huh? Anyway, I've been really interested in creating my own NES game for about a year now, but I have no idea how to start or where to go for resources.

So here's a few details about me that, I hope, will help you point me in a good direction.

1. I have no experience in programming other than GML (Game Maker Language for the Game Maker program by Mark Overmars. Not that sophisticated from what I understand). I've never taken a programming course or know anything about legitimate programming.
2. I have looked at the Nerdy Nights posts on NintendoAge, but I still feel lost.
3. I have downloaded NESASM3 and opened it with the Command Prompt (after I understood the software has no GUI); however, I have no idea what to do after that.

So, anyway, what I'm looking for, I guess, is perhaps a tutorial that covers all the basics 'n' such. PPU, what I'm sure is a basic term, is over my head.

I'm more than willing to put forth the effort, I just need a sense of direction and I need to know what the heck is going on.

Thanks for reading and replying. =)

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

Post by tepples » Wed Nov 09, 2011 2:22 pm

Step 1: Teach yourself freshman computer science. I've compiled a big list of Wikipedia articles that cover concepts that all NES developers should know.

3gengames
Formerly 65024U
Posts: 2276
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames » Wed Nov 09, 2011 2:24 pm

Start at lesson 1 at nerdy nights, read it a zillion times, ask questions here about it, we'll help explain. Or you can just mail me if you want with questions.

NESASM3 is basically just pointer to the main program file and everything is in there. If you open it without anything, nothing will happen because it's not pointed to a file to make into a .nes ROM.

But yeah, start at lesson 1, read it a zillion times, and just report back here, to me, or anyone else willing to help 1 on 1. All questions can be answered. And a little other tidbit of advice: if it's too complex, you're probably over thinking it.

P.S. Before Tepples comes in here, game maker is dead. heh. :P

unregistered
Posts: 1071
Joined: Thu Apr 23, 2009 11:21 pm
Location: cypress, texas

Post by unregistered » Wed Nov 09, 2011 3:08 pm

hi Nightowlrjm,

No programming experience? Hmm. Well here are things I'm thinking:

1.) Do you use Windows? If so, have you ever run Calculator? It's under 'accessories'. My computer science teacher in high school taught us something very cool, to me at least :), early in the semester. It was about using a different base number system... like binary; that's base 2. Well, with calculator you can convert from decimal (the number system we use, it's base 10) to binary. Open calculator and and click the View>Scientific menu option. Next click the number 4. That's in dec (decimal)... and to convert it to binary click bin. It should show 100. 4 in decimal mode is equal to 100 in base 2 (binary). That's a starting point, I guess. : )

2.) You should probably read an intro to assembly language book... there are some linked to in our wiki. "introduction to computing systems" (second edition) by patt & patel is an excellent textbook from the University of Texas. The only problem is that they teach you an assembly language they created; the nes uses 6502 Assembly. It is a great introduction to assembly though... the second half introduces you to the C programming language.

3.) Try asm6 for your assembler. :)

3gengames
Formerly 65024U
Posts: 2276
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames » Wed Nov 09, 2011 4:02 pm

I'd recommend sticking to NESASM3 strongly though.

User avatar
Dwedit
Posts: 4330
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit » Wed Nov 09, 2011 4:17 pm

I would not recommend any version of NESASM, having seen a little bit of disassembly of the Battle Kid 2 demo. No zeropage instructions anywhere, from a bad assembler.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

User avatar
Kasumi
Posts: 1292
Joined: Wed Apr 02, 2008 2:09 pm

Post by Kasumi » Wed Nov 09, 2011 4:20 pm

Wow, seriously? Someone should tell Sivak about the <label syntax, since last I heard he was hurting for space.

3gengames
Formerly 65024U
Posts: 2276
Joined: Sat Mar 27, 2010 12:57 pm

Post by 3gengames » Wed Nov 09, 2011 4:26 pm

Dwedit wrote:I would not recommend any version of NESASM, having seen a little bit of disassembly of the Battle Kid 2 demo. No zeropage instructions anywhere, from a bad assembler.
Learn to use it, problem solved!

Nightowljrm
Posts: 3
Joined: Wed Nov 09, 2011 1:42 pm

Post by Nightowljrm » Wed Nov 09, 2011 4:27 pm

Alright, I'm gonna go read Nerdy Nights Lesson 1 a lot and come back. Thanks for all the great responses.

User avatar
Dwedit
Posts: 4330
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit » Wed Nov 09, 2011 4:30 pm

I'd say doing a little romhacking might help. Start with the easy stuff, graphics, text, etc. This way you learn about hex editors.
Then learn to use a debugger, and give yourself Infinite Lives in SMB1.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

Celius
Posts: 2157
Joined: Sun Jun 05, 2005 2:04 pm
Location: Minneapolis, Minnesota, United States
Contact:

Post by Celius » Wed Nov 09, 2011 7:28 pm

I still find romhacking hard, and I've been doing NESDev for a while now.

User avatar
Jeroen
Posts: 986
Joined: Tue Jul 03, 2007 1:49 pm

Post by Jeroen » Thu Nov 10, 2011 1:04 am

I would also not recommend nesasm and rather asm6 but as a noob it might be a little better if you start out with what the tutorial wants you to...no use running into syntax errors every 5 minutes. (if someone disagrees I recommend someone to "translate" nerdy nights to asm6...shouldn't be too hard)

User avatar
Grumskiz
Posts: 79
Joined: Sat Mar 26, 2011 1:06 pm
Location: Germany

Post by Grumskiz » Thu Nov 10, 2011 6:57 am

Instead of ROM hacking you could also try making LUA scripts for FCEUX (an emulator popular for its debugging capabilities). It is a scripting language that is executed on top of the game. The interesting part is that the code is not actually saved in the ROM you're using and it is a high-level programming language.
Still, it can teach you how NES games use the small amount of RAM the console offers and maybe how hexadecimal numbers work.
A good way to start out with that is by looking at the LUA language documentation, the FCEUX documentation with information about the LUA implementation and the scripts the emulator comes with.

Also you can try altering graphics of games with a program called YY-CHR.
It is pretty straight-forward, so I'd say you might even be able to learn how to use it just by playing around with it.
That can teach you a bit about how NES graphics work and some of the limitations you will have to face.

@Jeroen
There is a translation of the code (not the actual tutorials) that is used in the Nerdy Nights Tutorials to ca65 code. It comes with a makefile and a simple config file and I used it to learn how to use that assembler.
There are some things that are not explained though.(Using macros for example)
However, I'm not aware of any asm6 versions of the code.

Fatboy
Posts: 8
Joined: Thu Dec 01, 2011 12:23 am

Post by Fatboy » Wed Dec 07, 2011 4:17 pm

I felt this lost a few months back. Here are some books that really helped me out. Most of them are less than $5 used on Amazon.

An Introduction To Microprocessors: Volume 0 by adam osborne
-This book starts out super basic, you could probably even skip a few chapters. The book explains logic units, binary numbers, and general microprocessor info in great detail. It's old, but it gives you a feel for the generation of technology surrounding the NES.

An Introduction To Microprocessors: Volume 1 by adam osborne
-Covers Boolean Arithmetic and Algebra. Goes into much more depth on computer logic units.

Programming the 6502 by rodney zaks
-I haven't actually read this since I've decided to learn the Z80 instead of the 6502. But his book on the Z80 is what I'm reading right now and it has helped a ton. Learned a lot from this guy.

A bunch of other great books can be found in PDF form here:
http://www.bombjack.org/commodore/books-generic.htm there are a number of 6502 books at the bottom of that page.

Nightowljrm
Posts: 3
Joined: Wed Nov 09, 2011 1:42 pm

Post by Nightowljrm » Fri Dec 09, 2011 10:52 pm

Thanks again. I ran into a busy streak... a long one... but I'll be heavily diving into this in about a week. =)

Post Reply