From 03216ce4d152483dab2fa5e20d493c2d4ea39789 Mon Sep 17 00:00:00 2001 From: hap Date: Mon, 28 Sep 2020 18:39:08 +0200 Subject: [PATCH] =?UTF-8?q?New=20working=20software=20list=20additions=20-?= =?UTF-8?q?----------------------------------=20videopac:=20Killer=20Bees!?= =?UTF-8?q?=20(US,=20prototype,=20set=201),=20Killer=20Bees!=20(US,=20prot?= =?UTF-8?q?otype,=20set=202),=20Killer=20Bees!=20(US,=20plus,=20prototype)?= =?UTF-8?q?,=20Des=20Chiffres=20et=20des=20Lettres=20(France),=20Freedom?= =?UTF-8?q?=20Fighters!=20(US,=20plus,=20prototype),=20Linguaduc=20(Europe?= =?UTF-8?q?,=20prototype),=20The=20Adventures=20of=20Sherlock=20Holmes=20(?= =?UTF-8?q?US,=20prototype),=20Sound=20Tool=20(Europe),=20Terminal=20Progr?= =?UTF-8?q?am=20(US,=20prototype),=20Attack=20of=20the=20Timelord!=20(US,?= =?UTF-8?q?=20plus,=20prototype)=20[Ren=C3=A9=20van=20den=20Enden=20(Rene?= =?UTF-8?q?=5FG7400)]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hash/videopac.xml | 171 +++++++++++++++++++++++++++------ src/devices/video/ef9340_1.cpp | 5 +- src/mame/drivers/odyssey2.cpp | 132 ++++++++++++++++--------- 3 files changed, 230 insertions(+), 78 deletions(-) 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 )