poker72: boots up. By adjusting SW1 you can get various test screens and cards.

This commit is contained in:
Robbbert 2016-06-20 01:16:36 +10:00
parent de8cee11fb
commit 790877f11e

View File

@ -1,16 +1,22 @@
// license:BSD-3-Clause // license:BSD-3-Clause
// copyright-holders:David Haywood // copyright-holders:David Haywood, Robbbert
/* /************************************************************************************************
Unknown game, dump was marked 'slot 72 - poker' Poker Monarch
GFX roms contain GFX roms contain
'Extrema Systems International Ltd' 'Extrema Systems International Ltd'
as well as a logo for the company. as well as a logo for the company.
There are also 'Lucky Boy' graphics in various places, which might be the title. There are also 'Lucky Boy' graphics in various places.
* Turn on all the dips of SW1
* Restart game
* If it says ERROR OF RAM GAME STOP, press F2
* When you get a blank blue screen Press Alt+2
* This gives a setup screen. Press F2 to see cards and logo (and it beeps)
* Depending on settings of SW1, you can get other cards, or other test screens.
*/ *************************************************************************************************/
#include "emu.h" #include "emu.h"
#include "cpu/z80/z80.h" #include "cpu/z80/z80.h"
@ -89,17 +95,15 @@ WRITE8_MEMBER(poker72_state::poker72_paletteram_w)
WRITE8_MEMBER(poker72_state::output_w) WRITE8_MEMBER(poker72_state::output_w)
{ {
UINT8 *ROM = memregion("maincpu")->base();
printf("%02x\n",data); printf("%02x\n",data);
/* if((data & 0xc) == 0xc) /* if((data & 0xc) == 0xc)
membank("bank1")->set_base(&ROM[0x10000]); membank("bank1")->set_entry(2);
else*/ else*/
if(data & 8) if(data & 8)
membank("bank1")->set_base(&ROM[0x08000]); membank("bank1")->set_entry(1);
else else
membank("bank1")->set_base(&ROM[0x00000]); membank("bank1")->set_entry(0);
} }
WRITE8_MEMBER(poker72_state::tile_bank_w) WRITE8_MEMBER(poker72_state::tile_bank_w)
@ -108,17 +112,17 @@ WRITE8_MEMBER(poker72_state::tile_bank_w)
} }
static ADDRESS_MAP_START( poker72_map, AS_PROGRAM, 8, poker72_state ) static ADDRESS_MAP_START( poker72_map, AS_PROGRAM, 8, poker72_state )
AM_RANGE(0x0000, 0xbfff) AM_ROMBANK("bank1") AM_RANGE(0x0000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0xc000, 0xdfff) AM_RAM //work ram AM_RANGE(0xc000, 0xdfff) AM_RAM //work ram
AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("vram") AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("vram")
AM_RANGE(0xf000, 0xfbff) AM_RAM_WRITE(poker72_paletteram_w) AM_SHARE("pal") AM_RANGE(0xf000, 0xfbff) AM_RAM_WRITE(poker72_paletteram_w) AM_SHARE("pal")
AM_RANGE(0xfc00, 0xfdff) AM_RAM //??? AM_RANGE(0xfc00, 0xfdff) AM_RAM //???
AM_RANGE(0xfe08, 0xfe08) AM_READ_PORT("IN0") AM_RANGE(0xfe08, 0xfe08) AM_READ_PORT("SW1")
AM_RANGE(0xfe09, 0xfe09) AM_READ_PORT("IN1") AM_RANGE(0xfe09, 0xfe09) AM_READ_PORT("IN1")
AM_RANGE(0xfe0a, 0xfe0a) AM_READ_PORT("IN2") AM_RANGE(0xfe0a, 0xfe0a) AM_READ_PORT("IN2")
AM_RANGE(0xfe0c, 0xfe0c) AM_READ_PORT("IN3") AM_RANGE(0xfe0c, 0xfe0c) AM_READ_PORT("SW4")
AM_RANGE(0xfe0d, 0xfe0d) AM_READ_PORT("IN4") AM_RANGE(0xfe0d, 0xfe0d) AM_READ_PORT("SW5")
AM_RANGE(0xfe0e, 0xfe0e) AM_READ_PORT("IN5") AM_RANGE(0xfe0e, 0xfe0e) AM_READ_PORT("SW6")
AM_RANGE(0xfe17, 0xfe17) AM_READNOP //irq ack AM_RANGE(0xfe17, 0xfe17) AM_READNOP //irq ack
AM_RANGE(0xfe20, 0xfe20) AM_WRITE(output_w) //output, irq enable? AM_RANGE(0xfe20, 0xfe20) AM_WRITE(output_w) //output, irq enable?
@ -142,8 +146,8 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( poker72 ) static INPUT_PORTS_START( poker72 )
PORT_START("IN0") PORT_START("SW1")
PORT_DIPNAME( 0x01, 0x00, "IN0" ) PORT_DIPNAME( 0x01, 0x00, "SW1" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
@ -169,28 +173,28 @@ static INPUT_PORTS_START( poker72 )
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("IN1") PORT_START("IN1")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_POKER_HOLD1 ) PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_POKER_HOLD1 ) // Z
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_POKER_HOLD2 ) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_POKER_HOLD2 ) // X
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_POKER_HOLD3 ) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_POKER_HOLD3 ) // C
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_POKER_HOLD4 ) PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_POKER_HOLD4 ) // V
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_POKER_HOLD5 ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_POKER_HOLD5 ) // B
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("M. Bet") PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_NAME("M. Bet")
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("Black") PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("Black")
PORT_START("IN2") PORT_START("IN2")
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Red") PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("Red")
PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_GAMBLE_D_UP ) PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_GAMBLE_D_UP )
PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_GAMBLE_TAKE ) PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_GAMBLE_TAKE )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_GAMBLE_DEAL ) // '2'
PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_GAMBLE_BET ) PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_GAMBLE_BET ) // M
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_SERVICE1 ) // '9'
PORT_SERVICE( 0x0080, IP_ACTIVE_LOW ) PORT_SERVICE( 0x0080, IP_ACTIVE_HIGH ) // F2
PORT_START("IN3") PORT_START("SW4")
PORT_DIPNAME( 0x01, 0x00, "IN3" ) PORT_DIPNAME( 0x01, 0x00, "SW4" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
@ -214,8 +218,8 @@ static INPUT_PORTS_START( poker72 )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("IN4") PORT_START("SW5")
PORT_DIPNAME( 0x01, 0x00, "IN4" ) PORT_DIPNAME( 0x01, 0x00, "SW5" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
@ -239,8 +243,8 @@ static INPUT_PORTS_START( poker72 )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("IN5") PORT_START("SW6")
PORT_DIPNAME( 0x01, 0x00, "IN5" ) PORT_DIPNAME( 0x01, 0x00, "SW6" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
@ -266,8 +270,8 @@ static INPUT_PORTS_START( poker72 )
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("DSW0") PORT_START("SW2")
PORT_DIPNAME( 0x01, 0x00, "DSW0" ) PORT_DIPNAME( 0x01, 0x00, "SW2" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
@ -292,8 +296,8 @@ static INPUT_PORTS_START( poker72 )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x80, DEF_STR( On ) ) PORT_DIPSETTING( 0x80, DEF_STR( On ) )
PORT_START("DSW1") PORT_START("SW3")
PORT_DIPNAME( 0x01, 0x00, "DSW1" ) PORT_DIPNAME( 0x01, 0x00, "SW3" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) ) PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
@ -354,9 +358,7 @@ PALETTE_INIT_MEMBER(poker72_state, poker72)
void poker72_state::machine_reset() void poker72_state::machine_reset()
{ {
UINT8 *ROM = memregion("maincpu")->base(); membank("bank1")->set_entry(0);
membank("bank1")->set_base(&ROM[0]);
} }
static MACHINE_CONFIG_START( poker72, poker72_state ) static MACHINE_CONFIG_START( poker72, poker72_state )
@ -384,15 +386,15 @@ static MACHINE_CONFIG_START( poker72, poker72_state )
MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay", AY8910, 8000000/8) /* ? Mhz */ MCFG_SOUND_ADD("ay", AY8910, 8000000/8) /* ? Mhz */
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0")) MCFG_AY8910_PORT_A_READ_CB(IOPORT("SW2"))
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1")) MCFG_AY8910_PORT_B_READ_CB(IOPORT("SW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END MACHINE_CONFIG_END
ROM_START( poker72 ) ROM_START( poker72 )
ROM_REGION( 0x20000, "maincpu", 0 ) ROM_REGION( 0x20000, "roms", 0 )
ROM_LOAD( "27010.bin", 0x00000, 0x20000, CRC(62447341) SHA1(e442c1f834a5dd2ab6ab3bdd316dfa86f2ca6647) ) ROM_LOAD( "27010.bin", 0x00000, 0x20000, CRC(62447341) SHA1(e442c1f834a5dd2ab6ab3bdd316dfa86f2ca6647) )
ROM_REGION( 0x1000, "89c51", 0 ) ROM_REGION( 0x1000, "89c51", 0 )
@ -407,9 +409,14 @@ ROM_END
DRIVER_INIT_MEMBER(poker72_state,poker72) DRIVER_INIT_MEMBER(poker72_state,poker72)
{ {
UINT8 *rom = memregion("maincpu")->base(); UINT8 *rom = memregion("roms")->base();
rom[0x4a9] = 0x28; // configure and intialize bank 1
membank("bank1")->configure_entries(0, 4, memregion("roms")->base(), 0x8000);
membank("bank1")->set_entry(0);
//rom[0x4a9] = 0x28;
rom[0x4aa] = 0x00;
} }
GAME( 1995, poker72, 0, poker72, poker72, poker72_state, poker72, ROT0, "Extrema Systems International Ltd.", "Poker Monarch (v2.50)", MACHINE_NOT_WORKING ) // actually unknown, was marked 'slot 72 poker' Manufacturers logo and 'Lucky Boy' gfx in rom.. GAME( 1995, poker72, 0, poker72, poker72, poker72_state, poker72, ROT0, "Extrema Systems International Ltd.", "Poker Monarch (v2.50)", MACHINE_NOT_WORKING )