mirror of
https://github.com/holub/mame
synced 2025-05-27 16:21:34 +03:00
Fixes to default mapping as well as comment/information fixes for Mole Attack [M.A.S.H./Tafoid]
This commit is contained in:
parent
448de6a3e9
commit
7b654c4d8d
@ -1,51 +1,55 @@
|
|||||||
// MOLE ATTACK YACHIYO 1982
|
/* MOLE ATTACK by Yachiyo Electronics Co.,LTD. 1982
|
||||||
// known clones: "Holy Moly"
|
|
||||||
//
|
Known Clones:
|
||||||
// emulated by Jason Nelson, Phil Stroffolino
|
"Holey Moley", from tai (Thomas Automatics, Inc.)
|
||||||
// known issues:
|
|
||||||
// some dips not mapped
|
emulated by Jason Nelson, Phil Stroffolino
|
||||||
// protection isn't fully understood, but game seems to be
|
|
||||||
// ok.
|
Known Issues:
|
||||||
//
|
- some dips not mapped
|
||||||
// buttons are laid out as follows:
|
- protection isn't fully understood, but game seems to be ok.
|
||||||
// 7 8 9
|
- cpu speeds unverified
|
||||||
// 4 5 6
|
|
||||||
// 1 2 3
|
Buttons are laid out as follows:
|
||||||
//
|
7 8 9
|
||||||
// Working RAM notes:
|
4 5 6
|
||||||
// 0x2e0 number of credits
|
1 2 3
|
||||||
// 0x2F1 coin up trigger
|
|
||||||
// 0x2F2 round counter
|
Working RAM notes:
|
||||||
// 0x2F3 flag value
|
0x2e0 number of credits
|
||||||
// 0x2FD hammer aim for attract mode
|
0x2F1 coin up trigger
|
||||||
// 0x2E1-E2 high score
|
0x2F2 round counter
|
||||||
// 0x2ED-EE score
|
0x2F3 flag value
|
||||||
// 0x301-309 presence and height of mole in each hole, from bottom left
|
0x2FD hammer aim for attract mode
|
||||||
// 0x30a
|
0x2E1-E2 high score
|
||||||
// 0x32E-336 if a hammer is above a mole. (Not the same as collision)
|
0x2ED-EE score
|
||||||
// 0x337 dip switch related
|
0x301-309 presence and height of mole in each hole, from bottom left
|
||||||
// 0x338 dip switch related
|
0x30a
|
||||||
// 0x340 hammer control: manual=0; auto=1
|
0x32E-336 if a hammer is above a mole. (Not the same as collision)
|
||||||
// 0x34C round point 10s.
|
0x337 dip switch related
|
||||||
// 0x34D which bonus round pattern to use for moles.
|
0x338 dip switch related
|
||||||
// 0x349 button pressed (0..8 / 0xff)
|
0x340 hammer control: manual=0; auto=1
|
||||||
// 0x350 number of players
|
0x34C round point 10s.
|
||||||
// 0x351 irq-related
|
0x34D which bonus round pattern to use for moles.
|
||||||
// 0x361
|
0x349 button pressed (0..8 / 0xff)
|
||||||
// 0x362
|
0x350 number of players
|
||||||
// 0x363
|
0x351 irq-related
|
||||||
// 0x364
|
0x361
|
||||||
// 0x366 mirrors tile bank
|
0x362
|
||||||
// 0x36B controls which player is playing. (1 == player 2);
|
0x363
|
||||||
// 0x3DC affects mole popmessage
|
0x364
|
||||||
// 0x3E5 round point/passing point control?
|
0x366 mirrors tile bank
|
||||||
// 0x3E7 round point/passing point control?
|
0x36B controls which player is playing. (1 == player 2);
|
||||||
|
0x3DC affects mole popmessage
|
||||||
|
0x3E5 round point/passing point control?
|
||||||
|
0x3E7 round point/passing point control?
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
#include "cpu/m6502/m6502.h"
|
#include "cpu/m6502/m6502.h"
|
||||||
#include "sound/ay8910.h"
|
#include "sound/ay8910.h"
|
||||||
|
|
||||||
|
|
||||||
WRITE8_HANDLER(mole_videoram_w);
|
WRITE8_HANDLER(mole_videoram_w);
|
||||||
WRITE8_HANDLER(mole_tilebank_w);
|
WRITE8_HANDLER(mole_tilebank_w);
|
||||||
WRITE8_HANDLER(mole_flipscreen_w);
|
WRITE8_HANDLER(mole_flipscreen_w);
|
||||||
@ -57,6 +61,7 @@ VIDEO_UPDATE(mole);
|
|||||||
|
|
||||||
static READ8_HANDLER( mole_protection_r )
|
static READ8_HANDLER( mole_protection_r )
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Following are all known examples of Mole Attack
|
/* Following are all known examples of Mole Attack
|
||||||
** code reading from the protection circuitry:
|
** code reading from the protection circuitry:
|
||||||
**
|
**
|
||||||
@ -99,6 +104,7 @@ static READ8_HANDLER( mole_protection_r )
|
|||||||
** remaining reads have; for now we simply
|
** remaining reads have; for now we simply
|
||||||
** return 0x00
|
** return 0x00
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return 0x00;
|
return 0x00;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,20 +149,20 @@ static INPUT_PORTS_START( mole )
|
|||||||
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
|
|
||||||
PORT_START("IN0") /* 0x8d40 */
|
PORT_START("IN0") /* 0x8d40 */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 1") PORT_CODE(KEYCODE_1_PAD)
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 )
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 2") PORT_CODE(KEYCODE_2_PAD)
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 )
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 3") PORT_CODE(KEYCODE_3_PAD)
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 )
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 4") PORT_CODE(KEYCODE_4_PAD)
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON5 )
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 5") PORT_CODE(KEYCODE_5_PAD)
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON6 )
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 6") PORT_CODE(KEYCODE_6_PAD)
|
||||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_BUTTON7 )
|
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 7") PORT_CODE(KEYCODE_7_PAD)
|
||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_BUTTON8 )
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 8") PORT_CODE(KEYCODE_8_PAD)
|
||||||
|
|
||||||
PORT_START("IN1") /* 0x8d80 */
|
PORT_START("IN1") /* 0x8d80 */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON9 )
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P1 Pad 9") PORT_CODE(KEYCODE_9_PAD)
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 1") PORT_CODE(KEYCODE_Q) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 2") PORT_CODE(KEYCODE_W) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_COCKTAIL
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 3") PORT_CODE(KEYCODE_E) PORT_COCKTAIL
|
||||||
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
|
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Cabinet ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Upright ) )
|
||||||
PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) )
|
PORT_DIPSETTING( 0x10, DEF_STR( Cocktail ) )
|
||||||
@ -165,12 +171,12 @@ static INPUT_PORTS_START( mole )
|
|||||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
|
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_COIN1 )
|
||||||
|
|
||||||
PORT_START("IN2") /* 0x8dc0 */
|
PORT_START("IN2") /* 0x8dc0 */
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON8 ) PORT_COCKTAIL
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 8") PORT_CODE(KEYCODE_X) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON7 ) PORT_COCKTAIL
|
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 7") PORT_CODE(KEYCODE_Z) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL
|
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 4") PORT_CODE(KEYCODE_A) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON9 ) PORT_COCKTAIL
|
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 9") PORT_CODE(KEYCODE_C) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_BUTTON6 ) PORT_COCKTAIL
|
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 6") PORT_CODE(KEYCODE_D) PORT_COCKTAIL
|
||||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_COCKTAIL
|
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("P2 Pad 5") PORT_CODE(KEYCODE_S) PORT_COCKTAIL
|
||||||
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
|
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user