summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Zsolt Vasvari <zsoltvas@mamedev.org>2008-02-21 11:43:45 +0000
committer Zsolt Vasvari <zsoltvas@mamedev.org>2008-02-21 11:43:45 +0000
commit0ab1b992b7c3018d27783c3a3e4ad6ec53f6d341 (patch)
treebed6138ce1ac1319ebe625ea040fd4c72f19f668
parent2e595362d8f79e3182e5846434459f2301b152d8 (diff)
- Pen lookup removal
- With my previous update, some of the games in cave.c asserted out -- this fixes it - seta.c employs the same pattern as cave.c
-rw-r--r--src/mame/drivers/cave.c26
-rw-r--r--src/mame/includes/cave.h1
-rw-r--r--src/mame/video/beezer.c6
-rw-r--r--src/mame/video/bionicc.c2
-rw-r--r--src/mame/video/blktiger.c2
-rw-r--r--src/mame/video/blmbycar.c3
-rw-r--r--src/mame/video/blockout.c2
-rw-r--r--src/mame/video/bottom9.c2
-rw-r--r--src/mame/video/bublbobl.c2
-rw-r--r--src/mame/video/buggychl.c18
-rw-r--r--src/mame/video/carpolo.c42
-rw-r--r--src/mame/video/cave.c41
-rw-r--r--src/mame/video/seta.c31
13 files changed, 81 insertions, 97 deletions
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 889d42c805c..a5f2a126424 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -518,7 +518,7 @@ static ADDRESS_MAP_START( dfeveron_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x408000, 0x40ffff) AM_WRITE(MWA16_RAM ) // Sprites?
AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0
AM_RANGE(0x600000, 0x607fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1
- AM_RANGE(0x708000, 0x708fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0x708000, 0x708fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0x710c00, 0x710fff) AM_WRITE(MWA16_RAM ) // ?
AM_RANGE(0x800000, 0x80007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs
AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control
@@ -562,7 +562,7 @@ static ADDRESS_MAP_START( ddonpach_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control
AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control
AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control
- AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM
ADDRESS_MAP_END
@@ -627,7 +627,7 @@ static ADDRESS_MAP_START( donpachi_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x700000, 0x700005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control
AM_RANGE(0x800000, 0x800005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control
AM_RANGE(0x900000, 0x90007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs
- AM_RANGE(0xa08000, 0xa08fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0xa08000, 0xa08fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0xb00000, 0xb00003) AM_WRITE(OKIM6295_data_0_lsb_w ) // M6295
AM_RANGE(0xb00010, 0xb00013) AM_WRITE(OKIM6295_data_1_lsb_w ) //
AM_RANGE(0xb00020, 0xb0002f) AM_WRITE(NMK112_okibank_lsb_w ) //
@@ -670,7 +670,7 @@ static ADDRESS_MAP_START( esprade_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control
AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control
AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control
- AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM
ADDRESS_MAP_END
@@ -717,7 +717,7 @@ static ADDRESS_MAP_START( gaia_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control
AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control
AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control
- AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0xd00010, 0xd00011) AM_WRITE(gaia_coin_lsb_w ) // Coin counter only
AM_RANGE(0xd00014, 0xd00015) AM_WRITE(watchdog_reset16_w ) // Watchdog?
ADDRESS_MAP_END
@@ -758,7 +758,7 @@ static ADDRESS_MAP_START( guwange_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x900000, 0x900005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control
AM_RANGE(0xa00000, 0xa00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control
AM_RANGE(0xb00000, 0xb00005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_2 ) // Layer 2 Control
- AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0xd00010, 0xd00011) AM_WRITE(cave_eeprom_lsb_w ) // EEPROM
// AM_RANGE(0xd00012, 0xd00013) AM_WRITE(MWA16_NOP ) // ?
// AM_RANGE(0xd00014, 0xd00015) AM_WRITE(MWA16_NOP ) // ? $800068 in dfeveron ? probably Watchdog
@@ -790,7 +790,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( hotdogst_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x0fffff) AM_WRITE(MWA16_ROM ) // ROM
AM_RANGE(0x300000, 0x30ffff) AM_WRITE(MWA16_RAM ) // RAM
- AM_RANGE(0x408000, 0x408fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0x408000, 0x408fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0x880000, 0x887fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0
AM_RANGE(0x900000, 0x907fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1
AM_RANGE(0x980000, 0x987fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2
@@ -897,7 +897,7 @@ static ADDRESS_MAP_START( korokoro_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x140000, 0x140005) AM_WRITE( MWA16_RAM ) AM_BASE( &cave_vctrl_0 ) // Layer 0 Control
AM_RANGE(0x180000, 0x187fff) AM_WRITE( MWA16_RAM ) AM_BASE( &spriteram16 ) AM_SIZE(&spriteram_size ) // Sprites
AM_RANGE(0x1c0000, 0x1c007f) AM_WRITE( MWA16_RAM ) AM_BASE( &cave_videoregs ) // Video Regs
- AM_RANGE(0x200000, 0x207fff) AM_WRITE( MWA16_RAM ) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0x200000, 0x207fff) AM_WRITE( MWA16_RAM ) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0x240000, 0x240003) AM_WRITE( cave_sound_w ) // YMZ280
AM_RANGE(0x280008, 0x280009) AM_WRITE( korokoro_leds_w )
AM_RANGE(0x28000a, 0x28000b) AM_WRITE( korokoro_eeprom_msb_w ) // EEPROM
@@ -940,7 +940,7 @@ static ADDRESS_MAP_START( mazinger_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x600000, 0x600005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control
AM_RANGE(0x700000, 0x700005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control
AM_RANGE(0x900000, 0x900001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM
- AM_RANGE(0xc08000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0xc08000, 0xc0ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0xd00000, 0xd7ffff) AM_WRITE(MWA16_ROM ) // ROM
ADDRESS_MAP_END
@@ -977,7 +977,7 @@ static ADDRESS_MAP_START( metmqstr_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM
AM_RANGE(0x100000, 0x17ffff) AM_WRITE(MWA16_ROM ) // ROM
AM_RANGE(0x200000, 0x27ffff) AM_WRITE(MWA16_ROM ) // ROM
- AM_RANGE(0x408000, 0x408fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0x408000, 0x408fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0x880000, 0x887fff) AM_WRITE(cave_vram_2_w) AM_BASE(&cave_vram_2 ) // Layer 2
AM_RANGE(0x888000, 0x88ffff) AM_WRITE(MWA16_RAM ) //
AM_RANGE(0x900000, 0x907fff) AM_WRITE(cave_vram_1_w) AM_BASE(&cave_vram_1 ) // Layer 1
@@ -1066,7 +1066,7 @@ static ADDRESS_MAP_START( pwrinst2_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xc00000, 0xc00005) AM_WRITE(pwrinst2_vctrl_1_w) AM_BASE(&cave_vctrl_1 ) // Layer 1 Control
AM_RANGE(0xc80000, 0xc80005) AM_WRITE(pwrinst2_vctrl_3_w) AM_BASE(&cave_vctrl_3 ) // Layer 3 Control
AM_RANGE(0xe00000, 0xe00001) AM_WRITE(sound_cmd_w ) // To Sound CPU
- AM_RANGE(0xf00000, 0xf04fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0xf00000, 0xf04fff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
ADDRESS_MAP_END
@@ -1126,7 +1126,7 @@ static ADDRESS_MAP_START( sailormn_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x110000, 0x110001) AM_WRITE(MWA16_RAM ) // (agallet)
AM_RANGE(0x200000, 0x3fffff) AM_WRITE(MWA16_ROM ) // ROM
AM_RANGE(0x400000, 0x407fff) AM_WRITE(MWA16_RAM ) // (agallet)
- AM_RANGE(0x408000, 0x40bfff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0x408000, 0x40bfff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0x40c000, 0x40ffff) AM_WRITE(MWA16_RAM ) // (agallet)
AM_RANGE(0x410000, 0x410001) AM_WRITE(MWA16_RAM ) // (agallet)
AM_RANGE(0x500000, 0x507fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites
@@ -1172,7 +1172,7 @@ static ADDRESS_MAP_START( uopoko_writemem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x500000, 0x507fff) AM_WRITE(cave_vram_0_w) AM_BASE(&cave_vram_0 ) // Layer 0
AM_RANGE(0x600000, 0x60007f) AM_WRITE(MWA16_RAM) AM_BASE(&cave_videoregs ) // Video Regs
AM_RANGE(0x700000, 0x700005) AM_WRITE(MWA16_RAM) AM_BASE(&cave_vctrl_0 ) // Layer 0 Control
- AM_RANGE(0x800000, 0x80ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0x800000, 0x80ffff) AM_WRITE(MWA16_RAM) AM_BASE(&paletteram16) AM_SIZE(&cave_paletteram_size) // Palette
AM_RANGE(0xa00000, 0xa00001) AM_WRITE(cave_eeprom_msb_w ) // EEPROM
ADDRESS_MAP_END
diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h
index 910fcd58e41..514b0b0b183 100644
--- a/src/mame/includes/cave.h
+++ b/src/mame/includes/cave.h
@@ -15,6 +15,7 @@ extern UINT16 *cave_vram_0, *cave_vctrl_0;
extern UINT16 *cave_vram_1, *cave_vctrl_1;
extern UINT16 *cave_vram_2, *cave_vctrl_2;
extern UINT16 *cave_vram_3, *cave_vctrl_3;
+extern size_t cave_paletteram_size;
WRITE16_HANDLER( cave_vram_0_w );
WRITE16_HANDLER( cave_vram_1_w );
diff --git a/src/mame/video/beezer.c b/src/mame/video/beezer.c
index efaf3d5aafe..6768228080e 100644
--- a/src/mame/video/beezer.c
+++ b/src/mame/video/beezer.c
@@ -20,13 +20,11 @@ VIDEO_UPDATE( beezer )
int x,y;
for (y = machine->screen[0].visarea.min_y; y <= machine->screen[0].visarea.max_y; y+=2)
- {
for (x = machine->screen[0].visarea.min_x; x <= machine->screen[0].visarea.max_x; x++)
{
- *BITMAP_ADDR16(bitmap, y+1, x) = machine->pens[videoram[0x80*y+x] & 0x0f];
- *BITMAP_ADDR16(bitmap, y, x) = machine->pens[(videoram[0x80*y+x] >> 4)& 0x0f];
+ *BITMAP_ADDR16(bitmap, y+1, x) = videoram[0x80*y+x] & 0x0f;
+ *BITMAP_ADDR16(bitmap, y, x) = videoram[0x80*y+x] >> 4;
}
- }
return 0;
}
diff --git a/src/mame/video/bionicc.c b/src/mame/video/bionicc.c
index 79319e552a6..20c7b19b15e 100644
--- a/src/mame/video/bionicc.c
+++ b/src/mame/video/bionicc.c
@@ -219,7 +219,7 @@ static void draw_sprites(running_machine *machine, mame_bitmap *bitmap, const re
VIDEO_UPDATE( bionicc )
{
- fillbitmap(bitmap,machine->pens[0],cliprect);
+ fillbitmap(bitmap,0,cliprect);
tilemap_draw(bitmap,cliprect,fg_tilemap,1|TILEMAP_DRAW_LAYER1,0); /* nothing in FRONT */
tilemap_draw(bitmap,cliprect,bg_tilemap,0,0);
tilemap_draw(bitmap,cliprect,fg_tilemap,0|TILEMAP_DRAW_LAYER1,0);
diff --git a/src/mame/video/blktiger.c b/src/mame/video/blktiger.c
index 9d0b5b003c8..150f3154a20 100644
--- a/src/mame/video/blktiger.c
+++ b/src/mame/video/blktiger.c
@@ -227,7 +227,7 @@ static void draw_sprites(running_machine *machine, mame_bitmap *bitmap, const re
VIDEO_UPDATE( blktiger )
{
- fillbitmap(bitmap,machine->pens[1023],cliprect);
+ fillbitmap(bitmap,1023,cliprect);
if (bgon)
tilemap_draw(bitmap,cliprect,screen_layout ? bg_tilemap8x4 : bg_tilemap4x8,TILEMAP_DRAW_LAYER1,0);
diff --git a/src/mame/video/blmbycar.c b/src/mame/video/blmbycar.c
index a97e55f0b6a..747d74eeaa5 100644
--- a/src/mame/video/blmbycar.c
+++ b/src/mame/video/blmbycar.c
@@ -248,7 +248,8 @@ if (input_code_pressed(KEYCODE_Z))
if (layers_ctrl&1)
for (i = 0; i <= 1; i++)
tilemap_draw(bitmap, cliprect, tilemap_0, i, i);
- else fillbitmap(bitmap,machine->pens[0],cliprect);
+ else
+ fillbitmap(bitmap,0,cliprect);
if (layers_ctrl&2)
for (i = 0; i <= 1; i++)
diff --git a/src/mame/video/blockout.c b/src/mame/video/blockout.c
index 6dd35627e3c..8ad71826823 100644
--- a/src/mame/video/blockout.c
+++ b/src/mame/video/blockout.c
@@ -113,7 +113,7 @@ VIDEO_UPDATE( blockout )
{
int x,y;
- pen_t color = machine->pens[512];
+ pen_t color = 512;
for (y = 0;y < 256;y++)
{
diff --git a/src/mame/video/bottom9.c b/src/mame/video/bottom9.c
index 5e4e4ece206..335b5ffdeb0 100644
--- a/src/mame/video/bottom9.c
+++ b/src/mame/video/bottom9.c
@@ -81,7 +81,7 @@ VIDEO_UPDATE( bottom9 )
K052109_tilemap_update();
/* note: FIX layer is not used */
- fillbitmap(bitmap,machine->pens[layer_colorbase[1]],cliprect);
+ fillbitmap(bitmap,layer_colorbase[1],cliprect);
// if (bottom9_video_enable)
{
K051960_sprites_draw(bitmap,cliprect,1,1);
diff --git a/src/mame/video/bublbobl.c b/src/mame/video/bublbobl.c
index 707bcc987cd..84c886e53ec 100644
--- a/src/mame/video/bublbobl.c
+++ b/src/mame/video/bublbobl.c
@@ -28,7 +28,7 @@ VIDEO_UPDATE( bublbobl )
/* the background character columns is stored in the area dd00-dd3f */
/* This clears & redraws the entire screen each pass */
- fillbitmap(bitmap,machine->pens[255],cliprect);
+ fillbitmap(bitmap,255,cliprect);
if (!bublbobl_video_enable) return 0;
diff --git a/src/mame/video/buggychl.c b/src/mame/video/buggychl.c
index a12bdbd3393..20554726df2 100644
--- a/src/mame/video/buggychl.c
+++ b/src/mame/video/buggychl.c
@@ -89,17 +89,13 @@ WRITE8_HANDLER( buggychl_bg_scrollx_w )
-static void draw_sky(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect)
+static void draw_sky(mame_bitmap *bitmap, const rectangle *cliprect)
{
int x,y;
for (y = 0;y < 256;y++)
- {
for (x = 0;x < 256;x++)
- {
- *BITMAP_ADDR16(bitmap, y, x) = machine->pens[128 + x/2];
- }
- }
+ *BITMAP_ADDR16(bitmap, y, x) = 128 + x/2;
}
@@ -136,7 +132,7 @@ static void draw_bg(running_machine *machine, mame_bitmap *bitmap, const rectang
for (offs = 0;offs < 256;offs++)
scroll[offs] = -buggychl_scrollh[offs];
- copyscrollbitmap_trans(bitmap,tmpbitmap2,256,scroll,0,0,cliprect,machine->pens[32]);
+ copyscrollbitmap_trans(bitmap,tmpbitmap2,256,scroll,0,0,cliprect,32);
}
@@ -222,7 +218,7 @@ static void draw_sprites(running_machine *machine, mame_bitmap *bitmap, const re
{
int dx = flip_screen_x ? (255 - sx - px) : (sx + px);
if ((dx & ~0xff) == 0)
- *BITMAP_ADDR16(bitmap, dy, dx) = machine->pens[sprite_color_base+col];
+ *BITMAP_ADDR16(bitmap, dy, dx) = sprite_color_base + col;
}
/* the following line is almost certainly wrong */
@@ -244,16 +240,14 @@ VIDEO_UPDATE( buggychl )
if (sky_on)
- draw_sky(machine, bitmap, cliprect);
+ draw_sky(bitmap, cliprect);
else
- fillbitmap(bitmap,machine->pens[0],cliprect);
+ fillbitmap(bitmap,0,cliprect);
/* decode modified characters */
for (code = 0;code < 256;code++)
- {
if (dirtychar[code])
decodechar(machine->gfx[0],code,buggychl_character_ram);
- }
if (bg_on)
draw_bg(machine, bitmap, cliprect);
diff --git a/src/mame/video/carpolo.c b/src/mame/video/carpolo.c
index f67f75e1323..612349851ec 100644
--- a/src/mame/video/carpolo.c
+++ b/src/mame/video/carpolo.c
@@ -237,10 +237,10 @@ VIDEO_UPDATE( carpolo )
/* draw the playfield elements in the correct priority order */
/* score area - position determined by bit 4 of the vertical timing PROM */
- plot_box(bitmap,0,0,RIGHT_BORDER+1,TOP_BORDER,machine->pens[BACKGROUND_PEN]);
+ plot_box(bitmap,0,0,RIGHT_BORDER+1,TOP_BORDER,BACKGROUND_PEN);
/* field */
- plot_box(bitmap,0,TOP_BORDER,RIGHT_BORDER+1,BOTTOM_BORDER-TOP_BORDER+1,machine->pens[FIELD_PEN]);
+ plot_box(bitmap,0,TOP_BORDER,RIGHT_BORDER+1,BOTTOM_BORDER-TOP_BORDER+1,FIELD_PEN);
/* car 1 */
draw_sprite(machine, bitmap, cliprect,
@@ -248,10 +248,10 @@ VIDEO_UPDATE( carpolo )
0, carpolo_spriteram[0x0c] & 0x0f, CAR1_COLOR);
/* border - position determined by bit 4 and 7 of the vertical timing PROM */
- plot_box(bitmap,0,TOP_BORDER, RIGHT_BORDER+1,1,machine->pens[LINE_PEN]);
- plot_box(bitmap,0,BOTTOM_BORDER,RIGHT_BORDER+1,1,machine->pens[LINE_PEN]);
- plot_box(bitmap,LEFT_BORDER,TOP_BORDER, 1,BOTTOM_BORDER-TOP_BORDER+1,machine->pens[LINE_PEN]);
- plot_box(bitmap,RIGHT_BORDER,TOP_BORDER,1,BOTTOM_BORDER-TOP_BORDER+1,machine->pens[LINE_PEN]);
+ plot_box(bitmap,0,TOP_BORDER, RIGHT_BORDER+1,1,LINE_PEN);
+ plot_box(bitmap,0,BOTTOM_BORDER,RIGHT_BORDER+1,1,LINE_PEN);
+ plot_box(bitmap,LEFT_BORDER,TOP_BORDER, 1,BOTTOM_BORDER-TOP_BORDER+1,LINE_PEN);
+ plot_box(bitmap,RIGHT_BORDER,TOP_BORDER,1,BOTTOM_BORDER-TOP_BORDER+1,LINE_PEN);
/* car 4 */
draw_sprite(machine, bitmap, cliprect,
@@ -371,8 +371,8 @@ static int check_sprite_sprite_collision(running_machine *machine,
normalize_coordinates(&x1, &y1, &x2, &y2);
- fillbitmap(sprite_sprite_collision_bitmap1, machine->pens[0], 0);
- fillbitmap(sprite_sprite_collision_bitmap2, machine->pens[0], 0);
+ fillbitmap(sprite_sprite_collision_bitmap1, 0, 0);
+ fillbitmap(sprite_sprite_collision_bitmap2, 0, 0);
drawgfx(sprite_sprite_collision_bitmap1,machine->gfx[0],
code1,0,
@@ -388,8 +388,8 @@ static int check_sprite_sprite_collision(running_machine *machine,
for (x = x1; x < x1 + SPRITE_WIDTH; x++)
for (y = y1; y < y1 + SPRITE_HEIGHT; y++)
- if ((*BITMAP_ADDR16(sprite_sprite_collision_bitmap1, y, x) == machine->pens[1]) &&
- (*BITMAP_ADDR16(sprite_sprite_collision_bitmap2, y, x) == machine->pens[1]))
+ if ((*BITMAP_ADDR16(sprite_sprite_collision_bitmap1, y, x) == 1) &&
+ (*BITMAP_ADDR16(sprite_sprite_collision_bitmap2, y, x) == 1))
{
*col_x = (x1 + x) & 0x0f;
*col_y = (y1 + y) & 0x0f;
@@ -426,8 +426,8 @@ static int check_sprite_left_goal_collision(running_machine *machine, int x1, in
normalize_coordinates(&x1, &y1, &x2, &y2);
- fillbitmap(sprite_goal_collision_bitmap1, machine->pens[0], 0);
- fillbitmap(sprite_goal_collision_bitmap2, machine->pens[0], 0);
+ fillbitmap(sprite_goal_collision_bitmap1, 0, 0);
+ fillbitmap(sprite_goal_collision_bitmap2, 0, 0);
drawgfx(sprite_goal_collision_bitmap1,machine->gfx[0],
code1,0,
@@ -444,17 +444,17 @@ static int check_sprite_left_goal_collision(running_machine *machine, int x1, in
for (x = x1; x < x1 + SPRITE_WIDTH; x++)
for (y = y1; y < y1 + SPRITE_HEIGHT; y++)
- if ((*BITMAP_ADDR16(sprite_goal_collision_bitmap1, y, x) == machine->pens[1]))
+ if ((*BITMAP_ADDR16(sprite_goal_collision_bitmap1, y, x) == 1))
{
pen_t pix = *BITMAP_ADDR16(sprite_goal_collision_bitmap2, y, x);
- if (pix == machine->pens[LEFT_GOAL_PEN])
+ if (pix == LEFT_GOAL_PEN)
{
collided = 1;
break;
}
- if (!goalpost_only && (pix == machine->pens[LEFT_SCORE_PEN]))
+ if (!goalpost_only && (pix == LEFT_SCORE_PEN))
{
collided = 2;
break;
@@ -485,8 +485,8 @@ static int check_sprite_right_goal_collision(running_machine *machine, int x1, i
normalize_coordinates(&x1, &y1, &x2, &y2);
- fillbitmap(sprite_goal_collision_bitmap1, machine->pens[0], 0);
- fillbitmap(sprite_goal_collision_bitmap2, machine->pens[0], 0);
+ fillbitmap(sprite_goal_collision_bitmap1, 0, 0);
+ fillbitmap(sprite_goal_collision_bitmap2, 0, 0);
drawgfx(sprite_goal_collision_bitmap1,machine->gfx[0],
code1,0,
@@ -503,17 +503,17 @@ static int check_sprite_right_goal_collision(running_machine *machine, int x1, i
for (x = x1; x < x1 + SPRITE_WIDTH; x++)
for (y = y1; y < y1 + SPRITE_HEIGHT; y++)
- if ((*BITMAP_ADDR16(sprite_goal_collision_bitmap1, y, x) == machine->pens[1]))
+ if ((*BITMAP_ADDR16(sprite_goal_collision_bitmap1, y, x) == 1))
{
pen_t pix = *BITMAP_ADDR16(sprite_goal_collision_bitmap2, y, x);
- if (pix == machine->pens[RIGHT_GOAL_PEN])
+ if (pix == RIGHT_GOAL_PEN)
{
collided = 1;
break;
}
- if (!goalpost_only && (pix == machine->pens[RIGHT_SCORE_PEN]))
+ if (!goalpost_only && (pix == RIGHT_SCORE_PEN))
{
collided = 2;
break;
@@ -543,7 +543,7 @@ static int check_sprite_border_collision(running_machine *machine, UINT8 x1, UIN
for (x = 0; x < SPRITE_WIDTH; x++)
for (y = 0; y < SPRITE_HEIGHT; y++)
- if ((*BITMAP_ADDR16(sprite_border_collision_bitmap, y, x) == machine->pens[1]))
+ if ((*BITMAP_ADDR16(sprite_border_collision_bitmap, y, x) == 1))
{
if (((UINT8)(x1 + x) == LEFT_BORDER) ||
((UINT8)(x1 + x) == RIGHT_BORDER))
diff --git a/src/mame/video/cave.c b/src/mame/video/cave.c
index fc8d4c93183..86755ffdc62 100644
--- a/src/mame/video/cave.c
+++ b/src/mame/video/cave.c
@@ -58,6 +58,7 @@ UINT16 *cave_vram_0, *cave_vctrl_0;
UINT16 *cave_vram_1, *cave_vctrl_1;
UINT16 *cave_vram_2, *cave_vctrl_2;
UINT16 *cave_vram_3, *cave_vctrl_3;
+size_t cave_paletteram_size;
/* Variables only used here: */
@@ -87,7 +88,7 @@ struct sprite_cave {
const UINT8 *pen_data; /* points to top left corner of tile data */
int line_offset;
- const pen_t *pal_data;
+ pen_t base_pen;
int tile_width, tile_height;
int total_width, total_height; /* in screen coordinates */
int x, y, xcount0, ycount0;
@@ -233,18 +234,20 @@ PALETTE_INIT( korokoro )
}
-static void set_pens(colortable_t *colortable)
+static void set_pens(running_machine *machine)
{
offs_t i;
- int palette_size = colortable_palette_get_size(colortable);
- for (i = 0; i < palette_size; i++)
+ for (i = 0; i < cave_paletteram_size / 2; i++)
{
UINT16 data = paletteram16[i];
rgb_t color = MAKE_RGB(pal5bit(data >> 5), pal5bit(data >> 10), pal5bit(data >> 0));
- colortable_palette_set_color(colortable, i, color);
+ if (machine->colortable != NULL)
+ colortable_palette_set_color(machine->colortable, i, color);
+ else
+ palette_set_color(machine, i, color);
}
}
@@ -551,7 +554,7 @@ static void get_sprite_info_cave(running_machine *machine)
{
const int region = REGION_GFX1;
- const pen_t *base_pal = machine->pens + 0;
+ pen_t base_pal = 0;
const UINT8 *base_gfx = memory_region(region);
int code_max = memory_region_length(region) / (16*16);
@@ -652,7 +655,7 @@ static void get_sprite_info_cave(running_machine *machine)
sprite->priority = (attr & 0x0030) >> 4;
sprite->flags = SPRITE_VISIBLE_CAVE;
sprite->line_offset = sprite->tile_width;
- sprite->pal_data = base_pal + (attr & 0x3f00); // first 0x4000 colors
+ sprite->base_pen = base_pal + (attr & 0x3f00); // first 0x4000 colors
if (glob_flipx) { x = max_x - x - sprite->total_width; flipx = !flipx; }
if (glob_flipy) { y = max_y - y - sprite->total_height; flipy = !flipy; }
@@ -672,7 +675,7 @@ static void get_sprite_info_donpachi(running_machine *machine)
{
const int region = REGION_GFX1;
- const pen_t *base_pal = machine->pens + 0;
+ pen_t base_pal = 0;
const UINT8 *base_gfx = memory_region(region);
int code_max = memory_region_length(region) / (16*16);
@@ -722,12 +725,12 @@ static void get_sprite_info_donpachi(running_machine *machine)
if (cave_spritetype == 3) /* pwrinst2 */
{
sprite->priority = ((attr & 0x0010) >> 4)+2;
- sprite->pal_data = base_pal + (attr & 0x3f00) + 0x4000*((attr & 0x0020) >> 5);
+ sprite->base_pen = base_pal + (attr & 0x3f00) + 0x4000*((attr & 0x0020) >> 5);
}
else
{
sprite->priority = (attr & 0x0030) >> 4;
- sprite->pal_data = base_pal + (attr & 0x3f00); // first 0x4000 colors
+ sprite->base_pen = base_pal + (attr & 0x3f00); // first 0x4000 colors
}
sprite->flags = SPRITE_VISIBLE_CAVE;
@@ -910,7 +913,7 @@ static void do_blit_zoom16_cave( const struct sprite_cave *sprite ){
{
const UINT8 *pen_data = sprite->pen_data -1 -sprite->line_offset;
- const pen_t *pal_data = sprite->pal_data;
+ pen_t base_pen = sprite->base_pen;
int x,y;
UINT8 pen;
int pitch = blit.line_offset*dy/2;
@@ -931,7 +934,7 @@ static void do_blit_zoom16_cave( const struct sprite_cave *sprite ){
source+=xcount>>16;
xcount &= 0xffff;
pen = *source;
- if (pen) dest[x] = pal_data[pen];
+ if (pen) dest[x] = base_pen + pen;
}
xcount += sprite->zoomx_re;
}
@@ -1002,7 +1005,7 @@ static void do_blit_zoom16_cave_zb( const struct sprite_cave *sprite ){
{
const UINT8 *pen_data = sprite->pen_data -1 -sprite->line_offset;
- const pen_t *pal_data = sprite->pal_data;
+ pen_t base_pen = sprite->base_pen;
int x,y;
UINT8 pen;
int pitch = blit.line_offset*dy/2;
@@ -1027,7 +1030,7 @@ static void do_blit_zoom16_cave_zb( const struct sprite_cave *sprite ){
xcount &= 0xffff;
pen = *source;
if (pen && (zbf[x]<=pri_sp)){
- dest[x] = pal_data[pen];
+ dest[x] = base_pen + pen;
zbf[x] = pri_sp;
}
}
@@ -1096,7 +1099,7 @@ static void do_blit_16_cave( const struct sprite_cave *sprite ){
{
const UINT8 *pen_data = sprite->pen_data;
- const pen_t *pal_data = sprite->pal_data;
+ pen_t base_pen = sprite->base_pen;
int x,y;
UINT8 pen;
int pitch = blit.line_offset*dy/2;
@@ -1108,7 +1111,7 @@ static void do_blit_16_cave( const struct sprite_cave *sprite ){
source = pen_data;
for( x=x1; x!=x2; x+=dx ){
pen = *source;
- if (pen) dest[x] = pal_data[pen];
+ if (pen) dest[x] = base_pen + pen;
source++;
}
pen_data += sprite->line_offset;
@@ -1173,7 +1176,7 @@ static void do_blit_16_cave_zb( const struct sprite_cave *sprite ){
{
const UINT8 *pen_data = sprite->pen_data;
- const pen_t *pal_data = sprite->pal_data;
+ pen_t base_pen = sprite->base_pen;
int x,y;
UINT8 pen;
int pitch = blit.line_offset*dy/2;
@@ -1190,7 +1193,7 @@ static void do_blit_16_cave_zb( const struct sprite_cave *sprite ){
pen = *source;
if ( pen && (zbf[x]<=pri_sp))
{
- dest[x] = pal_data[pen];
+ dest[x] = base_pen + pen;
zbf[x] = pri_sp;
}
source++;
@@ -1436,7 +1439,7 @@ VIDEO_UPDATE( cave )
int pri, pri2;
int layers_ctrl = -1;
- set_pens(machine->colortable);
+ set_pens(machine);
blit.baseaddr = bitmap->base;
blit.line_offset = bitmap->rowpixels * bitmap->bpp / 8;
diff --git a/src/mame/video/seta.c b/src/mame/video/seta.c
index b8baa762ec0..fadd8a09e5f 100644
--- a/src/mame/video/seta.c
+++ b/src/mame/video/seta.c
@@ -664,7 +664,7 @@ PALETTE_INIT( usclssic )
}
-static void set_pens_no_colortable(running_machine *machine)
+static void set_pens(running_machine *machine)
{
offs_t i;
@@ -674,23 +674,10 @@ static void set_pens_no_colortable(running_machine *machine)
rgb_t color = MAKE_RGB(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
- palette_set_color(machine, i, color);
- }
-}
-
-
-static void set_pens_colortable(colortable_t *colortable)
-{
- offs_t i;
- int palette_size = colortable_palette_get_size(colortable);
-
- for (i = 0; i < palette_size; i++)
- {
- UINT16 data = paletteram16[i];
-
- rgb_t color = MAKE_RGB(pal5bit(data >> 10), pal5bit(data >> 5), pal5bit(data >> 0));
-
- colortable_palette_set_color(colortable, i, color);
+ if (machine->colortable != NULL)
+ colortable_palette_set_color(machine->colortable, i, color);
+ else
+ palette_set_color(machine, i, color);
}
}
@@ -900,8 +887,8 @@ static void draw_sprites(running_machine *machine, mame_bitmap *bitmap,const rec
/* For games without tilemaps */
VIDEO_UPDATE( seta_no_layers )
{
- set_pens_no_colortable(machine);
- fillbitmap(bitmap,machine->pens[0x1f0],cliprect);
+ set_pens(machine);
+ fillbitmap(bitmap,0x1f0,cliprect);
draw_sprites(machine,bitmap,cliprect);
return 0;
}
@@ -990,7 +977,7 @@ if (input_code_pressed(KEYCODE_Z))
}
#endif
- fillbitmap(bitmap,machine->pens[0],cliprect);
+ fillbitmap(bitmap,0,cliprect);
if (order & 1) // swap the layers?
{
@@ -1045,7 +1032,7 @@ if (input_code_pressed(KEYCODE_Z))
VIDEO_UPDATE( seta )
{
- set_pens_colortable(machine->colortable);
+ set_pens(machine);
return VIDEO_UPDATE_CALL(seta_layers);
}