#include "roms.h"

const struct RomModule ccrom[] =
{
        { "7.dat", 0x0000, 0x1000 },
        { "8.dat", 0x1000, 0x1000 },
        { "9.dat", 0x2000, 0x1000 },
        { "10.dat", 0x3000, 0x1000 },
        { "11.dat", 0x4000, 0x1000 },
        { "12.dat", 0x5000, 0x1000 },
	{ 0 }	/* end of table */
};


const struct DSW ccdsw[] =
{
	{ 0, 0x03, "LIVES", { "3", "4", "5", "6" } },
        { 0, 0x04, "BONUS", { "5000", "10000" } },
	{ -1 }
};


const struct GameInfo gameinfo[] =
{
        { "ckong", ccrom, ccdsw, { 0x00 } },
        {0}
};




const struct RomModule ccgfx[] =
{
        { "6.dat", 0x0000, 0x1000 },
        { "4.dat", 0x1000, 0x1000 },
        { "5.dat", 0x2000, 0x1000 },
        { "3.dat", 0x3000, 0x1000 },
        { "2.dat", 0x4000, 0x0800 },
        { "1.dat", 0x4800, 0x0800 },
	{ 0 }	/* end of table */
};
const struct RomModule ccbootgfx[] =
{
	{ "m06.bin", 0x0000, 0x0800 },
	{ "m04.bin", 0x0800, 0x0800 },
	{ "m05.bin", 0x1000, 0x0800 },
	{ "m03.bin", 0x1800, 0x0800 },
	{ "m02.bin", 0x2000, 0x0800 },
	{ "m01.bin", 0x2800, 0x0800 },
	{ 0 }	/* end of table */
};




/* "What is the palette doing here", you might ask, "it's not a ROM!" */
/* Well, actually the palette and lookup table were stored in PROMs, whose */
/* image, unfortunately, is usually unavailable. So we have to supply our */
/* own. */
const unsigned char ccpalette[3 * TOTAL_COLORS] =
{
	0x00,0x00,0x00,	/* BLACK */
	0x49,0x00,0x00,	/* DKRED1 */
	0x92,0x00,0x00,	/* DKRED2 */
	0xff,0x00,0x00,	/* RED */
	0x00,0x24,0x00,	/* DKGRN1 */
	0x92,0x24,0x00,	/* DKBRN1 */
	0xb6,0x24,0x00,	/* DKBRN2 */
	0xff,0x24,0x00,	/* LTRED1 */
	0xdb,0x49,0x00,	/* BROWN */
	0x00,0x6c,0x00,	/* DKGRN2 */
	0xff,0x6c,0x00,	/* LTORG1 */
	0x00,0x92,0x00,	/* DKGRN3 */
	0x92,0x92,0x00,	/* DKYEL */
	0xdb,0x92,0x00,	/* DKORG */
	0xff,0x92,0x00,	/* ORANGE */
	0x00,0xdb,0x00,	/* GREEN1 */
	0x6d,0xdb,0x00,	/* LTGRN1 */
	0x00,0xff,0x00,	/* GREEN2 */
	0x49,0xff,0x00,	/* LTGRN2 */
	0xff,0xff,0x00,	/* YELLOW */
	0x00,0x00,0x55,	/* DKBLU1 */
	0xff,0x00,0x55,	/* DKPNK1 */
	0xff,0x24,0x55,	/* DKPNK2 */
	0xff,0x6d,0x55,	/* LTRED2 */
	0xdb,0x92,0x55,	/* LTBRN */
	0xff,0x92,0x55,	/* LTORG2 */
	0x24,0xff,0x55,	/* LTGRN3 */
	0x49,0xff,0x55,	/* LTGRN4 */
	0xff,0xff,0x55,	/* LTYEL */
	0x00,0x00,0xaa,	/* DKBLU2 */
	0xff,0x00,0xaa,	/* PINK1 */
	0x00,0x24,0xaa,	/* DKBLU3 */
	0xff,0x24,0xaa,	/* PINK2 */
	0xdb,0xdb,0xaa,	/* CREAM */
	0xff,0xdb,0xaa,	/* LTORG3 */
	0x00,0x00,0xff,	/* BLUE */
	0xdb,0x00,0xff,	/* PURPLE */
	0x00,0xb6,0xff,	/* LTBLU1 */
	0x92,0xdb,0xff,	/* LTBLU2 */
	0xdb,0xdb,0xff,	/* WHITE1 */
	0xff,0xff,0xff	/* WHITE2 */
};

enum {BLACK,DKRED1,DKRED2,RED,DKGRN1,DKBRN1,DKBRN2,LTRED1,BROWN,DKGRN2,
	LTORG1,DKGRN3,DKYEL,DKORG,ORANGE,GREEN1,LTGRN1,GREEN2,LTGRN2,YELLOW,
	DKBLU1,DKPNK1,DKPNK2,LTRED2,LTBRN,LTORG2,LTGRN3,LTGRN4,LTYEL,DKBLU2,
	PINK1,DKBLU3,PINK2,CREAM,LTORG3,BLUE,PURPLE,LTBLU1,LTBLU2,WHITE1,
	WHITE2};

const unsigned char cccolortable[4 * COLOR_CODES] =
{
	/* characters and sprites */
        BLACK,LTYEL,BROWN,WHITE1,      /* hammers, white text */
        BLACK,LTORG1,WHITE1,LTRED1,     /* pauline with kong */
        BLACK,BLUE,LTBLU1,LTYEL,       /* 4th lvl */
        BLACK,LTBRN,BROWN,CREAM,     /* kong */
        BLACK,BLUE,LTYEL,LTBLU1,     /* 2nd level */
        BLACK,RED,CREAM,BLUE,         /* blue text */
        BLACK,PINK1,RED,DKGRN3,      /* 3rd level */
        BLACK,LTBRN,CREAM,LTRED1,     /* pauline */
        BLACK,LTYEL,BLUE,BROWN,      /* barrel */
        BLACK,RED,CREAM,BLUE,      /* mario */
        BLACK,PINK1,RED,DKGRN3,      /* 1st level */
        BLACK,RED,LTRED1,YELLOW,       /* oil flame */
        BLACK,YELLOW,BLUE,RED,       /* small mario, spring */
        BLACK,DKGRN3,LTBLU1,BROWN,      /* scared flame */
        BLACK,LTRED1,YELLOW,BLUE,       /* flame */
        BLACK,CREAM,LTBLU2,BLUE,        /* "oil" barrel */

	/* big sprite */
	BLACK,WHITE2,DKGRN2,BLUE,	/* helicopter */
	BLACK,WHITE2,PURPLE,PINK2,	/* air balloon */
	BLACK,LTRED2,WHITE2,LTORG1,	/* bird */
	BLACK,WHITE2,BLUE,LTORG2,	/* title screen Crazy Climber logo */
	BLACK,DKPNK1,LTYEL,DKBLU2,	/* 2nd level electric sign */
	BLACK,DKBLU3,DKPNK1,LTYEL,	/* 3rd level sign */
	BLACK,LTYEL,DKBLU3,DKPNK1,	/* 2nd level sign */
	BLACK,DKBLU1,DKGRN1,WHITE2	/* 1st level sign */
};



const struct GameVidInfo gamevidinfo[] =
{
        { "ckong", ccgfx, ccpalette, cccolortable },
	{ 0, ccbootgfx, ccpalette, cccolortable }	/* generic entry */
};



const struct RomModule ccsound[] =
{
        { "14.dat", 0x0000, 0x1000 },
        { "13.dat", 0x1000, 0x1000 },
	{ 0 }	/* end of table */
};
const struct RomModule ccbootsound[] =
{
	{ "m13.bin", 0x0000, 0x1000 },
	{ "m12.bin", 0x1000, 0x1000 },
	{ 0 }	/* end of table */
};



const struct GameSndInfo gamesndinfo[] =
{
        { "ckong", ccsound },
	{ 0, ccbootsound }	/* generic entry */
};
