It is currently Mon Dec 18, 2017 7:58 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 62 posts ]  Go to page 1, 2, 3, 4, 5  Next

What assembler would you recommend to a new NES developer?
Poll ended at Tue Jun 07, 2016 12:47 am
ASM6 49%  49%  [ 19 ]
CA65 36%  36%  [ 14 ]
MagicKit 3%  3%  [ 1 ]
NBASIC 0%  0%  [ 0 ]
NESASM 10%  10%  [ 4 ]
NESHLA 0%  0%  [ 0 ]
WLA-DX 0%  0%  [ 0 ]
OTHER (Please leave comment) 3%  3%  [ 1 ]
Total votes : 39
Author Message
PostPosted: Tue May 31, 2016 12:47 am 
Offline
User avatar

Joined: Sat Jul 25, 2015 1:22 pm
Posts: 501
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.

Top
 Profile  
 
PostPosted: Tue May 31, 2016 1:14 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2983
Location: Tampere, Finland
NESICIDE uses cc65 under the hood.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
PostPosted: Tue May 31, 2016 1:22 am 
Offline

Joined: Thu Nov 24, 2011 7:16 am
Posts: 170
No doubt sin cc65 .

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


Top
 Profile  
 
PostPosted: Tue May 31, 2016 1:26 am 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 950
Isn't CA65 the assembler?


Top
 Profile  
 
PostPosted: Tue May 31, 2016 1:38 am 
Offline
User avatar

Joined: Sat Jul 25, 2015 1:22 pm
Posts: 501
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.)


Top
 Profile  
 
PostPosted: Tue May 31, 2016 7:13 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10173
Location: Rio de Janeiro - Brazil
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.

Top
 Profile  
 
PostPosted: Tue May 31, 2016 7:18 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19356
Location: NE Indiana, USA (NTSC)
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."


Top
 Profile  
 
PostPosted: Tue May 31, 2016 7:54 am 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 3969
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!


Top
 Profile  
 
PostPosted: Tue May 31, 2016 8:45 am 
Offline
User avatar

Joined: Fri Feb 27, 2009 2:35 pm
Posts: 215
Location: Fort Wayne, Indiana
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.


Top
 Profile  
 
PostPosted: Tue May 31, 2016 12:21 pm 
Offline
User avatar

Joined: Sat Jul 25, 2015 1:22 pm
Posts: 501
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.


Top
 Profile  
 
PostPosted: Tue May 31, 2016 12:43 pm 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7320
Location: Chexbres, VD, Switzerland
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.


Top
 Profile  
 
PostPosted: Tue May 31, 2016 8:14 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10173
Location: Rio de Janeiro - Brazil
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.


Top
 Profile  
 
PostPosted: Tue May 31, 2016 8:28 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19356
Location: NE Indiana, USA (NTSC)
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.

Quote:
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.


Top
 Profile  
 
PostPosted: Tue May 31, 2016 8:47 pm 
Offline

Joined: Tue Dec 15, 2015 3:50 am
Posts: 10
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.


Top
 Profile  
 
PostPosted: Tue May 31, 2016 10:25 pm 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 1519
Location: Fukuoka, Japan
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 62 posts ]  Go to page 1, 2, 3, 4, 5  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group