diff --git a/hash/odyssey2.xml b/hash/videopac.xml similarity index 99% rename from hash/odyssey2.xml rename to hash/videopac.xml index 8e6587b9301..347598ced0f 100644 --- a/hash/odyssey2.xml +++ b/hash/videopac.xml @@ -4,8 +4,8 @@ license:CC0 The softwarelist is sorted alphabetically per title, not counting clone sets. -See g7400.xml for G7400 cartridges that can also be run on G7000/O2. -When adding new sets, avoid naming conflicts between odyssey2.xml and g7400.xml. +See videopacp.xml for G7400 cartridges that can also be run on G7000/O2. +When adding new sets, avoid naming conflicts between videopac.xml and videopacp.xml. This list does not include ROM hacks, but those can still be loaded with -cart. WIP beta homebrews are also not included. @@ -136,7 +136,7 @@ Official VP+ upgaded versions (simply adds a background picture): --> - + diff --git a/hash/g7400.xml b/hash/videopacp.xml similarity index 98% rename from hash/g7400.xml rename to hash/videopacp.xml index 337730b1b14..c32af2c1ee1 100644 --- a/hash/g7400.xml +++ b/hash/videopacp.xml @@ -4,8 +4,8 @@ license:CC0 The softwarelist is sorted alphabetically per title, not counting clone sets. -When adding new sets, avoid naming conflicts between g7400.xml and odyssey2.xml, -games that have prototypes or older sets in odyssey2.xml are marked "Plus" here. +When adding new sets, avoid naming conflicts between videopacp.xml and videopac.xml, +games that have prototypes or older sets in videopac.xml are marked "Plus" here. Most of these were normal Videopac G7000 carts with enhanced graphics for the Videopac Plus G7400 and the unreleased Odyssey³ Command Center @@ -39,7 +39,7 @@ Do Videopac+/Odyssey3 versions exist?: --> - + diff --git a/src/mame/drivers/odyssey2.cpp b/src/mame/drivers/odyssey2.cpp index 539f832362e..24980e784dd 100644 --- a/src/mame/drivers/odyssey2.cpp +++ b/src/mame/drivers/odyssey2.cpp @@ -65,7 +65,7 @@ TODO: - ppp(the tetris game) does not work properly on PAL, is this homebrew NTSC-only, or is PAL detection going wrong? It does look like PAL/NTSC detection is working, see internal RAM $3D d7. So maybe it is due to inaccurate PAL video timing. - The game does mid-scanline updates. + The game does mid-scanline video updates. - g7400 probably has different video timing too (not same as g7000) - g7400 helicopt sometimes locks up at the sea level, timing related? - 4in1 and musician are not supposed to work on g7400, but work fine on MAME, @@ -160,10 +160,10 @@ private: uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); }; -class g7400_state : public odyssey2_state +class videopacp_state : public odyssey2_state { public: - g7400_state(const machine_config &mconfig, device_type type, const char *tag) : + videopacp_state(const machine_config &mconfig, device_type type, const char *tag) : odyssey2_state(mconfig, type, tag), m_i8243(*this, "i8243"), m_ef934x(*this, "ef934x") @@ -207,7 +207,7 @@ void odyssey2_state::machine_start() save_item(NAME(m_p2)); } -void g7400_state::machine_start() +void videopacp_state::machine_start() { odyssey2_state::machine_start(); memset(m_ef934x_extram, 0, sizeof(m_ef934x_extram)); @@ -266,7 +266,7 @@ uint32_t odyssey2_state::screen_update(screen_device &screen, bitmap_ind16 &bitm return 0; } -uint32_t g7400_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t videopacp_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(); @@ -395,19 +395,19 @@ READ_LINE_MEMBER(odyssey2_state::t1_read) // G7400-specific -uint8_t g7400_state::io_read(offs_t offset) +uint8_t videopacp_state::io_read(offs_t offset) { u8 data = odyssey2_state::io_read(offset); return io_vpp(offset, data); } -void g7400_state::io_write(offs_t offset, uint8_t data) +void videopacp_state::io_write(offs_t offset, uint8_t data) { odyssey2_state::io_write(offset, data); io_vpp(offset, data); } -uint8_t g7400_state::io_vpp(offs_t offset, uint8_t data) +uint8_t videopacp_state::io_vpp(offs_t offset, uint8_t data) { if (!(m_p1 & 0x20)) { @@ -421,14 +421,14 @@ uint8_t g7400_state::io_vpp(offs_t offset, uint8_t data) return data; } -void g7400_state::p2_write(uint8_t data) +void videopacp_state::p2_write(uint8_t data) { odyssey2_state::p2_write(data); m_i8243->p2_w(m_p2 & 0x0f); } template -void g7400_state::i8243_port_w(uint8_t data) +void videopacp_state::i8243_port_w(uint8_t data) { // P4,P5: color mix I8244 side (IC674) // P6,P7: color mix EF9340 side (IC678) @@ -450,7 +450,7 @@ void g7400_state::i8243_port_w(uint8_t data) // EF9341 extended RAM -offs_t g7400_state::ef934x_extram_address(offs_t offset) +offs_t videopacp_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); @@ -461,12 +461,12 @@ offs_t g7400_state::ef934x_extram_address(offs_t offset) return address | (offset << 4 & 0x60) | (latch << 2 & 0x180); } -uint8_t g7400_state::ef934x_extram_r(offs_t offset) +uint8_t videopacp_state::ef934x_extram_r(offs_t offset) { return m_ef934x_extram[ef934x_extram_address(offset)]; } -void g7400_state::ef934x_extram_w(offs_t offset, uint8_t data) +void videopacp_state::ef934x_extram_w(offs_t offset, uint8_t data) { m_ef934x_extram[ef934x_extram_address(offset)] = data; } @@ -694,8 +694,8 @@ void odyssey2_state::odyssey2(machine_config &config) /* cartridge */ O2_CART_SLOT(config, m_cart, o2_cart, nullptr); - SOFTWARE_LIST(config, "cart_list").set_original("odyssey2").set_filter("O2"); - SOFTWARE_LIST(config, "g7400_list").set_compatible("g7400").set_filter("O2"); + SOFTWARE_LIST(config, "cart_list").set_original("videopac").set_filter("O2"); + SOFTWARE_LIST(config, "vpp_list").set_compatible("videopacp").set_filter("O2"); } void odyssey2_state::videopac(machine_config &config) @@ -712,7 +712,7 @@ void odyssey2_state::videopac(machine_config &config) m_maincpu->set_clock(17.734476_MHz_XTAL / 3); subdevice("cart_list")->set_filter("VP"); - subdevice("g7400_list")->set_filter("VP"); + subdevice("vpp_list")->set_filter("VP"); } void odyssey2_state::videopacf(machine_config &config) @@ -725,38 +725,38 @@ void odyssey2_state::videopacf(machine_config &config) } -void g7400_state::g7400(machine_config &config) +void videopacp_state::g7400(machine_config &config) { /* basic machine hardware */ I8048(config, m_maincpu, 5.911_MHz_XTAL); - m_maincpu->set_addrmap(AS_PROGRAM, &g7400_state::odyssey2_mem); - m_maincpu->set_addrmap(AS_IO, &g7400_state::odyssey2_io); - m_maincpu->p1_out_cb().set(FUNC(g7400_state::p1_write)); - m_maincpu->p2_in_cb().set(FUNC(g7400_state::p2_read)); - m_maincpu->p2_out_cb().set(FUNC(g7400_state::p2_write)); - m_maincpu->bus_in_cb().set(FUNC(g7400_state::bus_read)); + 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->t0_in_cb().set("cartslot", FUNC(o2_cart_slot_device::t0_read)); - m_maincpu->t1_in_cb().set(FUNC(g7400_state::t1_read)); + m_maincpu->t1_in_cb().set(FUNC(videopacp_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(g7400_state::screen_update)); + m_screen->set_screen_update(FUNC(videopacp_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(g7400_state::i8243_port_w<0>)); - m_i8243->p5_out_cb().set(FUNC(g7400_state::i8243_port_w<1>)); - m_i8243->p6_out_cb().set(FUNC(g7400_state::i8243_port_w<2>)); - m_i8243->p7_out_cb().set(FUNC(g7400_state::i8243_port_w<3>)); + 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>)); EF9340_1(config, m_ef934x, (8.867_MHz_XTAL * 2) / 5, "screen"); m_ef934x->set_offsets(15, 5); - m_ef934x->read_exram().set(FUNC(g7400_state::ef934x_extram_r)); - m_ef934x->write_exram().set(FUNC(g7400_state::ef934x_extram_w)); + m_ef934x->read_exram().set(FUNC(videopacp_state::ef934x_extram_r)); + m_ef934x->write_exram().set(FUNC(videopacp_state::ef934x_extram_w)); I8245(config, m_i8244, (8.867_MHz_XTAL * 2) / 5); m_i8244->set_screen("screen"); @@ -768,11 +768,11 @@ void g7400_state::g7400(machine_config &config) /* cartridge */ O2_CART_SLOT(config, m_cart, o2_cart, nullptr); - SOFTWARE_LIST(config, "cart_list").set_original("g7400").set_filter("VPP"); - SOFTWARE_LIST(config, "ody2_list").set_compatible("odyssey2").set_filter("VPP"); + SOFTWARE_LIST(config, "cart_list").set_original("videopacp").set_filter("VPP"); + SOFTWARE_LIST(config, "vp_list").set_compatible("videopac").set_filter("VPP"); } -void g7400_state::jo7400(machine_config &config) +void videopacp_state::jo7400(machine_config &config) { g7400(config); @@ -781,7 +781,7 @@ void g7400_state::jo7400(machine_config &config) m_ef934x->set_clock(3.5625_MHz_XTAL); } -void g7400_state::odyssey3(machine_config &config) +void videopacp_state::odyssey3(machine_config &config) { g7400(config); @@ -801,7 +801,7 @@ void g7400_state::odyssey3(machine_config &config) PALETTE(config.replace(), "palette", FUNC(odyssey2_state::odyssey2_palette), 16); subdevice("cart_list")->set_filter("O3"); - subdevice("ody2_list")->set_filter("O3"); + subdevice("vp_list")->set_filter("O3"); } @@ -826,7 +826,7 @@ ROM_START (videopacf) ROM_END -ROM_START (g7400) +ROM_START (videopacp) ROM_REGION(0x0400,"maincpu",0) ROM_LOAD ("g7400.bin", 0x0000, 0x0400, CRC(e20a9f41) SHA1(5130243429b40b01a14e1304d0394b8459a6fbae)) ROM_END @@ -849,11 +849,11 @@ ROM_END Drivers ******************************************************************************/ -// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS -COMP( 1979, odyssey2, 0, 0, odyssey2, odyssey2, odyssey2_state, empty_init, "Magnavox", "Odyssey 2 (US)", MACHINE_SUPPORTS_SAVE ) -COMP( 1978, videopac, odyssey2, 0, videopac, odyssey2, odyssey2_state, empty_init, "Philips", "Videopac G7000 (Europe)", MACHINE_SUPPORTS_SAVE ) -COMP( 1979, videopacf, odyssey2, 0, videopacf, odyssey2, odyssey2_state, empty_init, "Philips", "Videopac C52 (France)", MACHINE_SUPPORTS_SAVE ) +// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS +COMP( 1979, odyssey2, 0, 0, odyssey2, odyssey2, odyssey2_state, empty_init, "Magnavox", "Odyssey 2 (US)", MACHINE_SUPPORTS_SAVE ) +COMP( 1978, videopac, odyssey2, 0, videopac, odyssey2, odyssey2_state, empty_init, "Philips", "Videopac G7000 (Europe)", MACHINE_SUPPORTS_SAVE ) +COMP( 1979, videopacf, odyssey2, 0, videopacf, odyssey2, odyssey2_state, empty_init, "Philips", "Videopac C52 (France)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, g7400, 0, 0, g7400, g7400, g7400_state, empty_init, "Philips", "Videopac+ G7400 (Europe)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, jopac, g7400, 0, jo7400, g7400, g7400_state, empty_init, "Philips (Brandt license)", "Jopac JO7400 (France)", MACHINE_SUPPORTS_SAVE ) -COMP( 1983, odyssey3, g7400, 0, odyssey3, g7400, g7400_state, empty_init, "Magnavox", "Odyssey 3 Command Center (US, prototype)", 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, "Magnavox", "Odyssey 3 Command Center (US, prototype)", MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 143ace2efa8..59db6b83146 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -32589,12 +32589,12 @@ octopus // odyssey // (c) Silicon Gaming. @source:odyssey2.cpp -g7400 // 1983 Videopac Plus G7400 jopac // 1983 Jopac JO7400 odyssey2 // Magnavox Odyssey 2 - 1978-1983 odyssey3 // Magnavox Odyssey 3 / Command Center (prototype) videopac // 1979 Videopac G7000 videopacf // 1979 Videopac C52 +videopacp // 1983 Videopac Plus G7400 @source:offtwall.cpp offtwall // 136090 (c) 1991