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