Recommended assembler for NES development beginner [POLL]
Moderator: Moderators
Re: Recommended assembler for NES development beginner [POLL
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.
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 115 times
Re: Recommended assembler for NES development beginner [POLL
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: fo.aspekt.fi
- FrankenGraphics
- Formerly WheelInventor
- Posts: 2033
- Joined: Thu Apr 14, 2016 2:55 am
- Location: Gothenburg, Sweden
- Contact:
Re: Recommended assembler for NES development beginner [POLL
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...
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?
http://www.frankengraphics.com - personal NES blog
Re: Recommended assembler for NES development beginner [POLL
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.dougeff wrote: Anybody out there want to tackle this easy task of editing the code and recompiling?
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
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.
[url=gopher://zzo38computer.org/].[/url]
Re: Recommended assembler for NES development beginner [POLL
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?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.
Re: Recommended assembler for NES development beginner [POLL
I have no repository of it, sorryBanshaku wrote: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?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.
[url=gopher://zzo38computer.org/].[/url]
Re: Recommended assembler for NES development beginner [POLL
Doesn't XA requires DOSBOX to run ? Before I used to use that, and it was amazing, but there was thiss... em... little problem.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.
Re: Recommended assembler for NES development beginner [POLL
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
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
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.thenewguy wrote:I absolutely love ASM6, and I think it's good for beginners because it's specifically designed with the NES in mind.
Then don't use that stuff!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.
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
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)?
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)?
- darryl.revok
- Posts: 520
- Joined: Sat Jul 25, 2015 1:22 pm
Re: Recommended assembler for NES development beginner [POLL
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.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)
Re: Recommended assembler for NES development beginner [POLL
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.
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.