Would anybody be interested in a new tutorial series for NES programming?
I've been doing NES programming for fun. When I get my bearings enough, I was thinking about writing a tutorial series covering effective programming for the NES using modern toolsets (no NESASM or shit like that, just cc65 and ca65).
It would cover some base architecture, proper use of the tools (how to properly configure the linker, especially, and to use it for the correct purposes), up to building a complete simple game. It would only assume that you have some base programming experience and that you can at least grasp assembly enough to hit the ground running with it. It would cascade up from the simple (building a pong game with simple sound effects) to the more complex (building a scrolling platformer with sound and music).
There are a few that already exist, but most of them are incredibly sparse or very incomplete. The best available is Nerdy Nights ( nintendoage.com/forum/messageview.cfm?catid=22&threadid=7155 ), but Nerdy Nights has a ton of flaws:
* Majorly, it uses NESASM instead of a real assembler-linker combo. .org directives and shit make the code a disgusting mess. You have to either use NESASM when using it, or try to take the concepts and apply them to a proper toolset.
* It opts to access almost all RAM directly by address, instead of using real symbols until the very end (when it should do it immediately).
* It is written as a series of fucking forum posts instead of a real contiguous and interlinked website. A proper tutorial set should live in a git repository so that improvements, suggestions, and fixes can be made as real pull requests and if the author abandons it, it can be forked and maintained by somebody else.
* Many of the lessons assume that you have downloaded the source code and are using that, instead of properly facilitating writing your own code while reading along, and having the source code supplied as a bonus for context and help (this is really egregious; a tutorial set should be directly followable building your own work as you go); with Nerdy Nights, you can not get a working sample up without going off his source code base, because the tutorial is insufficiently written.
* The code snippets frequently don't actually match the source code download, meaning if you even try to follow along directly, the behavior will be wrong.
* Nerdy Nights does not sufficiently explain memory mapping or how the NES file is built, and never once touches on the meaning of the iNES header beyond just saying what it is and how it goes. This, and tons of other information like building sprites, is completely insufficient, forcing you to use the nesdev wiki.
* It contains copyrighted rips of sprites from Mario Bros instead of using its own samples. This is illegal, putting the tutorial files at risk of being taken down, but also it makes the programmer use other sprite files, instead of teaching them how to make their own.
My tutorial set would be
* A pong clone. A series of 7 or 8 tutorials covering the NES architecture, a bit on number systems and assembly, and getting a proper toolchain set up and configured, how configuration works and how data is mapped to the file, and then from the file to the NES memory map, up through programming a single-screen game with 5 or 6 sprites on screen (which are designed by the programmer) and spitting out sound effects when necessary.
* A platformer. More advanced tutorial set on how to do more advanced stuff like scrolling, complete backgrounds, game states (title, play, pause, etc), and writing modules of the code in C. Single-stage, but with a bit of discussion on how you could manage multiples.
* A small RPG. More advanced, but more tangential. Talk about bidirectional scrolling (which is very hard in NES programming), how to manage save data and state, and how to structure a lot of code across many different files, and how to structure things efficiently and manageably in memory and in the ROM.
Probably written with Sphinx, because it already has a shit-load of built in flexibility for indexing, inter-document linking, file management, and has source-code highlighting including specifically for ca65.
I'm going to be writing it either way, just wondering if you all give enough of a shit that you might be willing to work through the tutorials and give criticism.