From a1a466a5f97cf3eecb12ac2869b09eb313ddec4e Mon Sep 17 00:00:00 2001 From: angelosa Date: Thu, 29 Jun 2017 04:35:01 +0200 Subject: ygv608.cpp: address pointer clean-ups (nw) --- src/mame/drivers/namcond1.cpp | 2 +- src/mame/machine/namcond1.cpp | 2 +- src/mame/video/ygv608.cpp | 113 +++++++++++++++++++++++++++++++----------- src/mame/video/ygv608.h | 24 +++++++-- 4 files changed, 104 insertions(+), 37 deletions(-) diff --git a/src/mame/drivers/namcond1.cpp b/src/mame/drivers/namcond1.cpp index 1aba50dc0c3..198796223e9 100644 --- a/src/mame/drivers/namcond1.cpp +++ b/src/mame/drivers/namcond1.cpp @@ -482,7 +482,7 @@ ROM_START( abcheck ) ROM_REGION( 0x400000,"ygv608", 0 ) /* 4MB character generator */ ROM_LOAD( "an1cg0.10e", 0x000000, 0x200000, CRC(6dae0531) SHA1(2f4a4a22d461eb9a5bb88bdfccc3aff44cd3faee) ) ROM_LOAD( "an1cg1.10f", 0x200000, 0x200000, CRC(8485607a) SHA1(1b9a1950c6db61a2b546fe2f5e56333593e93fb4) ) - + ROM_REGION( 0x1000000, "c352", 0 ) // Samples ROM_LOAD( "an1voice.7c", 0x000000, 0x200000, CRC(d2bfa453) SHA1(6b7d6bb4d65290d8fd3df5d12b41ae7dce5f3f1c) ) diff --git a/src/mame/machine/namcond1.cpp b/src/mame/machine/namcond1.cpp index 0c5fd6d7fab..891c08d23f7 100644 --- a/src/mame/machine/namcond1.cpp +++ b/src/mame/machine/namcond1.cpp @@ -85,7 +85,7 @@ WRITE16_MEMBER(namcond1_state::cuskey_w) case (0x0c>>1): m_ygv608->set_gfxbank((data & 0x0002) >> 1); // i think - // should mark tilemaps dirty but i think they already are + // bit 0 used in abcheck break; default : diff --git a/src/mame/video/ygv608.cpp b/src/mame/video/ygv608.cpp index 37faa9457bf..9198e5c3054 100644 --- a/src/mame/video/ygv608.cpp +++ b/src/mame/video/ygv608.cpp @@ -364,6 +364,13 @@ GFXDECODE_END // we use decimals here to match documentation static ADDRESS_MAP_START( regs_map, AS_IO, 8, ygv608_device ) + + // address pointers + AM_RANGE( 3, 3) AM_READWRITE(sprite_address_r,sprite_address_w) + AM_RANGE( 4, 4) AM_READWRITE(scroll_address_r,scroll_address_w) + AM_RANGE( 5, 5) AM_READWRITE(palette_address_r,palette_address_w) + AM_RANGE( 6, 6) AM_READWRITE(sprite_bank_r,sprite_bank_w) + // interrupt section AM_RANGE(14, 14) AM_READWRITE(irq_mask_r,irq_mask_w) AM_RANGE(15, 16) AM_READWRITE(irq_ctrl_r,irq_ctrl_w) @@ -527,6 +534,7 @@ void ygv608_device::device_timer(emu_timer &timer, device_timer_id id, int param void ygv608_device::set_gfxbank(uint8_t gfxbank) { m_namcond1_gfxbank = gfxbank; + m_tilemap_resize = 1; } @@ -984,7 +992,7 @@ void ygv608_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect switch( size ) { case SZ_8X8 : - code = ( (int)m_regs.s.sba << 8 ) | (int)sa->sn; + code = ( (int)m_sprite_bank << 8 ) | (int)sa->sn; if (spf != 0) color = ( code >> ( (spf - 1) * 2 ) ) & 0x0f; if( code >= layout_total(GFX_8X8_4BIT) ) { @@ -1014,7 +1022,7 @@ void ygv608_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect break; case SZ_16X16 : - code = ( ( (int)m_regs.s.sba & 0xfc ) << 6 ) | (int)sa->sn; + code = ( ( (int)m_sprite_bank & 0xfc ) << 6 ) | (int)sa->sn; if (spf != 0) color = ( code >> (spf * 2) ) & 0x0f; if( code >= layout_total(GFX_16X16_4BIT) ) { @@ -1044,7 +1052,7 @@ void ygv608_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect break; case SZ_32X32 : - code = ( ( (int)m_regs.s.sba & 0xf0 ) << 4 ) | (int)sa->sn; + code = ( ( (int)m_sprite_bank & 0xf0 ) << 4 ) | (int)sa->sn; if (spf != 0) color = ( code >> ( (spf + 1) * 2 ) ) & 0x0f; if( code >= layout_total(GFX_32X32_4BIT) ) { @@ -1074,7 +1082,7 @@ void ygv608_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect break; case SZ_64X64 : - code = ( ( (int)m_regs.s.sba & 0xc0 ) << 2 ) | (int)sa->sn; + code = ( ( (int)m_sprite_bank & 0xc0 ) << 2 ) | (int)sa->sn; if (spf != 0) color = ( code >> ( (spf + 1) * 2 ) ) & 0x0f; if( code >= layout_total(GFX_64X64_4BIT) ) { @@ -1405,10 +1413,10 @@ READ8_MEMBER( ygv608_device::pattern_name_table_r ) // P#1R - sprite data port READ8_MEMBER( ygv608_device::sprite_data_r ) { - uint8_t res = m_sprite_attribute_table.b[m_regs.s.saa]; + uint8_t res = m_sprite_attribute_table.b[m_sprite_address]; if (m_regs.s.r2 & r2_saar) - m_regs.s.saa++; + m_sprite_address++; return res; } @@ -1416,13 +1424,13 @@ READ8_MEMBER( ygv608_device::sprite_data_r ) // P#2R - scroll data port READ8_MEMBER( ygv608_device::scroll_data_r ) { - uint8_t res = m_scroll_data_table[(m_regs.s.r2 & r2_b_a) >> 4][m_regs.s.sca]; + uint8_t res = m_scroll_data_table[(m_regs.s.r2 & r2_b_a) >> 4][m_scroll_address]; if (m_regs.s.r2 & r2_scar) { - m_regs.s.sca++; + m_scroll_address++; /* handle wrap to next plane */ - if (m_regs.s.sca == 0) + if (m_scroll_address == 0) m_regs.s.r2 ^= r2_b_a; } @@ -1432,14 +1440,14 @@ READ8_MEMBER( ygv608_device::scroll_data_r ) // P#3 - color palette data port READ8_MEMBER( ygv608_device::palette_data_r ) { - uint8_t res = m_colour_palette[m_regs.s.cc][m_color_state_r]; + uint8_t res = m_colour_palette[m_palette_address][m_color_state_r]; if( ++m_color_state_r == 3 ) { m_color_state_r = 0; if( m_regs.s.r2 & r2_cpar) - m_regs.s.cc++; + m_palette_address++; } return res; @@ -1579,22 +1587,22 @@ WRITE8_MEMBER(ygv608_device::pattern_name_table_w) // P#1W - sprite data port WRITE8_MEMBER( ygv608_device::sprite_data_w ) { - m_sprite_attribute_table.b[m_regs.s.saa] = data; + m_sprite_attribute_table.b[m_sprite_address] = data; if( m_regs.s.r2 & r2_saaw) - m_regs.s.saa++; + m_sprite_address++; } // P#2W - scroll data port WRITE8_MEMBER( ygv608_device::scroll_data_w ) { - m_scroll_data_table[(m_regs.s.r2 & r2_b_a) >> 4][m_regs.s.sca] = data; + m_scroll_data_table[(m_regs.s.r2 & r2_b_a) >> 4][m_scroll_address] = data; if (m_regs.s.r2 & r2_scaw) { - m_regs.s.sca++; + m_scroll_address++; /* handle wrap to next plane */ - if (m_regs.s.sca == 0) + if (m_scroll_address == 0) m_regs.s.r2 ^= r2_b_a; } } @@ -1602,17 +1610,17 @@ WRITE8_MEMBER( ygv608_device::scroll_data_w ) // P#3W - colour palette data port WRITE8_MEMBER( ygv608_device::palette_data_w ) { - m_colour_palette[m_regs.s.cc][m_color_state_w] = data; + m_colour_palette[m_palette_address][m_color_state_w] = data; if (++m_color_state_w == 3) { m_color_state_w = 0; - palette().set_pen_color(m_regs.s.cc, - pal6bit( m_colour_palette[m_regs.s.cc][0] ), - pal6bit( m_colour_palette[m_regs.s.cc][1] ), - pal6bit( m_colour_palette[m_regs.s.cc][2] )); + palette().set_pen_color(m_palette_address, + pal6bit( m_colour_palette[m_palette_address][0] ), + pal6bit( m_colour_palette[m_palette_address][1] ), + pal6bit( m_colour_palette[m_palette_address][2] )); if (m_regs.s.r2 & r2_cpaw) - m_regs.s.cc++; + m_palette_address++; } } @@ -1748,7 +1756,7 @@ void ygv608_device::HandleRomTransfers(uint8_t type) /* sprite attribute table */ if( m_ports.s.ts ) { - int dest = (int)m_regs.s.saa; + int dest = (int)m_sprite_address; /* fudge a transfer for now... */ for( i=0; i