Recommended assembler for NES development beginner [POLL]

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems.

Moderator: Moderators

What assembler would you recommend to a new NES developer?

Poll ended at Tue Jun 07, 2016 12:47 am

ASM6
19
49%
CA65
14
36%
MagicKit
1
3%
NBASIC
0
No votes
NESASM
4
10%
NESHLA
0
No votes
WLA-DX
0
No votes
OTHER (Please leave comment)
1
3%
 
Total votes: 39

User avatar
darryl.revok
Posts: 520
Joined: Sat Jul 25, 2015 1:22 pm

Recommended assembler for NES development beginner [POLL]

Post by darryl.revok » Tue May 31, 2016 12:47 am

I know the topic of preferred assembler has been discussed in-depth multiple times. There is even a poll here, on a very similar topic: viewtopic.php?f=10&t=9961

This question is different for one specific reason: This question does not concern what you use. This question concerns what you would most recommend to someone just beginning NES development, and possibly programming in general.

The answer should reflect a weighing of features between options, as well as short-term learning curve vs. long-term ease of use.

I am posting this thread primarily for the poll results, as a source to link for the most recommended assembler for a beginner among the NESdev community. The link is part of a proposed edit for this wiki page: http://wiki.nesdev.com/w/index.php/Nesdev, which is prominent in search results and largely outdated.

Edit: This is my first time creating a poll and I see now that making changes erases the old votes. (That makes sense) Please recast your vote unless you'd like to propose a change to the voting options.
Last edited by darryl.revok on Wed Jun 01, 2016 7:42 pm, edited 3 times in total.

User avatar
thefox
Posts: 3141
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Re: Recommended assembler for NES development beginner [POLL

Post by thefox » Tue May 31, 2016 1:14 am

NESICIDE uses cc65 under the hood.
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi

User avatar
Diskover
Posts: 213
Joined: Thu Nov 24, 2011 7:16 am
Contact:

Re: Recommended assembler for NES development beginner [POLL

Post by Diskover » Tue May 31, 2016 1:22 am

No doubt sin cc65 .

Programming in C greatly simplifies things . EXAMPLES EXIST enough and Doug tutorial ( https://nesdoug.com/ ) You learn very fast.

User avatar
Myask
Posts: 965
Joined: Sat Jul 12, 2014 3:04 pm

Re: Recommended assembler for NES development beginner [POLL

Post by Myask » Tue May 31, 2016 1:26 am

Isn't CA65 the assembler?

User avatar
darryl.revok
Posts: 520
Joined: Sat Jul 25, 2015 1:22 pm

Re: Recommended assembler for NES development beginner [POLL

Post by darryl.revok » Tue May 31, 2016 1:38 am

I copied these answers from the previous poll. I appreciate any suggestions and if anyone has an option not on the list, or has an issue with an option on the list, please feel free to post and I will change it.

I'm making the following revisions:

Removing NESICIDE
Renaming CC65 option to CA65 (although, I would say I think the included CC65 suite features should be factored into the decision, if you feel beginning with familiarity with them is important.)

User avatar
tokumaru
Posts: 11745
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Recommended assembler for NES development beginner [POLL

Post by tokumaru » Tue May 31, 2016 7:13 am

Diskover wrote:Programming in C greatly simplifies things.
Isn't the question about assemblers, though?

The problem with ca65 is the need to make a config file, and understad how everything in it affects the layout of the ROM. You can obviously skip this step if you use someone else's template, but ca65 config files go beyond just mapper configuration... The way you handle RAM, ZP, pseudo-fixed banks, everything affects how you write the code later on. If you use someone else's config file you're forced to organize your ROM their way. You don't get the same freedom you have with ASM6 or NESASM unless you learn how to customize the config file.
Last edited by tokumaru on Tue May 31, 2016 7:24 am, edited 1 time in total.

tepples
Posts: 22014
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Recommended assembler for NES development beginner [POLL

Post by tepples » Tue May 31, 2016 7:18 am

Perhaps the sentiment is "The best assembler is the one that lets you switch to C with the least friction once you realize you need C for a particular project."

User avatar
Dwedit
Posts: 4328
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Re: Recommended assembler for NES development beginner [POLL

Post by Dwedit » Tue May 31, 2016 7:54 am

I like ASM6 because it just works. No surprises or gotchas.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

User avatar
NovaSquirrel
Posts: 392
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Recommended assembler for NES development beginner [POLL

Post by NovaSquirrel » Tue May 31, 2016 8:45 am

I don't really think the linker config is that big of an issue for starting out with NES development on ca65. Beginners should really be starting out on NROM, and shouldn't really be attempting to do anything that requires messing with the link script, and just having them put code in the "CODE" segment and graphics in the "CHR" segment is fine. If anything, it seems more intuitive to me than having to teach ORG and such just to get started.

User avatar
darryl.revok
Posts: 520
Joined: Sat Jul 25, 2015 1:22 pm

Re: Recommended assembler for NES development beginner [POLL

Post by darryl.revok » Tue May 31, 2016 12:21 pm

tokumaru wrote:Isn't the question about assemblers, though?
It is, but I would think that the ease of incorporating additional features if they become desired should be factored, pretty much what tepples said. If you feel an NES developer should have C as an available tool, (even if not at the very beginning) and the initial learning curve of ca65 is easier than needing to switch later and possibly transition an existing project, then this would be a good reason to pick ca65. If you feel that learning ca65 will be easier after more experience, and that transitioning later if necessary, is easier than starting from ca65 off the bat, that would be a good reason to pick something else.

User avatar
Bregalad
Posts: 7889
Joined: Fri Nov 12, 2004 2:49 pm
Location: Chexbres, VD, Switzerland

Re: Recommended assembler for NES development beginner [POLL

Post by Bregalad » Tue May 31, 2016 12:43 pm

Anything but NESASM is fine. NESASM it unbelivably terrible. Beginers are fooled by it's name, but it's really not an optimal assembler for the NES.

User avatar
tokumaru
Posts: 11745
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Recommended assembler for NES development beginner [POLL

Post by tokumaru » Tue May 31, 2016 8:14 pm

Of course it is! It creates iNES headers automatically, making it the best of the bunch! In other assemblers you need clumsy db/byte directives. NESASM is a big time saver, because writing the header is like 20% of the work that is creating an NES game. It even requires the PRG-ROM to be divided in 8KB banks, so you can very easily make MMC3 games, the gold standard when it comes to NES software. Why would anyone ever need banks of different sizes when they could be using the MMC3 or more advanced mappers? And what about that different syntax? That really makes this assembler stand out... When you go online looking for 6502 snippets and you see that boring standard syntax you get that nice feeling that your software is better than everyone else's! You feel so superior that you even give up on using any of that boring incompatible code as reference for anything.

tepples
Posts: 22014
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Recommended assembler for NES development beginner [POLL

Post by tepples » Tue May 31, 2016 8:28 pm

And here's how to handle those fanboy arguments:
tokumaru wrote:Of course it is! It creates iNES headers automatically, making it the best of the bunch! In other assemblers you need clumsy db/byte directives.
Take these macros. Please.
Why would anyone ever need banks of different sizes when they could be using the MMC3 or more advanced mappers?
Money, dear boy. When you decide to manufacture your game, you might get charged less for cheaper mappers like discretes, A53, or MMC1. This means you get to keep more of the selling price.

provably
Posts: 10
Joined: Tue Dec 15, 2015 3:50 am

Re: Recommended assembler for NES development beginner [POLL

Post by provably » Tue May 31, 2016 8:47 pm

I think NESASM is good for a beginner who wants to quickly see a working result without spending much time on learning advanced topics like header format or config scripts.

User avatar
Banshaku
Posts: 2377
Joined: Tue Jun 24, 2008 8:38 pm
Location: Japan
Contact:

Re: Recommended assembler for NES development beginner [POLL

Post by Banshaku » Tue May 31, 2016 10:25 pm

Any tool is good as long you can accomplish your goal. My memory could be fuzzy but some homebrew were made with nesasm and released on cartridge and ended quite fine. Battle kid is one of them.

Post Reply