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