mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +03:00
odyssey2: rename hash files to videopac and videopacp
This commit is contained in:
parent
5ed80089b0
commit
8cde9585e6
@ -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 -->
|
||||
|
@ -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 -->
|
||||
|
@ -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 )
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user