mirror of
https://github.com/holub/mame
synced 2025-06-25 22:04:15 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
95db79cfe0
@ -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<cpu_device> m_maincpu;
|
||||
required_ioport_array<6> m_button_matrix;
|
||||
required_ioport_array<7> m_button_matrix;
|
||||
required_device<speaker_sound_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 )
|
||||
|
Loading…
Reference in New Issue
Block a user