Page 1 of 1

iNES and NES 2.0 header generation for asm6

Posted: Sun May 03, 2015 3:16 am
by Cytlan
When I first started, I liked NESASM, because it could generate the header for me, but I quickly switched to asm6. It's just a much better assembler. I did however get fed up with making the iNES/NES 2.0 headers by hand, so I wrote this little helper file a few years back.
It might be useful to someone, so I've finally decided to release it.

Example usage:

Code: Select all

INES_2_0       = INES_YES        ; Because emulators should support this!
INES_MAPPER    = INES_NROM       ; Mapper 0
INES_PRG       = 1               ; Only 1 bank of 16KiB PRG ROM
INES_CHR       = 1               ; Only 1 of 8KiB CHR ROM
INES_MIRRORING = INES_HORIZONTAL ; Horizonal mirroring
INES_SYSTEM    = INES_PAL        ; Force PAL mode emulation
.include "iNES_Header.asm"       ; Generate and write the header
Edit:
asm6 didn't like the ASSERT macros. Replaced them with if's.

Re: iNES and NES 2.0 header generation for asm6

Posted: Sun May 03, 2015 12:15 pm
by zzo38
Mapper 0 is NROM and is not UNROM. It is good you add support of NES 2.0 headers though.

I also started with NESASM, but don't quite like ASM6 much either so instead I made several improvements to NESASM (using these extensions is probably more confusing than ASM6 to people who are not used to it, though).

Re: iNES and NES 2.0 header generation for asm6

Posted: Sun May 03, 2015 12:53 pm
by Cytlan
Whooops, you're right. It's just the example that's wrong, though, but I've corrected it.