summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commited4a36eeacd94bbbbcbb710c18b3856f2f6a968e (patch)
treeaae716bacbda3563036b855d0b094bffa73b56dd
parent2a50dbf9554ed721c060e103dacbd2c951896537 (diff)
ef9340: fix drawing over wrong area when service row is disabled
-rw-r--r--hash/videopacp.xml16
-rw-r--r--src/devices/video/ef9340_1.cpp10
-rw-r--r--src/mame/drivers/odyssey2.cpp8
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 )