summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/dkong.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/dkong.c')
-rw-r--r--src/mame/video/dkong.c147
1 files changed, 70 insertions, 77 deletions
diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c
index dd64f055dc9..9476a07a728 100644
--- a/src/mame/video/dkong.c
+++ b/src/mame/video/dkong.c
@@ -199,15 +199,14 @@ static const res_net_info radarscp_grid_net_info =
***************************************************************************/
-PALETTE_INIT( dkong2b)
+PALETTE_INIT_MEMBER(dkong_state,dkong2b)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
- dkong_state *state = machine.driver_data<dkong_state>();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
rgb_t *rgb;
int i;
- rgb = compute_res_net_all(machine, color_prom, &dkong_decode_info, &dkong_net_info);
- palette_set_colors(machine, 0, rgb, 256);
+ rgb = compute_res_net_all(machine(), color_prom, &dkong_decode_info, &dkong_net_info);
+ palette_set_colors(machine(), 0, rgb, 256);
/* Now treat tri-state black background generation */
@@ -218,22 +217,21 @@ PALETTE_INIT( dkong2b)
r = compute_res_net( 1, 0, &dkong_net_bck_info );
g = compute_res_net( 1, 1, &dkong_net_bck_info );
b = compute_res_net( 1, 2, &dkong_net_bck_info );
- palette_set_color_rgb(machine,i,r,g,b);
+ palette_set_color_rgb(machine(),i,r,g,b);
}
- palette_normalize_range(machine.palette, 0, 255, 0, 255);
+ palette_normalize_range(machine().palette, 0, 255, 0, 255);
color_prom += 512;
/* color_prom now points to the beginning of the character color codes */
- state->m_color_codes = color_prom; /* we'll need it later */
- auto_free(machine, rgb);
+ m_color_codes = color_prom; /* we'll need it later */
+ auto_free(machine(), rgb);
}
#ifdef UNUSED_FUNCTION
-PALETTE_INIT( dkong4b )
+PALETTE_INIT_MEMBER(dkong_state,dkong4b)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
- dkong_state *state = machine.driver_data<dkong_state>();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
int r,g,b;
@@ -247,7 +245,7 @@ PALETTE_INIT( dkong4b )
/* blue component */
b = compute_res_net( (color_prom[0]>>0) & 0x03, 2, &radarscp_net_info );
- palette_set_color_rgb(machine,i,r,g,b);
+ palette_set_color_rgb(machine(),i,r,g,b);
color_prom++;
}
@@ -259,21 +257,20 @@ PALETTE_INIT( dkong4b )
r = compute_res_net( 1, 0, &radarscp_net_bck_info );
g = compute_res_net( 1, 1, &radarscp_net_bck_info );
b = compute_res_net( 1, 2, &radarscp_net_bck_info );
- palette_set_color_rgb(machine,i,r,g,b);
+ palette_set_color_rgb(machine(),i,r,g,b);
}
- palette_normalize_range(machine.palette, 0, 255, 0, 255);
+ palette_normalize_range(machine().palette, 0, 255, 0, 255);
color_prom += 256;
/* color_prom now points to the beginning of the character color codes */
- state->m_color_codes = color_prom; /* we'll need it later */
+ m_color_codes = color_prom; /* we'll need it later */
}
#endif
-PALETTE_INIT( radarscp )
+PALETTE_INIT_MEMBER(dkong_state,radarscp)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
- dkong_state *state = machine.driver_data<dkong_state>();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
int r,g,b;
@@ -287,7 +284,7 @@ PALETTE_INIT( radarscp )
/* blue component */
b = compute_res_net( (color_prom[0]>>0) & 0x03, 2, &radarscp_net_info );
- palette_set_color_rgb(machine,i,r,g,b);
+ palette_set_color_rgb(machine(),i,r,g,b);
color_prom++;
}
@@ -299,14 +296,14 @@ PALETTE_INIT( radarscp )
r = compute_res_net( 1, 0, &radarscp_net_bck_info );
g = compute_res_net( 1, 1, &radarscp_net_bck_info );
b = compute_res_net( 1, 2, &radarscp_net_bck_info );
- palette_set_color_rgb(machine,i,r,g,b);
+ palette_set_color_rgb(machine(),i,r,g,b);
}
/* Star color */
r = compute_res_net( 1, 0, &radarscp_stars_net_info );
g = compute_res_net( 0, 1, &radarscp_stars_net_info );
b = compute_res_net( 0, 2, &radarscp_stars_net_info );
- palette_set_color_rgb(machine,RADARSCP_STAR_COL,r,g,b);
+ palette_set_color_rgb(machine(),RADARSCP_STAR_COL,r,g,b);
/* Oscillating background */
for (i = 0;i < 256;i++)
@@ -315,7 +312,7 @@ PALETTE_INIT( radarscp )
g = compute_res_net( 0, 1, &radarscp_blue_net_info );
b = compute_res_net( i, 2, &radarscp_blue_net_info );
- palette_set_color_rgb(machine,RADARSCP_BCK_COL_OFFSET + i,r,g,b);
+ palette_set_color_rgb(machine(),RADARSCP_BCK_COL_OFFSET + i,r,g,b);
}
/* Grid */
@@ -325,20 +322,19 @@ PALETTE_INIT( radarscp )
g = compute_res_net( (i>>1) & 1, 1, &radarscp_grid_net_info );
b = compute_res_net( (i>>2) & 1, 2, &radarscp_grid_net_info );
- palette_set_color_rgb(machine,RADARSCP_GRID_COL_OFFSET + i,r,g,b);
+ palette_set_color_rgb(machine(),RADARSCP_GRID_COL_OFFSET + i,r,g,b);
}
- palette_normalize_range(machine.palette, 0, RADARSCP_GRID_COL_OFFSET+7, 0, 255);
+ palette_normalize_range(machine().palette, 0, RADARSCP_GRID_COL_OFFSET+7, 0, 255);
color_prom += 256;
/* color_prom now points to the beginning of the character color codes */
- state->m_color_codes = color_prom; /* we'll need it later */
+ m_color_codes = color_prom; /* we'll need it later */
}
-PALETTE_INIT( radarscp1 )
+PALETTE_INIT_MEMBER(dkong_state,radarscp1)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
- dkong_state *state = machine.driver_data<dkong_state>();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
int i;
int r,g,b;
@@ -352,7 +348,7 @@ PALETTE_INIT( radarscp1 )
/* blue component */
b = compute_res_net( color_prom[0], 2, &radarscp1_net_info );
- palette_set_color_rgb(machine,i,r,g,b);
+ palette_set_color_rgb(machine(),i,r,g,b);
color_prom++;
}
@@ -364,14 +360,14 @@ PALETTE_INIT( radarscp1 )
r = compute_res_net( 0, 0, &radarscp1_net_info );
g = compute_res_net( 0, 1, &radarscp1_net_info );
b = compute_res_net( 0, 2, &radarscp1_net_info );
- palette_set_color_rgb(machine,i,r,g,b);
+ palette_set_color_rgb(machine(),i,r,g,b);
}
/* Star color */
r = compute_res_net( 1, 0, &radarscp_stars_net_info );
g = compute_res_net( 0, 1, &radarscp_stars_net_info );
b = compute_res_net( 0, 2, &radarscp_stars_net_info );
- palette_set_color_rgb(machine,RADARSCP_STAR_COL,r,g,b);
+ palette_set_color_rgb(machine(),RADARSCP_STAR_COL,r,g,b);
/* Oscillating background */
for (i = 0;i < 256;i++)
@@ -380,7 +376,7 @@ PALETTE_INIT( radarscp1 )
g = compute_res_net( 0, 1, &radarscp_blue_net_info );
b = compute_res_net( i, 2, &radarscp_blue_net_info );
- palette_set_color_rgb(machine,RADARSCP_BCK_COL_OFFSET + i,r,g,b);
+ palette_set_color_rgb(machine(),RADARSCP_BCK_COL_OFFSET + i,r,g,b);
}
/* Grid */
@@ -390,13 +386,13 @@ PALETTE_INIT( radarscp1 )
g = compute_res_net( (i>>1) & 1, 1, &radarscp_grid_net_info );
b = compute_res_net( (i>>2) & 1, 2, &radarscp_grid_net_info );
- palette_set_color_rgb(machine,RADARSCP_GRID_COL_OFFSET + i,r,g,b);
+ palette_set_color_rgb(machine(),RADARSCP_GRID_COL_OFFSET + i,r,g,b);
}
- palette_normalize_range(machine.palette, 0, RADARSCP_GRID_COL_OFFSET+7, 0, 255);
+ palette_normalize_range(machine().palette, 0, RADARSCP_GRID_COL_OFFSET+7, 0, 255);
color_prom += 512;
/* color_prom now points to the beginning of the character color codes */
- state->m_color_codes = color_prom; /* we'll need it later */
+ m_color_codes = color_prom; /* we'll need it later */
}
@@ -436,20 +432,19 @@ PALETTE_INIT( radarscp1 )
***************************************************************************/
-PALETTE_INIT( dkong3 )
+PALETTE_INIT_MEMBER(dkong_state,dkong3)
{
- const UINT8 *color_prom = machine.root_device().memregion("proms")->base();
- dkong_state *state = machine.driver_data<dkong_state>();
+ const UINT8 *color_prom = machine().root_device().memregion("proms")->base();
rgb_t *rgb;
- rgb = compute_res_net_all(machine, color_prom, &dkong3_decode_info, &dkong3_net_info);
- palette_set_colors(machine, 0, rgb, 256);
- palette_normalize_range(machine.palette, 0, 255, 0, 255);
- auto_free(machine, rgb);
+ rgb = compute_res_net_all(machine(), color_prom, &dkong3_decode_info, &dkong3_net_info);
+ palette_set_colors(machine(), 0, rgb, 256);
+ palette_normalize_range(machine().palette, 0, 255, 0, 255);
+ auto_free(machine(), rgb);
color_prom += 1024;
/* color_prom now points to the beginning of the character color codes */
- state->m_color_codes = color_prom; /* we'll need it later */
+ m_color_codes = color_prom; /* we'll need it later */
}
TILE_GET_INFO_MEMBER(dkong_state::dkong_bg_tile_info)
@@ -891,66 +886,64 @@ static void check_palette(running_machine &machine)
switch (newset)
{
case 0x00:
- PALETTE_INIT_CALL(radarscp);
+ state->PALETTE_INIT_CALL_MEMBER(radarscp);
break;
case 0x01:
- PALETTE_INIT_CALL(dkong2b);
+ state->PALETTE_INIT_CALL_MEMBER(dkong2b);
break;
}
}
}
}
-static VIDEO_START( dkong_base )
+VIDEO_START_MEMBER(dkong_state,dkong_base)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- state->m_cd4049_b = (log(0.0 - log(cd4049_al)) - log(0.0 - log((1.0-cd4049_al))) ) / log(cd4049_vh/cd4049_vl);
- state->m_cd4049_a = log(0.0 - log(cd4049_al)) - state->m_cd4049_b * log(cd4049_vh);
+ m_cd4049_b = (log(0.0 - log(cd4049_al)) - log(0.0 - log((1.0-cd4049_al))) ) / log(cd4049_vh/cd4049_vl);
+ m_cd4049_a = log(0.0 - log(cd4049_al)) - m_cd4049_b * log(cd4049_vh);
- state->m_gfx_bank = 0;
- state->m_palette_bank = 0;
- state->m_sprite_bank = 0;
- state->m_vidhw = -1;
+ m_gfx_bank = 0;
+ m_palette_bank = 0;
+ m_sprite_bank = 0;
+ m_vidhw = -1;
- state->save_item(NAME(state->m_gfx_bank));
- state->save_item(NAME(state->m_palette_bank));
- state->save_item(NAME(state->m_sprite_bank));
- state->save_item(NAME(state->m_grid_on));
+ save_item(NAME(m_gfx_bank));
+ save_item(NAME(m_palette_bank));
+ save_item(NAME(m_sprite_bank));
+ save_item(NAME(m_grid_on));
- state->save_item(NAME(state->m_grid_col));
- state->save_item(NAME(state->m_flip));
+ save_item(NAME(m_grid_col));
+ save_item(NAME(m_flip));
}
-VIDEO_START( dkong )
+VIDEO_START_MEMBER(dkong_state,dkong)
{
- dkong_state *state = machine.driver_data<dkong_state>();
- VIDEO_START_CALL(dkong_base);
+ VIDEO_START_CALL_MEMBER(dkong_base);
- state->m_scanline_timer = machine.scheduler().timer_alloc(FUNC(scanline_callback));
- state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(0));
+ m_scanline_timer = machine().scheduler().timer_alloc(FUNC(scanline_callback));
+ m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0));
- switch (state->m_hardware_type)
+ switch (m_hardware_type)
{
case HARDWARE_TRS02:
- machine.primary_screen->register_screen_bitmap(state->m_bg_bits);
- state->m_gfx3 = state->memregion("gfx3")->base();
- state->m_gfx3_len = state->memregion("gfx3")->bytes();
+ machine().primary_screen->register_screen_bitmap(m_bg_bits);
+ m_gfx3 = memregion("gfx3")->base();
+ m_gfx3_len = memregion("gfx3")->bytes();
/* fall through */
case HARDWARE_TKG04:
case HARDWARE_TKG02:
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::dkong_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_bg_tilemap->set_scrolldx(0, 128);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::dkong_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap->set_scrolldx(0, 128);
break;
case HARDWARE_TRS01:
- state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::radarscp1_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_bg_tilemap->set_scrolldx(0, 128);
+ m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::radarscp1_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ m_bg_tilemap->set_scrolldx(0, 128);
- machine.primary_screen->register_screen_bitmap(state->m_bg_bits);
- state->m_gfx4 = state->memregion("gfx4")->base();
- state->m_gfx3 = state->memregion("gfx3")->base();
- state->m_gfx3_len = state->memregion("gfx3")->bytes();
+ machine().primary_screen->register_screen_bitmap(m_bg_bits);
+ m_gfx4 = memregion("gfx4")->base();
+ m_gfx3 = memregion("gfx3")->base();
+ m_gfx3_len = memregion("gfx3")->bytes();
break;
default: