diff --git a/hash/videopac.xml b/hash/videopac.xml
index 5badbd7fc39..16c244e535c 100644
--- a/hash/videopac.xml
+++ b/hash/videopac.xml
@@ -20,22 +20,18 @@ TODO:
Undumped (or dumped but not public):
- Spaans (spanish to dutch translator)
- Crazy Horses
-- Des Chiffres et des Lettres
- misc. homebrew cartridges
Protos:
- Bastion youtube.com/watch?v=cFdmgs4r7_E
- Catburglar youtube.com/watch?v=DDsWDFxy0oE
- Himalaya youtube.com/watch?v=L_lvOs6EnA4
-- SoundTool youtube.com/watch?v=7JYn6B7rxqw
- Terrahawks youtube.com/watch?v=AXk7OSA6NGg
http://www.ozyr.com/rene/PICS/protos.jpg
-- Sherlock Holmes Consulting Detective (programmed by Ed Friedman, most likely dumped and hoarded)
- Back Gammon
- Freedom Fighters
- K.C.'s Crazy Chase
-- Killer Bees (also 10/12/82 (silent version), and 11/12/82 builds exist)
- Handicap I (?)
- Frogger
- Robot City
@@ -53,14 +49,9 @@ Unreleased, possibly no prototypes exist:
Undumped Odyssey³/G7400 prototypes:
-USA:
-- TMS2764
-- Freedom Fighters
-- Pick Axe Pete
-
http://www.ozyr.com/rene/PICS/protos.jpg
+- Pick Axe Pete
- Modem Program
-- Attack of the Time Lord
- Requins [Shark Hunter]
- monsternet dedicated g7400 840209 [Norseman]
- 58+ Air Battle
@@ -189,6 +180,18 @@ Official VP+ upgaded versions (simply adds a background picture):
+
+ Linguaduc (Europe, prototype)
+ 198?
+ Carba
+
+
+
+
+
+
+
+
Newscaster (Europe)
1980
@@ -228,7 +231,19 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
+ Sound Tool (Europe)
+ 198?
+ Philips
+
+
+
+
+
+
+
+
+
Service Test Cartridge (Europe)
198?
Philips
@@ -737,7 +752,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -803,7 +818,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
Conquest of the World (Europe, US)
1981
Philips
@@ -951,6 +966,18 @@ Official VP+ upgaded versions (simply adds a background picture):
+
+ Des Chiffres et des Lettres (France)
+ 198?
+ Brandt
+
+
+
+
+
+
+
+
Electronic Billiards (Europe, US)
1978
@@ -1235,6 +1262,32 @@ Official VP+ upgaded versions (simply adds a background picture):
+
+ Killer Bees! (US, prototype, set 1)
+ 1982
+ Philips
+
+
+
+
+
+
+
+
+
+
+ Killer Bees! (US, prototype, set 2)
+ 1982
+ Philips
+
+
+
+
+
+
+
+
+
Las Vegas Gambling (Europe, US)
1980
@@ -1825,7 +1878,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -1857,6 +1910,18 @@ Official VP+ upgaded versions (simply adds a background picture):
+
+ The Adventures of Sherlock Holmes (US, prototype)
+ 198?
+ Magnavox
+
+
+
+
+
+
+
+
The Great Wall Street Fortune Hunt (Europe, US)
1983
@@ -1907,7 +1972,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
The Quest for the Rings (Europe, US)
1981
Philips
@@ -1921,7 +1986,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
La Quête des Anneux (France)
1982
Radiola
@@ -2032,7 +2097,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -2060,7 +2125,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -2139,7 +2204,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -2152,7 +2217,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -2165,7 +2230,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -2230,7 +2295,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -2399,7 +2464,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
@@ -2436,8 +2501,21 @@ Official VP+ upgaded versions (simply adds a background picture):
+
+ Attack of the Timelord! (US, plus, prototype)
+ 1983
+ Philips
+
+
+
+
+
+
+
+
+
- Baseball (US, plus, prototype)
+ Baseball! (US, plus, prototype)
1983
Philips
@@ -2462,6 +2540,45 @@ Official VP+ upgaded versions (simply adds a background picture):
+
+ Freedom Fighters! (US, plus, prototype)
+ 1983
+ Philips
+
+
+
+
+
+
+
+
+
+
+ Killer Bees! (US, plus, prototype)
+ 1983
+ Philips
+
+
+
+
+
+
+
+
+
+
+ Terminal Program (US, prototype)
+ 1983
+ Philips
+
+
+
+
+
+
+
+
+
@@ -2492,7 +2609,6 @@ Official VP+ upgaded versions (simply adds a background picture):
-
Death Race (US)
2014
@@ -2501,7 +2617,8 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
+
@@ -2514,7 +2631,7 @@ Official VP+ upgaded versions (simply adds a background picture):
-
+
diff --git a/src/devices/video/ef9340_1.cpp b/src/devices/video/ef9340_1.cpp
index 39fe1b752c7..52e51f2bb70 100644
--- a/src/devices/video/ef9340_1.cpp
+++ b/src/devices/video/ef9340_1.cpp
@@ -16,7 +16,6 @@ This is implemented with a callback. The datasheet explains how to hook up
TODO:
- busy state (right now it is immediate)
- internal display timing (on g7400, most of it is done externally)
-- read slice from internal ROM
- window boxing
- Y zoom
@@ -299,8 +298,8 @@ uint8_t ef9340_1_device::ef9341_read( uint8_t command, uint8_t b )
if (b >= 0xa0)
m_ef9341.TA = m_read_exram(a << 12 | b << 4 | slice);
- else
- logerror("ef9341 read slice from internal\n");
+ else if (slice < 10)
+ m_ef9341.TA = m_charset[(((a & 0x80) | (b & 0x7f)) * 10) + slice];
// Increment slice number
m_ef9340.M = ( m_ef9340.M & 0xf0) | ( ( slice + 1 ) % 10 );
diff --git a/src/mame/drivers/odyssey2.cpp b/src/mame/drivers/odyssey2.cpp
index f8da9a3ce8c..d7ae5c52a5a 100644
--- a/src/mame/drivers/odyssey2.cpp
+++ b/src/mame/drivers/odyssey2.cpp
@@ -78,8 +78,8 @@ TODO:
- 4in1 and musician are not supposed to work on g7400, but work fine on MAME,
caused by bus conflict or because they write to P2?
- verify odyssey3 cpu/video clocks
-- odyssey3 keyboard layout is not the same as g7400, but there is no software
- to test the scancodes
+- problems with natural keyboard: videopacp has two enter keys, odyssey3 has
+ alternate inputs for -, =, +
- partial screen updates aren't shown when using MAME's debugger, this is caused
by a forced full screen update and a reset_partial_updates in emu/video.cpp.
For the same reason, collision detection also won't work properly when stepping
@@ -167,10 +167,10 @@ private:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-class videopacp_state : public odyssey2_state
+class vpp_state : public odyssey2_state
{
public:
- videopacp_state(const machine_config &mconfig, device_type type, const char *tag) :
+ vpp_state(const machine_config &mconfig, device_type type, const char *tag) :
odyssey2_state(mconfig, type, tag),
m_i8243(*this, "i8243"),
m_ef934x(*this, "ef934x")
@@ -214,7 +214,7 @@ void odyssey2_state::machine_start()
save_item(NAME(m_p2));
}
-void videopacp_state::machine_start()
+void vpp_state::machine_start()
{
odyssey2_state::machine_start();
memset(m_ef934x_extram, 0, sizeof(m_ef934x_extram));
@@ -273,7 +273,7 @@ uint32_t odyssey2_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
return 0;
}
-uint32_t videopacp_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+uint32_t vpp_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
u8 lum = ~m_p1 >> 4 & 0x08;
bitmap_ind16 *ef934x_bitmap = m_ef934x->get_bitmap();
@@ -402,19 +402,19 @@ READ_LINE_MEMBER(odyssey2_state::t1_read)
// G7400-specific
-uint8_t videopacp_state::io_read(offs_t offset)
+uint8_t vpp_state::io_read(offs_t offset)
{
u8 data = odyssey2_state::io_read(offset);
return io_vpp(offset, data);
}
-void videopacp_state::io_write(offs_t offset, uint8_t data)
+void vpp_state::io_write(offs_t offset, uint8_t data)
{
odyssey2_state::io_write(offset, data);
io_vpp(offset, data);
}
-uint8_t videopacp_state::io_vpp(offs_t offset, uint8_t data)
+uint8_t vpp_state::io_vpp(offs_t offset, uint8_t data)
{
if (!(m_p1 & 0x20))
{
@@ -428,14 +428,14 @@ uint8_t videopacp_state::io_vpp(offs_t offset, uint8_t data)
return data;
}
-void videopacp_state::p2_write(uint8_t data)
+void vpp_state::p2_write(uint8_t data)
{
odyssey2_state::p2_write(data);
m_i8243->p2_w(m_p2 & 0x0f);
}
template
-void videopacp_state::i8243_port_w(uint8_t data)
+void vpp_state::i8243_port_w(uint8_t data)
{
// P4,P5: color mix I8244 side (IC674)
// P6,P7: color mix EF9340 side (IC678)
@@ -457,7 +457,7 @@ void videopacp_state::i8243_port_w(uint8_t data)
// EF9341 extended RAM
-offs_t videopacp_state::ef934x_extram_address(offs_t offset)
+offs_t vpp_state::ef934x_extram_address(offs_t offset)
{
u8 latch = (offset >> 12 & 0x80) | (offset >> 4 & 0x7f);
u16 address = (latch & 0x1f) | (offset << 9 & 0x200) | (latch << 3 & 0x400);
@@ -468,12 +468,12 @@ offs_t videopacp_state::ef934x_extram_address(offs_t offset)
return address | (offset << 4 & 0x60) | (latch << 2 & 0x180);
}
-uint8_t videopacp_state::ef934x_extram_r(offs_t offset)
+uint8_t vpp_state::ef934x_extram_r(offs_t offset)
{
return m_ef934x_extram[ef934x_extram_address(offset)];
}
-void videopacp_state::ef934x_extram_w(offs_t offset, uint8_t data)
+void vpp_state::ef934x_extram_w(offs_t offset, uint8_t data)
{
m_ef934x_extram[ef934x_extram_address(offset)] = data;
}
@@ -502,7 +502,7 @@ void odyssey2_state::odyssey2_io(address_map &map)
Input Ports
******************************************************************************/
-static INPUT_PORTS_START( odyssey2 )
+static INPUT_PORTS_START( o2 )
PORT_START("KEY.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_0) PORT_CHAR('0')
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1')
@@ -589,8 +589,8 @@ static INPUT_PORTS_START( odyssey2 )
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, odyssey2_state, reset_button, 0)
INPUT_PORTS_END
-static INPUT_PORTS_START( g7400 )
- PORT_INCLUDE( odyssey2 )
+static INPUT_PORTS_START( vpp )
+ PORT_INCLUDE( o2 )
PORT_MODIFY("KEY.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 #") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('#')
@@ -648,7 +648,7 @@ static INPUT_PORTS_START( g7400 )
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Enter _") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(10) PORT_CHAR('_')
PORT_MODIFY("KEY.6")
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ret") PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ret") PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13) // clash with KEY.5 0x80
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(": *") PORT_CODE(KEYCODE_COLON) PORT_CHAR(':') PORT_CHAR('*')
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("| @") PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('|') PORT_CHAR('@')
@@ -664,6 +664,42 @@ static INPUT_PORTS_START( g7400 )
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Esc") PORT_CODE(KEYCODE_ESC) PORT_CHAR(27)
INPUT_PORTS_END
+static INPUT_PORTS_START( o3 )
+ PORT_INCLUDE( vpp )
+
+ PORT_MODIFY("KEY.0")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("0 )") PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')')
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("1 !") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("2 @") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("3 #") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#')
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("6 ^") PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^')
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("7 &") PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&')
+
+ PORT_MODIFY("KEY.1")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("8 *") PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(')
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("9 (") PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')')
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("/ ?") PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
+
+ PORT_MODIFY("KEY.4")
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(". >") PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>')
+
+ PORT_MODIFY("KEY.5")
+ 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_MODIFY("KEY.6")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("] }") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME(", <") PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<')
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("; :") PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':')
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("- _") PORT_CODE(KEYCODE_PGDN) // clash with KEY.5 0x01
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("' \"") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('\"')
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("[ {") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("= +") PORT_CODE(KEYCODE_PGUP) // clash with KEY.2 0x01 and KEY.5 0x08
+
+ PORT_MODIFY("KEY.7")
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2)
+INPUT_PORTS_END
+
/******************************************************************************
@@ -730,38 +766,38 @@ void odyssey2_state::videopacf(machine_config &config)
}
-void videopacp_state::g7400(machine_config &config)
+void vpp_state::g7400(machine_config &config)
{
/* basic machine hardware */
I8048(config, m_maincpu, 5.911_MHz_XTAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &videopacp_state::odyssey2_mem);
- m_maincpu->set_addrmap(AS_IO, &videopacp_state::odyssey2_io);
- m_maincpu->p1_out_cb().set(FUNC(videopacp_state::p1_write));
- m_maincpu->p2_in_cb().set(FUNC(videopacp_state::p2_read));
- m_maincpu->p2_out_cb().set(FUNC(videopacp_state::p2_write));
- m_maincpu->bus_in_cb().set(FUNC(videopacp_state::bus_read));
+ m_maincpu->set_addrmap(AS_PROGRAM, &vpp_state::odyssey2_mem);
+ m_maincpu->set_addrmap(AS_IO, &vpp_state::odyssey2_io);
+ m_maincpu->p1_out_cb().set(FUNC(vpp_state::p1_write));
+ m_maincpu->p2_in_cb().set(FUNC(vpp_state::p2_read));
+ m_maincpu->p2_out_cb().set(FUNC(vpp_state::p2_write));
+ m_maincpu->bus_in_cb().set(FUNC(vpp_state::bus_read));
m_maincpu->t0_in_cb().set("cartslot", FUNC(o2_cart_slot_device::t0_read));
- m_maincpu->t1_in_cb().set(FUNC(videopacp_state::t1_read));
+ m_maincpu->t1_in_cb().set(FUNC(vpp_state::t1_read));
m_maincpu->prog_out_cb().set(m_i8243, FUNC(i8243_device::prog_w));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_screen_update(FUNC(videopacp_state::screen_update));
+ m_screen->set_screen_update(FUNC(vpp_state::screen_update));
m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
m_screen->set_palette("palette");
PALETTE(config, "palette", m_i8244, FUNC(i8244_device::i8244_palette), 16);
I8243(config, m_i8243);
- m_i8243->p4_out_cb().set(FUNC(videopacp_state::i8243_port_w<0>));
- m_i8243->p5_out_cb().set(FUNC(videopacp_state::i8243_port_w<1>));
- m_i8243->p6_out_cb().set(FUNC(videopacp_state::i8243_port_w<2>));
- m_i8243->p7_out_cb().set(FUNC(videopacp_state::i8243_port_w<3>));
+ m_i8243->p4_out_cb().set(FUNC(vpp_state::i8243_port_w<0>));
+ m_i8243->p5_out_cb().set(FUNC(vpp_state::i8243_port_w<1>));
+ m_i8243->p6_out_cb().set(FUNC(vpp_state::i8243_port_w<2>));
+ m_i8243->p7_out_cb().set(FUNC(vpp_state::i8243_port_w<3>));
EF9340_1(config, m_ef934x, (8.867_MHz_XTAL * 2) / 5, "screen");
m_ef934x->set_offsets(15, 5);
- m_ef934x->read_exram().set(FUNC(videopacp_state::ef934x_extram_r));
- m_ef934x->write_exram().set(FUNC(videopacp_state::ef934x_extram_w));
+ m_ef934x->read_exram().set(FUNC(vpp_state::ef934x_extram_r));
+ m_ef934x->write_exram().set(FUNC(vpp_state::ef934x_extram_w));
I8245(config, m_i8244, (8.867_MHz_XTAL * 2) / 5);
m_i8244->set_screen("screen");
@@ -776,7 +812,7 @@ void videopacp_state::g7400(machine_config &config)
SOFTWARE_LIST(config, "cart_list").set_original("videopac").set_filter("VPP");
}
-void videopacp_state::jo7400(machine_config &config)
+void vpp_state::jo7400(machine_config &config)
{
g7400(config);
@@ -785,7 +821,7 @@ void videopacp_state::jo7400(machine_config &config)
m_ef934x->set_clock(3.5625_MHz_XTAL);
}
-void videopacp_state::odyssey3(machine_config &config)
+void vpp_state::odyssey3(machine_config &config)
{
g7400(config);
@@ -815,33 +851,33 @@ void videopacp_state::odyssey3(machine_config &config)
ROM_START (videopac)
ROM_REGION(0x0400,"maincpu",0)
- ROM_LOAD ("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee))
+ ROM_LOAD("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee))
ROM_END
ROM_START (odyssey2)
ROM_REGION(0x0400,"maincpu",0)
- ROM_LOAD ("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee))
+ ROM_LOAD("o2bios.rom", 0x0000, 0x0400, CRC(8016a315) SHA1(b2e1955d957a475de2411770452eff4ea19f4cee))
ROM_END
ROM_START (videopacf)
ROM_REGION(0x0400,"maincpu",0)
- ROM_LOAD ("c52.rom", 0x0000, 0x0400, CRC(a318e8d6) SHA1(a6120aed50831c9c0d95dbdf707820f601d9452e))
+ ROM_LOAD("c52.rom", 0x0000, 0x0400, CRC(a318e8d6) SHA1(a6120aed50831c9c0d95dbdf707820f601d9452e))
ROM_END
ROM_START (videopacp)
ROM_REGION(0x0400,"maincpu",0)
- ROM_LOAD ("g7400.bin", 0x0000, 0x0400, CRC(e20a9f41) SHA1(5130243429b40b01a14e1304d0394b8459a6fbae))
+ ROM_LOAD("g7400.bin", 0x0000, 0x0400, CRC(e20a9f41) SHA1(5130243429b40b01a14e1304d0394b8459a6fbae))
ROM_END
ROM_START (jopac)
ROM_REGION(0x0400,"maincpu",0)
- ROM_LOAD ("jopac.bin", 0x0000, 0x0400, CRC(11647ca5) SHA1(54b8d2c1317628de51a85fc1c424423a986775e4))
+ ROM_LOAD("jopac.bin", 0x0000, 0x0400, CRC(11647ca5) SHA1(54b8d2c1317628de51a85fc1c424423a986775e4))
ROM_END
ROM_START (odyssey3)
ROM_REGION(0x0400, "maincpu", 0)
- ROM_LOAD ("odyssey3.bin", 0x0000, 0x0400, CRC(e2b23324) SHA1(0a38c5f2cea929d2fe0a23e5e1a60de9155815dc))
+ ROM_LOAD("odyssey3.bin", 0x0000, 0x0400, CRC(e2b23324) SHA1(0a38c5f2cea929d2fe0a23e5e1a60de9155815dc))
ROM_END
} // anonymous namespace
@@ -852,11 +888,11 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-COMP( 1978, videopac, 0, 0, videopac, odyssey2, odyssey2_state, empty_init, "Philips", "Videopac G7000 (Europe)", MACHINE_SUPPORTS_SAVE )
-COMP( 1979, videopacf, videopac, 0, videopacf, odyssey2, odyssey2_state, empty_init, "Philips", "Videopac C52 (France)", MACHINE_SUPPORTS_SAVE )
-COMP( 1979, odyssey2, videopac, 0, odyssey2, odyssey2, odyssey2_state, empty_init, "Magnavox", "Odyssey 2 (US)", MACHINE_SUPPORTS_SAVE )
+// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+COMP( 1978, videopac, 0, 0, videopac, o2, odyssey2_state, empty_init, "Philips", "Videopac G7000 (Europe)", MACHINE_SUPPORTS_SAVE )
+COMP( 1979, videopacf, videopac, 0, videopacf, o2, odyssey2_state, empty_init, "Philips", "Videopac C52 (France)", MACHINE_SUPPORTS_SAVE )
+COMP( 1979, odyssey2, videopac, 0, odyssey2, o2, odyssey2_state, empty_init, "Magnavox", "Odyssey 2 (US)", MACHINE_SUPPORTS_SAVE )
-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, "Philips", "Odyssey 3 Command Center (US, prototype)", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, videopacp, 0, 0, g7400, vpp, vpp_state, empty_init, "Philips", "Videopac+ G7400 (Europe)", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, jopac, videopacp, 0, jo7400, vpp, vpp_state, empty_init, "Philips (Brandt license)", "Jopac JO7400 (France)", MACHINE_SUPPORTS_SAVE )
+COMP( 1983, odyssey3, videopacp, 0, odyssey3, o3, vpp_state, empty_init, "Philips", "Odyssey 3 Command Center (US, prototype)", MACHINE_SUPPORTS_SAVE )