Page 4 of 5
Re: Recommended assembler for NES development beginner [POLL
Posted: Thu Jun 02, 2016 2:49 pm
by koitsu
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.
Re: Recommended assembler for NES development beginner [POLL
Posted: Thu Jun 02, 2016 7:06 pm
by thefox
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.
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 12:52 am
by FrankenGraphics
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?

User interfaces takes time, though...
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 9:16 am
by Banshaku
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.
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 9:39 am
by zzo38
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.
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 9:44 am
by Banshaku
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?
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 10:13 am
by zzo38
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
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 11:52 am
by Bregalad
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.
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 11:54 am
by lidnariq
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 12:40 pm
by tepples
It appears to be the same assembler you get from
Ubuntu's repository when you
sudo apt-get install xa65. (Compare the
copyright file.)
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 4:01 pm
by thenewguy
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.
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 4:40 pm
by tokumaru
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.
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!
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.
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 6:07 pm
by tepples
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)?
Re: Recommended assembler for NES development beginner [POLL
Posted: Fri Jun 03, 2016 6:22 pm
by darryl.revok
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.
Re: Recommended assembler for NES development beginner [POLL
Posted: Sun Jun 05, 2016 1:31 pm
by Pokun
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.