mirror of
https://github.com/holub/mame
synced 2025-05-23 14:19:01 +03:00
Improvements to Piccolo Poker 100. [Roberto Fresca]
* Added a workaround to get the game booting. * Created inputs from the scratch. * Promoted to 'working'. * Added technical and game notes. New games added or promoted from NOT_WORKING status --------------------------------------------------- Piccolo Poker 100 [Roberto Fresca]
This commit is contained in:
parent
2c51688e01
commit
bf18c1056b
@ -27,7 +27,7 @@
|
|||||||
rabbitpk | clone | Rabbit Poker / Arizona Poker 1.1? (with PIC)
|
rabbitpk | clone | Rabbit Poker / Arizona Poker 1.1? (with PIC)
|
||||||
sigmapkr | parent | Sigma Poker.
|
sigmapkr | parent | Sigma Poker.
|
||||||
sigma2k | parent | Sigma Poker 2000.
|
sigma2k | parent | Sigma Poker 2000.
|
||||||
piccolop | parent | Piccolo Poker.
|
piccolop | parent | Piccolo Poker 100.
|
||||||
|
|
||||||
|
|
||||||
*********************************************************************************
|
*********************************************************************************
|
||||||
@ -114,6 +114,20 @@
|
|||||||
5) Turn OFF the Supervisor Key (0).
|
5) Turn OFF the Supervisor Key (0).
|
||||||
|
|
||||||
|
|
||||||
|
Piccolo Poker 100:
|
||||||
|
|
||||||
|
To 'init' (boot) the machine:
|
||||||
|
1) Turn ON the Operator Key (9).
|
||||||
|
2) Press the DOOR key (O). You are entering the Operator Mode.
|
||||||
|
3) Turn OFF the Operator Key (9).
|
||||||
|
4) Reset the machine. (sometimes you must reset manually the machine due to watchdog issues).
|
||||||
|
|
||||||
|
If you win some credits, you'll be on troubles due to unemulated hopper.
|
||||||
|
Just discharge the credits one by one pressing quickly the door switch (O)
|
||||||
|
If you want to play without the hopper issues, just leave the door open (O). In this mode,
|
||||||
|
the game is playable but doesn't contabilize in the meters.
|
||||||
|
|
||||||
|
|
||||||
*********************************************************************************
|
*********************************************************************************
|
||||||
|
|
||||||
|
|
||||||
@ -281,6 +295,15 @@
|
|||||||
--- DRIVER UPDATES ---
|
--- DRIVER UPDATES ---
|
||||||
|
|
||||||
|
|
||||||
|
[2010-09-28]
|
||||||
|
|
||||||
|
Piccolo Poker 100 from Admiral - Novomatic.
|
||||||
|
- Added a workaround to get the game booting.
|
||||||
|
- Created inputs from the scratch.
|
||||||
|
- Promoted to 'working'.
|
||||||
|
- Added technical and game notes.
|
||||||
|
|
||||||
|
|
||||||
[2009-08-17]
|
[2009-08-17]
|
||||||
|
|
||||||
- Added Rabbit Poker / Arizona Poker? set (with GAL22V10 and PIC16F84A).
|
- Added Rabbit Poker / Arizona Poker? set (with GAL22V10 and PIC16F84A).
|
||||||
@ -359,6 +382,8 @@
|
|||||||
|
|
||||||
- Find why the watchdog sometimes stop to work.
|
- Find why the watchdog sometimes stop to work.
|
||||||
- Analyze the write to port 0x21 after reset.
|
- Analyze the write to port 0x21 after reset.
|
||||||
|
- Proper lamps for Piccolo Poker.
|
||||||
|
- Hopper emulation.
|
||||||
|
|
||||||
|
|
||||||
*********************************************************************************/
|
*********************************************************************************/
|
||||||
@ -993,6 +1018,94 @@ static INPUT_PORTS_START( sigma2k )
|
|||||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
static INPUT_PORTS_START( piccolop )
|
||||||
|
PORT_START("IN0")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("IN0-2") PORT_CODE(KEYCODE_1_PAD)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(2)
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 ) PORT_IMPULSE(2)
|
||||||
|
|
||||||
|
PORT_START("IN1")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal/Take")
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_SERVICE ) PORT_NAME("Operator Key") PORT_TOGGLE
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("IN1-5") PORT_CODE(KEYCODE_2_PAD)
|
||||||
|
|
||||||
|
PORT_START("IN2")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("IN2-2") PORT_CODE(KEYCODE_3_PAD)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_GAMBLE_DOOR ) PORT_NAME("Door Switch")
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )
|
||||||
|
|
||||||
|
PORT_START("IN3")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Hopper Out") PORT_CODE(KEYCODE_G)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Supervisor Key") PORT_TOGGLE PORT_CODE(KEYCODE_0)
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
|
||||||
|
|
||||||
|
PORT_START("IN4")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Hopper Low") PORT_CODE(KEYCODE_H)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_NAME("Hold 4 / Red")
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
|
||||||
|
|
||||||
|
PORT_START("IN5")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Return Line") PORT_CODE(KEYCODE_J)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("TILT") PORT_CODE(KEYCODE_K)
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_NAME("Hold 5 / Black")
|
||||||
|
|
||||||
|
PORT_START("IN6")
|
||||||
|
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("IN6-2") PORT_CODE(KEYCODE_4_PAD)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("IN6-3") PORT_CODE(KEYCODE_5_PAD)
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(2)
|
||||||
|
|
||||||
|
PORT_START("IN7")
|
||||||
|
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNKNOWN) // lack of v-sync if low
|
||||||
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("IN7-2") PORT_CODE(KEYCODE_6_PAD)
|
||||||
|
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("IN7-3") PORT_CODE(KEYCODE_7_PAD)
|
||||||
|
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
|
||||||
|
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||||
|
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||||
|
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Coin Refill") PORT_CODE(KEYCODE_R)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
/*************************
|
/*************************
|
||||||
* Graphics Layouts *
|
* Graphics Layouts *
|
||||||
@ -1270,7 +1383,6 @@ Roms have swapped halves.
|
|||||||
Rechecked on PCB.
|
Rechecked on PCB.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ROM_START( piccolop )
|
ROM_START( piccolop )
|
||||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||||
ROM_LOAD( "v4.1.bin", 0x4000, 0x4000, CRC(ae092c43) SHA1(191e233310d59d3b4eb71c7081799835efcae069) )
|
ROM_LOAD( "v4.1.bin", 0x4000, 0x4000, CRC(ae092c43) SHA1(191e233310d59d3b4eb71c7081799835efcae069) )
|
||||||
@ -1316,6 +1428,7 @@ static DRIVER_INIT( rabbitpk )
|
|||||||
static DRIVER_INIT( piccolop )
|
static DRIVER_INIT( piccolop )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
The protection is based on a stuck bit at RAM offset $C416.
|
||||||
|
|
||||||
1382: 41 ld b,c
|
1382: 41 ld b,c
|
||||||
1383: 80 add a,b
|
1383: 80 add a,b
|
||||||
@ -1326,17 +1439,31 @@ static DRIVER_INIT( piccolop )
|
|||||||
1388: 3E 08 ld a,$08
|
1388: 3E 08 ld a,$08
|
||||||
138A: D3 37 out ($37),a ; Sets bit3 to keep happy the watchdog reset.
|
138A: D3 37 out ($37),a ; Sets bit3 to keep happy the watchdog reset.
|
||||||
138C: 32 01 C0 ld ($C001),a
|
138C: 32 01 C0 ld ($C001),a
|
||||||
138F: 18 FE jr $138F ; INFINITE LOOP --- WTF???
|
138F: 18 FE jr $138F ; INFINITE LOOP --- WTH???
|
||||||
|
|
||||||
The following patch will break the infinite loop,
|
1541: 21 16 C4 ld hl,$C416 ; Load $C416 into HL...
|
||||||
but reset the game constantly.
|
1544: CB 4E bit 1,(hl)
|
||||||
|
1546: 7E ld a,(hl) ; Load the $C416 contents...
|
||||||
|
1547: E6 E0 and $E0 ; AND $E0
|
||||||
|
1549: FE 40 cp $40 ; Compare with $40
|
||||||
|
154B: C2 88 13 jp nz,$1388 ; Jumps to stuck!
|
||||||
|
|
||||||
|
154E: FD 21 AA C0 ld iy,$C0AA ; Else continue...
|
||||||
|
1552: 11 16 C5 ld de,$C516
|
||||||
|
1555: 21 88 57 ld hl,$5788
|
||||||
|
1558: 06 08 ld b,$08
|
||||||
|
155A: 1A ld a,(de)
|
||||||
|
155B: BE cp (hl)
|
||||||
|
155C: C2 13 2A jp nz,$2A13
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// UINT8 *rom = memory_region(machine, "maincpu");
|
UINT8 *rom = memory_region(machine, "maincpu");
|
||||||
|
|
||||||
// rom[0x138f] = 0x00;
|
/* NOP'ing the mortal jump... */
|
||||||
// rom[0x1390] = 0x00;
|
rom[0x154b] = 0x00;
|
||||||
|
rom[0x154c] = 0x00;
|
||||||
|
rom[0x154d] = 0x00;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1358,4 +1485,4 @@ GAMEL( 1990, videomat, ampoker2, ampoker2, ampoker2, 0, ROT0, "bootleg",
|
|||||||
GAMEL( 1990, rabbitpk, ampoker2, ampoker2, ampoker2, rabbitpk, ROT0, "bootleg", "Rabbit Poker (Arizona Poker v1.1?)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
|
GAMEL( 1990, rabbitpk, ampoker2, ampoker2, ampoker2, rabbitpk, ROT0, "bootleg", "Rabbit Poker (Arizona Poker v1.1?)", GAME_SUPPORTS_SAVE, layout_ampoker2 )
|
||||||
GAMEL( 1995, sigmapkr, 0, ampoker2, sigmapkr, 0, ROT0, "Sigma Inc.", "Sigma Poker", GAME_SUPPORTS_SAVE, layout_sigmapkr )
|
GAMEL( 1995, sigmapkr, 0, ampoker2, sigmapkr, 0, ROT0, "Sigma Inc.", "Sigma Poker", GAME_SUPPORTS_SAVE, layout_sigmapkr )
|
||||||
GAMEL( 1998, sigma2k, 0, sigma2k, sigma2k, 0, ROT0, "Sigma Inc.", "Sigma Poker 2000", GAME_SUPPORTS_SAVE, layout_sigmapkr )
|
GAMEL( 1998, sigma2k, 0, sigma2k, sigma2k, 0, ROT0, "Sigma Inc.", "Sigma Poker 2000", GAME_SUPPORTS_SAVE, layout_sigmapkr )
|
||||||
GAME( 1990, piccolop, ampoker2, ampoker2, ampoker2, piccolop, ROT0, "Admiral - Novomatic", "Piccolo Poker", GAME_NOT_WORKING )
|
GAME( 1990, piccolop, ampoker2, ampoker2, piccolop, piccolop, ROT0, "Admiral/Novomatic", "Piccolo Poker 100", GAME_SUPPORTS_SAVE )
|
||||||
|
Loading…
Reference in New Issue
Block a user