mirror of
https://github.com/holub/mame
synced 2025-07-06 18:39:28 +03:00
(MESS)New working game added
----------------- Entex Electronic Baseball 3 [hap, Sean Riddle]
This commit is contained in:
parent
2c193c79b9
commit
ea8fd55e53
@ -192,8 +192,8 @@ WRITE8_MEMBER(hh_pic16_state::maniac_output_w)
|
|||||||
else
|
else
|
||||||
m_b = data;
|
m_b = data;
|
||||||
|
|
||||||
// d7: speaker out/enable
|
// d7: speaker out
|
||||||
m_speaker->level_w((m_b & m_c) >> 7 & 1);
|
m_speaker->level_w((m_b >> 7 & 1) | (m_c >> 6 & 2));
|
||||||
|
|
||||||
// d0-d6: 7seg
|
// d0-d6: 7seg
|
||||||
m_display_maxx = 7;
|
m_display_maxx = 7;
|
||||||
@ -214,6 +214,8 @@ static INPUT_PORTS_START( maniac )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
static const INT16 maniac_speaker_levels[] = { 0, 32767, -32768, 0 };
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( maniac, hh_pic16_state )
|
static MACHINE_CONFIG_START( maniac, hh_pic16_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -231,6 +233,7 @@ static MACHINE_CONFIG_START( maniac, hh_pic16_state )
|
|||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||||
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
|
MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
|
||||||
|
MCFG_SPEAKER_LEVELS(4, maniac_speaker_levels)
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
*MP1221 TMS1100 1980, Entex Raise The Devil
|
*MP1221 TMS1100 1980, Entex Raise The Devil
|
||||||
*MP2788 ? 1980, Bandai Flight Time
|
*MP2788 ? 1980, Bandai Flight Time
|
||||||
@MP3226 TMS1000 1978, Milton Bradley Simon
|
@MP3226 TMS1000 1978, Milton Bradley Simon
|
||||||
|
*MP3320A TMS1000 1979, Coleco Head to Head Basketball
|
||||||
MP3403 TMS1100 1978, Marx Electronic Bowling
|
MP3403 TMS1100 1978, Marx Electronic Bowling
|
||||||
@MP3404 TMS1100 1978, Parker Brothers Merlin
|
@MP3404 TMS1100 1978, Parker Brothers Merlin
|
||||||
@MP3405 TMS1100 1979, Coleco Amaze-A-Tron
|
@MP3405 TMS1100 1979, Coleco Amaze-A-Tron
|
||||||
@ -157,6 +158,9 @@ public:
|
|||||||
DECLARE_READ8_MEMBER(ebball3_read_k);
|
DECLARE_READ8_MEMBER(ebball3_read_k);
|
||||||
DECLARE_WRITE16_MEMBER(ebball3_write_r);
|
DECLARE_WRITE16_MEMBER(ebball3_write_r);
|
||||||
DECLARE_WRITE16_MEMBER(ebball3_write_o);
|
DECLARE_WRITE16_MEMBER(ebball3_write_o);
|
||||||
|
void ebball3_set_clock();
|
||||||
|
DECLARE_INPUT_CHANGED_MEMBER(ebball3_difficulty_switch);
|
||||||
|
DECLARE_MACHINE_RESET(ebball3);
|
||||||
|
|
||||||
DECLARE_READ8_MEMBER(elecdet_read_k);
|
DECLARE_READ8_MEMBER(elecdet_read_k);
|
||||||
DECLARE_WRITE16_MEMBER(elecdet_write_r);
|
DECLARE_WRITE16_MEMBER(elecdet_write_r);
|
||||||
@ -938,6 +942,10 @@ MACHINE_CONFIG_END
|
|||||||
* TMS1100NLL 6007 MP1204 (die labeled MP1204)
|
* TMS1100NLL 6007 MP1204 (die labeled MP1204)
|
||||||
* 2*SN75492N LED display driver
|
* 2*SN75492N LED display driver
|
||||||
|
|
||||||
|
This is another improvement over Entex Baseball, where gameplay is a bit more
|
||||||
|
varied, and it keeps up with score and innings. Like the others, the pitcher
|
||||||
|
controls are on a separate joypad.
|
||||||
|
|
||||||
|
|
||||||
lamp translation table: led zz from game PCB = MESS lampyx:
|
lamp translation table: led zz from game PCB = MESS lampyx:
|
||||||
note: unlabeled panel leds are listed here as Sz, Bz, Oz, Iz, z left-to-right
|
note: unlabeled panel leds are listed here as Sz, Bz, Oz, Iz, z left-to-right
|
||||||
@ -982,8 +990,6 @@ void hh_tms1k_state::ebball3_display()
|
|||||||
|
|
||||||
READ8_MEMBER(hh_tms1k_state::ebball3_read_k)
|
READ8_MEMBER(hh_tms1k_state::ebball3_read_k)
|
||||||
{
|
{
|
||||||
//printf("%X ",m_r);
|
|
||||||
|
|
||||||
return read_inputs(3);
|
return read_inputs(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1009,35 +1015,69 @@ WRITE16_MEMBER(hh_tms1k_state::ebball3_write_o)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* physical button layout and labels is like this:
|
||||||
|
|
||||||
|
main device (batter side): remote pitcher:
|
||||||
|
|
||||||
|
MAN
|
||||||
|
PRO | [FAST BALL] [CHANGE UP] [CURVE] [SLIDER]
|
||||||
|
| OFF|
|
||||||
|
o o [STEAL DEFENSE] [KNUCKLER]
|
||||||
|
AM AUTO
|
||||||
|
|
||||||
|
[BUNT] [BATTER] [STEAL]
|
||||||
|
*/
|
||||||
|
|
||||||
static INPUT_PORTS_START( ebball3 )
|
static INPUT_PORTS_START( ebball3 )
|
||||||
PORT_START("IN.0") // R0
|
PORT_START("IN.0") // R0
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Fast Ball")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2) PORT_NAME("P2 Change Up")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_PLAYER(2) PORT_NAME("P2 Slider")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_PLAYER(2) PORT_NAME("P2 Curve")
|
||||||
|
|
||||||
PORT_START("IN.1") // R1
|
PORT_START("IN.1") // R1
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_PLAYER(2) PORT_NAME("P2 Knuckler")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON6 )
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("P1 Steal")
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON7 )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Batter")
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON8 )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_PLAYER(2) PORT_NAME("P2 Steal Defense")
|
||||||
|
|
||||||
PORT_START("IN.2") // R2
|
PORT_START("IN.2") // R2
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON10 )
|
PORT_CONFNAME( 0x01, 0x01, "Pitcher" )
|
||||||
// PORT_CONFNAME( 0x01, 0x01, "Pitcher" )
|
PORT_CONFSETTING( 0x01, "Auto" )
|
||||||
// PORT_CONFSETTING( 0x01, "Auto" )
|
PORT_CONFSETTING( 0x00, "Manual" )
|
||||||
// PORT_CONFSETTING( 0x00, "Manual" )
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Bunt")
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON9 )
|
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
// PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
|
PORT_START("IN.3") // fake
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
|
PORT_CONFNAME( 0x01, 0x00, DEF_STR( Difficulty ) ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_tms1k_state, ebball3_difficulty_switch, NULL)
|
||||||
|
PORT_CONFSETTING( 0x00, "Amateur" )
|
||||||
|
PORT_CONFSETTING( 0x01, "Professional" )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
|
void hh_tms1k_state::ebball3_set_clock()
|
||||||
|
{
|
||||||
|
// MCU clock is from an RC circuit oscillating by default at ~375kHz,
|
||||||
|
// but on PRO, the difficulty switch adds an extra capacitor to Vdd to speed
|
||||||
|
// it up to unknown, let's assume ~425kHz.
|
||||||
|
m_maincpu->set_unscaled_clock(m_inp_matrix[3]->read() & 1 ? 425000 : 375000);
|
||||||
|
}
|
||||||
|
|
||||||
|
INPUT_CHANGED_MEMBER(hh_tms1k_state::ebball3_difficulty_switch)
|
||||||
|
{
|
||||||
|
ebball3_set_clock();
|
||||||
|
}
|
||||||
|
|
||||||
|
MACHINE_RESET_MEMBER(hh_tms1k_state, ebball3)
|
||||||
|
{
|
||||||
|
machine_reset();
|
||||||
|
ebball3_set_clock();
|
||||||
|
}
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( ebball3, hh_tms1k_state )
|
static MACHINE_CONFIG_START( ebball3, hh_tms1k_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_CPU_ADD("maincpu", TMS1100, 425000) // RC osc. R=47K, C=33pf -> ~425kHz
|
MCFG_CPU_ADD("maincpu", TMS1100, 375000) // RC osc. R=47K, C=33pf -> ~375kHz
|
||||||
MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, ebball3_read_k))
|
MCFG_TMS1XXX_READ_K_CB(READ8(hh_tms1k_state, ebball3_read_k))
|
||||||
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, ebball3_write_r))
|
MCFG_TMS1XXX_WRITE_R_CB(WRITE16(hh_tms1k_state, ebball3_write_r))
|
||||||
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, ebball3_write_o))
|
MCFG_TMS1XXX_WRITE_O_CB(WRITE16(hh_tms1k_state, ebball3_write_o))
|
||||||
@ -1045,6 +1085,8 @@ static MACHINE_CONFIG_START( ebball3, hh_tms1k_state )
|
|||||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
|
||||||
MCFG_DEFAULT_LAYOUT(layout_ebball3)
|
MCFG_DEFAULT_LAYOUT(layout_ebball3)
|
||||||
|
|
||||||
|
MCFG_MACHINE_RESET_OVERRIDE(hh_tms1k_state, ebball3)
|
||||||
|
|
||||||
/* no video! */
|
/* no video! */
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
@ -2311,8 +2353,8 @@ CONS( 1980, mathmagi, 0, 0, mathmagi, mathmagi, driver_device, 0, "APF
|
|||||||
CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", GAME_SUPPORTS_SAVE )
|
CONS( 1979, amaztron, 0, 0, amaztron, amaztron, driver_device, 0, "Coleco", "Amaze-A-Tron", GAME_SUPPORTS_SAVE )
|
||||||
CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", GAME_SUPPORTS_SAVE )
|
CONS( 1981, tc4, 0, 0, tc4, tc4, driver_device, 0, "Coleco", "Total Control 4", GAME_SUPPORTS_SAVE )
|
||||||
|
|
||||||
CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball", GAME_SUPPORTS_SAVE )
|
CONS( 1979, ebball, 0, 0, ebball, ebball, driver_device, 0, "Entex", "Electronic Baseball (Entex)", GAME_SUPPORTS_SAVE )
|
||||||
CONS( 1980, ebball3, 0, 0, ebball3, ebball3, driver_device, 0, "Entex", "Electronic Baseball 3", GAME_SUPPORTS_SAVE | GAME_NOT_WORKING )
|
CONS( 1980, ebball3, 0, 0, ebball3, ebball3, driver_device, 0, "Entex", "Electronic Baseball 3 (Entex)", GAME_SUPPORTS_SAVE )
|
||||||
|
|
||||||
CONS( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", GAME_SUPPORTS_SAVE ) // unplayable without game cards
|
CONS( 1979, elecdet, 0, 0, elecdet, elecdet, driver_device, 0, "Ideal", "Electronic Detective", GAME_SUPPORTS_SAVE ) // unplayable without game cards
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user