Eyecatcher
The eye-catcher animation coded in the BIOS comprises both sprites and FIX layer tiles. The graphics data for both must be provided in the cartridge sprite and FIX ROM images.
NEO-GEO LOGO
The revolving NEO.GEO graphic consists of sprites (TBD).
The palette is updated on-the-fly (from data stored in the BIOS (SP-S2) ROM @$C1F03E) to implement the fade effect.
MAX 330 MEGA
The "MAX 330 MEGA" & "PRO-GEAR SPEC" text as seen on smaller/early-release cartridges (eg. Puzzle De Pon) comprises FIX-layer tiles. The tiles used are defined in the BIOS (SP-S2) ROM @$C1F34A. Each line of text is itself two (2) FIX-layer tiles high, and is animated using a 'wipe in' effect from left-to-right to render each line in turn. These are the tiles used to display each line of text:
static const uint16_t max_330_mega[2][15] =
{
{ 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F, 0x5E, 0x60, 0x7D },
{ 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, 0x40, 0x5F, 0x7C, 0x7E }
};
static const uint16_t pro_gear_spec[2][17] =
{
{ 0x7F, 0x9A, 0x9C, 0x9E, 0xFF, 0xBB, 0xBD, 0xBF, 0xDA, 0xDC, 0xDE, 0xFA, 0xFC, 0x100, 0x102, 0x104, 0x106 },
{ 0x99, 0x9B, 0x9D, 0x9F, 0xBA, 0xBC, 0xBE, 0xD9, 0xDB, 0xDD, 0xDF, 0xFB, 0xFD, 0x101, 0x103, 0x105, 0x107 }
};
SNK LOGO
The SNK Logo consists of FIX-layer text which is actually rendered (invisible) at the start of the eye-catcher routine.
static const uint16_t SNK[3][10] =
{
{ 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209 },
{ 0x20A, 0x20B, 0x20C, 0x20D, 0x20E, 0x20F, 0x214, 0x215, 0x216, 0x217 },
{ 0x218, 0x219, 0x21A, 0x21B, 0x21C, 0x21D, 0x21E, 0x21F, 0x240, 0x25E }
};
The copyright "(C)" symbol is a single tile (0x7B) written to VRAM adress 0x7469.
The logo tiles are palette #15, colour #5 which is initially BLACK (0x0000) and then faded-in through a cycle of progressively brighter blues to a final value of 0x306E.
PALETTE
Both the revolving logo and the FIX-layer text utilise palette #15.
Here is the *final* data written to palette #15:
static const uint16_t eye_catcher_pal[] =
{
0x0000, 0x0fff, 0x0ddd, 0x0aaa, 0x7555, 0x306E, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
};
CUSTOMISATION
It is possible, then, by replacing the FIX-layer tile data for the above tiles with alternate text/graphics to create a somewhat customised eye catcher without requiring a custom eye-catcher routine in the game cartridge itself.
The only caveat is that tile #0xFF is used in the "PRO-GEAR SPEC" display (see array data above) and is also used as the blank/space character for the entire screen. Thus this tile cannot be changed without replicating it over the entire FIX-layer background.