summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Zsolt Vasvari <zsoltvas@mamedev.org>2008-02-02 14:09:27 +0000
committer Zsolt Vasvari <zsoltvas@mamedev.org>2008-02-02 14:09:27 +0000
commit3f37fbeef2ffe760a12a54efeb983c6dbacaa78f (patch)
treedc5dde98318e7346e45c25e42e5f296a083a105a
parentaa16ee779d83c827b3c0b2c848b42321266fdffc (diff)
- Removed colortable
- Renamed some sets in cclimber: Crazy Kong -> Crazy Kong Part II rpatrolo -> rpatrol
-rw-r--r--src/mame/drivers/arabian.c15
-rw-r--r--src/mame/drivers/bfm_sc2.c1
-rw-r--r--src/mame/drivers/carjmbre.c1
-rw-r--r--src/mame/drivers/cclimber.c36
-rw-r--r--src/mame/drivers/yamato.c47
-rw-r--r--src/mame/includes/arabian.h1
-rw-r--r--src/mame/includes/cclimber.h8
-rw-r--r--src/mame/mamedriv.c2
-rw-r--r--src/mame/video/arabian.c61
-rw-r--r--src/mame/video/cclimber.c234
10 files changed, 189 insertions, 217 deletions
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index 2186caa4668..e194ffc298d 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -212,12 +212,12 @@ static WRITE8_HANDLER( custom_cocktail_w )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0xbfff) AM_WRITE(arabian_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0xc000, 0xc000) AM_READ(input_port_0_r)
- AM_RANGE(0xc200, 0xc200) AM_READ(input_port_1_r)
+ AM_RANGE(0x8000, 0xbfff) AM_WRITE(arabian_videoram_w)
+ AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x01ff) AM_READ(input_port_0_r)
+ AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x01ff) AM_READ(input_port_1_r)
AM_RANGE(0xd000, 0xd7ef) AM_RAM AM_BASE(&custom_cpu_ram)
AM_RANGE(0xd7f0, 0xd7ff) AM_READWRITE(custom_cpu_r, MWA8_RAM)
- AM_RANGE(0xe000, 0xe07f) AM_WRITE(arabian_blitter_w) AM_BASE(&spriteram)
+ AM_RANGE(0xe000, 0xe007) AM_MIRROR(0x0ff8) AM_WRITE(arabian_blitter_w) AM_BASE(&arabian_blitter)
ADDRESS_MAP_END
@@ -229,8 +229,8 @@ ADDRESS_MAP_END
*************************************/
static ADDRESS_MAP_START( main_io_map, ADDRESS_SPACE_IO, 8 )
- AM_RANGE(0xc800, 0xc800) AM_WRITE(AY8910_control_port_0_w)
- AM_RANGE(0xca00, 0xca00) AM_WRITE(AY8910_write_port_0_w)
+ AM_RANGE(0xc800, 0xc800) AM_MIRROR(0x01ff) AM_WRITE(AY8910_control_port_0_w)
+ AM_RANGE(0xca00, 0xca00) AM_MIRROR(0x01ff) AM_WRITE(AY8910_write_port_0_w)
ADDRESS_MAP_END
@@ -363,8 +363,7 @@ static MACHINE_DRIVER_START( arabian )
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(256, 256)
MDRV_SCREEN_VISIBLE_AREA(0, 255, 11, 244)
- MDRV_PALETTE_LENGTH(64)
- MDRV_COLORTABLE_LENGTH(256*32)
+ MDRV_PALETTE_LENGTH(256*32)
MDRV_PALETTE_INIT(arabian)
MDRV_VIDEO_START(arabian)
diff --git a/src/mame/drivers/bfm_sc2.c b/src/mame/drivers/bfm_sc2.c
index 88009a7ad53..b755aecfbb6 100644
--- a/src/mame/drivers/bfm_sc2.c
+++ b/src/mame/drivers/bfm_sc2.c
@@ -2996,7 +2996,6 @@ static MACHINE_DRIVER_START( scorpion2_vid )
MDRV_VIDEO_UPDATE(addersc2)
MDRV_PALETTE_LENGTH(16)
- MDRV_COLORTABLE_LENGTH(16)
MDRV_PALETTE_INIT(adder2)
MDRV_GFXDECODE(adder2)
diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c
index 19e0fef93fa..7ab2af7b161 100644
--- a/src/mame/drivers/carjmbre.c
+++ b/src/mame/drivers/carjmbre.c
@@ -204,7 +204,6 @@ static MACHINE_DRIVER_START( carjmbre )
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MDRV_GFXDECODE(carjmbre)
MDRV_PALETTE_LENGTH(64)
- MDRV_COLORTABLE_LENGTH(64)
MDRV_PALETTE_INIT(carjmbre)
MDRV_VIDEO_START(carjmbre)
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index a3f0a18476d..d1f5ba43cb6 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -184,7 +184,7 @@ static ADDRESS_MAP_START( cclimber_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6bff) AM_RAM /* Crazy Kong only */
AM_RANGE(0x8000, 0x83ff) AM_RAM
- AM_RANGE(0x8800, 0x88ff) AM_READWRITE(MRA8_RAM, cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
+ AM_RANGE(0x8800, 0x88ff) AM_RAM AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
AM_RANGE(0x8900, 0x8bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
@@ -211,7 +211,7 @@ static ADDRESS_MAP_START( cannonb_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x6000, 0x6bff) AM_RAM /* Crazy Kong only, Cannon Ball also */
AM_RANGE(0x8000, 0x83ff) AM_RAM
AM_RANGE(0x8800, 0x8800) AM_READNOP /* must not return what's written (game will reset after coin insert if it returns 0xff)*/
- AM_RANGE(0x8800, 0x88ff) AM_READWRITE(MRA8_RAM, cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
+ AM_RANGE(0x8800, 0x88ff) AM_RAM AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
//AM_RANGE(0x8900, 0x8bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
@@ -233,7 +233,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( swimmer_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x87ff) AM_RAM
- AM_RANGE(0x8800, 0x88ff) AM_MIRROR(0x0100) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
+ AM_RANGE(0x8800, 0x88ff) AM_MIRROR(0x0100) AM_RAM AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size)
AM_RANGE(0x9800, 0x981f) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_column_scroll)
AM_RANGE(0x9880, 0x989f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
@@ -242,11 +242,11 @@ static ADDRESS_MAP_START( swimmer_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xa000, 0xa000) AM_READWRITE(input_port_0_r, interrupt_enable_w)
AM_RANGE(0xa001, 0xa001) AM_WRITE(flip_screen_x_w)
AM_RANGE(0xa002, 0xa002) AM_WRITE(flip_screen_y_w)
- AM_RANGE(0xa003, 0xa003) AM_WRITE(swimmer_sidepanel_enable_w)
- AM_RANGE(0xa004, 0xa004) AM_WRITE(swimmer_palettebank_w)
+ AM_RANGE(0xa003, 0xa003) AM_WRITE(MWA8_RAM) AM_BASE(&swimmer_sidepanel_enabled)
+ AM_RANGE(0xa004, 0xa004) AM_WRITE(MWA8_RAM) AM_BASE(&swimmer_palettebank)
AM_RANGE(0xa800, 0xa800) AM_READWRITE(input_port_1_r, swimmer_sh_soundlatch_w)
AM_RANGE(0xb000, 0xb000) AM_READ(input_port_2_r)
- AM_RANGE(0xb800, 0xb800) AM_READWRITE(input_port_3_r, swimmer_bgcolor_w) /* river color in Swimmer */
+ AM_RANGE(0xb800, 0xb800) AM_READWRITE(input_port_3_r, MWA8_RAM) AM_BASE(&swimmer_bgcolor)
AM_RANGE(0xb880, 0xb880) AM_READ(input_port_4_r)
AM_RANGE(0xc000, 0xc7ff) AM_RAM /* ??? used by Guzzler */
AM_RANGE(0xe000, 0xffff) AM_ROM /* Guzzler only */
@@ -504,7 +504,7 @@ static INPUT_PORTS_START( ckongb )
CKONGIN2
INPUT_PORTS_END
-static INPUT_PORTS_START( rpatrolb )
+static INPUT_PORTS_START( rpatrol )
PORT_START_TAG("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
PORT_BIT( 0x3e, IP_ACTIVE_HIGH, IPT_UNKNOWN )
@@ -798,8 +798,7 @@ static MACHINE_DRIVER_START( cclimber )
MDRV_SCREEN_SIZE(32*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MDRV_GFXDECODE(cclimber)
- MDRV_PALETTE_LENGTH(96)
- MDRV_COLORTABLE_LENGTH(16*4+8*4)
+ MDRV_PALETTE_LENGTH(16*4+8*4)
MDRV_PALETTE_INIT(cclimber)
MDRV_VIDEO_START(generic)
@@ -852,8 +851,7 @@ static MACHINE_DRIVER_START( swimmer )
MDRV_SCREEN_SIZE(32*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MDRV_GFXDECODE(swimmer)
- MDRV_PALETTE_LENGTH(256+32+2)
- MDRV_COLORTABLE_LENGTH(64*8+4*8)
+ MDRV_PALETTE_LENGTH(64*8+4*8)
MDRV_PALETTE_INIT(swimmer)
MDRV_VIDEO_START(generic)
@@ -1310,7 +1308,7 @@ ROM_END
I think the board was a half-converted board as 'Water Gage' and 'Bon Voyage' don't really fit the theme
of Silver Land so I'm loading the River Patrol GFX instead as they fit better
*/
-ROM_START( rpatrolo )
+ROM_START( rpatrol )
ROM_REGION( 0x10000, REGION_CPU1, 0 )
ROM_LOAD( "sci1.bin", 0x0000, 0x1000, CRC(33b01c90) SHA1(9c8da6dd963bfb0544ef99b8fdedcf86c32cdb6b) )
ROM_LOAD( "sci2.bin", 0x1000, 0x1000, CRC(03f53340) SHA1(35336945f4b634fc4c7791ac9c9e6643c8cd8006) )
@@ -1550,18 +1548,18 @@ GAME( 1980, cclimber, 0, cclimber, cclimber, cclimber, ROT0, "Nichibuts
GAME( 1980, cclimbrj, cclimber, cclimber, cclimbrj, cclimbrj, ROT0, "Nichibutsu", "Crazy Climber (Japan)", 0 )
GAME( 1980, ccboot, cclimber, cclimber, cclimber, cclimbrj, ROT0, "bootleg", "Crazy Climber (bootleg set 1)", 0 )
GAME( 1980, ccboot2, cclimber, cclimber, cclimber, cclimbrj, ROT0, "bootleg", "Crazy Climber (bootleg set 2)", 0 )
-GAME( 1981, ckong, 0, cclimber, ckong, 0, ROT270, "Falcon", "Crazy Kong (set 1)", 0 )
-GAME( 1981, ckonga, ckong, cclimber, ckong, 0, ROT270, "Falcon", "Crazy Kong (set 2)", 0 )
-GAME( 1981, ckongjeu, ckong, cclimber, ckong, 0, ROT270, "bootleg", "Crazy Kong (Jeutel bootleg)", 0 )
+GAME( 1981, ckong, 0, cclimber, ckong, 0, ROT270, "Falcon", "Crazy Kong Part II (set 1)", 0 )
+GAME( 1981, ckonga, ckong, cclimber, ckong, 0, ROT270, "Falcon", "Crazy Kong Part II (set 2)", 0 )
+GAME( 1981, ckongjeu, ckong, cclimber, ckong, 0, ROT270, "bootleg", "Crazy Kong Part II (Jeutel bootleg)", 0 )
GAME( 1981, ckongo, ckong, cclimber, ckong, 0, ROT270, "bootleg", "Crazy Kong (Orca bootleg)", 0 )
GAME( 1981, ckongalc, ckong, cclimber, ckong, 0, ROT270, "bootleg", "Crazy Kong (Alca bootleg)", 0 )
GAME( 198?, bigkong, ckong, cclimber, ckong, 0, ROT270, "bootleg", "Big Kong", 0 )
GAME( 1981, monkeyd, ckong, cclimber, ckong, 0, ROT270, "bootleg", "Monkey Donkey", 0 )
-GAME( 198?, ckongb, ckong, cclimber, ckongb, ckongb, ROT270, "bootleg", "Crazy Kong (Alternative levels)", 0 )
+GAME( 198?, ckongb, ckong, cclimber, ckongb, ckongb, ROT270, "bootleg", "Crazy Kong Part II (alternative levels)", 0 )
-GAME( 1981, rpatrolb, 0, cclimber, rpatrolb, 0, ROT0, "bootleg", "River Patrol (bootleg)", 0 )
-GAME( 1981, rpatrolo, rpatrolb, cclimber, rpatrolb, 0, ROT0, "Orca", "River Patrol (Orca)", 0 )
-GAME( 1981, silvland, rpatrolb, cclimber, rpatrolb, 0, ROT0, "Falcon", "Silver Land", 0 )
+GAME( 1981, rpatrol, 0, cclimber, rpatrol, 0, ROT0, "Orca", "River Patrol (Orca)", 0 )
+GAME( 1981, rpatrolb, rpatrol, cclimber, rpatrol, 0, ROT0, "bootleg", "River Patrol (bootleg)", 0 )
+GAME( 1981, silvland, rpatrol, cclimber, rpatrol, 0, ROT0, "Falcon", "Silver Land", 0 )
GAME( 1985, cannonb, cannonbp, cannonb, cannonb, cannonb, ROT90, "Soft", "Cannon Ball (bootleg on Crazy Climber hardware, set 1)" , GAME_IMPERFECT_GRAPHICS )
GAME( 1985, cannonb2, cannonbp, cannonb, cannonb, cannonb2, ROT90, "TV Game Gruenberg", "Cannon Ball (bootleg on Crazy Climber hardware, set 2)", 0 )
diff --git a/src/mame/drivers/yamato.c b/src/mame/drivers/yamato.c
index 560b5762cb6..ca6ac37104f 100644
--- a/src/mame/drivers/yamato.c
+++ b/src/mame/drivers/yamato.c
@@ -75,7 +75,8 @@ static PALETTE_INIT( yamato )
/* chars - 12 bits RGB */
for (i = 0; i < 0x40; i++)
{
- int bit0, bit1, bit2, bit3, r, g, b;
+ int bit0, bit1, bit2, bit3;
+ int r, g, b;
/* red component */
bit0 = (color_prom[i + 0x00] >> 0) & 0x01;
@@ -104,7 +105,8 @@ static PALETTE_INIT( yamato )
/* big sprite - 8 bits RGB */
for (i = 0; i < 0x20; i++)
{
- int bit0, bit1, bit2, r, g, b;
+ int bit0, bit1, bit2;
+ int r, g, b;
/* red component */
bit0 = (color_prom[i + 0x80] >> 0) & 0x01;
@@ -136,35 +138,30 @@ static PALETTE_INIT( toprollr )
{
int i;
- for (i = 0;i < 32*5;i++)
+ for (i = 0; i < 32*5; i++)
{
- int bit0,bit1,bit2,r,g,b;
-
+ int bit0,bit1,bit2;
+ int r,g,b;
/* red component */
bit0 = (color_prom[0] >> 0) & 0x01;
bit1 = (color_prom[0] >> 1) & 0x01;
bit2 = (color_prom[0] >> 2) & 0x01;
-
-
r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
/* green component */
bit0 = (color_prom[0] >> 3) & 0x01;
bit1 = (color_prom[0] >> 4) & 0x01;
bit2 = (color_prom[0] >> 5) & 0x01;
-
g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
/* blue component */
bit0 = 0;
bit1 = (color_prom[0] >> 6) & 0x01;
bit2 = (color_prom[0] >> 7) & 0x01;
-
b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ palette_set_color(machine, i, MAKE_RGB(r, g, b));
color_prom++;
}
@@ -220,7 +217,7 @@ static ADDRESS_MAP_START( yamato_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_WRITE(MWA8_ROM)
AM_RANGE(0x6000, 0x6fff) AM_WRITE(MWA8_RAM)
AM_RANGE(0x7000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8800, 0x88ff) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
+ AM_RANGE(0x8800, 0x88ff) AM_WRITE(MWA8_RAM) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
AM_RANGE(0x8900, 0x8bff) AM_WRITE(MWA8_RAM) /* not used, but initialized */
AM_RANGE(0x9000, 0x93ff) AM_WRITE(MWA8_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size)
//AM_RANGE(0x9400, 0x97ff) AM_WRITE(MWA8_RAM) /* mirror address, used by Crazy Climber to draw windows */
@@ -283,10 +280,10 @@ static WRITE8_HANDLER(rombank_w)
}
}
-static ADDRESS_MAP_START( trmem_map, ADDRESS_SPACE_PROGRAM, 8 )
+static ADDRESS_MAP_START( toprollr_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x5fff) AM_READ(MRA8_BANK1)
AM_RANGE(0x6000, 0x6bff) AM_RAM
- AM_RANGE(0x8800, 0x88ff) AM_WRITE(cclimber_bigsprite_videoram_w) AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
+ AM_RANGE(0x8800, 0x88ff) AM_RAM AM_BASE(&cclimber_bsvideoram) AM_SIZE(&cclimber_bsvideoram_size)
AM_RANGE(0x8c00, 0x8fff) AM_RAM AM_BASE(&toprollr_videoram3)
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_BASE(&videoram)
AM_RANGE(0x9400, 0x97ff) AM_RAM AM_BASE(&toprollr_videoram4)
@@ -306,7 +303,7 @@ static ADDRESS_MAP_START( trmem_map, ADDRESS_SPACE_PROGRAM, 8 )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( trport_map, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( toprollr_io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x09, 0x09) AM_WRITE(AY8910_write_port_0_w)
@@ -466,7 +463,7 @@ static const gfx_layout spritelayout =
};
-static const gfx_layout trcharlayout =
+static const gfx_layout toprollr_charlayout =
{
8,8,
RGN_FRAC(1,2),
@@ -477,7 +474,7 @@ static const gfx_layout trcharlayout =
8*8
};
-static const gfx_layout trspritelayout =
+static const gfx_layout toprollr_spritelayout =
{
16,16, /* 16*16 sprites */
RGN_FRAC(1,2), /* 128 sprites (64 in Crazy Climber) */
@@ -499,11 +496,11 @@ static GFXDECODE_START( yamato )
GFXDECODE_ENTRY( REGION_GFX1, 0x2000, spritelayout, 0, 16 ) /* sprite set #2 */
GFXDECODE_END
-static GFXDECODE_START( tr )
- GFXDECODE_ENTRY( REGION_GFX1, 0x0000, trcharlayout, 0, 40 )
- GFXDECODE_ENTRY( REGION_GFX2, 0x0000, trcharlayout, 0, 40 )
- GFXDECODE_ENTRY( REGION_GFX1, 0x0000, trspritelayout, 0, 40 )
- GFXDECODE_ENTRY( REGION_GFX3, 0x0000, trcharlayout, 0, 40 )
+static GFXDECODE_START( toprollr )
+ GFXDECODE_ENTRY( REGION_GFX1, 0x0000, toprollr_charlayout, 0, 40 )
+ GFXDECODE_ENTRY( REGION_GFX2, 0x0000, toprollr_charlayout, 0, 40 )
+ GFXDECODE_ENTRY( REGION_GFX1, 0x0000, toprollr_spritelayout, 0, 40 )
+ GFXDECODE_ENTRY( REGION_GFX3, 0x0000, toprollr_charlayout, 0, 40 )
GFXDECODE_END
static MACHINE_DRIVER_START( yamato )
@@ -548,8 +545,8 @@ static MACHINE_DRIVER_START( toprollr )
/* basic machine hardware */
MDRV_CPU_ADD(Z80, 3072000)
- MDRV_CPU_PROGRAM_MAP(trmem_map,0)
- MDRV_CPU_IO_MAP(trport_map,0)
+ MDRV_CPU_PROGRAM_MAP(toprollr_map,0)
+ MDRV_CPU_IO_MAP(toprollr_io_map,0)
MDRV_CPU_VBLANK_INT(nmi_line_pulse,1)
MDRV_SCREEN_REFRESH_RATE(60)
@@ -561,7 +558,7 @@ static MACHINE_DRIVER_START( toprollr )
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
MDRV_SCREEN_SIZE(32*8, 32*8)
MDRV_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MDRV_GFXDECODE(tr)
+ MDRV_GFXDECODE(toprollr)
MDRV_PALETTE_LENGTH(32*5)
MDRV_PALETTE_INIT(toprollr)
diff --git a/src/mame/includes/arabian.h b/src/mame/includes/arabian.h
index 154cbf8d623..0ef1eeb9bb6 100644
--- a/src/mame/includes/arabian.h
+++ b/src/mame/includes/arabian.h
@@ -8,6 +8,7 @@
/*----------- defined in video/arabian.c -----------*/
+extern UINT8 *arabian_blitter;
extern UINT8 arabian_video_control;
extern UINT8 arabian_flip_screen;
diff --git a/src/mame/includes/cclimber.h b/src/mame/includes/cclimber.h
index c1cca6e4285..4fe3ec710b0 100644
--- a/src/mame/includes/cclimber.h
+++ b/src/mame/includes/cclimber.h
@@ -14,12 +14,15 @@ extern size_t cclimber_bsvideoram_size;
extern UINT8 *cclimber_bigspriteram;
extern UINT8 *cclimber_column_scroll;
+extern UINT8 *swimmer_bgcolor;
+extern UINT8 *swimmer_sidepanel_enabled;
+extern UINT8 *swimmer_palettebank;
+
extern UINT8 *toprollr_videoram2;
extern UINT8 *toprollr_videoram3;
extern UINT8 *toprollr_videoram4;
WRITE8_HANDLER( cclimber_colorram_w );
-WRITE8_HANDLER( cclimber_bigsprite_videoram_w );
PALETTE_INIT( cclimber );
VIDEO_UPDATE( cclimber );
@@ -29,11 +32,8 @@ VIDEO_UPDATE( yamato );
VIDEO_START( toprollr );
VIDEO_UPDATE( toprollr );
-WRITE8_HANDLER( swimmer_bgcolor_w );
-WRITE8_HANDLER( swimmer_palettebank_w );
PALETTE_INIT( swimmer );
VIDEO_UPDATE( swimmer );
-WRITE8_HANDLER( swimmer_sidepanel_enable_w );
/*----------- defined in audio/cclimber.c -----------*/
diff --git a/src/mame/mamedriv.c b/src/mame/mamedriv.c
index 267e6be264e..65d18b81b76 100644
--- a/src/mame/mamedriv.c
+++ b/src/mame/mamedriv.c
@@ -340,8 +340,8 @@ const game_driver * const drivers[] =
DRIVER( ckongalc ) /* bootleg */
DRIVER( bigkong ) /* bootleg */
DRIVER( monkeyd ) /* bootleg */
+ DRIVER( rpatrol ) /* Orca, from a suspicious set */
DRIVER( rpatrolb ) /* bootleg */
- DRIVER( rpatrolo ) /* Orca, from a suspicious set */
DRIVER( silvland ) /* Falcon */
DRIVER( yamato ) /* (c) 1983 Sega */
DRIVER( yamato2 ) /* (c) 1983 Sega */
diff --git a/src/mame/video/arabian.c b/src/mame/video/arabian.c
index c0197fa672d..c304069100d 100644
--- a/src/mame/video/arabian.c
+++ b/src/mame/video/arabian.c
@@ -21,6 +21,7 @@ static UINT8 *converted_gfx;
/* Globals */
+UINT8 *arabian_blitter;
UINT8 arabian_video_control;
UINT8 arabian_flip_screen;
@@ -36,18 +37,11 @@ PALETTE_INIT( arabian )
{
int i;
- /* there are effectively 6 bits of color: 2 red, 2 green, 2 blue */
- for (i = 0; i < 64; i++)
- {
- palette_set_color_rgb(machine, i,
- ((i >> 5) & 1) * (153*192/255) + ((i >> 4) & 1) * (102*192/255) + ((i & 0x30) ? 63 : 0),
- ((i >> 3) & 1) * (156*192/255) + ((i >> 2) & 1) * (99*192/255) + ((i & 0x0c) ? 63 : 0),
- ((i >> 1) & 1) * 192 + ((i >> 0) & 1) * 63);
- }
-
/* there are 13 color table bits */
for (i = 0; i < (1 << 13); i++)
{
+ int r, g, b;
+
int ena = (i >> 12) & 1;
int enb = (i >> 11) & 1;
int abhf = (~i >> 10) & 1;
@@ -146,9 +140,19 @@ PALETTE_INIT( arabian )
int bhi = ab;
int bbase = (!abhf & az) ? 0 : ab;
- *colortable++ = (rhi << 5) | (rlo << 4) |
- (ghi << 3) | (glo << 2) |
- (bhi << 1) | bbase;
+ /* convert an RGB color -
+ there are effectively 6 bits of color: 2 red, 2 green, 2 blue */
+ r = ( rhi * (int)(((153.0 * 192) / 255) + 0.5)) +
+ ( rlo * (int)(((102.0 * 192) / 255) + 0.5)) +
+ ((rhi | rlo) ? 63 : 0);
+
+ g = ( ghi * (int)(((156.0 * 192) / 255) + 0.5)) +
+ ( glo * (int)((( 99.0 * 192) / 255) + 0.5)) +
+ ((ghi | glo) ? 63 : 0);
+
+ b = (bhi * 192) + (bbase * 63);
+
+ palette_set_color(machine, i, MAKE_RGB(r, g, b));
}
}
@@ -272,19 +276,18 @@ static void blit_area(UINT8 plane, UINT16 src, UINT8 x, UINT8 y, UINT8 sx, UINT8
WRITE8_HANDLER( arabian_blitter_w )
{
/* write the data */
- offset &= 7;
- spriteram[offset] = data;
+ arabian_blitter[offset] = data;
/* watch for a write to offset 6 -- that triggers the blit */
- if ((offset & 0x07) == 6)
+ if (offset == 6)
{
/* extract the data */
- int plane = spriteram[offset - 6];
- int src = spriteram[offset - 5] | (spriteram[offset - 4] << 8);
- int x = spriteram[offset - 2] << 2;
- int y = spriteram[offset - 3];
- int sx = spriteram[offset - 0];
- int sy = spriteram[offset - 1];
+ int plane = arabian_blitter[0];
+ int src = arabian_blitter[1] | (arabian_blitter[2] << 8);
+ int x = arabian_blitter[4] << 2;
+ int y = arabian_blitter[3];
+ int sx = arabian_blitter[6];
+ int sy = arabian_blitter[5];
/* blit it */
blit_area(plane, src, x, y, sx, sy);
@@ -304,7 +307,7 @@ WRITE8_HANDLER( arabian_videoram_w )
UINT8 *base;
UINT8 x, y;
- /* determine X/Y and mark the area dirty */
+ /* determine X/Y */
x = (offset >> 8) << 2;
y = offset & 0xff;
@@ -324,7 +327,7 @@ WRITE8_HANDLER( arabian_videoram_w )
*/
/* enable writes to AZ/AR */
- if (spriteram[0] & 0x08)
+ if (arabian_blitter[0] & 0x08)
{
base[0] = (base[0] & ~0x03) | ((data & 0x10) >> 3) | ((data & 0x01) >> 0);
base[1] = (base[1] & ~0x03) | ((data & 0x20) >> 4) | ((data & 0x02) >> 1);
@@ -333,7 +336,7 @@ WRITE8_HANDLER( arabian_videoram_w )
}
/* enable writes to AG/AB */
- if (spriteram[0] & 0x04)
+ if (arabian_blitter[0] & 0x04)
{
base[0] = (base[0] & ~0x0c) | ((data & 0x10) >> 1) | ((data & 0x01) << 2);
base[1] = (base[1] & ~0x0c) | ((data & 0x20) >> 2) | ((data & 0x02) << 1);
@@ -342,7 +345,7 @@ WRITE8_HANDLER( arabian_videoram_w )
}
/* enable writes to BZ/BR */
- if (spriteram[0] & 0x02)
+ if (arabian_blitter[0] & 0x02)
{
base[0] = (base[0] & ~0x30) | ((data & 0x10) << 1) | ((data & 0x01) << 4);
base[1] = (base[1] & ~0x30) | ((data & 0x20) << 0) | ((data & 0x02) << 3);
@@ -351,7 +354,7 @@ WRITE8_HANDLER( arabian_videoram_w )
}
/* enable writes to BG/BB */
- if (spriteram[0] & 0x01)
+ if (arabian_blitter[0] & 0x01)
{
base[0] = (base[0] & ~0xc0) | ((data & 0x10) << 3) | ((data & 0x01) << 6);
base[1] = (base[1] & ~0xc0) | ((data & 0x20) << 2) | ((data & 0x02) << 5);
@@ -370,7 +373,7 @@ WRITE8_HANDLER( arabian_videoram_w )
VIDEO_UPDATE( arabian )
{
- const pen_t *colortable = &machine->remapped_colortable[(arabian_video_control >> 3) << 8];
+ const pen_t *pens = &machine->pens[(arabian_video_control >> 3) << 8];
int y;
/* render the screen from the bitmap */
@@ -378,7 +381,7 @@ VIDEO_UPDATE( arabian )
{
/* non-flipped case */
if (!arabian_flip_screen)
- draw_scanline8(bitmap, 0, y, BITMAP_WIDTH, &main_bitmap[y * BITMAP_WIDTH], colortable, -1);
+ draw_scanline8(bitmap, 0, y, BITMAP_WIDTH, &main_bitmap[y * BITMAP_WIDTH], pens, -1);
/* flipped case */
else
@@ -387,7 +390,7 @@ VIDEO_UPDATE( arabian )
int x;
for (x = 0; x < BITMAP_WIDTH; x++)
scanline[BITMAP_WIDTH - 1 - x] = main_bitmap[y * BITMAP_WIDTH + x];
- draw_scanline8(bitmap, 0, BITMAP_HEIGHT - 1 - y, BITMAP_WIDTH, scanline, colortable, -1);
+ draw_scanline8(bitmap, 0, BITMAP_HEIGHT - 1 - y, BITMAP_WIDTH, scanline, pens, -1);
}
}
return 0;
diff --git a/src/mame/video/cclimber.c b/src/mame/video/cclimber.c
index e79e661c4fc..3914ae3f350 100644
--- a/src/mame/video/cclimber.c
+++ b/src/mame/video/cclimber.c
@@ -7,16 +7,16 @@
***************************************************************************/
#include "driver.h"
-#include "deprecat.h"
-#include "includes/cclimber.h"
+#include "video\resnet.h"
UINT8 *cclimber_bsvideoram;
size_t cclimber_bsvideoram_size;
UINT8 *cclimber_bigspriteram;
UINT8 *cclimber_column_scroll;
-static int palettebank;
-static int sidepanel_enabled;
+UINT8 *swimmer_bgcolor;
+UINT8 *swimmer_sidepanel_enabled;
+UINT8 *swimmer_palettebank;
/***************************************************************************
@@ -38,52 +38,47 @@ static int sidepanel_enabled;
***************************************************************************/
PALETTE_INIT( cclimber )
{
+ static const int resistances_rg[3] = { 1000, 470, 220 };
+ static const int resistances_b [2] = { 470, 220 };
+ double rweights[3], gweights[3], bweights[2];
int i;
- #define TOTAL_COLORS(gfxn) (machine->gfx[gfxn]->total_colors * machine->gfx[gfxn]->color_granularity)
- #define COLOR(gfxn,offs) (colortable[machine->drv->gfxdecodeinfo[gfxn].color_codes_start + (offs)])
+ /* compute the color output resistor weights */
+ compute_resistor_weights(0, 255, -1.0,
+ 3, &resistances_rg[0], rweights, 0, 0,
+ 3, &resistances_rg[0], gweights, 0, 0,
+ 2, &resistances_b[0], bweights, 0, 0);
- for (i = 0;i < machine->drv->total_colors;i++)
+ for (i = 0;i < machine->drv->total_colors; i++)
{
- int bit0,bit1,bit2,r,g,b;
+ UINT8 data;
+ int bit0, bit1, bit2;
+ int r, g, b;
+ if (i & 0x07)
+ data = color_prom[i];
+ else
+ /* River Patrol shows that background is pen 0 */
+ data = color_prom[0];
/* red component */
- bit0 = (*color_prom >> 0) & 0x01;
- bit1 = (*color_prom >> 1) & 0x01;
- bit2 = (*color_prom >> 2) & 0x01;
- r = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- /* green component */
- bit0 = (*color_prom >> 3) & 0x01;
- bit1 = (*color_prom >> 4) & 0x01;
- bit2 = (*color_prom >> 5) & 0x01;
- g = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
- /* blue component */
- bit0 = 0;
- bit1 = (*color_prom >> 6) & 0x01;
- bit2 = (*color_prom >> 7) & 0x01;
- b = 0x21 * bit0 + 0x47 * bit1 + 0x97 * bit2;
-
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
- color_prom++;
- }
+ bit0 = (data >> 0) & 0x01;
+ bit1 = (data >> 1) & 0x01;
+ bit2 = (data >> 2) & 0x01;
+ r = combine_3_weights(rweights, bit0, bit1, bit2);
+ /* green component */
+ bit0 = (data >> 3) & 0x01;
+ bit1 = (data >> 4) & 0x01;
+ bit2 = (data >> 5) & 0x01;
+ g = combine_3_weights(gweights, bit0, bit1, bit2);
- /* character and sprite lookup table */
- /* they use colors 0-63 */
- for (i = 0;i < TOTAL_COLORS(0);i++)
- {
- /* pen 0 always uses color 0 (background in River Patrol and Silver Land) */
- if (i % 4 == 0) COLOR(0,i) = 0;
- else COLOR(0,i) = i;
- }
+ /* blue component */
+ bit0 = (data >> 6) & 0x01;
+ bit1 = (data >> 7) & 0x01;
+ b = combine_2_weights(bweights, bit0, bit1);
- /* big sprite lookup table */
- /* it uses colors 64-95 */
- for (i = 0;i < TOTAL_COLORS(2);i++)
- {
- if (i % 4 == 0) COLOR(2,i) = 0;
- else COLOR(2,i) = i + 64;
+ palette_set_color(machine, i, MAKE_RGB(r, g, b));
}
}
@@ -124,91 +119,87 @@ PALETTE_INIT( cclimber )
***************************************************************************/
-#define BGPEN (256+32)
-#define SIDEPEN (256+32+1)
-
PALETTE_INIT( swimmer )
{
int i;
- #define TOTAL_COLORS(gfxn) (machine->gfx[gfxn]->total_colors * machine->gfx[gfxn]->color_granularity)
- #define COLOR(gfxn,offs) (colortable[machine->drv->gfxdecodeinfo[gfxn].color_codes_start + (offs)])
-
- for (i = 0;i < 256;i++)
+ for (i = 0; i < 0x200; i++)
{
- int bit0,bit1,bit2,r,g,b;
+ rgb_t color;
+ /* non-backgrond pens */
+ if (i & 0x07)
+ {
+ int bit0, bit1, bit2;
+ int r, g, b;
- /* red component */
- bit0 = (color_prom[i] >> 0) & 0x01;
- bit1 = (color_prom[i] >> 1) & 0x01;
- bit2 = (color_prom[i] >> 2) & 0x01;
- r = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
- /* green component */
- bit0 = (color_prom[i] >> 3) & 0x01;
- bit1 = (color_prom[i+256] >> 0) & 0x01;
- bit2 = (color_prom[i+256] >> 1) & 0x01;
- g = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
- /* blue component */
- bit0 = 0;
- bit1 = (color_prom[i+256] >> 2) & 0x01;
- bit2 = (color_prom[i+256] >> 3) & 0x01;
- b = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
+ /* red component */
+ bit0 = (color_prom[(i & 0xff) + 0x000] >> 0) & 0x01;
+ bit1 = (color_prom[(i & 0xff) + 0x000] >> 1) & 0x01;
+ bit2 = (color_prom[(i & 0xff) + 0x000] >> 2) & 0x01;
+ r = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
- palette_set_color(machine,i,MAKE_RGB(r,g,b));
+ /* green component */
+ bit0 = (color_prom[(i & 0xff) + 0x000] >> 3) & 0x01;
+ bit1 = (color_prom[(i & 0xff) + 0x100] >> 0) & 0x01;
+ bit2 = (color_prom[(i & 0xff) + 0x100] >> 1) & 0x01;
+ g = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
- /* side panel */
- if (i % 8)
- {
- COLOR(0,i) = i;
- COLOR(0,i+256) = i;
+ /* blue component */
+ bit0 = 0;
+ bit1 = (color_prom[(i & 0xff) + 0x100] >> 2) & 0x01;
+ bit2 = (color_prom[(i & 0xff) + 0x100] >> 3) & 0x01;
+ b = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
+
+ color = MAKE_RGB(r,g,b);
}
+
+ /* backgrond pen */
else
{
- /* background */
- COLOR(0,i) = BGPEN;
- COLOR(0,i+256) = SIDEPEN;
+ if (i & 0x100)
+ /* side panel */
+#if 0
+ // values calculated from the resistors don't seem to match the real board
+ color = MAKE_RGB(0x24, 0x5d, 0x4e);
+#endif
+ color = MAKE_RGB(0x20, 0x98, 0x79);
+ else
+ /* 'water' background -- will be modified dynamically later */
+ color = RGB_BLACK;
}
+
+ palette_set_color(machine, i, color);
}
- color_prom += 2 * 256;
+ color_prom += 0x200;
/* big sprite */
- for (i = 0;i < 32;i++)
+ for (i = 0; i < 0x20; i++)
{
- int bit0,bit1,bit2,r,g,b;
-
+ int bit0, bit1, bit2;
+ int r, g, b;
/* red component */
bit0 = (color_prom[i] >> 0) & 0x01;
bit1 = (color_prom[i] >> 1) & 0x01;
bit2 = (color_prom[i] >> 2) & 0x01;
r = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
+
/* green component */
bit0 = (color_prom[i] >> 3) & 0x01;
bit1 = (color_prom[i] >> 4) & 0x01;
bit2 = (color_prom[i] >> 5) & 0x01;
g = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
+
/* blue component */
bit0 = 0;
bit1 = (color_prom[i] >> 6) & 0x01;
bit2 = (color_prom[i] >> 7) & 0x01;
b = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
- palette_set_color(machine,i+256,MAKE_RGB(r,g,b));
-
- if (i % 8 == 0) COLOR(2,i) = BGPEN; /* enforce transparency */
- else COLOR(2,i) = i+256;
+ palette_set_color(machine, i + 0x200, MAKE_RGB(r, g, b));
}
-
- /* background */
- palette_set_color(machine,BGPEN,MAKE_RGB(0,0,0));
- /* side panel background color */
-#if 0
- // values calculated from the resistors don't seem to match the real board
- palette_set_color(machine,SIDEPEN,MAKE_RGB(0x24,0x5d,0x4e));
-#endif
- palette_set_color(machine,SIDEPEN,MAKE_RGB(0x20,0x98,0x79));
}
@@ -229,31 +220,37 @@ PALETTE_INIT( swimmer )
bit 0 -- 1 kohm resistor -- BLUE
***************************************************************************/
-WRITE8_HANDLER( swimmer_bgcolor_w )
-{
- int bit0,bit1,bit2;
- int r,g,b;
+static void swimmer_set_background_pen(running_machine *machine)
+{
+ int i;
+ pen_t color;
+ int bit0, bit1, bit2;
+ int r, g, b;
/* red component */
bit0 = 0;
- bit1 = (data >> 6) & 0x01;
- bit2 = (data >> 7) & 0x01;
+ bit1 = (*swimmer_bgcolor >> 6) & 0x01;
+ bit2 = (*swimmer_bgcolor >> 7) & 0x01;
r = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
/* green component */
- bit0 = (data >> 3) & 0x01;
- bit1 = (data >> 4) & 0x01;
- bit2 = (data >> 5) & 0x01;
+ bit0 = (*swimmer_bgcolor >> 3) & 0x01;
+ bit1 = (*swimmer_bgcolor >> 4) & 0x01;
+ bit2 = (*swimmer_bgcolor >> 5) & 0x01;
g = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
/* blue component */
- bit0 = (data >> 0) & 0x01;
- bit1 = (data >> 1) & 0x01;
- bit2 = (data >> 2) & 0x01;
+ bit0 = (*swimmer_bgcolor >> 0) & 0x01;
+ bit1 = (*swimmer_bgcolor >> 1) & 0x01;
+ bit2 = (*swimmer_bgcolor >> 2) & 0x01;
b = 0x20 * bit0 + 0x40 * bit1 + 0x80 * bit2;
- palette_set_color(Machine,BGPEN,MAKE_RGB(r,g,b));
+ color = MAKE_RGB(r, g, b);
+
+ /* set pen 0 if each color code */
+ for (i = 0; i < 0x100; i += 8)
+ palette_set_color(machine, i, color);
}
@@ -263,31 +260,8 @@ WRITE8_HANDLER( cclimber_colorram_w )
/* bit 5 of the address is not used for color memory. There is just */
/* 512 bytes of memory; every two consecutive rows share the same memory */
/* region. */
- offset &= 0xffdf;
-
colorram[offset] = data;
- colorram[offset + 0x20] = data;
-}
-
-
-
-WRITE8_HANDLER( cclimber_bigsprite_videoram_w )
-{
- cclimber_bsvideoram[offset] = data;
-}
-
-
-
-WRITE8_HANDLER( swimmer_palettebank_w )
-{
- palettebank = data & 1;
-}
-
-
-
-WRITE8_HANDLER( swimmer_sidepanel_enable_w )
-{
- sidepanel_enabled = data & 1;
+ colorram[offset ^ 0x20] = data;
}
@@ -553,6 +527,8 @@ VIDEO_UPDATE( swimmer )
{
int offs;
+ swimmer_set_background_pen(machine);
+
for (offs = videoram_size - 1;offs >= 0;offs--)
{
int sx,sy,flipx,flipy,color;
@@ -564,8 +540,8 @@ VIDEO_UPDATE( swimmer )
/* vertical flipping flips two adjacent characters */
if (flipy) sy ^= 1;
- color = (colorram[offs] & 0x0f) + 0x10 * palettebank;
- if (sx >= 24 && sidepanel_enabled)
+ color = (colorram[offs] & 0x0f) + 0x10 * (*swimmer_palettebank & 0x01);
+ if (sx >= 24 && (*swimmer_sidepanel_enabled & 0x01))
{
color += 32;
}
@@ -639,7 +615,7 @@ VIDEO_UPDATE( swimmer )
drawgfx(bitmap,machine->gfx[1],
(spriteram[offs] & 0x3f) | (spriteram[offs + 1] & 0x10) << 2,
- (spriteram[offs + 1] & 0x0f) + 0x10 * palettebank,
+ (spriteram[offs + 1] & 0x0f) + 0x10 * (*swimmer_palettebank & 0x01),
flipx,flipy,
sx,sy,
cliprect,TRANSPARENCY_PEN,0);