Eyecatcher: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 1: Line 1:
"Eye-catcher" is the name officially given by SNK to the bootup animation. The [[system ROM]] takes care of the animation, but the graphics data for both [[sprites]] and [[fix layer]] must be provided by the game in its {{Chipname|C ROM}}s and {{Chipname|S ROM}}.
[[File:Eyecatcher.gif|frame]]
"Eye-catcher" is the name officially given by SNK to the bootup animation.
 
The [[system ROM]] takes care of the animation, but the graphics data for both [[sprites]] and [[fix layer]] must be provided by the game in its {{Chipname|C ROM}}s and {{Chipname|S ROM}}.


==NEO-GEO logo==
==NEO-GEO logo==
The revolving NEO.GEO graphic consists of sprites (the bank of tiles is specified by the byte in the [[68k program header]] at address $115).
The revolving NEO.GEO graphic consists of sprites (the bank of tiles is specified by the byte in the [[68k program header]] at address $115).


The palette is updated on the fly from data stored in the system ROM ($C1F03E in {{Chipname|SP-S2}}) to implement the fading effect.
The palette is updated on the fly from data stored in the system ROM ($01F03E in {{Chipname|SP-S2}}) to implement the fading effect.


==MAX 330 MEGA==
==MAX 330 MEGA==
The "MAX 330 MEGA" & "PRO-GEAR SPEC" text as seen on small or early cartridges (eg. [[Puzzle De Pon!]]) is drawn on the fix layer. The tilemap is also stored in the system ROM ($C1F34A in SP-S2). Each line of text is 2 fix tiles in height, and is animated using a 'wipe in' effect from left-to-right.
The "MAX 330 MEGA" & "PRO-GEAR SPEC" text as seen on small or early cartridges (eg. [[Puzzle De Pon!]]) is drawn on the fix layer with tiles from bank 0. The tilemap is stored in the system ROM ($01F34A in SP-S2). Each line of text is 2 fix tiles in height, and is animated using a 'wipe in' effect from left-to-right.


The tiles used to display each line of text are:
The tiles used to display each line of text are:
Line 28: Line 31:


==SNK logo==
==SNK logo==
The SNK logo is also drawn on the fix layer. It is always drawn but actually made visible at the end of the animation by switching its palette.
The SNK logo is also drawn on the fix layer, with tiles of bank 2. It is always drawn but actually made visible at the end of the animation by switching its palette.


<syntaxhighlight>
<syntaxhighlight>

Revision as of 23:36, 17 January 2016

"Eye-catcher" is the name officially given by SNK to the bootup animation.

The system ROM takes care of the animation, but the graphics data for both sprites and fix layer must be provided by the game in its C ROMs and S ROM.

The revolving NEO.GEO graphic consists of sprites (the bank of tiles is specified by the byte in the 68k program header at address $115).

The palette is updated on the fly from data stored in the system ROM ($01F03E in SP-S2) to implement the fading effect.

MAX 330 MEGA

The "MAX 330 MEGA" & "PRO-GEAR SPEC" text as seen on small or early cartridges (eg. Puzzle De Pon!) is drawn on the fix layer with tiles from bank 0. The tilemap is stored in the system ROM ($01F34A in SP-S2). Each line of text is 2 fix tiles in height, and is animated using a 'wipe in' effect from left-to-right.

The tiles used to display each line of text are:

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 }
};

This can be useful to customize the text in a S ROM.

The SNK logo is also drawn on the fix layer, with tiles of bank 2. It is always drawn but actually made visible at the end of the animation by switching its palette.

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 "©" symbol is a single tile ($7B) written to VRAM adress $7469.

The tiles are set to palette 15. The colour 5 is initially black ($0000) and then faded-in through a cycle of progressively brighter blues to a final value of $306E.

Palettes

Both the revolving logo and the fix layer text use 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
};

Customization

By replacing the tile data for the above tile numbers with alternate text or graphics, it is possible to somewhat customize the eye-catcher screen without requiring a custom eye-catcher routine in the game cartridge itself.

The only caveat is that tile $FF 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.