I've just switched over to NESHLA from NESASM, because Nesasm's a POS. And the P in that stands for Pile. I'm hearing great things about wladx. Does anyone reccomend wladx to NESHLA? What I hate about NESHLA is that there are SO MANY INCLUDED FILES! I don't even know where to start. Because I think he included those H files to like define Macros and crap, and the files are included in the actual game, and you can't really say that you wrote the whole code with that being the situation. you know what I mean? But yeah, which one do you think is better?
Yeah, I'm justly asking myself the same question.
Wla-DX is really great, and is multiplatformal, so you have to bother with the standards once, and you can programm the NES; the SNES, the GameBoy and such others systems.
However, HES HLA is still interessting because of it's strange and interesting macro system. I'm asking myself wich one I'll definitely use for Ecological Evolution.
In others words : If you're a hardcore assembler coder, use WlaDX, if you're more familiar with C, use NES-HLA.
I use ca-65 some of the time for NES assembly (otherwise I use an assembler I wrote). For SNES SPC-700 sound CPU assembly I use wla 9.3 (September 2004) and am really disgusted at its unclear/non-existent documentation (or else I have overlooked the real documentation). For example, try finding an explanation of how slots and banks work. In contrast, ca-65 is well-documented.
Yeah, doccumentation effectively lacks in Wla-DX.
However, you have to practice it to get it. Banks and slots works in a simple way, just not confuse RAM slots and ROM slots.
Banks and slots works in a simple way, just not confuse RAM slots and ROM slots.
That would help if I knew what the hell a slot was. If an assembler author is introducing a new compulsory concept (as in, I can't ignore it if I want to use the assembler), he needs to describe it.
In general terms, a model consists of objects and behaviors (actions). The objects the assembler uses is hidden behind the commands (actions); both have to be comprehended before one can make sense of it.
A slot is just something where you can swap rom or ram in.
Here you are an example of what I use for define a CNROM game on the NES :
Quote:
.memorymap
defaultslot 0
slotsize $100
slot 0 $0 ;0 page RAM
slotsize $500
slot 1 $300 ;BSS RAM
slotsize $8000 ;PRG ROM slot (32kb)
slot 2 $8000
slotsize $2000 ;CHR ROM slot (8kb)
slot 3 $0
.endme
;Define a CNROM structure with 32kb PRG and 32kb CHR
.rombankmap
banksize $8000 ;1x 32kb PRG
banks 1
banksize $2000 ;4x 8kb CHR
banks 4
bankstotal 5
.endro
i am not ashamed to admit it.... i use NESASM and i dont plan to change.... heh. it works just fine. as long as you can use .db and .dw..... you can do anything.... bwahahahaha *cough cough* hahaha
Well, I can never seem to get anywhere with NESASM. I get so confused with .db and stuff, and it sucks, cause I never know where anything is in the stack, and I get so confused. Maybe that's just programming NES in general for me. I don't see how in the Mario Bros source code, they just make a level by saying this:
.db $20,$d3,$ef,$f6
Dude, I don't know it those were really the exact ones, but it was like that. I am still rather confused about some things in 6502 programming. Like Flags, and stuff. And clear carry set garbage and all that. I just don't get it. I'm gonna stop talking now.
Celius wrote:
Maybe that's just programming NES in general for me.
It sure is. That's nothing to do with the assembler, but, in that case, maybe NES HLA would be better for you (because it does everything automically).
Use ca65, it's the best I've seen around
The "slot" mentioned sounds like the ld65 "segment" which is used in the linker config file.
I just can't see why CA65 would be better than Wla-DX. They're just different, but Wla-DX is multi-platformal.
I don't know why ca-65 is of better quality; it just is. One reason might be that ca-65 doesn't spread itself thin trying to support so many different architectures.
If you target several architectures and want a common assembler, wla dx is probably better.
I use Nesasm for everything , but now my "average" on 6502Programming its not very good , but I supossed later ,when I turned into a Guru of 6502 Programming I change my ASM. But I really don't know , 'cause I love Nesasm.
Nesasm is pretty fast and does the job for small code. However, when you want something a bit complicated, you'll notice all it's lack of feathures.
Another advantage of Wla-DX, you just have to post your feathure request on its
message boards, and the author will include it in Wla-DX. In wich other assembler can you "custom" your feathures like that ??
NESASM does the trick for me. I think even in a large game it would still work quite well, unless somebody can give me a reason why not.
I think even in a large game it would still work quite well, unless somebody can give me a reason why not.
I don't think NESASM supports multiple source files. In large projects I like to keep my source files short and modular. This is one advantage nesasm has for small projects. It assembles and links all in one step, which makes it simpler to use.
blargg wrote:
I think even in a large game it would still work quite well, unless somebody can give me a reason why not.
I don't think NESASM supports multiple source files. In large projects I like to keep my source files short and modular. This is one advantage nesasm has for small projects. It assembles and links all in one step, which makes it simpler to use.
It does. Just use the include directive. It can include up to 7 levels of source files.