summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/hh_tms1k.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/hh_tms1k.cpp')
-rw-r--r--src/mame/drivers/hh_tms1k.cpp44
1 files changed, 29 insertions, 15 deletions
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 6a202910716..402e612689a 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -125,6 +125,8 @@
- tbreakup: some of the leds flicker (rom and PLAs doublechecked)
- 7in1ss: in 2-player mode, game select and skill select can be configured
after selecting a game?
+ - when f2pbball randomly picks a result, it is much rarer for it to pick one from
+ the right side? (the 6 leds at the upper-right, and the right foul)
- bship discrete sound, netlist is documented
- finish bshipb SN76477 sound
- improve elecbowl driver
@@ -167,7 +169,7 @@
#include "elecdet.lh"
#include "esbattle.lh"
#include "esoccer.lh"
-//#include "f2pbball.lh"
+#include "f2pbball.lh"
#include "fxmcr165.lh" // clickable
#include "gjackpot.lh"
#include "gpoker.lh"
@@ -3395,6 +3397,19 @@ MACHINE_CONFIG_END
- USA: 2 Player Baseball, distributed by Sears
- Canada: 2 Player Baseball, distributed by Talbot Electronics
+ led translation table: led zz from game PCB = MAME y.x:
+
+ 0 = - 10 = 2.2 20 = 4.0 30 = 4.4
+ 1 = 2.3 11 = 3.3 21 = 2.7 31 = 3.7
+ 2 = 0.4 12 = 1.2 22 = 0.0 32 = 4.3
+ 3 = 3.2 13 = 2.4 23 = 4.1 33 = 4.6
+ 4 = 0.5 14 = 1.0 24 = 3.1 34 = 3.5
+ 5 = 0.3 15 = 2.1 25 = 0.2 35 = 4.5
+ 6 = 3.4 16 = 1.1 26 = 0.1
+ 7 = 1.3 17 = 4.7 27 = 4.2
+ 8 = 1.4 18 = 2.0 28 = 3.0
+ 9 = 1.7 19 = 0.7 29 = 1.5
+
***************************************************************************/
class f2pbball_state : public hh_tms1k_state
@@ -3417,7 +3432,7 @@ public:
void f2pbball_state::prepare_display()
{
// R5-R8 are 7segs
- set_display_segmask(0x1e0, 0xff);
+ set_display_segmask(0x1e0, 0x7f);
display_matrix(8, 9, m_o, m_r);
}
@@ -3437,7 +3452,7 @@ WRITE16_MEMBER(f2pbball_state::write_r)
WRITE16_MEMBER(f2pbball_state::write_o)
{
// O0-O7: led state
- m_o = BITSWAP8(data,0,7,2,6,5,4,3,1);
+ m_o = BITSWAP8(data,0,7,6,5,4,3,2,1);
prepare_display();
}
@@ -3452,7 +3467,7 @@ READ8_MEMBER(f2pbball_state::read_k)
static INPUT_PORTS_START( f2pbball )
PORT_START("IN.0") // R4
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL PORT_NAME("Pick Off")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL PORT_NAME("P2 Pick Off")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_CONFNAME( 0x0c, 0x04, "Players" )
PORT_CONFSETTING( 0x04, "1" )
@@ -3460,19 +3475,19 @@ static INPUT_PORTS_START( f2pbball )
PORT_CONFSETTING( 0x08, "2" )
PORT_START("IN.1") // R9
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Score")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Steal")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Pitch")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Swing")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("P1 Score")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Steal")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Pitch")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Swing")
PORT_START("IN.2") // R10
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_COCKTAIL PORT_NAME("Curve Left")
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("Slow")
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("Curve Right")
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL PORT_NAME("Fast")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_COCKTAIL PORT_NAME("P2 Curve Left")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Slow")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Curve Right")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL PORT_NAME("P2 Fast")
PORT_START("RESET")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, f2pbball_state, reset_button, 0)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, f2pbball_state, reset_button, 0)
INPUT_PORTS_END
INPUT_CHANGED_MEMBER(f2pbball_state::reset_button)
@@ -3490,8 +3505,7 @@ static MACHINE_CONFIG_START( f2pbball, f2pbball_state )
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(f2pbball_state, write_o))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_hh_tms1k_test)
- //MCFG_DEFAULT_LAYOUT(layout_f2pbball)
+ MCFG_DEFAULT_LAYOUT(layout_f2pbball)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")