summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/ygv608.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/ygv608.cpp')
-rw-r--r--src/mame/video/ygv608.cpp88
1 files changed, 41 insertions, 47 deletions
diff --git a/src/mame/video/ygv608.cpp b/src/mame/video/ygv608.cpp
index 2b622eaf786..6eee7ddac1f 100644
--- a/src/mame/video/ygv608.cpp
+++ b/src/mame/video/ygv608.cpp
@@ -586,7 +586,7 @@ TILE_GET_INFO_MEMBER( ygv608_device::get_tile_info_A_16 )
uint8_t attr = 0;
int pattern_name_base = 0;
int set = ((m_regs.s.r7 & r7_md) == MD_1PLANE_256COLOUR
- ? GFX_16X16_8BIT : GFX_16X16_4BIT );
+ ? GFX_16X16_8BIT : GFX_16X16_4BIT );
int base = row >> m_base_y_shift;
if( col >= m_page_x ) {
@@ -1208,13 +1208,10 @@ uint32_t ygv608_device::update_screen(screen_device &screen, bitmap_ind16 &bitma
return 0;
}
-READ16_MEMBER( ygv608_device::read )
+READ8_MEMBER( ygv608_device::read )
{
- static int p0_state = 0;
- static int p3_state = 0;
- static int pattern_name_base = 0; /* pattern name table base address */
int pn=0;
- uint16_t data = 0;
+ uint8_t data = 0;
switch (offset)
{
@@ -1223,20 +1220,20 @@ READ16_MEMBER( ygv608_device::read )
uint8_t xTile = m_regs.s.r1 & r1_pnx;
uint8_t yTile = m_regs.s.r0 & r0_pny;
- switch (p0_state)
+ switch (p0_state_r)
{
case 0:
/* Are we reading from plane B? */
if (!((m_regs.s.r7 & r7_md) & MD_1PLANE) && (m_regs.s.r0 & r0_b_a))
- pattern_name_base = ((m_page_y << m_pny_shift) << m_bits16);
+ pattern_name_base_r = ((m_page_y << m_pny_shift) << m_bits16);
/* read character from ram */
- pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16);
+ pn = pattern_name_base_r + (((yTile << m_pny_shift) + xTile) << m_bits16);
break;
case 1:
/* read character from ram */
- pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1;
+ pn = pattern_name_base_r + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1;
break;
}
@@ -1244,23 +1241,23 @@ READ16_MEMBER( ygv608_device::read )
{
logerror( "attempt (%d) to read pattern name %d\n"
"mode = %d, pgs = %d (%dx%d)\n"
- "pattern_name_base = %d\n"
+ "pattern_name_base_r = %d\n"
"pnx = %d, pny = %d, pny_shift = %d, bits16 = %d\n",
- p0_state,
+ p0_state_r,
pn, m_regs.s.r7 & r7_md, m_regs.s.r8 & r8_pgs,
m_page_x, m_page_y,
- pattern_name_base,
+ pattern_name_base_r,
xTile, yTile, m_pny_shift,
m_bits16 );
pn = 0;
}
data = m_pattern_name_table[pn];
- p0_state++;
+ p0_state_r++;
if ((m_regs.s.r7 & r7_md) == MD_2PLANE_8BIT )
- p0_state++;
+ p0_state_r++;
- if (p0_state == 2)
+ if (p0_state_r == 2)
{
if (m_regs.s.r0 & r0_pnya)
{
@@ -1296,17 +1293,17 @@ READ16_MEMBER( ygv608_device::read )
m_regs.s.r1 &= ~r1_pnx;
m_regs.s.r1 |= xTile;
}
- p0_state = 0;
- pattern_name_base = 0;
+ p0_state_r = 0;
+ pattern_name_base_r = 0;
}
- return (data << 8);
+ return (data);
}
case 0x01: /* P#1 - sprite data port */
data = m_sprite_attribute_table.b[m_regs.s.saa];
if (m_regs.s.r2 & r2_saar)
m_regs.s.saa++;
- return (data << 8);
+ return (data);
case 0x02: /* P#2 - scroll data port */
data = m_scroll_data_table[(m_regs.s.r2 & r2_b_a) >> 4][m_regs.s.sca];
@@ -1317,17 +1314,17 @@ READ16_MEMBER( ygv608_device::read )
if (m_regs.s.sca == 0)
m_regs.s.r2 ^= r2_b_a;
}
- return( data << 8 );
+ return( data );
case 0x03: /* P#3 - color palette data port */
- data = m_colour_palette[m_regs.s.cc][p3_state];
- if( ++p3_state == 3 )
+ data = m_colour_palette[m_regs.s.cc][p3_state_r];
+ if( ++p3_state_r == 3 )
{
- p3_state = 0;
+ p3_state_r = 0;
if( m_regs.s.r2 & r2_cpar)
m_regs.s.cc++;
}
- return( data << 8 );
+ return( data );
case 0x04: /* P#4 - register data port */
{
@@ -1344,7 +1341,7 @@ READ16_MEMBER( ygv608_device::read )
m_ports.s.p5 &= ~p5_rn;
m_ports.s.p5 |= regNum;
}
- return (data << 8);
+ return (data );
}
case 0x05:
@@ -1352,7 +1349,7 @@ READ16_MEMBER( ygv608_device::read )
case 0x06:
case 0x07:
- return( (uint16_t)(m_ports.b[offset]) << 8 );
+ return( (uint8_t)(m_ports.b[offset]) );
default :
logerror( "unknown ygv608 register (%d)\n", offset );
@@ -1362,14 +1359,11 @@ READ16_MEMBER( ygv608_device::read )
return( 0 );
}
-WRITE16_MEMBER( ygv608_device::write )
+WRITE8_MEMBER( ygv608_device::write )
{
- static int p0_state = 0;
- static int p3_state = 0;
- static int pattern_name_base = 0; /* pattern name table base address */
int pn=0;
- data = ( data >> 8 ) & 0xff;
+ //data = ( data >> 8 ) & 0xff;
switch (offset)
{
@@ -1378,20 +1372,20 @@ WRITE16_MEMBER( ygv608_device::write )
uint8_t xTile = m_regs.s.r1 & r1_pnx;
uint8_t yTile = m_regs.s.r0 & r0_pny;
- switch (p0_state)
+ switch (p0_state_w)
{
case 0:
/* Are we reading from plane B? */
if (!((m_regs.s.r7 & r7_md) & MD_1PLANE) && (m_regs.s.r0 & r0_b_a))
- pattern_name_base = ((m_page_y << m_pny_shift) << m_bits16);
+ pattern_name_base_w = ((m_page_y << m_pny_shift) << m_bits16);
/* read character from ram */
- pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16);
+ pn = pattern_name_base_w + (((yTile << m_pny_shift) + xTile) << m_bits16);
break;
case 1:
/* read character from ram */
- pn = pattern_name_base + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1;
+ pn = pattern_name_base_w + (((yTile << m_pny_shift) + xTile) << m_bits16) + 1;
break;
}
@@ -1399,23 +1393,23 @@ WRITE16_MEMBER( ygv608_device::write )
{
logerror( "attempt (%d) to read pattern name %d\n"
"mode = %d, pgs = %d (%dx%d)\n"
- "pattern_name_base = %d\n"
+ "pattern_name_base_w = %d\n"
"pnx = %d, pny = %d, pny_shift = %d, bits16 = %d\n",
- p0_state,
+ p0_state_w,
pn, m_regs.s.r7 & r7_md, m_regs.s.r8 & r8_pgs,
m_page_x, m_page_y,
- pattern_name_base,
+ pattern_name_base_w,
xTile, yTile, m_pny_shift,
m_bits16 );
pn = 0;
}
m_pattern_name_table[pn] = data;
- p0_state++;
+ p0_state_w++;
if ((m_regs.s.r7 & r7_md) == MD_2PLANE_8BIT )
- p0_state++;
+ p0_state_w++;
- if (p0_state == 2)
+ if (p0_state_w == 2)
{
if (m_regs.s.r0 & r0_pnya)
{
@@ -1449,8 +1443,8 @@ WRITE16_MEMBER( ygv608_device::write )
m_regs.s.r1 &= ~r1_pnx;
m_regs.s.r1 |= xTile;
}
- p0_state = 0;
- pattern_name_base = 0;
+ p0_state_w = 0;
+ pattern_name_base_w = 0;
}
}
break;
@@ -1473,10 +1467,10 @@ WRITE16_MEMBER( ygv608_device::write )
break;
case 0x03: /* P#3 - colour palette data port */
- m_colour_palette[m_regs.s.cc][p3_state] = data;
- if (++p3_state == 3)
+ m_colour_palette[m_regs.s.cc][p3_state_w] = data;
+ if (++p3_state_w == 3)
{
- p3_state = 0;
+ p3_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]),