A little bit of code review:
Code: Select all
if (cols * rows > 512) die("Too large to fit in the 8kb CHR ROM\n")
This limit is unnecessary for three reasons: MMC, CHR RAM, and post-processing tools that generate a nametable.
Code: Select all
if (pix > 3) die("Palette has too many colors (%u) at %u,%u\n", pix, x, y);
But why? I want to use colors 5, 6, 7, 9, 10, 11, 13, 14, and 15 to remind myself of in which palette a particular object should be drawn.
Do you plan on adding 8x16 tile support or support for CHR formats other than that of the NES? Because I wrote a converter in Python that uses format strings: NES is
0;1, Game Boy is
0;1, SMS is
0,1,2,3, Genesis is
3210, Super NES is
0,1;2,3, Super NES 3-bit is
0,1;2, Mode 7 is
76543210, etc. It's included with my project templates for
NES and
Super NES.
Rahsennor wrote:I knew there had to be other NES enthusiasts on Linux.
I use Xubuntu.
Rahsennor wrote:I got started on writing some tools of my own before I got sidetracked by the lack of a decent NSF player
Let me guess: You're on Fedora, and you're feeling Red Hat's fear of Nintendo's legal department. Here on Debian family distributions, I can just
sudo apt-get install fceux and then
fceux Thwaite.nsf.