Reducing a portrait to GBC specs for 144p Test Suite

A place for your artistic side. Discuss techniques and tools for pixel art on the NES, GBC, or similar platforms.

Moderator: Moderators

Post Reply
tepples
Posts: 21751
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Reducing a portrait to GBC specs for 144p Test Suite

Post by tepples » Mon May 21, 2018 8:33 pm

> Discuss techniques and tools for pixel art on the NES, GBC, or similar platforms.

I'm trying to port the 240p Test Suite to Game Boy Color so that it may be used on a Nintendo GameCube console with a Game Boy Player accessory through an EverDrive GB X series microSD card adapter, or through forthcoming GBC or GBA to TV adapters. At first, I had planned to produce it only for the monochrome Game Boy, but people who have replied to my announcement of the port to Game Boy have been requesting GBC support and/or Super Game Boy support. I have chosen GBC support over SGB support because SGB colorization is so limited. I further need to keep the entire suite under 32768 bytes because the 32K flash cart sold by Catskull Electronics is the largest Game Boy flash cart that is readily available at prices less than that of a microSD card adapter. I currently have 4704 bytes remaining, and I have a lot of tests and their help text to fit into that space.

One of the tests displays moving objects in front of a portrait similar to this one originally by darryl.revok:
Gus-portrait-GBC.png
Gus-portrait-GBC.png (1.79 KiB) Viewed 4573 times
Thus I need to reduce this portrait to GBC specs, which I shall reproduce below:

GBC has eight 4-color background tile palettes, which can be assigned on an 8x8-pixel grid. All colors may be distinct. The palettes do not share color 0, unlike the palettes on the NES, TurboGrafx-16, Genesis, Super NES, and Game Boy Advance.

GBC has ten 8x16-pixel sprites per scanline, of which this background can use four because the moving objects in front of this background can use up to six. That leaves four for this background, but I would prefer to use zero to save on data size.

GBC has eight 3-color sprite palettes, of which two are in use for the moving objects in front of this background that don't share a color scheme with things in this background. That leaves six for this background, but I would prefer to use zero to save on data size.

GBC has 40 sprites per scene. If you decide to use 8x8-pixel sprites, the moving objects in front of this background will use up to 24. That leaves 16 for this background. If you decide to use 8x16-pixel sprites, the moving objects in front of this background will use up to 12. That leaves 28 for this background. But in either case, I would prefer to use zero to save on data size.

Is there an automated way to find the optimal eight 4-color palettes for a given image?

User avatar
Dwedit
Posts: 4236
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Re: Reducing a portrait to GBC specs for 144p Test Suite

Post by Dwedit » Wed May 23, 2018 6:17 am

GBC has "hicolor" mode where you mess with the palettes scanline by scanline, so the restrictions are per-scanline only.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!

tepples
Posts: 21751
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Reducing a portrait to GBC specs for 144p Test Suite

Post by tepples » Wed May 23, 2018 6:30 am

How big is the data required by "hicolor" mode, and are there public source code examples or at least detailed explanations of how to accomplish the effect?

Post Reply