From 3bb63af4066f3bdb8e8ed5afd677a5c9c2381e51 Mon Sep 17 00:00:00 2001 From: hap Date: Wed, 18 Feb 2015 23:35:46 +0100 Subject: added notes --- src/mess/drivers/tc4.c | 56 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/src/mess/drivers/tc4.c b/src/mess/drivers/tc4.c index dd93e697a50..5cebf864801 100644 --- a/src/mess/drivers/tc4.c +++ b/src/mess/drivers/tc4.c @@ -4,10 +4,34 @@ Coleco Total Control 4 * TMS1400NLL MP7334-N2 (die labeled MP7334) - + + This is a head to head electronic tabletop LED-display sports console. + One cartridge(Football) was included with the console, the other three were + sold separately. Gameplay has emphasis on strategy, read the official manual + on how to play. Remember that you can rotate the view in MESS. + + Available cartridges: + - Football + - Basketball + - Hockey + - Soccer + + Cartridge socket: + 1 N/C + 2 9V+ + 3 power switch + 4 K8 + 5 K4 + 6 K2 + 7 K1 + 8 R9 + + Football cartridge connects pins 4 and 8 TODO: + - pin configuration of other carts is guessed + - offsensive players leds are supposed to look brighter - MCU clock is unknown ***************************************************************************/ @@ -20,7 +44,7 @@ // The master clock is a single stage RC oscillator: R=27.3K, C=100pf. // TMS1400 RC curve is unknown, so let's do an approximation until it is. -#define MASTER_CLOCK (475000) +#define MASTER_CLOCK (450000) class tc4_state : public driver_device @@ -34,7 +58,7 @@ public: { } required_device m_maincpu; - required_ioport_array<6> m_button_matrix; + required_ioport_array<7> m_button_matrix; required_device m_speaker; UINT16 m_r; @@ -67,7 +91,7 @@ public: // To prevent flickering here, we need to simulate a decay. // decay time, in steps of 1ms -#define DISPLAY_DECAY_TIME 40 +#define DISPLAY_DECAY_TIME 50 inline bool tc4_state::index_is_7segled(int index) { @@ -75,7 +99,6 @@ inline bool tc4_state::index_is_7segled(int index) return (index >= 5 && index <= 9 && index != 6); } - void tc4_state::display_update() { UINT16 active_state[0x10]; @@ -144,7 +167,7 @@ READ8_MEMBER(tc4_state::read_k) // read from cartridge if (m_r & 0x200) - k |= ioport("CART")->read(); + k |= m_button_matrix[6]->read(); return k; } @@ -171,7 +194,6 @@ WRITE16_MEMBER(tc4_state::write_r) - /*************************************************************************** Inputs @@ -180,10 +202,10 @@ WRITE16_MEMBER(tc4_state::write_r) static INPUT_PORTS_START( tc4 ) PORT_START("IN.0") // R0 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Pass/Shoot Button 3") // right + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Pass/Shoot Button 1") // left + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Pass/Shoot Button 2") // middle + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 D/K Button") PORT_START("IN.1") // R1 PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_RIGHT ) @@ -210,12 +232,12 @@ static INPUT_PORTS_START( tc4 ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICKLEFT_DOWN ) PORT_PLAYER(2) PORT_START("IN.5") // R5 - PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) - PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) - PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Pass/Shoot Button 3") // right + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Pass/Shoot Button 1") // left + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Pass/Shoot Button 2") // middle + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 D/K Button") - PORT_START("CART") + PORT_START("IN.6") // R9 PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x00, "R9:1" ) PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x00, "R9:2" ) PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x00, "R9:3" ) @@ -224,7 +246,6 @@ INPUT_PORTS_END - /*************************************************************************** Machine Config @@ -290,5 +311,4 @@ ROM_START( tc4 ) ROM_END - CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) -- cgit v1.2.3