galspnbl.c: Add in missing button to Gals Pinball & Hot Pinball along with misc documentation. [Brian Troha]

This commit is contained in:
Brian Troha 2012-05-08 02:55:47 +00:00
parent f03200ab01
commit 205abfe682

View File

@ -9,13 +9,30 @@ Notes:
- to start a 2 or more players game, press the start button multiple times
- the sprite graphics contain a "(c) Tecmo", and the sprite system is
indeed similar to other Tecmo games like Ninja Gaiden.
- Clearly based on Temco's Super Pinball Action (see spbactn.c)
- There seems to be a bug in Hot Pinball's Demo Sounds. If you start the
game normally you get no demo sounds. However if you select the "Slide
Show" and run all the way through the game will start with demo sounds.
Gals Pinball's Demo Sounds works as expected according to DSW setting.
TODO:
- scrolling is wrong.
- sprite/tile priority might be wrong. There is an unknown bit in the fg
tilemap, marking some tiles that I'm not currently drawing.
Manuals for both games define the controls as 4 push buttons:
Left Push Buttons Right Push Buttons
| o | o | | o | o |
|--------+--------------+-------------+------------------------|
| Select | Set | Select Mode | |
| Stage | Stage | | |
|--------+--------------+-------------+---------+--------------|
|Flipper | Shot & Shake | Game Mode | Flipper | Shot & Shake |
| Left | Left | | Right | Right |
|--------+--------------+-------------+---------+--------------|
***************************************************************************/
#include "emu.h"
@ -78,7 +95,7 @@ static INPUT_PORTS_START( galspnbl )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME( "Left Flippers" )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Launch Ball / Tilt" )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME( "Launch Ball / Tilt (Left Side)" )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* uncalled (?) code at 0x007ed2 ('hotpinbl') or 0x008106 ('galspnbl') */
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
@ -87,7 +104,7 @@ static INPUT_PORTS_START( galspnbl )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SPECIAL ) /* same as BUTTON3 - leftover from another game ? */
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME( "Launch Ball / Tilt (Right Side)" )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Right Flippers" )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* uncalled (?) code at 0x007e90 ('hotpinbl') or 0x0080c4 ('galspnbl') */
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
@ -95,7 +112,7 @@ static INPUT_PORTS_START( galspnbl )
PORT_START("SYSTEM")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME( "Start" ) /* needed to avoid confusion with # of players */
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 ) PORT_NAME( "Start" ) /* needed to avoid confusion with # of players. Press mulitple times for multiple players */
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED )
@ -116,7 +133,7 @@ static INPUT_PORTS_START( galspnbl )
PORT_DIPNAME( 0x10, 0x10, "Hit Difficulty" ) PORT_DIPLOCATION("SW2:5")
PORT_DIPSETTING( 0x10, DEF_STR( Normal ) )
PORT_DIPSETTING( 0x00, DEF_STR( Hard ) )
PORT_DIPNAME( 0x20, 0x20, "Slide Show" ) PORT_DIPLOCATION("SW2:6")
PORT_DIPNAME( 0x20, 0x20, "Slide Show" ) PORT_DIPLOCATION("SW2:6") /* Listed as unused on manuals for both games */
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW2:7")
@ -155,7 +172,7 @@ static INPUT_PORTS_START( hotpinbl )
PORT_MODIFY("IN1")
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME( "Right Flippers" )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SPECIAL ) /* same as BUTTON3 - leftover from another game ? */
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME( "Launch Ball / Tilt (Right Side)" )
INPUT_PORTS_END
@ -211,11 +228,11 @@ static MACHINE_START( galspnbl )
static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, 10000000) /* 10 MHz ??? */
MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* 12 MHz ??? - Use value from Temco's Super Pinball Action - NEEDS VERIFICATION!! */
MCFG_CPU_PROGRAM_MAP(main_map)
MCFG_CPU_VBLANK_INT("screen", irq3_line_hold)/* also has vector for 6, but it does nothing */
MCFG_CPU_ADD("audiocpu", Z80, 4000000) /* 4 MHz ??? */
MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz) /* 4 MHz ??? - Use value from Temco's Super Pinball Action - NEEDS VERIFICATION!! */
MCFG_CPU_PROGRAM_MAP(audio_map)
/* NMI is caused by the main CPU */
@ -237,11 +254,11 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM3812, 3579545)
MCFG_SOUND_ADD("ymsnd", YM3812, XTAL_4MHz) /* Use value from Super Pinball Action - NEEDS VERIFICATION!! */
MCFG_SOUND_CONFIG(ym3812_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Use value from Super Pinball Action - clock frequency & pin 7 not verified */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END