summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2020-08-22 20:23:41 +0200
committer hap <happppp@users.noreply.github.com>2020-08-22 20:24:09 +0200
commitaf4a5ff1af8bfb56441b900ba2655007681c4cda (patch)
treefc89e29a5c0d54df770b05de0aa008838e61b5dc
parent1287663196ae7fe2cfdd96682200644e3cdf940e (diff)
odyssey2: different video xtal for jopac
-rw-r--r--hash/g7400.xml44
-rw-r--r--hash/odyssey2.xml2
-rw-r--r--src/emu/xtal.cpp1
-rw-r--r--src/mame/drivers/odyssey2.cpp37
4 files changed, 48 insertions, 36 deletions
diff --git a/hash/g7400.xml b/hash/g7400.xml
index d036a6e8f30..337730b1b14 100644
--- a/hash/g7400.xml
+++ b/hash/g7400.xml
@@ -61,7 +61,7 @@ Do Videopac+/Odyssey3 versions exist?:
<software name="2bsktbwlpl">
<description>Basket Bowling+ (Fra, Plus)</description>
<year>198?</year>
- <publisher>Jopac</publisher>
+ <publisher>Brandt</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<feature name="b_pin" value="1" />
@@ -87,7 +87,7 @@ Do Videopac+/Odyssey3 versions exist?:
<software name="billardpl">
<description>Billard+ (Fra, Plus)</description>
<year>1983</year>
- <publisher>Jopac</publisher>
+ <publisher>Brandt</publisher>
<info name="programmer" value="Ed Averett"/>
<info name="serial" value="JXA D03"/>
<part name="cart" interface="odyssey_cart">
@@ -152,10 +152,23 @@ Do Videopac+/Odyssey3 versions exist?:
</part>
</software>
+ <software name="cosmospl" cloneof="cosmicpl">
+ <description>Cosmos+ (Fra, Plus)</description>
+ <year>198?</year>
+ <publisher>Brandt</publisher>
+ <part name="cart" interface="odyssey_cart">
+ <feature name="slot" value="o2_rom" />
+ <feature name="b_pin" value="1" />
+ <dataarea name="rom" size="8192">
+ <rom name="cosmos (france).bin" size="8192" crc="105231f8" sha1="9220dc32d3bb9225292f3e709d1320b9b1052140"/>
+ </dataarea>
+ </part>
+ </software>
+
<software name="demonpl">
<description>Demon Attack+ (Fra, Plus)</description>
<year>198?</year>
- <publisher>Radiola</publisher>
+ <publisher>Brandt</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<feature name="b_pin" value="1" />
@@ -168,7 +181,7 @@ Do Videopac+/Odyssey3 versions exist?:
<software name="flipperpl">
<description>Flipper+ (Fra, Plus)</description>
<year>198?</year>
- <publisher>Jopac</publisher>
+ <publisher>Brandt</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<feature name="b_pin" value="1" />
@@ -204,19 +217,6 @@ Do Videopac+/Odyssey3 versions exist?:
</part>
</software>
- <software name="liberte" cloneof="freedompl">
- <description>Combattants de la Liberté (Fra, Plus)</description>
- <year>198?</year>
- <publisher>Radiola</publisher>
- <part name="cart" interface="odyssey_cart">
- <feature name="slot" value="o2_rom" />
- <feature name="b_pin" value="1" />
- <dataarea name="rom" size="8192">
- <rom name="guerre de l'espace (france).bin" size="8192" crc="105231f8" sha1="9220dc32d3bb9225292f3e709d1320b9b1052140"/>
- </dataarea>
- </part>
- </software>
-
<software name="beespl">
<description>Killer Bees (Euro, Plus)</description>
<year>198?</year>
@@ -315,7 +315,7 @@ Do Videopac+/Odyssey3 versions exist?:
<software name="3csaucptpl" cloneof="3rcsocptpl">
<description>Grand Prix+ (Fra, Plus)</description>
<year>1983</year>
- <publisher>Jopac</publisher>
+ <publisher>Brandt</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<feature name="b_pin" value="1" />
@@ -371,7 +371,7 @@ Do Videopac+/Odyssey3 versions exist?:
<software name="exojet">
<description>Exojet+ (Fra)</description>
<year>198?</year>
- <publisher>Jopac</publisher>
+ <publisher>Brandt</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<feature name="b_pin" value="1" />
@@ -382,9 +382,9 @@ Do Videopac+/Odyssey3 versions exist?:
</software>
<software name="englouti">
- <description>Le Tresor Englouti (Fra)</description>
+ <description>Le Tresor Englouti+ (Fra)</description>
<year>198?</year>
- <publisher>Radiola</publisher>
+ <publisher>Brandt</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<feature name="b_pin" value="1" />
@@ -444,7 +444,7 @@ Do Videopac+/Odyssey3 versions exist?:
<software name="motocras">
<description>Moto-Crash+ (Fra)</description>
<year>1984</year>
- <publisher>Radiola</publisher>
+ <publisher>Brandt</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<feature name="b_pin" value="1" />
diff --git a/hash/odyssey2.xml b/hash/odyssey2.xml
index 55cd4d9c8a1..8e6587b9301 100644
--- a/hash/odyssey2.xml
+++ b/hash/odyssey2.xml
@@ -1771,7 +1771,7 @@ Official VP+ upgaded versions (simply adds a background picture):
<software name="syracuse">
<description>Syracuse (Fra)</description>
<year>1981</year>
- <publisher>Jopac</publisher>
+ <publisher>Brandt</publisher>
<part name="cart" interface="odyssey_cart">
<feature name="slot" value="o2_rom" />
<dataarea name="rom" size="4096">
diff --git a/src/emu/xtal.cpp b/src/emu/xtal.cpp
index c1d3b9f6467..9a8f5092fe5 100644
--- a/src/emu/xtal.cpp
+++ b/src/emu/xtal.cpp
@@ -92,6 +92,7 @@ const double XTAL::known_xtals[] = {
3'521'280, /* 3.52128_MHz_XTAL RCA COSMAC VIP */
3'546'800, /* 3.5468_MHz_XTAL Atari 400 PAL */
3'547'000, /* 3.547_MHz_XTAL Philips G7200, Philips C7240 */
+ 3'562'500, /* 3.5625_MHz_XTAL Jopac JO7400 */
3'570'000, /* 3.57_MHz_XTAL Telmac TMC-600 */
3'578'640, /* 3.57864_MHz_XTAL Atari Portfolio PCD3311T */
3'579'000, /* 3.579_MHz_XTAL BeebOPL */
diff --git a/src/mame/drivers/odyssey2.cpp b/src/mame/drivers/odyssey2.cpp
index 820c82a2c27..800005c191b 100644
--- a/src/mame/drivers/odyssey2.cpp
+++ b/src/mame/drivers/odyssey2.cpp
@@ -31,6 +31,7 @@ XTAL notes (differs per model):
- C52/N60: 17.812
- G7200: 5.911MHz + 3.547MHz
- G7400: 5.911MHz + 8.867MHz
+- JO7400: 5.911MHz + 3.5625MHz
TODO:
- backgamm doesn't draw all the chars/sprites, it does multiple screen updates
@@ -149,6 +150,7 @@ public:
{ }
void g7400(machine_config &config);
+ void jo7400(machine_config &config);
void odyssey3(machine_config &config);
protected:
@@ -644,7 +646,7 @@ INPUT_PORTS_END
void odyssey2_state::odyssey2(machine_config &config)
{
/* basic machine hardware */
- I8048(config, m_maincpu, (XTAL(7'159'090) * 3) / 4);
+ I8048(config, m_maincpu, (7.15909_MHz_XTAL * 3) / 4);
m_maincpu->set_addrmap(AS_PROGRAM, &odyssey2_state::odyssey2_mem);
m_maincpu->set_addrmap(AS_IO, &odyssey2_state::odyssey2_io);
m_maincpu->p1_out_cb().set(FUNC(odyssey2_state::p1_write));
@@ -662,7 +664,7 @@ void odyssey2_state::odyssey2(machine_config &config)
PALETTE(config, "palette", FUNC(odyssey2_state::odyssey2_palette), 16);
- I8244(config, m_i8244, XTAL(7'159'090) / 2);
+ I8244(config, m_i8244, 7.15909_MHz_XTAL / 2);
m_i8244->set_screen("screen");
m_i8244->set_screen_size(360, 243);
m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ);
@@ -681,13 +683,13 @@ void odyssey2_state::videopac(machine_config &config)
odyssey2(config);
// PAL video chip
- I8245(config.replace(), m_i8244, XTAL(17'734'476) / 5);
+ I8245(config.replace(), m_i8244, 17.734476_MHz_XTAL / 5);
m_i8244->set_screen("screen");
m_i8244->set_screen_size(360, 243);
m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ);
m_i8244->add_route(ALL_OUTPUTS, "mono", 0.40);
- m_maincpu->set_clock(XTAL(17'734'476) / 3);
+ 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");
@@ -698,15 +700,15 @@ void odyssey2_state::videopacf(machine_config &config)
videopac(config);
// different master XTAL
- m_maincpu->set_clock(XTAL(17'812'000) / 3);
- m_i8244->set_clock(XTAL(17'812'000) / 5);
+ m_maincpu->set_clock(17.812_MHz_XTAL / 3);
+ m_i8244->set_clock(17.812_MHz_XTAL / 5);
}
void g7400_state::g7400(machine_config &config)
{
/* basic machine hardware */
- I8048(config, m_maincpu, XTAL(5'911'000));
+ 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));
@@ -731,12 +733,12 @@ void g7400_state::g7400(machine_config &config)
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>));
- EF9340_1(config, m_ef934x, XTAL(8'867'000)/5 * 2, "screen");
+ 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));
- I8245(config, m_i8244, XTAL(8'867'000)/5 * 2);
+ I8245(config, m_i8244, (8.867_MHz_XTAL * 2) / 5);
m_i8244->set_screen("screen");
m_i8244->set_screen_size(360, 243);
m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ);
@@ -750,21 +752,30 @@ void g7400_state::g7400(machine_config &config)
SOFTWARE_LIST(config, "ody2_list").set_compatible("odyssey2").set_filter("VPP");
}
+void g7400_state::jo7400(machine_config &config)
+{
+ g7400(config);
+
+ // different video clock
+ m_i8244->set_clock(3.5625_MHz_XTAL);
+ m_ef934x->set_clock(3.5625_MHz_XTAL);
+}
+
void g7400_state::odyssey3(machine_config &config)
{
g7400(config);
// NTSC video chip
- I8244(config.replace(), m_i8244, XTAL(7'159'090) / 2);
+ I8244(config.replace(), m_i8244, 7.15909_MHz_XTAL / 2);
m_i8244->set_screen("screen");
m_i8244->set_screen_size(360, 243);
m_i8244->irq_cb().set_inputline(m_maincpu, MCS48_INPUT_IRQ);
m_i8244->add_route(ALL_OUTPUTS, "mono", 0.40);
- m_ef934x->set_clock(XTAL(7'159'090) / 2);
+ m_ef934x->set_clock(7.15909_MHz_XTAL / 2);
m_ef934x->set_offsets(15, 15);
- m_maincpu->set_clock((XTAL(7'159'090) * 3) / 4);
+ m_maincpu->set_clock((7.15909_MHz_XTAL * 3) / 4);
// same color encoder as O2 (no RGB port)
PALETTE(config.replace(), "palette", FUNC(odyssey2_state::odyssey2_palette), 16);
@@ -824,5 +835,5 @@ COMP( 1978, videopac, odyssey2, 0, videopac, odyssey2, odyssey2_state, empty_i
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, g7400, g7400, g7400_state, empty_init, "Philips (Brandt license)", "Jopac JO7400 (France)", 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 )