Assembler Decision
Moderator: Moderators
Assembler Decision
I'm at the point where I want to start coding. I've noticed there's quite a few options as far as assemblers go, and seemingly no overall consensus as to which one is better. Though, I'm sure everyone has there personal preference, so I was hoping to find some sort of a comparison.
Is there any of the assemblers I should avoid altogether? Which one is the most commonly used in this community? Do any of the assemblers have features that make them really stand out above the rest?
Is there any of the assemblers I should avoid altogether? Which one is the most commonly used in this community? Do any of the assemblers have features that make them really stand out above the rest?
I started with TASM, then moved to ASM6. It was easy enough to migrate from one to the other.
I liked how ASM6 has anonymous labels (- or + as a label), and INCBIN, two feature which TASM doesn't have. The ENUM feature where you declare a bunch of variables in RAM which doesn't emit any bytes is also great.
But I didn't like how ASM6 gave you mountains of "Incorrect Address" errors for a single mistake, so I went ahead and fixed the assembler to remove some situations which caused them.
I liked how ASM6 has anonymous labels (- or + as a label), and INCBIN, two feature which TASM doesn't have. The ENUM feature where you declare a bunch of variables in RAM which doesn't emit any bytes is also great.
But I didn't like how ASM6 gave you mountains of "Incorrect Address" errors for a single mistake, so I went ahead and fixed the assembler to remove some situations which caused them.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
Yes, I could see using the incbin a lot. I am working on a tile/map editor that outputs to a binary file, I could use incbin for this right?Dwedit wrote:...and INCBIN...
If I understand correctly this just enumerates a value to a certain label, like a constant?Dwedit wrote: The ENUM feature where you declare a bunch of variables in RAM which doesn't emit any bytes is also great.
Now you're scaring away the n00b! :P Did you at least contact Loopy to have him incorporate the patch into the official source? (I do remember skimming the thread about the problem you describe...)Dwedit wrote:But I didn't like how ASM6 gave you mountains of "Incorrect Address" errors for a single mistake, so I went ahead and fixed the assembler to remove some situations which caused them.
Cool. Is it possible to use mappers with ASM6? As far as I understand I will need to use a mapper for some of the functionality I want to implement.tokumaru wrote:I have used ASM6 for the past couple of years and have no complaints. It's simple (i.e. easy to use for the first time) but very versatile.
Yes.cartlemmy wrote:I could use incbin for this right?
ENUM works kinda like ORG, but doesn't generate any output. It's great for defining variables.Dwedit wrote:If I understand correctly this just enumerates a value to a certain label, like a constant?
For mappers, look into the BASE statement.cartlemmy wrote:Cool. Is it possible to use mappers with ASM6?
Check out the ASM6 templates I made for a few of the simple/common/popular mappers.
Great, thanks! This will be very helpful.tokumaru wrote: Check out the ASM6 templates I made for a few of the simple/common/popular mappers.
Good, so stay away from NESASM. That assembler is commonly used by newbies because a few tutorials use it, but it's full of nasty little problems. Generating corrupt binaries when some errors occur instead of warning you is one of them.cartlemmy wrote:I'd rather see too many error messages, than use a compiler that neglects to mention things