diff options
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 |
commit | aa36c3f4397000e81871b9d45784d07b802ca726 (patch) | |
tree | 4b663571137bce69c0f101356a25040c9885fbba | |
parent | 17495c607cb1dce1bca5b21c18cf2eb6900050b9 (diff) |
notes
-rw-r--r-- | src/mess/drivers/hh_tms1k.c | 123 | ||||
-rw-r--r-- | src/mess/drivers/hh_ucom4.c | 20 |
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) ) |