Well, I'm a complete beginner at NES programming, and would like to get started. Basically, the only language I ever really worked with is QBASIC, which obviously doesn't run on the NES, so I have a few questions.
What are the best resources availible for someone who is completely new to this? Like, 6502 tutorials, best tools to use, etc. I tried before to get started on NES programming and 6502 ASM but I caught myself struggling to find the best hardware documentation, a good complete tutorial, tile editors, and a compiler that actually worked and worked good together.
So, with that in mind, what are the best ones to use to get started with NES programming? My goal for now is the traditional, simple "Hello World" but even that is lacking without knowing a good compiler and tile editor.
First, I would suggest you to read the sticky of this forum since it contains many information regarding the questions you asked.
Start by reading the nestech document and try to understand most of the concept.
Once you've read enough and you understand the basic concepts like pattern table, name table, registers, etc, you should do a quick brush up of your 6502 because you will start to need it soon.
Then I would try an assembler like nesasm for beginning since it quite simple to grasp and start with. Once you will get better you can decide which assembler you prefer.
Now that you're ready to code, try to make the simplest program possible: just play a simple beep. Since the nes doesn't have any font per say, doing a hello world is more complicated so my version of the hello world was a sound.
Once you can do that, try to understand how to init the nes properly (proper ram and other init), use a tool like YY-CHR to make 8K of character data. Just make a simple drawing, like a big X that goes from one corner and goes to the other. It may be boring but just remember that your goal is to be able to load data properly: if you can't, you cannot do more complicated thing.
Now load the character data. Don't try to load it on the screen first: just check if you did set it right by checking with an emulator that support debugging (like nintendulator, fcex etc) to see if the data is loaded properly in memory.
Once this is working fine you can try to create a simple pattern table that show's your big X on the screen.
I think this is a good start. Once you can show it, try to scroll it by using the joystick in any direction. once you can do that, it should be easier for your to learn how to make other things but you will still have a lot of things to learn yet.
Hope this will help you.
I took a look at the NES techdoc and it did not contain anything on the sound generator. It said that not enough info was availible about it, but I don't know when it was last updated. Is anything availible about it, like what address it uses and stuff?
CrazyGameCritic wrote:
I took a look at the NES techdoc and it did not contain anything on the sound generator. It said that not enough info was availible about it, but I don't know when it was last updated. Is anything availible about it, like what address it uses and stuff?
I forgot about that part. What Disch mentioned should be enough to get you started but you don't have to try to do something difficult: the goal is to make a simple blip so you get familiar with the assembler and the basics commands of 6502.
Once you can compile and make that simple blip comes out, you should be able to tackle the next step.