mirror of
https://github.com/holub/mame
synced 2025-07-01 16:19:38 +03:00
i8244: fix register mirroring
This commit is contained in:
parent
163d26b939
commit
0a657cb32f
@ -1356,7 +1356,7 @@ The C7010 Chess Module had a NSC800 CMOS microprocessor, with 2K RAM and 8K ROM.
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="qbert" supported="partial">
|
<software name="qbert">
|
||||||
<description>Q*bert (Euro)</description>
|
<description>Q*bert (Euro)</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
<publisher>Parker Brothers</publisher>
|
<publisher>Parker Brothers</publisher>
|
||||||
@ -1707,7 +1707,7 @@ The C7010 Chess Module had a NSC800 CMOS microprocessor, with 2K RAM and 8K ROM.
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="turtles">
|
<software name="turtles" supported="partial">
|
||||||
<description>Turtles (Euro)</description>
|
<description>Turtles (Euro)</description>
|
||||||
<year>1982</year>
|
<year>1982</year>
|
||||||
<publisher>Philips</publisher>
|
<publisher>Philips</publisher>
|
||||||
@ -1721,7 +1721,7 @@ The C7010 Chess Module had a NSC800 CMOS microprocessor, with 2K RAM and 8K ROM.
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="turtlesu" cloneof="turtles">
|
<software name="turtlesu" cloneof="turtles" supported="partial">
|
||||||
<description>Turtles (USA)</description>
|
<description>Turtles (USA)</description>
|
||||||
<year>1983</year>
|
<year>1983</year>
|
||||||
<publisher>Philips</publisher>
|
<publisher>Philips</publisher>
|
||||||
|
@ -280,14 +280,14 @@ int i8244_device::get_x_beam()
|
|||||||
|
|
||||||
offs_t i8244_device::fix_register_mirrors( offs_t offset )
|
offs_t i8244_device::fix_register_mirrors( offs_t offset )
|
||||||
{
|
{
|
||||||
// registers $40,$41 are mirrored at $44,$45, $48,$49, and $4C,$4D
|
// quad x/y registers are mirrored for each quad
|
||||||
if ( ( offset & 0xF2 ) == 0x40 )
|
if ( ( offset & 0xC2 ) == 0x40 )
|
||||||
{
|
{
|
||||||
offset &= ~0x0C;
|
offset &= ~0x0C;
|
||||||
}
|
}
|
||||||
|
|
||||||
// registers $A0-$AF are mirrored at $B0-$BF
|
// registers $A0-$AF are mirrored at $B0-$BF
|
||||||
if ( ( offset & 0xF0 ) == 0xB0 )
|
if ( ( offset & 0xE0 ) == 0xA0 )
|
||||||
{
|
{
|
||||||
offset &= ~0x10;
|
offset &= ~0x10;
|
||||||
}
|
}
|
||||||
@ -556,14 +556,14 @@ void i8244_device::render_scanline(int vpos)
|
|||||||
/* Quad objects */
|
/* Quad objects */
|
||||||
for ( int i = 0; i < ARRAY_LENGTH( m_vdc.s.quad ); i++ )
|
for ( int i = 0; i < ARRAY_LENGTH( m_vdc.s.quad ); i++ )
|
||||||
{
|
{
|
||||||
int y = m_vdc.s.quad[i].single[0].y;
|
int y = m_vdc.s.quad[i].single[0].y & 0xFE;
|
||||||
int height = 8;
|
int height = 8;
|
||||||
|
|
||||||
if ( y <= scanline && scanline < y + height * 2 )
|
if ( y <= scanline && scanline < y + height * 2 )
|
||||||
{
|
{
|
||||||
int x = m_vdc.s.quad[i].single[0].x;
|
int x = m_vdc.s.quad[i].single[0].x;
|
||||||
|
|
||||||
// Charaecter height is always determined by the height of the 4th character
|
// Character height is always determined by the height of the 4th character
|
||||||
int char_height = 8 - ( ( ( y >> 1 ) + m_vdc.s.quad[i].single[3].ptr ) & 7 );
|
int char_height = 8 - ( ( ( y >> 1 ) + m_vdc.s.quad[i].single[3].ptr ) & 7 );
|
||||||
|
|
||||||
for ( int j = 0; j < ARRAY_LENGTH( m_vdc.s.quad[0].single ); j++, x += 8 )
|
for ( int j = 0; j < ARRAY_LENGTH( m_vdc.s.quad[0].single ); j++, x += 8 )
|
||||||
|
@ -7,9 +7,8 @@ Driver file to handle emulation of the Odyssey2.
|
|||||||
TODO:
|
TODO:
|
||||||
- odyssey3 cpu/video should have different clocks
|
- odyssey3 cpu/video should have different clocks
|
||||||
- backgamm does not work, it only shows the background graphics
|
- backgamm does not work, it only shows the background graphics
|
||||||
- chess has graphics issues near the screen borders: missing A-H at bottom,
|
- chess is missing some graphics: half of the statusbar chars at the top,
|
||||||
rightmost column is not erased properly, wrongly places chars at top
|
and the A-H row at the bottom
|
||||||
- qbert has major graphics problems, similar to chess?
|
|
||||||
- missing questionmark graphics in turtles
|
- missing questionmark graphics in turtles
|
||||||
- homecomp does not work, needs new slot device
|
- homecomp does not work, needs new slot device
|
||||||
- g7400 EF9341 R/W is connected to CPU A2, what happens if it is disobeyed?
|
- g7400 EF9341 R/W is connected to CPU A2, what happens if it is disobeyed?
|
||||||
|
Loading…
Reference in New Issue
Block a user