summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2015-03-01 22:02:37 +0100
committer hap <happppp@users.noreply.github.com>2015-03-01 22:02:37 +0100
commitaa36c3f4397000e81871b9d45784d07b802ca726 (patch)
tree4b663571137bce69c0f101356a25040c9885fbba
parent17495c607cb1dce1bca5b21c18cf2eb6900050b9 (diff)
notes
-rw-r--r--src/mess/drivers/hh_tms1k.c123
-rw-r--r--src/mess/drivers/hh_ucom4.c20
2 files changed, 59 insertions, 84 deletions
diff --git a/src/mess/drivers/hh_tms1k.c b/src/mess/drivers/hh_tms1k.c
index 1c9116c62d0..cf5a659150f 100644
--- a/src/mess/drivers/hh_tms1k.c
+++ b/src/mess/drivers/hh_tms1k.c
@@ -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 )
diff --git a/src/mess/drivers/hh_ucom4.c b/src/mess/drivers/hh_ucom4.c
index 8d406157cc5..ef800acc5eb 100644
--- a/src/mess/drivers/hh_ucom4.c
+++ b/src/mess/drivers/hh_ucom4.c
@@ -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) )