odyssey2: rename hash files to videopac and videopacp

This commit is contained in:
hap 2020-08-23 16:33:40 +02:00
parent 5ed80089b0
commit 8cde9585e6
4 changed files with 51 additions and 51 deletions

View File

@ -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):
-->
<softwarelist name="odyssey2" description="Magnavox Odyssey 2 / Philips Videopac cartridges">
<softwarelist name="videopac" description="Philips Videopac / Magnavox Odyssey 2 cartridges">
<!-- Philips Videopac G7000/Magnavox Odyssey² carts -->

View File

@ -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?:
-->
<softwarelist name="g7400" description="Philips Videopac+ cartridges">
<softwarelist name="videopacp" description="Philips Videopac+ cartridges">
<!-- Philips Videopac+ G7400 carts, compatible on G7000 -->

View File

@ -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<int P>
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<software_list_device>("cart_list")->set_filter("VP");
subdevice<software_list_device>("g7400_list")->set_filter("VP");
subdevice<software_list_device>("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<software_list_device>("cart_list")->set_filter("O3");
subdevice<software_list_device>("ody2_list")->set_filter("O3");
subdevice<software_list_device>("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 )

View File

@ -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