Hi there, nice to meet all of you. I'm a little bit confused in this subject (NES development) and I need some orientation because I am very interested in this.
I am currently learning C, it is basic to start any dev project, but I need more information. I need to know, how or where to start, documentation, tutorials all is welcome.
Thank you very much.
I'm not sure how far along you are on your programming journey, but here's a few tips.
If you're planning on using C to develop a NES game, there's a few options:
Both of these libraries target
cc65.
There's an IDE by cpow called
NESICIDE that might be helpful to you as well.
If you haven't already checked
the wiki for technical details, you should probably do so.
Since we're on the topic of developing NES games in C, in order to use those compilers in the first place, you need to know how assembly works. In the end, I'd say it'd be quicker for you to straight up learn how to program for the NES, as opposed to learning that and then learning a different language to use an assembler. At the same time, assemblers aren't perfect in that their code is only good enough for small, simple games, where hand written assembly is better suited for more complex projects.
Eh, while understanding the hardware is necessary, I'm not convinced that wrangling 6502 assembly is actually necessary.
For example, the quick and dirty test (i.e. not a game) I wrote
here uses KNES and is otherwise pure C. While there's a lot of things that will only make sense once you understand the PPU, and for performance reasons you should use parameter passing sparingly, it was still a lot faster for me to spin that out in C.
For games, I'd suggest going with Shiru's library. KNES basically just exposes the NES internal registers to C code in an easy to use way, whereas Shiru's library contains a bunch of routines that are specifically meant to make game coding easier. KNES could be good for learning how all of the different NES hardware registers work, though, because you don't have to worry about small details like initialization of the system.
Thanks for answering. So.. As I could understand, using C to program NES games is a good decision, but I now have doubts about what programs I should use. You've mentioned that Shiru's Library, KNES and NESICIDE, but I dont know how those programs works or where can I find some documentation or practices to learn how to develope real projects.
Suggestions? Thank you very much again!