diff options
author | hap <happppp@users.noreply.github.com> | 2020-08-24 23:53:41 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2020-08-24 23:53:56 +0200 |
commit | ed4a36eeacd94bbbbcbb710c18b3856f2f6a968e (patch) | |
tree | aae716bacbda3563036b855d0b094bffa73b56dd | |
parent | 2a50dbf9554ed721c060e103dacbd2c951896537 (diff) |
ef9340: fix drawing over wrong area when service row is disabled
-rw-r--r-- | hash/videopacp.xml | 16 | ||||
-rw-r--r-- | src/devices/video/ef9340_1.cpp | 10 | ||||
-rw-r--r-- | src/mame/drivers/odyssey2.cpp | 8 |
3 files changed, 19 insertions, 15 deletions
diff --git a/hash/videopacp.xml b/hash/videopacp.xml index bcaf18c1d6f..88cb6308e56 100644 --- a/hash/videopacp.xml +++ b/hash/videopacp.xml @@ -368,7 +368,7 @@ Do Videopac+/Odyssey3 versions exist?: <software name="exojet"> <description>Exojet+ (France)</description> - <year>198?</year> + <year>1983</year> <publisher>Brandt</publisher> <part name="cart" interface="odyssey_cart"> <feature name="slot" value="o2_rom" /> @@ -381,7 +381,7 @@ Do Videopac+/Odyssey3 versions exist?: <software name="englouti"> <description>Le Tresor Englouti+ (France)</description> - <year>198?</year> + <year>1984</year> <publisher>Brandt</publisher> <part name="cart" interface="odyssey_cart"> <feature name="slot" value="o2_rom" /> @@ -440,7 +440,7 @@ Do Videopac+/Odyssey3 versions exist?: <software name="norseman"> <description>Norseman (Europe)</description> - <year>198?</year> + <year>1983</year> <publisher>GST Video</publisher> <info name="programmer" value="Andy Eltisand Jake Dowding" /> <info name="serial" value="57" /> @@ -455,7 +455,7 @@ Do Videopac+/Odyssey3 versions exist?: <software name="rally"> <description>Trans American Rally (Europe)</description> - <year>198?</year> + <year>1983</year> <publisher>Philips</publisher> <part name="cart" interface="odyssey_cart"> <feature name="slot" value="o2_rally" /> @@ -468,11 +468,11 @@ Do Videopac+/Odyssey3 versions exist?: -<!-- Odyssey³ prototypes, they won't work properly on European consoles --> +<!-- Odyssey³ prototypes, they won't work properly on European VP+ consoles --> <software name="baseballpl"> <description>Baseball (US, plus, prototype)</description> - <year>198?</year> + <year>1983</year> <publisher>Philips</publisher> <part name="cart" interface="odyssey_cart"> <feature name="slot" value="o2_rom" /> @@ -484,8 +484,8 @@ Do Videopac+/Odyssey3 versions exist?: </software> <software name="flashp"> - <description>Flashpoint (US, prototype)</description> - <year>198?</year> + <description>Flash Point (US, prototype)</description> + <year>1983</year> <publisher>Philips</publisher> <part name="cart" interface="odyssey_cart"> <feature name="slot" value="o2_rom" /> diff --git a/src/devices/video/ef9340_1.cpp b/src/devices/video/ef9340_1.cpp index b9e595511fd..9cc05ab747b 100644 --- a/src/devices/video/ef9340_1.cpp +++ b/src/devices/video/ef9340_1.cpp @@ -323,9 +323,6 @@ uint8_t ef9340_1_device::ef9341_read( uint8_t command, uint8_t b ) void ef9340_1_device::ef9340_scanline(int vpos) { - for (int i = 0; i < m_tmp_bitmap.width(); i++) - m_tmp_bitmap.pix16(vpos, i) = 0; - vpos -= m_offset_y; if (vpos < 0) return; @@ -360,7 +357,7 @@ void ef9340_1_device::ef9340_scanline(int vpos) { // Service row is disabled for (int i = 0; i < 40 * 8; i++) - m_tmp_bitmap.pix16(vpos, i) = 8; + m_tmp_bitmap.pix16(m_offset_y + vpos, m_offset_x + i) = 8; return; } } @@ -480,6 +477,11 @@ void ef9340_1_device::ef9340_scanline(int vpos) } } } + else + { + for (int i = 0; i < 40 * 8; i++) + m_tmp_bitmap.pix16(m_offset_y + vpos, m_offset_x + i) = 0; + } // determine next h parity if (vpos >= 10 && slice == 9) diff --git a/src/mame/drivers/odyssey2.cpp b/src/mame/drivers/odyssey2.cpp index a8ee2a172b4..d107f6e4067 100644 --- a/src/mame/drivers/odyssey2.cpp +++ b/src/mame/drivers/odyssey2.cpp @@ -60,6 +60,8 @@ TODO: glitches (it is used to an advantage in some as-of-yet undumped homebrews) - 8244(NTSC) is not supposed to show characters near the upper border, but hiding them will cause bugs in some Euro games +- 8245(PAL) video timing is not 100% accurate, though vtotal and htotal should + be correct - according to tests, 8244 does not have a sound interrupt, but the Philips service test cartridge for 8245 tests for it and fails if it did not get an irq - likewise, 8244 does not have a horizontal interrupt, but does 8245 have it? @@ -559,7 +561,7 @@ static INPUT_PORTS_START( odyssey2 ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y / Yes") PORT_CODE(KEYCODE_Y) PORT_CHAR('Y') PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N / No") PORT_CODE(KEYCODE_N) PORT_CHAR('N') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(8) + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_START("KEY.6") @@ -643,7 +645,7 @@ static INPUT_PORTS_START( g7400 ) PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(u8"= \u2192") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Y / Yes") PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("N / No") PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') - PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear ;") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(8) PORT_CHAR(';') + PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Clear ;") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_CHAR(';') PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter _") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(10) PORT_CHAR('_') PORT_MODIFY("KEY.6") @@ -862,4 +864,4 @@ COMP( 1979, videopacf, odyssey2, 0, videopacf, odyssey2, odyssey2_state, empty COMP( 1983, videopacp, 0, 0, g7400, g7400, videopacp_state, empty_init, "Philips", "Videopac+ G7400 (Europe)", MACHINE_SUPPORTS_SAVE ) COMP( 1983, jopac, videopacp, 0, jo7400, g7400, videopacp_state, empty_init, "Philips (Brandt license)", "Jopac JO7400 (France)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, odyssey3, videopacp, 0, odyssey3, g7400, videopacp_state, empty_init, "Magnavox", "Odyssey 3 Command Center (US, prototype)", MACHINE_SUPPORTS_SAVE ) +COMP( 1983, odyssey3, videopacp, 0, odyssey3, g7400, videopacp_state, empty_init, "Philips", "Odyssey 3 Command Center (US, prototype)", MACHINE_SUPPORTS_SAVE ) |