3gengames wrote:
because none are actually compilers FOR the NES.
Nor is NESASM, since it's based on a compiler for the PC-Engine... NESASM helps you a little bit with the iNES header (which you can build just as easily with a handful of .db statements in any other assembler), but that's it. And it has that stupid 8KB bank setup, which has nothing to do with the NES unless you're using certain mappers.
My honest opinion is that CA65 is the most professional and capable 6502 assembler, but it's hard to setup if you don't have a lot of experience with assemblers and compilers. Personally, I don't have the patience to learn how to use it. ASM6 is great for beginners, because it can instantly make an .NES file out of an .ASM file directly without complications.
NEASM is just as simple as ASM6 to use, but the main problem is that it uses non-standard syntax for some types of instructions (zero-page addressing, indirection, high/low byte selection...). In the past it also had some really annoying bugs, which resulted in lack of error reports and corrupt binaries (i.e. it would assemble bad code and wouldn't tell you that anything went wrong), which made it really hard for people to locate bugs in their code. I think those serious problems are solved now. Most NES programming tutorials use NESASM, and since it uses different syntax it's hard to get beginners to use anything else.