mirror of
https://github.com/holub/mame
synced 2025-04-25 17:56:43 +03:00
Fixed Dip Switches and Inputs (after verification of the Z80 code) for 'espial', 'espialu' and 'netwars".
This commit is contained in:
parent
1d14f429ae
commit
535a84c908
@ -5,6 +5,33 @@
|
||||
Espial: The Orca logo is displayed, but looks to be "blacked out" via the
|
||||
color proms by having 0x1c & 0x1d set to black.
|
||||
|
||||
|
||||
Stephh's notes (based on the games Z80 code and some tests) :
|
||||
|
||||
1) 'espial*'
|
||||
|
||||
- The games read both players controls for player 2 when "Cabinet" is set
|
||||
to "Upright" (code at 0x0321).
|
||||
- The games read both buttons status regardless of settings. They are
|
||||
then comnbined if Dip Switch is set to "1" (code at 0x32a).
|
||||
- The "CRE." displayed at the bottom right of the screen is in fact
|
||||
not really the number of credits (especially when coinage isn't 1C_1C)
|
||||
as it relies on a transformation of real number of credits (stored at
|
||||
0x5802) based on settings (coins needed stored at 0x5806 and credits
|
||||
awarded at 0x5804). Check code at 0x080b which displays the odd value.
|
||||
|
||||
2) 'netwars'
|
||||
|
||||
- The game reads both players controls for player 2 when "Cabinet" is set
|
||||
to "Upright" (code at 0x038e).
|
||||
- The "CREDIT" displayed at the bottom right of the screen is in fact
|
||||
not really the number of credits (especially when coinage isn't 1C_1C)
|
||||
as it relies on a transformation of real number of credits (stored at
|
||||
0x5802) based on settings (coins needed stored at 0x5806 and credits
|
||||
awarded at 0x5804). Check code at 0x0147 which displays the odd value.
|
||||
- When you get a perfect in the bonus game, you are only awarded 1000 points
|
||||
even if the game tells you that you have been awarded 10000 points.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -142,19 +169,20 @@ static ADDRESS_MAP_START( espial_sound_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/* verified from Z80 code */
|
||||
static INPUT_PORTS_START( espial )
|
||||
PORT_START("IN0")
|
||||
PORT_DIPNAME( 0x01, 0x00, "Number of Buttons" )
|
||||
PORT_DIPSETTING( 0x01, "1" )
|
||||
PORT_DIPSETTING( 0x00, "2" )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Enemy Bullets Vulnerable" ) /* you can shoot bullets */
|
||||
PORT_DIPNAME( 0x02, 0x02, "Enemy Bullets Vulnerable" ) /* you can shoot bullets */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_DIPUNUSED( 0x04, IP_ACTIVE_HIGH )
|
||||
PORT_DIPUNUSED( 0x08, IP_ACTIVE_HIGH )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("DSW1")
|
||||
@ -172,52 +200,47 @@ static INPUT_PORTS_START( espial )
|
||||
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x1c, DEF_STR( Free_Play ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) ) /* Sources on the net show 20K/50K & 40K/70K */
|
||||
PORT_DIPSETTING( 0x00, "20k and every 70k" )
|
||||
PORT_DIPSETTING( 0x20, "50k and every 100k" )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) ) /* code at 0x43e1 in 'espial' and 0x44b5 in 'espialu' */
|
||||
PORT_DIPSETTING( 0x00, "20k 70k 70k+" ) /* last bonus life at 980k : max. 15 bonus lives */
|
||||
PORT_DIPSETTING( 0x20, "50k 100k 100k+" ) /* last bonus life at 900k : max. 10 bonus lives */
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Reset on Check Error" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||
|
||||
PORT_START("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
/* verified from Z80 code */
|
||||
static INPUT_PORTS_START( netwars )
|
||||
PORT_START("IN0")
|
||||
PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) /* probably unused */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) /* used */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) /* probably unused */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) /* used */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
|
||||
PORT_DIPUNUSED( 0x01, IP_ACTIVE_HIGH )
|
||||
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Difficulty ) ) /* when enemies shoot - code at 0x2216 */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Easy ) )
|
||||
PORT_DIPSETTING( 0x02, DEF_STR( Hard ) )
|
||||
PORT_DIPUNUSED( 0x04, IP_ACTIVE_HIGH )
|
||||
PORT_DIPUNUSED( 0x08, IP_ACTIVE_HIGH ) /* no effect due to code at 0x0e0a */
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
@ -238,24 +261,24 @@ static INPUT_PORTS_START( netwars )
|
||||
PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( 1C_6C ) )
|
||||
PORT_DIPSETTING( 0x1c, DEF_STR( Free_Play ) )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) )
|
||||
PORT_DIPSETTING( 0x00, "20k and every 70k" )
|
||||
PORT_DIPSETTING( 0x20, "50k and every 100k" )
|
||||
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Bonus_Life ) ) /* code at 0x2383 */
|
||||
PORT_DIPSETTING( 0x00, "20k and 50k" )
|
||||
PORT_DIPSETTING( 0x20, "40k and 70k" )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Cabinet ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Upright ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Reset on Check Error" )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( No ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START1 )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_4WAY PORT_COCKTAIL
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
|
||||
PORT_START("IN2")
|
||||
@ -263,10 +286,10 @@ static INPUT_PORTS_START( netwars )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_4WAY
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_4WAY
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_4WAY
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user