Hello. I'm very new to NES programming and I would like to know what programs I need to make NES games. Also, where can I get documentation on 6502 assembler (in other words, a tutorial on how to code for NES)? Thank you in advance and have a nice day.
Setup instructions for ca65 and Pythonca65 is one of the top three assemblers used here. I prefer it because of its flexibility, though some others prefer ASM6 because of its simplicity.
You may also need to install a programming language that runs on your PC, so you can write tools to convert graphics and other non-program to formats the NES can read. For this, I use Python.
Where do I get the ca65 installer?
Quote:
As of march 2013 I have stopped maintaining cc65.
Oliver Schmidt, long time contributor to the libraries is providing support for the old version. See
http://cc65.github.io/cc65/ for more information.
nesrocks wrote:
Where do I get the ca65 installer?
Quote:
As of march 2013 I have stopped maintaining cc65.
Oliver Schmidt, long time contributor to the libraries is providing support for the old version. See
http://cc65.github.io/cc65/ for more information.
"Windows Snapshot" is linked on that page. For other platforms, it's easy to compile from source.
Go to
loopy's new site for asm6, if you want to try it.
Asm6 is really good.
Here, tokumaru told me why he usually recommends asm6 and he links to a poll where people voted for their assemblers.
For learning how to program the NES's 6502, the 2A03, try:
http://obelisk.me.uk/6502/reference.html and
http://wiki.nesdev.comThe first link lists all of the 6502 instructions at the top of the page. The second link is nesdev's wiki and it lists important NES things like the nametables and attribute tables (visual graphics and coloring, respectively) among many other things.
edit: I use a text editor named Programmer's Notepad 2. Some others use Notepad++.
Depending on how much of a newbie you are, Tepple's template may be a bit much to start with, you can learn from it when you get more experience though. If you want a more newbie friendly guide, check out the Nerdy Nights tutorials. They should teach you everything you need to get started (plus some bad habits).
as a beginner, i found NESICIDE to be the easiest solution for programming.
I think the tutorial made by Dougeff is the best to start learning to program on the NES :
https://nesdoug.com/
thefox wrote:
Windows Snapshot" is linked on that page. For other platforms, it's easy to compile from source.
I don't think there's an installer on there. Unless it needs to be compiled first, and then installed? To me it looks like it's just a portable version of it. The thing is, every tutorial out there, including the one linked by tepples, seem to use a previous version of cc65 where it was
installable, but now there is no such option and it isn't as straightforward anymore.
I think it being portable is great, but one thing that can be tricky is dependency on the path variable when writing your bat file to assemble and link and expect it to work for another user. It kind of makes it a bit less coopfriendly.
nesrocks wrote:
thefox wrote:
Windows Snapshot" is linked on that page. For other platforms, it's easy to compile from source.
I don't think there's an installer on there. Unless it needs to be compiled first, and then installed? To me it looks like it's just a portable version of it.
The portable version can be installed if you know what an environment variable is.
nesrocks wrote:
The thing is, every tutorial out there, including the one linked by tepples, seem to use a previous version of cc65 where it was installable, but now there is no such option and it isn't as straightforward anymore.
My tutorial covers permanent installation of the portable Windows Snapshot:
Finally, to make ca65, ld65, and Python available to Make, you'll need to add the folders containing ca65.exe, ld65.exe, and python.exe to the Path environment variable. Because the steps for setting environment variables differ between versions of Windows, you'll want to search the web for windows x.x path variable, replacing x.x with 7, 8.1, 10, etc.
That explains it all, thank you!
FrankenGraphics wrote:
I think it being portable is great
Agreed, I hate when there's an installer for every little windows program that don't really need one (and compiler installers don't seem to modify the path anyway). Plus if you only want to use the assembler and linker (ca65 and ld65) you want to be able to extract those without having to run an installer.
I agree too, I remember when even windows was portable, I miss those times.
When was that? Not even 3 was portable, and the 95/98 hacks never worked well.
Well, if you live in Russia, the majority of computers have a pirated OS.
Also China.
I just put a separate copy of CC65's bin folder in each project I have, rather than setting up an environment variable. It's a pretty small program not needing of a global install.