mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
(MESS)New working game added
----------------- Bambino Basketball - Dribble Away [hap, Kevin Horton, Olivier Galibert]
This commit is contained in:
parent
8bbd6e86c1
commit
cb3adabd7c
3 changed files with 82 additions and 15 deletions
|
@ -92,9 +92,13 @@ public:
|
|||
void display_matrix(int maxx, int maxy, UINT64 setx, UINT32 sety);
|
||||
|
||||
// game-specific handlers
|
||||
DECLARE_WRITE8_MEMBER(bambball_plate_w);
|
||||
DECLARE_WRITE16_MEMBER(bambball_grid_w);
|
||||
DECLARE_READ8_MEMBER(bambball_input_r);
|
||||
|
||||
DECLARE_WRITE8_MEMBER(alnattck_plate_w);
|
||||
DECLARE_WRITE16_MEMBER(alnattck_d_w);
|
||||
DECLARE_READ16_MEMBER(alnattck_d_r);
|
||||
DECLARE_WRITE16_MEMBER(alnattck_grid_w);
|
||||
DECLARE_READ16_MEMBER(alnattck_input_r);
|
||||
|
||||
void egalaxn2_display();
|
||||
DECLARE_WRITE8_MEMBER(egalaxn2_plate_w);
|
||||
|
@ -231,16 +235,74 @@ UINT16 hh_hmcs40_state::read_inputs(int columns)
|
|||
|
||||
/***************************************************************************
|
||||
|
||||
Bambino Basketball (manufactured in Japan)
|
||||
Bambino Basketball - Dribble Away (manufactured in Japan)
|
||||
* boards are labeled Emix Corp. ET-05
|
||||
* Hitachi HD38750A08 MCU
|
||||
* green VFD display Emix-106
|
||||
* green VFD display Emix-106, with bezel overlay
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
WRITE8_MEMBER(hh_hmcs40_state::bambball_plate_w)
|
||||
{
|
||||
// R1x-R3x, D0-D3: vfd matrix plate
|
||||
int shift = (offset - HMCS40_PORT_R1X) * 4;
|
||||
m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
|
||||
|
||||
// update display
|
||||
UINT32 plate = BITSWAP16(m_plate,13,8,4,12,9,10,14,1,7,0,15,11,6,3,5,2);
|
||||
|
||||
display_matrix(16, 9, plate, m_grid);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(hh_hmcs40_state::bambball_grid_w)
|
||||
{
|
||||
// D4: speaker out
|
||||
m_speaker->level_w(data >> 4 & 1);
|
||||
|
||||
// D7-D10: input mux
|
||||
m_inp_mux = data >> 7 & 0xf;
|
||||
|
||||
// D7-D15: vfd matrix grid
|
||||
m_grid = data >> 7 & 0x1ff;
|
||||
|
||||
// D0-D3: plates (update display there)
|
||||
bambball_plate_w(space, 3 + HMCS40_PORT_R1X, data & 0xf);
|
||||
}
|
||||
|
||||
READ8_MEMBER(hh_hmcs40_state::bambball_input_r)
|
||||
{
|
||||
// R0x: inputs
|
||||
return read_inputs(4);
|
||||
}
|
||||
|
||||
|
||||
static INPUT_PORTS_START( bambball )
|
||||
PORT_START("IN.0") // D7 port R0x
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Dribble Low")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Dribble Medium")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("Dribble High")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_NAME("Shoot")
|
||||
|
||||
PORT_START("IN.1") // D8 port R0x
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY // separate directional buttons, hence 16way
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY // "
|
||||
PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
||||
PORT_START("IN.2") // D9 port R0x
|
||||
PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_NAME("Display")
|
||||
|
||||
PORT_START("IN.3") // D10 port R0x
|
||||
PORT_CONFNAME( 0x07, 0x01, "Skill Level")
|
||||
PORT_CONFSETTING( 0x01, "1" )
|
||||
PORT_CONFSETTING( 0x02, "2" )
|
||||
PORT_CONFSETTING( 0x04, "3" )
|
||||
PORT_CONFNAME( 0x08, 0x08, "Players" )
|
||||
PORT_CONFSETTING( 0x08, "1" )
|
||||
PORT_CONFSETTING( 0x00, "2" )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
@ -248,8 +310,13 @@ static MACHINE_CONFIG_START( bambball, hh_hmcs40_state )
|
|||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", HD38750, 400000) // approximation - RC osc.
|
||||
MCFG_HMCS40_READ_R_CB(0, READ8(hh_hmcs40_state, bambball_input_r))
|
||||
MCFG_HMCS40_WRITE_R_CB(1, WRITE8(hh_hmcs40_state, bambball_plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(2, WRITE8(hh_hmcs40_state, bambball_plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(3, WRITE8(hh_hmcs40_state, bambball_plate_w))
|
||||
MCFG_HMCS40_WRITE_D_CB(WRITE16(hh_hmcs40_state, bambball_grid_w))
|
||||
|
||||
// MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
|
||||
|
||||
/* no video! */
|
||||
|
@ -269,7 +336,7 @@ MACHINE_CONFIG_END
|
|||
Bandai Packri Monster (manufactured in Japan)
|
||||
* board label DM-21ZA2
|
||||
* Hitachi HD38800A27 MCU
|
||||
* cyan/red/green VFD display Futaba DM-21ZK 2B
|
||||
* cyan/red/green VFD display Futaba DM-21ZK 2B, with bezel overlay
|
||||
|
||||
NOTE!: MESS external artwork is recommended
|
||||
|
||||
|
@ -355,7 +422,7 @@ WRITE8_MEMBER(hh_hmcs40_state::alnattck_plate_w)
|
|||
display_matrix(20, 10, plate, m_grid);
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(hh_hmcs40_state::alnattck_d_w)
|
||||
WRITE16_MEMBER(hh_hmcs40_state::alnattck_grid_w)
|
||||
{
|
||||
// D4: speaker out
|
||||
m_speaker->level_w(data >> 4 & 1);
|
||||
|
@ -370,7 +437,7 @@ WRITE16_MEMBER(hh_hmcs40_state::alnattck_d_w)
|
|||
alnattck_plate_w(space, 4, data & 0xf);
|
||||
}
|
||||
|
||||
READ16_MEMBER(hh_hmcs40_state::alnattck_d_r)
|
||||
READ16_MEMBER(hh_hmcs40_state::alnattck_input_r)
|
||||
{
|
||||
// D5: inputs
|
||||
return (read_inputs(7) & 1) << 5;
|
||||
|
@ -411,8 +478,8 @@ static MACHINE_CONFIG_START( alnattck, hh_hmcs40_state )
|
|||
MCFG_HMCS40_WRITE_R_CB(1, WRITE8(hh_hmcs40_state, alnattck_plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(2, WRITE8(hh_hmcs40_state, alnattck_plate_w))
|
||||
MCFG_HMCS40_WRITE_R_CB(3, WRITE8(hh_hmcs40_state, alnattck_plate_w))
|
||||
MCFG_HMCS40_READ_D_CB(READ16(hh_hmcs40_state, alnattck_d_r))
|
||||
MCFG_HMCS40_WRITE_D_CB(WRITE16(hh_hmcs40_state, alnattck_d_w))
|
||||
MCFG_HMCS40_WRITE_D_CB(WRITE16(hh_hmcs40_state, alnattck_grid_w))
|
||||
MCFG_HMCS40_READ_D_CB(READ16(hh_hmcs40_state, alnattck_input_r))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
|
||||
MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
|
||||
|
@ -956,7 +1023,7 @@ ROM_END
|
|||
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */
|
||||
CONS( 1979, bambball, 0, 0, bambball, bambball, driver_device, 0, "Bambino", "Basketball (Bambino)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
|
||||
CONS( 1979, bambball, 0, 0, bambball, bambball, driver_device, 0, "Bambino", "Basketball - Dribble Away", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
|
||||
|
||||
CONS( 1981, packmon, 0, 0, packmon, packmon, driver_device, 0, "Bandai", "Packri Monster", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
|
||||
CONS( 1983, zackman, 0, 0, zackman, zackman, driver_device, 0, "Bandai", "Zackman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
|
||||
|
|
|
@ -1456,7 +1456,7 @@ static INPUT_PORTS_START( simon )
|
|||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_NAME("Blue Button")
|
||||
|
||||
PORT_START("IN.2") // R2
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Start")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Last")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Longest")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
|
@ -1544,7 +1544,7 @@ static INPUT_PORTS_START( ssimon )
|
|||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2) PORT_NAME("P2 Red Button")
|
||||
|
||||
PORT_START("IN.2") // R2
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Start")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("Last")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_NAME("Longest")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_NAME("Decision")
|
||||
|
|
|
@ -304,7 +304,7 @@ static INPUT_PORTS_START( ssfball )
|
|||
|
||||
PORT_START("IN.1") // G3 port B3
|
||||
PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_CONFNAME( 0x08, 0x00, DEF_STR( Difficulty ) )
|
||||
PORT_CONFNAME( 0x08, 0x00, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x08, "2" )
|
||||
|
||||
|
@ -447,7 +447,7 @@ static INPUT_PORTS_START( splasfgt )
|
|||
PORT_CONFNAME( 0x01, 0x00, "Players" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x01, "2" )
|
||||
PORT_CONFNAME( 0x02, 0x00, DEF_STR( Difficulty ) )
|
||||
PORT_CONFNAME( 0x02, 0x00, "Skill Level" )
|
||||
PORT_CONFSETTING( 0x00, "1" )
|
||||
PORT_CONFSETTING( 0x02, "2" )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START )
|
||||
|
|
Loading…
Reference in a new issue