diff --git a/hash/odyssey2.xml b/hash/odyssey2.xml index fc15a63d59a..080a1fe7469 100644 --- a/hash/odyssey2.xml +++ b/hash/odyssey2.xml @@ -1356,7 +1356,7 @@ The C7010 Chess Module had a NSC800 CMOS microprocessor, with 2K RAM and 8K ROM. - + Q*bert (Euro) 1983 Parker Brothers @@ -1707,7 +1707,7 @@ The C7010 Chess Module had a NSC800 CMOS microprocessor, with 2K RAM and 8K ROM. - + Turtles (Euro) 1982 Philips @@ -1721,7 +1721,7 @@ The C7010 Chess Module had a NSC800 CMOS microprocessor, with 2K RAM and 8K ROM. - + Turtles (USA) 1983 Philips diff --git a/src/devices/video/i8244.cpp b/src/devices/video/i8244.cpp index 72c59bfb587..71220095e2a 100644 --- a/src/devices/video/i8244.cpp +++ b/src/devices/video/i8244.cpp @@ -280,14 +280,14 @@ int i8244_device::get_x_beam() offs_t i8244_device::fix_register_mirrors( offs_t offset ) { - // registers $40,$41 are mirrored at $44,$45, $48,$49, and $4C,$4D - if ( ( offset & 0xF2 ) == 0x40 ) + // quad x/y registers are mirrored for each quad + if ( ( offset & 0xC2 ) == 0x40 ) { offset &= ~0x0C; } // registers $A0-$AF are mirrored at $B0-$BF - if ( ( offset & 0xF0 ) == 0xB0 ) + if ( ( offset & 0xE0 ) == 0xA0 ) { offset &= ~0x10; } @@ -556,14 +556,14 @@ void i8244_device::render_scanline(int vpos) /* Quad objects */ 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; if ( y <= scanline && scanline < y + height * 2 ) { 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 ); for ( int j = 0; j < ARRAY_LENGTH( m_vdc.s.quad[0].single ); j++, x += 8 ) diff --git a/src/mame/drivers/odyssey2.cpp b/src/mame/drivers/odyssey2.cpp index bf779a38092..f2a3ae2aefb 100644 --- a/src/mame/drivers/odyssey2.cpp +++ b/src/mame/drivers/odyssey2.cpp @@ -7,9 +7,8 @@ Driver file to handle emulation of the Odyssey2. TODO: - odyssey3 cpu/video should have different clocks - backgamm does not work, it only shows the background graphics -- chess has graphics issues near the screen borders: missing A-H at bottom, - rightmost column is not erased properly, wrongly places chars at top -- qbert has major graphics problems, similar to chess? +- chess is missing some graphics: half of the statusbar chars at the top, + and the A-H row at the bottom - missing questionmark graphics in turtles - homecomp does not work, needs new slot device - g7400 EF9341 R/W is connected to CPU A2, what happens if it is disobeyed?