This commit is contained in:
hap 2015-03-01 22:02:37 +01:00
parent 17495c607c
commit aa36c3f439
2 changed files with 59 additions and 84 deletions

View File

@ -46,6 +46,16 @@
(* denotes not yet emulated by MESS, @ denotes it's in this driver)
TODO:
- verify output PLA and microinstructions PLA for MCUs that have been dumped
electronically (mpla is usually the default, opla is often custom)
- unknown MCU clocks for some
- some of the games rely on the fact that faster(longer) strobed leds appear
brighter: tc4(offensive players), bankshot(cue ball)
- add softwarelist for tc4 cartridges?
- stopthiep: unable to start a game (may be intentional?)
***************************************************************************/
#include "emu.h"
@ -243,7 +253,6 @@ enum
// The device strobes the outputs very fast, it is unnoticeable to the user.
// To prevent flickering here, we need to simulate a decay.
void hh_tms1k_state::display_update()
{
UINT32 active_state[0x20];
@ -362,11 +371,6 @@ INPUT_CHANGED_MEMBER(hh_tms1k_state::tms0980_power_button)
5) Football
6) Lunar Lander
TODO:
- some of the led symbols are probably wrong, output PLA is unknown
- microinstructions PLA is not verified
***************************************************************************/
void hh_tms1k_state::mathmagi_display()
@ -532,7 +536,6 @@ MACHINE_CONFIG_END
***************************************************************************/
void hh_tms1k_state::amaztron_display()
{
m_display_maxx = 8;
@ -649,6 +652,7 @@ MACHINE_CONFIG_END
/***************************************************************************
Coleco Total Control 4
@ -678,13 +682,6 @@ MACHINE_CONFIG_END
- Soccer (K2?)
- Basketball (K1?)
TODO:
- pin configuration of other carts is guessed
- softlist for the cartridges?
- offsensive players leds are supposed to look brighter
- MCU clock is unknown
***************************************************************************/
void hh_tms1k_state::tc4_display()
@ -779,6 +776,7 @@ static INPUT_PORTS_START( tc4 )
PORT_CONFSETTING( 0x08, "Football" )
INPUT_PORTS_END
static MACHINE_CONFIG_START( tc4, hh_tms1k_state )
/* basic machine hardware */
@ -799,6 +797,9 @@ static MACHINE_CONFIG_START( tc4, hh_tms1k_state )
MACHINE_CONFIG_END
/***************************************************************************
Entex Electronic Baseball (1)
@ -865,6 +866,7 @@ WRITE16_MEMBER(hh_tms1k_state::ebball_write_o)
ebball_display();
}
static INPUT_PORTS_START( ebball )
PORT_START("IN.0") // R1
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Change Up")
@ -916,6 +918,8 @@ MACHINE_CONFIG_END
/***************************************************************************
Ideal Electronic Detective
@ -927,13 +931,8 @@ MACHINE_CONFIG_END
difficulty(1-3), then number of players(1-4), then [ENTER]. Refer to the
manual for more information.
TODO:
- MCU clock is unknown
***************************************************************************/
READ8_MEMBER(hh_tms1k_state::elecdet_read_k)
{
// note: the Vss row is always on
@ -1209,8 +1208,6 @@ static INPUT_PORTS_START( comp4 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_NAME("9")
INPUT_PORTS_END
static MACHINE_CONFIG_START( comp4, hh_tms1k_state )
/* basic machine hardware */
@ -1228,6 +1225,9 @@ static MACHINE_CONFIG_START( comp4, hh_tms1k_state )
MACHINE_CONFIG_END
/***************************************************************************
Milton Bradley Simon, created by Ralph Baer
@ -1235,13 +1235,10 @@ MACHINE_CONFIG_END
Revision A hardware:
* TMS1000 (die labeled MP3226), DS75494 lamp driver
Newer revisions have a smaller 16-pin MB4850 chip instead of the TMS1000.
This one has been decapped too, but we couldn't find an internal ROM.
It is possibly a cost-reduced custom ASIC specifically for Simon.
Other games assumed to be on similar hardware:
- Pocket Simon, but there's a chance it only exists with MB4850 chip
- Super Simon (TMS1100)
Newer revisions (also Pocket Simon) have a smaller 16-pin MB4850 chip
instead of the TMS1000. This one has been decapped too, but we couldn't
find an internal ROM. It is possibly a cost-reduced custom ASIC specifically
for Simon. The semi-sequel Super Simon uses a TMS1100.
***************************************************************************/
@ -1325,6 +1322,7 @@ MACHINE_CONFIG_END
/***************************************************************************
Parker Brothers Code Name: Sector, by Bob Doyle
@ -1334,10 +1332,6 @@ MACHINE_CONFIG_END
boats are used to remember your locations (a Paint app should be ok too).
Refer to the official manual for more information, it is not a simple game.
TODO:
- MCU clock is unknown
***************************************************************************/
READ8_MEMBER(hh_tms1k_state::cnsector_read_k)
@ -1373,7 +1367,6 @@ WRITE16_MEMBER(hh_tms1k_state::cnsector_write_o)
}
static INPUT_PORTS_START( cnsector )
PORT_START("IN.0") // O0
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("Next Ship")
@ -1426,10 +1419,16 @@ MACHINE_CONFIG_END
/***************************************************************************
Parker Bros Merlin handheld computer game, by Bob Doyle
Parker Bros Merlin handheld game, by Bob Doyle
* TMS1100NLL MP3404A-N2
* red LEDs and 1-bit sound
Also published in Japan by Tomy as "Dr. Smith", white case instead of red.
The one with dark-blue case is the rare sequel Master Merlin. More sequels
followed too, but on other hardware.
To start a game, press NEW GAME, followed by a number:
1: Tic-Tac-Toe
@ -1441,12 +1440,6 @@ MACHINE_CONFIG_END
Refer to the official manual for more information on the games.
Other handhelds assumed to be on similar hardware:
- Dr. Smith - by Tomy, released in Japan (basically a white version of Merlin,
let's assume for now that the ROM contents is identical)
- Master Merlin
***************************************************************************/
READ8_MEMBER(hh_tms1k_state::merlin_read_k)
@ -1479,7 +1472,6 @@ WRITE16_MEMBER(hh_tms1k_state::merlin_write_o)
}
static INPUT_PORTS_START( merlin )
PORT_START("IN.0") // O0
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_SLASH_PAD) PORT_NAME("Button 0")
@ -1509,7 +1501,6 @@ INPUT_PORTS_END
static const INT16 merlin_speaker_levels[] = { 0, 10922, 21845, 32767 };
static MACHINE_CONFIG_START( merlin, hh_tms1k_state )
/* basic machine hardware */
@ -1531,6 +1522,9 @@ static MACHINE_CONFIG_START( merlin, hh_tms1k_state )
MACHINE_CONFIG_END
/***************************************************************************
Parker Brothers Stop Thief, by Bob Doyle
@ -1540,11 +1534,6 @@ MACHINE_CONFIG_END
(called Electronic Crime Scanner) is an accessory. To start a game, press
the ON button. Otherwise, it is in test-mode where you can hear all sounds.
TODO:
- MCU clock is unknown
- stopthiep: unable to start a game (may be intentional?)
***************************************************************************/
READ8_MEMBER(hh_tms1k_state::stopthief_read_k)
@ -1639,6 +1628,7 @@ MACHINE_CONFIG_END
/***************************************************************************
Parker Brothers Bank Shot (known as Cue Ball in the UK), by Garry Kitchen
@ -1652,13 +1642,6 @@ MACHINE_CONFIG_END
3: Poison Pool
4: Trick Shots
TODO:
- bankshot: the cue ball led is strobed more often than other leds,
making it look brighter. We need more accurate led decay simulation
for this to work.
- MCU clock is unknown
***************************************************************************/
READ8_MEMBER(hh_tms1k_state::bankshot_read_k)
@ -1688,8 +1671,6 @@ WRITE16_MEMBER(hh_tms1k_state::bankshot_write_o)
}
/* physical button layout and labels is like this:
(note: remember that you can rotate the display in MESS)
@ -1716,7 +1697,6 @@ static INPUT_PORTS_START( bankshot )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
static MACHINE_CONFIG_START( bankshot, hh_tms1k_state )
/* basic machine hardware */
@ -1739,6 +1719,7 @@ MACHINE_CONFIG_END
/***************************************************************************
Parker Brothers Split Second
@ -1833,8 +1814,6 @@ MACHINE_CONFIG_END
/***************************************************************************
Tandy Radio Shack Computerized Arcade (1981, 1982, 1995)
@ -1854,11 +1833,6 @@ MACHINE_CONFIG_END
See below at the input defs for a list of the games.
TODO:
- output PLA is not verified
- microinstructions PLA is not verified
***************************************************************************/
void hh_tms1k_state::tandy12_display()
@ -1958,7 +1932,6 @@ static const UINT16 tandy12_output_pla[0x20] =
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static MACHINE_CONFIG_START( tandy12, hh_tms1k_state )
/* basic machine hardware */
@ -1981,6 +1954,8 @@ MACHINE_CONFIG_END
/***************************************************************************
TMS1100NLL MP3403 DBS 7836 SINGAPORE some game board with 7-segs.
@ -2043,6 +2018,7 @@ static INPUT_PORTS_START( unk3403 )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_CODE(KEYCODE_V)
INPUT_PORTS_END
static const UINT16 unk3403_output_pla[0x20] =
{
/* O output PLA configuration currently unknown */
@ -2052,7 +2028,6 @@ static const UINT16 unk3403_output_pla[0x20] =
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
};
static MACHINE_CONFIG_START( unk3403, hh_tms1k_state )
/* basic machine hardware */
@ -2071,13 +2046,15 @@ static MACHINE_CONFIG_START( unk3403, hh_tms1k_state )
MACHINE_CONFIG_END
/***************************************************************************
Game driver(s)
***************************************************************************/
ROM_START( mathmagi )
ROM_REGION( 0x800, "maincpu", 0 )
ROM_LOAD( "mp1030", 0x0000, 0x800, CRC(a81d7ccb) SHA1(4756ce42f1ea28ce5fe6498312f8306f10370969) )
@ -2100,8 +2077,6 @@ ROM_START( amaztron )
ROM_END
ROM_START( tc4 )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "mp7334", 0x0000, 0x1000, CRC(923f3821) SHA1(a9ae342d7ff8dae1dedcd1e4984bcfae68586581) )
@ -2160,7 +2135,6 @@ ROM_START( starwbcp )
ROM_END
ROM_START( comp4 )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "tmc0904nl_cp0904a", 0x0000, 0x0400, CRC(6233ee1b) SHA1(738e109b38c97804b4ec52bed80b00a8634ad453) )
@ -2186,6 +2160,7 @@ ROM_START( simon )
ROM_LOAD( "tms1000_simon_opla.pla", 0, 365, CRC(2943c71b) SHA1(bd5bb55c57e7ba27e49c645937ec1d4e67506601) )
ROM_END
ROM_START( cnsector )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "mp0905bnl_za0379", 0x0000, 0x0400, CRC(201036e9) SHA1(b37fef86bb2bceaf0ac8bb3745b4702d17366914) )
@ -2240,6 +2215,7 @@ ROM_START( stopthiep )
ROM_LOAD( "tms0980_stopthie_spla.pla", 0, 157, CRC(399aa481) SHA1(72c56c58fde3fbb657d69647a9543b5f8fc74279) )
ROM_END
ROM_START( bankshot )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "mp7313", 0x0000, 0x1000, CRC(7a5016a9) SHA1(a8730dc8a282ffaa3d89e675f371d43eb39f39b4) )
@ -2272,6 +2248,7 @@ ROM_START( tandy12 )
ROM_LOAD( "tms1100_tandy12_opla.pla", 0, 365, NO_DUMP )
ROM_END
ROM_START( unk3403 )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "mp3403", 0x0000, 0x0800, CRC(9eabaa7d) SHA1(b1f54587ed7f2bbf3a5d49075c807296384c2b06) )
@ -2284,11 +2261,6 @@ ROM_END
CONS( 1980, mathmagi, 0, 0, mathmagi, mathmagi, driver_device, 0, "APF Electronics Inc.", "Mathemagician", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", GAME_SUPPORTS_SAVE )
@ -2304,7 +2276,6 @@ CONS( 1979, starwbcp, starwbc, 0, starwbc, starwbc, driver_device, 0, "Kenner",
CONS( 1977, comp4, 0, 0, comp4, comp4, driver_device, 0, "Milton Bradley", "Comp IV", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
CONS( 1978, simon, 0, 0, simon, simon, driver_device, 0, "Milton Bradley", "Simon (Rev. A)", GAME_SUPPORTS_SAVE )
CONS( 1977, cnsector, 0, 0, cnsector, cnsector, driver_device, 0, "Parker Brothers", "Code Name: Sector", GAME_SUPPORTS_SAVE | GAME_NO_SOUND_HW )
CONS( 1978, merlin, 0, 0, merlin, merlin, driver_device, 0, "Parker Brothers", "Merlin", GAME_SUPPORTS_SAVE )
CONS( 1979, stopthie, 0, 0, stopthief, stopthief, driver_device, 0, "Parker Brothers", "Stop Thief (Electronic Crime Scanner)", GAME_SUPPORTS_SAVE )

View File

@ -2,10 +2,11 @@
// copyright-holders:hap
/***************************************************************************
NEC uCOM4 MCU handhelds
NEC uCOM4 MCU tabletops/handhelds or other simple devices.
known chips:
serial device etc.
-----------------------------------------------
@048 uPD552 1980, Tomy Tennis
@ -133,12 +134,9 @@ void hh_ucom4_state::machine_start()
***************************************************************************/
// The device strobes the outputs very fast, it is unnoticeable to the user.
// To prevent flickering here, we need to simulate a decay.
void hh_ucom4_state::display_update()
{
UINT32 active_state[0x20];
@ -212,6 +210,7 @@ UINT8 hh_ucom4_state::read_inputs(int columns)
}
/***************************************************************************
Minidrivers (I/O, Inputs, Machine Config)
@ -305,6 +304,7 @@ MACHINE_CONFIG_END
/***************************************************************************
Tomy(tronic) Tennis (manufactured in Japan)
@ -323,7 +323,6 @@ MACHINE_CONFIG_END
***************************************************************************/
READ8_MEMBER(hh_ucom4_state::tmtennis_input_r)
{
// A,B: buttons
@ -394,6 +393,7 @@ static INPUT_PORTS_START( tmtennis )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2)
INPUT_PORTS_END
void hh_ucom4_state::tmtennis_set_clock()
{
// MCU clock is from an LC circuit oscillating by default at ~360kHz,
@ -412,7 +412,6 @@ MACHINE_RESET_MEMBER(hh_ucom4_state, tmtennis)
tmtennis_set_clock();
}
static MACHINE_CONFIG_START( tmtennis, hh_ucom4_state )
/* basic machine hardware */
@ -442,6 +441,8 @@ MACHINE_CONFIG_END
/***************************************************************************
Tomy(tronic) Pac-Man (manufactured in Japan)
@ -537,6 +538,8 @@ MACHINE_CONFIG_END
/***************************************************************************
Tomy Alien Chase (manufactured in Japan)
@ -592,6 +595,7 @@ WRITE8_MEMBER(hh_ucom4_state::alnchase_port_e_w)
alnchase_display_w(space, offset, data);
}
/* physical button layout and labels is like this:
POWER SOUND LEVEL PLAYER
@ -629,6 +633,7 @@ static INPUT_PORTS_START( alnchase )
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
static MACHINE_CONFIG_START( alnchase, hh_ucom4_state )
/* basic machine hardware */
@ -676,7 +681,6 @@ ROM_START( tmtennis )
ROM_END
ROM_START( tmpacman )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "d553c-160", 0x0000, 0x0800, CRC(b21a8af7) SHA1(e3122be1873ce76a4067386bf250802776f0c2f9) )