It is currently Wed Oct 18, 2017 2:54 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 62 posts ]  Go to page Previous  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: Thu Jun 02, 2016 2:49 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
The cc65 suite zip that **I** downloaded (cc65-snapshot-win32.zip) came from here (which is linked directly off the main github page). Attached is the file listing from the .zip I have (not necessarily the one on the site now, but you can see timestamps in the listing). There is no installer, dependencies required, or any other "junk" other than lots of predefined templates, include files, etc. (all of which is normal -- people need to remember ca65/ld65 are part of cc65, so there's a lot of stuff there that's helpful for cc65 but isn't needed).

I will note that the snapshot links to SourceForge, which has had a history of injecting crap into people's stuff. The cc65 folks should find somewhere else to dump their snapshots, IMO.


Attachments:
cc65-snapshot-win32-listing.txt [18.08 KiB]
Downloaded 38 times
Top
 Profile  
 
PostPosted: Thu Jun 02, 2016 7:06 pm 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2962
Location: Tampere, Finland
There used to be a VBScript file included for installation. It's gone now but you can find some references to it if you google for "install.vbs cc65". I never used it even when it was there.

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


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 12:52 am 
Offline
Formerly WheelInventor

Joined: Thu Apr 14, 2016 2:55 am
Posts: 898
Location: Gothenburg, Sweden
I decided to cast my vote for asm6 in the end. If you don't need verbose etc, nothing is simpler than dragging and dropping a sourcefile onto an exe and have a binary ready, which apparently works if you contain asm6 in the project folder.

It *could* have a wider acceptance of syntax, though, for cross-compatibility and newbiefriendliness. For instance, take size/offset definitions for includes either before or after the path, etc. But that's just extreme nitpicking.

I'd still advocate for something like a qbasic editor if the scene wants to encourage more newcomers. Notepad++ is all fine, of course, but an environment where the compiler can talk back to the editor, and where every instruction has a reference card and a few related examples, is what made microsoft's take on BASIC so popular; more so than the language itself, i think. I concider qbasic microsoft's finest piece of software in terms of user friendliness. Or maybe it's rose tinted nostalgia? :lol: User interfaces takes time, though...

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 9:16 am 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 1517
Location: Fukuoka, Japan
dougeff wrote:
Anybody out there want to tackle this easy task of editing the code and recompiling?


I made a quick proof of concept for nesasm regarding the label length limitation 5 years (?) ago so maybe something like this shouldn't be an issue but.. I didn't touch the code for 5 years either so I would need to check it again.

I'm neither for or against nesasm since I did use it at the begining. As long as it does the job I'm fine with it and since it's open source, if you find something that annoys you then you can fix it, why not.


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 9:39 am 
Offline
User avatar

Joined: Mon Feb 07, 2011 12:46 pm
Posts: 919
Warning if you use NESASM/MagicKit, that it uses nonstandard syntax. In my opinion this nonstandard syntax is better than the standard way and I prefer it; also I have made a version of NESASM/MagicKit which includes many of my own improvements (especially support for more advanced macro capabilities), so that is what I use.

_________________
.


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 9:44 am 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 1517
Location: Fukuoka, Japan
zzo38 wrote:
also I have made a version of NESASM/MagicKit which includes many of my own improvements (especially support for more advanced macro capabilities), so that is what I use.


Maybe the code I modified a long time ago was from the things you modified? It's been a while and I don't remember. I modified the issue regarding macro length limit, just found the source code. Did you had a repository for it?


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 10:13 am 
Offline
User avatar

Joined: Mon Feb 07, 2011 12:46 pm
Posts: 919
Banshaku wrote:
zzo38 wrote:
also I have made a version of NESASM/MagicKit which includes many of my own improvements (especially support for more advanced macro capabilities), so that is what I use.


Maybe the code I modified a long time ago was from the things you modified? It's been a while and I don't remember. I modified the issue regarding macro length limit, just found the source code. Did you had a repository for it?
I have no repository of it, sorry

_________________
.


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 11:52 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7230
Location: Chexbres, VD, Switzerland
Rahsennor wrote:
I use xa. It's as simple as it gets, and that's the way I like it. The only reason I wouldn't recommend it to a[nother] beginner is its habit of treating anything it doesn't understand as a label - typos silently assemble to nothing. But I've only run into that problem once myself, and I do think that less is more when you're getting started.

I've half a mind to write my own, but that wouldn't help anyone.

Doesn't XA requires DOSBOX to run ? Before I used to use that, and it was amazing, but there was thiss... em... little problem.


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 11:54 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6277
Location: Seattle
No ?


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 12:40 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19096
Location: NE Indiana, USA (NTSC)
It appears to be the same assembler you get from Ubuntu's repository when you sudo apt-get install xa65. (Compare the copyright file.)


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 4:01 pm 
Offline

Joined: Wed Feb 03, 2016 10:39 pm
Posts: 32
I absolutely love ASM6, and I think it's good for beginners because it's specifically designed with the NES in mind. It's simple and minimalistic, yet includes a lot of really nice features like its macro capabilities and it's reusable bidirectional labels - and +. ca65 is nice, but it wasn't specifically designed for the NES and as a result includes a lot of stuff that has little or no relevance for NES programming. Plus, ASM6 is super simple to use.


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 4:40 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10052
Location: Rio de Janeiro - Brazil
thenewguy wrote:
I absolutely love ASM6, and I think it's good for beginners because it's specifically designed with the NES in mind.

I wouldn't say that... It may have been created by a guy who makes NES programs, but nothing about it is of exclusive use for NES programming. It's a pretty generic assembler really... the most unique features I can think of are the abilities to temporarily change the PC without affecting output (useful for declaring variables) and to reset the PC to start a new ROM bank, but those features are useful when developing for many other 6502 machines.

Quote:
ca65 is nice, but it wasn't specifically designed for the NES and as a result includes a lot of stuff that has little or no relevance for NES programming.

Then don't use that stuff! :wink:

One thing I miss in ASM6 is a better way to handle ROM banks. Labels don't carry any bank information whatsoever, so you either have to keep track of where everything is manually (too error-prone), or keep track of the bank indices using a symbol, and create a new symbol copying its value for each label you need to remember the bank (e.g. UPDATE_VIDEO_BANK = BankIndex near UpdateVideo:). It would be nice if you could set a bank index so that all subsequent labels would "belong" to that bank, and you could easily extract that information elsewhere.

Another thing I miss is being able to output the values of symbols and labels, so it'd possible to display useful information about the ROM being assembled (e.g. more specific error messages, used/free space, etc.). AFAIK, the only way to display messages is with ERROR, which only handles constant strings and stops assembly. I actually miss being able to manipulate strings in general, to do things like create dynamic identifiers, which I've been doing a lot lately.


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 6:07 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19096
Location: NE Indiana, USA (NTSC)
To do dynamic identifiers and the like, you could write a custom preprocessor whose output is fed to ASM6. I wrote a preprocessor for two or three projects in the Action 53 multicarts, so that I could take code designed for NESASM (LAN Master) or alien (1007 Bolts), feed it to my pet snake, and give the result to ca65.

If we decide to build the early tutorial around ASM6 for its simplicity, how would we handle the transition from simple projects to complex projects (where ca65 has somewhat of an edge)?


Top
 Profile  
 
PostPosted: Fri Jun 03, 2016 6:22 pm 
Offline
User avatar

Joined: Sat Jul 25, 2015 1:22 pm
Posts: 501
tepples wrote:
If we decide to build the early tutorial around ASM6 for its simplicity, how would we handle the transition from simple projects to complex projects (where ca65 has somewhat of an edge)

Perhaps eventually a follow-up tutorial (this also reduces the scope necessary in getting the first tutorial up) and in the meantime, join the forum community, introduce yourself, search posts and post questions.


Top
 Profile  
 
PostPosted: Sun Jun 05, 2016 1:31 pm 
Online

Joined: Tue May 28, 2013 5:49 am
Posts: 800
Location: Sweden
I don't think a beginner tutorial has to handle that complex projects. It's up to the beginners what assembler to use for their own projects after they have completed the tutorials.

Having finally tried ca65 a bit I can say that it's not bad although I haven't really used it's more advanced functions. Still the cleanness of asm6 is hard to beat. It has the simplicity of NESASM but without all the problems.

Although I feel like the asm6 vs ca65 war is mostly about personal preferences, I think asm6 is more suitable for beginners for the same reasons Koitsu already said. The config files and linker just helps confusing the beginner more than necessary, at a time when it's more important to grasp 6502 and the hardware.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: team_disposable and 9 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