mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
New working software list additions
----------------------------------- videopac: Killer Bees! (US, prototype, set 1), Killer Bees! (US, prototype, set 2), Killer Bees! (US, plus, prototype), Des Chiffres et des Lettres (France), Freedom Fighters! (US, plus, prototype), Linguaduc (Europe, prototype), The Adventures of Sherlock Holmes (US, prototype), Sound Tool (Europe), Terminal Program (US, prototype), Attack of the Timelord! (US, plus, prototype) [René van den Enden (Rene_G7400)]
This commit is contained in:
parent
84d4b2ab67
commit
03216ce4d1
@ -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):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="linguaduc"><!-- not a consumer product, communication aid for the handicapped -->
|
||||
<description>Linguaduc (Europe, prototype)</description>
|
||||
<year>198?</year>
|
||||
<publisher>Carba</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x800">
|
||||
<rom name="pr_linguaduc.bin" size="0x800" crc="bd623665" sha1="d33dedd4b880f0cb655faa2396ab05c619799269" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="newscast">
|
||||
<description>Newscaster (Europe)</description>
|
||||
<year>1980</year>
|
||||
@ -228,7 +231,19 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="testcart">
|
||||
<software name="soundtool"><!-- not a consumer product, developer sound tool -->
|
||||
<description>Sound Tool (Europe)</description>
|
||||
<year>198?</year>
|
||||
<publisher>Philips</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x800">
|
||||
<rom name="soundtool.bin" size="0x800" crc="3e454bbe" sha1="976bbac3557e6daa262439645511e280b7c740fe" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="testcart"><!-- not a consumer product, factory test rom -->
|
||||
<description>Service Test Cartridge (Europe)</description>
|
||||
<year>198?</year>
|
||||
<publisher>Philips</publisher>
|
||||
@ -737,7 +752,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x1000">
|
||||
<rom name="jo_chez-maxime.bin" size="0x1000" crc="0f46cf66" sha1="cd58d267fe5bab82f5dab01dbb08d5adf0053108" />
|
||||
<rom name="jo_vxt_a08.bin" size="0x1000" crc="0f46cf66" sha1="cd58d267fe5bab82f5dab01dbb08d5adf0053108" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -803,7 +818,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="conquest">
|
||||
<software name="conquest"><!-- board game -->
|
||||
<description>Conquest of the World (Europe, US)</description>
|
||||
<year>1981</year>
|
||||
<publisher>Philips</publisher>
|
||||
@ -951,6 +966,18 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="chifflet">
|
||||
<description>Des Chiffres et des Lettres (France)</description>
|
||||
<year>198?</year>
|
||||
<publisher>Brandt</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="jo_jft_d03.bin" size="0x2000" crc="248bf33e" sha1="5c86921225b93d87bfd63bc13dd22dddab4e8826" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="billiard">
|
||||
<description>Electronic Billiards (Europe, US)</description>
|
||||
<year>1978</year>
|
||||
@ -1235,6 +1262,32 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="beesp" cloneof="bees">
|
||||
<description>Killer Bees! (US, prototype, set 1)</description>
|
||||
<year>1982</year>
|
||||
<publisher>Philips</publisher>
|
||||
<info name="programmer" value="Robert S. Harris" />
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x1000">
|
||||
<rom name="o2_47_pr.bin" size="0x1000" crc="f308018d" sha1="15880a92e42258776801fdae4239f3e529662913" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="beespa" cloneof="bees">
|
||||
<description>Killer Bees! (US, prototype, set 2)</description>
|
||||
<year>1982</year>
|
||||
<publisher>Philips</publisher>
|
||||
<info name="programmer" value="Robert S. Harris" />
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x1000">
|
||||
<rom name="o2_47_pr_alt.bin" size="0x1000" crc="9bec21c2" sha1="5f38cdc587091cb149364d20d508e800c860d82d" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="lasvegas">
|
||||
<description>Las Vegas Gambling (Europe, US)</description>
|
||||
<year>1980</year>
|
||||
@ -1825,7 +1878,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x1000">
|
||||
<rom name="jo_syracuse.bin" size="0x1000" crc="280d08f4" sha1="37aa11cbf0a32ece89d1d2c500b74660830377df" />
|
||||
<rom name="jo_vxt_a07.bin" size="0x1000" crc="280d08f4" sha1="37aa11cbf0a32ece89d1d2c500b74660830377df" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -1857,6 +1910,18 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="sherlock"><!-- board game -->
|
||||
<description>The Adventures of Sherlock Holmes (US, prototype)</description>
|
||||
<year>198?</year>
|
||||
<publisher>Magnavox</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="pr_sherlock.bin" size="0x2000" crc="245dd6a5" sha1="3046caec84ea4b4b5c84ff7e3d1fd38231367f94" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="gtwallst">
|
||||
<description>The Great Wall Street Fortune Hunt (Europe, US)</description>
|
||||
<year>1983</year>
|
||||
@ -1907,7 +1972,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="quest">
|
||||
<software name="quest"><!-- board game -->
|
||||
<description>The Quest for the Rings (Europe, US)</description>
|
||||
<year>1981</year>
|
||||
<publisher>Philips</publisher>
|
||||
@ -1921,7 +1986,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="laquete" cloneof="quest">
|
||||
<software name="laquete" cloneof="quest"><!-- board game -->
|
||||
<description>La Quête des Anneux (France)</description>
|
||||
<year>1982</year>
|
||||
<publisher>Radiola</publisher>
|
||||
@ -2032,7 +2097,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="jo_basket-bowling_pl.bin" size="0x2000" crc="b5fb1416" sha1="c341ed24346546b75de2ab24af1a9223ca2d1aac" />
|
||||
<rom name="jo_jfa_e03.bin" size="0x2000" crc="b5fb1416" sha1="c341ed24346546b75de2ab24af1a9223ca2d1aac" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2060,7 +2125,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="jo_billard_pl.bin" size="0x2000" crc="4cec1404" sha1="004ea921b691db6b310f5b51c495df9b86be3aa8" />
|
||||
<rom name="jo_jxa_d03.bin" size="0x2000" crc="4cec1404" sha1="004ea921b691db6b310f5b51c495df9b86be3aa8" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2139,7 +2204,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="jo_demon-attack_pl.bin" size="0x2000" crc="50af9d45" sha1="cfd1337c8d5a40f2f4e1ab49158a8963764919da" />
|
||||
<rom name="jo_jxt_c07.bin" size="0x2000" crc="50af9d45" sha1="cfd1337c8d5a40f2f4e1ab49158a8963764919da" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2152,7 +2217,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="jo_exojet_pl.bin" size="0x2000" crc="cfca6f39" sha1="8aafcd055a2ef45c3d85804c8a3ea04d9a9732ab" />
|
||||
<rom name="jo_jxt_c05.bin" size="0x2000" crc="cfca6f39" sha1="8aafcd055a2ef45c3d85804c8a3ea04d9a9732ab" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2165,7 +2230,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="jo_flipper_pl.bin" size="0x2000" crc="ac5c74e6" sha1="215439c1044b93888b71bd6a210ebfda93d97c22" />
|
||||
<rom name="jo_jfa_d01.bin" size="0x2000" crc="ac5c74e6" sha1="215439c1044b93888b71bd6a210ebfda93d97c22" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2230,7 +2295,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="jo_le-tresor-englouti_pl.bin" size="0x2000" crc="b2f0f0b4" sha1="c0fcaef6a18026e0acc04c3d48443d768043cb03" />
|
||||
<rom name="jo_jft_a10.bin" size="0x2000" crc="b2f0f0b4" sha1="c0fcaef6a18026e0acc04c3d48443d768043cb03" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2399,7 +2464,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="jo_moto-crash_pl.bin" size="0x2000" crc="68560dc7" sha1="f6de2f95e5cf4849a4d7071b1a470c3ef0634e5f" />
|
||||
<rom name="jo_jxt_e05.bin" size="0x2000" crc="68560dc7" sha1="f6de2f95e5cf4849a4d7071b1a470c3ef0634e5f" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2436,8 +2501,21 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
|
||||
<!-- Odyssey³ prototypes, they won't work properly on European VP+ consoles -->
|
||||
|
||||
<software name="timelordpl" cloneof="timelord">
|
||||
<description>Attack of the Timelord! (US, plus, prototype)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Philips</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="o3_45.bin" size="0x2000" crc="5bbb30c8" sha1="29d999b9e7c59d16e5e68d833f28dbc86f062d1f" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="baseballpl" cloneof="baseball">
|
||||
<description>Baseball (US, plus, prototype)</description>
|
||||
<description>Baseball! (US, plus, prototype)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Philips</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
@ -2462,6 +2540,45 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="freedomplu" cloneof="freedom">
|
||||
<description>Freedom Fighters! (US, plus, prototype)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Philips</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="o3_36.bin" size="0x2000" crc="3150a9bf" sha1="e1f78160d273a19f4c322423bc28a566fa668e71" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="beesplu" cloneof="bees">
|
||||
<description>Killer Bees! (US, plus, prototype)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Philips</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x2000">
|
||||
<rom name="o3_47.bin" size="0x2000" crc="3026e732" sha1="a944e7d6c5c8924dcbd9ef08e0f74b4bca1177c3" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="terminal">
|
||||
<description>Terminal Program (US, prototype)</description>
|
||||
<year>1983</year>
|
||||
<publisher>Philips</publisher>
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<feature name="b_pin" value="1" />
|
||||
<dataarea name="rom" size="0x800">
|
||||
<rom name="o3_terminal.bin" size="0x800" crc="e5d2cf23" sha1="3e6e4f407a8f37636336029950acf7d46253e50a" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
|
||||
<!-- Homebrew -->
|
||||
@ -2492,7 +2609,6 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- NTSC Cartridge dumped from a 39SF010 flashrom (1MB) and actual data (2KB) data is repeated to fill space and matches publicly posted rom from author -->
|
||||
<software name="deathrac">
|
||||
<description>Death Race (US)</description>
|
||||
<year>2014</year>
|
||||
@ -2501,7 +2617,8 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x800">
|
||||
<rom name="drace_rc04.ntsc.bin" size="0x800" crc="91a767de" sha1="26a044c68ff08f574f6649b731b82caca8c0e797" />
|
||||
<!-- 39SF010 flashrom (1MB), actual data (2KB) is repeated to fill space and matches publicly posted rom from author -->
|
||||
<rom name="drace_rc04_ntsc.bin" size="0x800" crc="91a767de" sha1="26a044c68ff08f574f6649b731b82caca8c0e797" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
@ -2514,7 +2631,7 @@ Official VP+ upgaded versions (simply adds a background picture):
|
||||
<part name="cart" interface="odyssey_cart">
|
||||
<feature name="slot" value="o2_rom" />
|
||||
<dataarea name="rom" size="0x800">
|
||||
<rom name="drace_rc04.pal.bin" size="0x800" crc="0ca8c961" sha1="3918d6c2c324fba55e8b90acc8d38e540e4ec5c6" />
|
||||
<rom name="drace_rc04_pal.bin" size="0x800" crc="0ca8c961" sha1="3918d6c2c324fba55e8b90acc8d38e540e4ec5c6" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
@ -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 );
|
||||
|
@ -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<int P>
|
||||
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 )
|
||||
|
Loading…
Reference in New Issue
Block a user