Fixes to default mapping as well as comment/information fixes for Mole Attack [M.A.S.H./Tafoid]

This commit is contained in:
Scott Stone 2009-11-05 19:05:44 +00:00
parent 448de6a3e9
commit 7b654c4d8d

View File

@ -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