mirror of
https://github.com/holub/mame
synced 2025-06-01 02:21:48 +03:00
Cherry Master '91:
- Fixed memory map. - Added proper PPI 8255 devices. - Worked inputs / DIP switches from the scratch. - Fixed reels tilemaps visible area. - Fixed reels colors. - Removed all the flags and promoted to working status. New games added or promoted from NOT_WORKING status --------------------------------------------------- Cherry Master '91 (ver.1.30) [Roberto Fresca]
This commit is contained in:
parent
019b61e7af
commit
5057616884
@ -95,6 +95,7 @@ WRITE8_HANDLER( goldstar_fa00_w );
|
||||
VIDEO_START( goldstar );
|
||||
VIDEO_START( cherrym );
|
||||
VIDEO_UPDATE( goldstar );
|
||||
VIDEO_UPDATE( cmast91 );
|
||||
|
||||
static UINT8 *nvram;
|
||||
static size_t nvram_size;
|
||||
@ -264,8 +265,8 @@ static ADDRESS_MAP_START( cm_portmap, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0x01, 0x01) AM_READ(ay8910_read_port_0_r)
|
||||
AM_RANGE(0x02, 0x02) AM_WRITE(ay8910_write_port_0_w)
|
||||
AM_RANGE(0x03, 0x03) AM_WRITE(ay8910_control_port_0_w)
|
||||
AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(PPI8255, "cm_ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(PPI8255, "cm_ppi8255_1", ppi8255_r, ppi8255_w) /* DIP switches */
|
||||
AM_RANGE(0x04, 0x07) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w) /* DIP switches */
|
||||
AM_RANGE(0x10, 0x10) AM_WRITE (cm_outport0_w) /* output port */
|
||||
AM_RANGE(0x11, 0x11) AM_WRITENOP
|
||||
AM_RANGE(0x12, 0x12) AM_WRITE (cm_outport1_w) /* output port */
|
||||
@ -273,14 +274,10 @@ static ADDRESS_MAP_START( cm_portmap, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static READ8_HANDLER( cm91_r )
|
||||
{
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( cmast91_portmap, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x02, 0x02) AM_READ(cm91_r)
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w) /* DIP switches */
|
||||
AM_RANGE(0x21, 0x21) AM_READ(ay8910_read_port_0_r)
|
||||
AM_RANGE(0x22, 0x22) AM_WRITE(ay8910_write_port_0_w)
|
||||
AM_RANGE(0x23, 0x23) AM_WRITE(ay8910_control_port_0_w)
|
||||
@ -861,6 +858,168 @@ static INPUT_PORTS_START( cmaster )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( cmast91 )
|
||||
PORT_START("IN0")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Big") PORT_CODE(KEYCODE_X)
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("D-UP") PORT_CODE(KEYCODE_Z)
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("Take") PORT_CODE(KEYCODE_V)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("Bet") PORT_CODE(KEYCODE_B)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Small / Info") PORT_CODE(KEYCODE_C)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_NAME("Start") PORT_CODE(KEYCODE_N)
|
||||
|
||||
PORT_START("IN1")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2) PORT_IMPULSE(2) /* Coin B */
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN4) PORT_IMPULSE(2) /* Coin D */
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN3) PORT_IMPULSE(2) /* Coin C */
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Key In") PORT_CODE(KEYCODE_Q)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1) PORT_IMPULSE(2) /* Coin A */
|
||||
|
||||
PORT_START("IN2")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Key Out / Attendant") PORT_CODE(KEYCODE_W)
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Settings") PORT_CODE(KEYCODE_9)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_SERVICE ) PORT_NAME("Stats") PORT_CODE(KEYCODE_0)
|
||||
|
||||
PORT_START("DSW1")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW1:1") /* OK */
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x02, 0x02, "Hopper Out Switch" ) PORT_DIPLOCATION("DSW1:2") /* OK */
|
||||
PORT_DIPSETTING( 0x02, "Active Low" )
|
||||
PORT_DIPSETTING( 0x00, "Active High" )
|
||||
PORT_DIPNAME( 0x04, 0x00, "Payout Mode" ) PORT_DIPLOCATION("DSW1:3") /* OK */
|
||||
PORT_DIPSETTING( 0x04, "Payout Switch" )
|
||||
PORT_DIPSETTING( 0x00, "Automatic" )
|
||||
PORT_DIPNAME( 0x08, 0x00, "W-UP '7'" ) PORT_DIPLOCATION("DSW1:4") /* not checked */
|
||||
PORT_DIPSETTING( 0x08, "Loss" )
|
||||
PORT_DIPSETTING( 0x00, "Even" )
|
||||
PORT_DIPNAME( 0x10, 0x00, "W-UP Pay Rate" ) PORT_DIPLOCATION("DSW1:5") /* OK */
|
||||
PORT_DIPSETTING( 0x00, "80%" )
|
||||
PORT_DIPSETTING( 0x10, "90%" )
|
||||
PORT_DIPNAME( 0x20, 0x00, "W-UP Game" ) PORT_DIPLOCATION("DSW1:6") /* OK */
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0xc0, 0xc0, "Bet Max" ) PORT_DIPLOCATION("DSW1:7,8") /* OK */
|
||||
PORT_DIPSETTING( 0x00, "8" )
|
||||
PORT_DIPSETTING( 0x40, "16" )
|
||||
PORT_DIPSETTING( 0x80, "32" )
|
||||
PORT_DIPSETTING( 0xc0, "64" )
|
||||
|
||||
PORT_START("DSW2")
|
||||
PORT_DIPNAME( 0x07, 0x03, "Main Game Pay Rate" ) PORT_DIPLOCATION("DSW2:1,2,3") /* OK */
|
||||
PORT_DIPSETTING( 0x07, "45%" )
|
||||
PORT_DIPSETTING( 0x06, "50%" )
|
||||
PORT_DIPSETTING( 0x05, "55%" )
|
||||
PORT_DIPSETTING( 0x04, "60%" )
|
||||
PORT_DIPSETTING( 0x03, "65%" )
|
||||
PORT_DIPSETTING( 0x02, "70%" )
|
||||
PORT_DIPSETTING( 0x01, "75%" )
|
||||
PORT_DIPSETTING( 0x00, "80%" )
|
||||
PORT_DIPNAME( 0x18, 0x00, "Hopper Limit" ) PORT_DIPLOCATION("DSW2:4,5") /* OK */
|
||||
PORT_DIPSETTING( 0x18, "300" )
|
||||
PORT_DIPSETTING( 0x10, "500" )
|
||||
PORT_DIPSETTING( 0x08, "1000" )
|
||||
PORT_DIPSETTING( 0x00, "Unlimited" )
|
||||
PORT_DIPNAME( 0x20, 0x00, "100 Odds Sound" ) PORT_DIPLOCATION("DSW2:6") /* not checked */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, "Key-In Type" ) PORT_DIPLOCATION("DSW2:7") /* OK */
|
||||
PORT_DIPSETTING( 0x40, "A-Type" )
|
||||
PORT_DIPSETTING( 0x00, "B-Type" )
|
||||
PORT_DIPNAME( 0x80, 0x00, "Center Super 7 Bet Limit" ) PORT_DIPLOCATION("DSW2:8") /* related with DSW 4-6 */
|
||||
PORT_DIPSETTING( 0x80, "Unlimited" )
|
||||
PORT_DIPSETTING( 0x00, "Limited" )
|
||||
|
||||
PORT_START("DSW3")
|
||||
PORT_DIPNAME( 0x03, 0x03, "Key In Rate" ) PORT_DIPLOCATION("DSW3:1,2") /* OK */
|
||||
PORT_DIPSETTING( 0x00, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,PORTCOND_EQUALS,0x40) /* A-Type */
|
||||
PORT_DIPSETTING( 0x01, "1 Coin/20 Credits" ) PORT_CONDITION("DSW2",0x40,PORTCOND_EQUALS,0x40)
|
||||
PORT_DIPSETTING( 0x02, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,PORTCOND_EQUALS,0x40)
|
||||
PORT_DIPSETTING( 0x03, "1 Coin/100 Credits" ) PORT_CONDITION("DSW2",0x40,PORTCOND_EQUALS,0x40)
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW2",0x40,PORTCOND_EQUALS,0x00) /* B-Type */
|
||||
PORT_DIPSETTING( 0x01, "1 Coin/10 Credits" ) PORT_CONDITION("DSW2",0x40,PORTCOND_EQUALS,0x00)
|
||||
PORT_DIPSETTING( 0x02, "1 Coin/25 Credits" ) PORT_CONDITION("DSW2",0x40,PORTCOND_EQUALS,0x00)
|
||||
PORT_DIPSETTING( 0x03, "1 Coin/50 Credits" ) PORT_CONDITION("DSW2",0x40,PORTCOND_EQUALS,0x00)
|
||||
PORT_DIPNAME( 0x0c, 0x0c, "Coin A Rate" ) PORT_DIPLOCATION("DSW3:3,4") /* OK */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0x0c, "1 Coin/10 Credits" )
|
||||
PORT_DIPNAME( 0x30, 0x30, "Coin D Rate" ) PORT_DIPLOCATION("DSW3:5,6") /* OK */
|
||||
PORT_DIPSETTING( 0x30, DEF_STR( 5C_1C ) ) PORT_CONDITION("DSW4",0x10,PORTCOND_EQUALS,0x10) /* C-Type */
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) PORT_CONDITION("DSW4",0x10,PORTCOND_EQUALS,0x10)
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) ) PORT_CONDITION("DSW4",0x10,PORTCOND_EQUALS,0x10)
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) ) PORT_CONDITION("DSW4",0x10,PORTCOND_EQUALS,0x10)
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_5C ) ) PORT_CONDITION("DSW4",0x10,PORTCOND_EQUALS,0x00) /* D-Type */
|
||||
PORT_DIPSETTING( 0x10, "1 Coin/10 Credits" ) PORT_CONDITION("DSW4",0x10,PORTCOND_EQUALS,0x00)
|
||||
PORT_DIPSETTING( 0x20, "1 Coin/25 Credits" ) PORT_CONDITION("DSW4",0x10,PORTCOND_EQUALS,0x00)
|
||||
PORT_DIPSETTING( 0x30, "1 Coin/50 Credits" ) PORT_CONDITION("DSW4",0x10,PORTCOND_EQUALS,0x00)
|
||||
PORT_DIPNAME( 0xc0, 0xc0, "Coin C Rate" ) PORT_DIPLOCATION("DSW3:7,8") /* OK */
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_1C ) )
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( 1C_2C ) )
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( 1C_5C ) )
|
||||
PORT_DIPSETTING( 0xc0, "1 Coin/10 Credits" )
|
||||
|
||||
PORT_START("DSW4")
|
||||
PORT_DIPNAME( 0x07, 0x06, "Credit Limit" ) PORT_DIPLOCATION("DSW4:1,2,3") /* OK */
|
||||
PORT_DIPSETTING( 0x07, "5,000" )
|
||||
PORT_DIPSETTING( 0x06, "10,000" )
|
||||
PORT_DIPSETTING( 0x05, "20,000" )
|
||||
PORT_DIPSETTING( 0x04, "30,000" )
|
||||
PORT_DIPSETTING( 0x03, "40,000" )
|
||||
PORT_DIPSETTING( 0x02, "50,000" )
|
||||
PORT_DIPSETTING( 0x01, "100,000" )
|
||||
PORT_DIPSETTING( 0x00, "Unlimited" )
|
||||
PORT_DIPNAME( 0x08, 0x00, "Display Of Payout Limit" ) PORT_DIPLOCATION("DSW4:4") /* OK */
|
||||
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x10, 0x10, "Type Of Coin D" ) PORT_DIPLOCATION("DSW4:5") /* OK */
|
||||
PORT_DIPSETTING( 0x10, "C-Type" )
|
||||
PORT_DIPSETTING( 0x00, "D-Type" )
|
||||
PORT_DIPNAME( 0x20, 0x20, "Min. Bet For Bonus Play" ) PORT_DIPLOCATION("DSW4:6") /* OK */
|
||||
PORT_DIPSETTING( 0x20, "16 Bet" )
|
||||
PORT_DIPSETTING( 0x00, "8 Bet" )
|
||||
PORT_DIPNAME( 0x40, 0x00, "Reel Speed" ) PORT_DIPLOCATION("DSW4:7") /* OK */
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Low ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( High ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, "Hopper Out By Coin A" ) PORT_DIPLOCATION("DSW4:8") /* not checked */
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
|
||||
PORT_START("DSW5")
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:1") /* no whores here */
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x06, 0x06, "Coin In Limit" ) PORT_DIPLOCATION("DSW5:2,3") /* not checked */
|
||||
PORT_DIPSETTING( 0x06, "1,000" )
|
||||
PORT_DIPSETTING( 0x04, "5,000" )
|
||||
PORT_DIPSETTING( 0x02, "10,000" )
|
||||
PORT_DIPSETTING( 0x00, "20,000" )
|
||||
PORT_DIPNAME( 0x18, 0x18, "Condition For 3 Kind Of Bonus" ) PORT_DIPLOCATION("DSW5:4,5") /* not checked */
|
||||
PORT_DIPSETTING( 0x18, "12-7-1" )
|
||||
PORT_DIPSETTING( 0x10, "9-5-1" )
|
||||
PORT_DIPSETTING( 0x08, "6-3-1" )
|
||||
PORT_DIPSETTING( 0x00, "3-2-1" )
|
||||
PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:6") /* not checked */
|
||||
PORT_DIPSETTING( 0x20, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:7") /* listed as unused */
|
||||
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) PORT_DIPLOCATION("DSW5:8") /* no whores in demo */
|
||||
PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( goldstar )
|
||||
PORT_START("IN0")
|
||||
@ -2560,7 +2719,7 @@ static PALETTE_INIT(cm)
|
||||
|
||||
int i;
|
||||
|
||||
for (i=0;i<0x100;i++)
|
||||
for (i = 0; i < 0x100; i++)
|
||||
{
|
||||
UINT8 data;
|
||||
UINT8*proms = memory_region(machine, "proms");
|
||||
@ -2575,18 +2734,17 @@ static PALETTE_INIT(cm)
|
||||
static PALETTE_INIT(cmast91)
|
||||
{
|
||||
int i;
|
||||
for (i=0;i<0x100;i++)
|
||||
for (i = 0; i < 0x100; i++)
|
||||
{
|
||||
int r,g,b;
|
||||
|
||||
UINT8*proms = memory_region(machine, "proms");
|
||||
|
||||
b = proms[0x000+i]<<4;
|
||||
g = proms[0x100+i]<<4;
|
||||
r = proms[0x200+i]<<4;
|
||||
b = proms[0x000 + i] << 4;
|
||||
g = proms[0x100 + i] << 4;
|
||||
r = proms[0x200 + i] << 4;
|
||||
|
||||
palette_set_color(machine, i, MAKE_RGB(r, g, b));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -2599,7 +2757,7 @@ static PALETTE_INIT(lucky8)
|
||||
UINT8 *proms;
|
||||
|
||||
proms = memory_region(machine, "proms");
|
||||
for (i=0; i < 0x100; i++)
|
||||
for (i = 0; i < 0x100; i++)
|
||||
{
|
||||
|
||||
data = proms[0x000 + i] | (proms[0x100 + i] << 4);
|
||||
@ -2710,8 +2868,8 @@ static MACHINE_DRIVER_START( cm )
|
||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
||||
|
||||
/* 2x 8255 */
|
||||
MDRV_PPI8255_ADD( "cm_ppi8255_0", cm_ppi8255_intf[0] )
|
||||
MDRV_PPI8255_ADD( "cm_ppi8255_1", cm_ppi8255_intf[1] )
|
||||
MDRV_PPI8255_ADD( "ppi8255_0", cm_ppi8255_intf[0] )
|
||||
MDRV_PPI8255_ADD( "ppi8255_1", cm_ppi8255_intf[1] )
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
@ -2745,8 +2903,8 @@ static MACHINE_DRIVER_START( cmast91 )
|
||||
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
|
||||
|
||||
/* 2x 8255 */
|
||||
MDRV_PPI8255_ADD( "cm_ppi8255_0", cm_ppi8255_intf[0] )
|
||||
MDRV_PPI8255_ADD( "cm_ppi8255_1", cm_ppi8255_intf[1] )
|
||||
MDRV_PPI8255_ADD( "ppi8255_0", cm_ppi8255_intf[0] )
|
||||
MDRV_PPI8255_ADD( "ppi8255_1", cm_ppi8255_intf[1] )
|
||||
|
||||
/* video hardware */
|
||||
MDRV_SCREEN_ADD("main", RASTER)
|
||||
@ -2762,12 +2920,12 @@ static MACHINE_DRIVER_START( cmast91 )
|
||||
MDRV_NVRAM_HANDLER(goldstar)
|
||||
|
||||
MDRV_VIDEO_START(cherrym)
|
||||
MDRV_VIDEO_UPDATE(goldstar)
|
||||
MDRV_VIDEO_UPDATE(cmast91)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")//set up a standard mono speaker called 'mono'
|
||||
MDRV_SOUND_ADD("ay", AY8910,1500000)//1 AY8910, at clock 150000Hz
|
||||
MDRV_SOUND_CONFIG(ay8910_config)//read extra data from interface
|
||||
MDRV_SOUND_CONFIG(cm_ay8910_config)//read extra data from interface
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)//all sound goes to the 'mono' speaker, at 0.50 X maximum
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
@ -3427,6 +3585,20 @@ ROM_START( cm2841a )
|
||||
ROM_LOAD( "82s129.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
Cherry Master '91
|
||||
-----------------
|
||||
|
||||
CPU: z8400
|
||||
other chips: NEC D71055C, WB5300
|
||||
Dips 5 x 8 position
|
||||
|
||||
OSC: 12.000mhz
|
||||
|
||||
all pals are type 16L8
|
||||
all proms are type s129
|
||||
|
||||
*/
|
||||
|
||||
ROM_START( cmast91 )
|
||||
ROM_REGION( 0x10000, "main", 0 )
|
||||
@ -3448,18 +3620,18 @@ ROM_START( cmast91 )
|
||||
ROM_CONTINUE(0xf000,0x1000)
|
||||
|
||||
ROM_REGION( 0x40000, "user1", 0 ) /* unknown, bitmaps, or sound? */
|
||||
ROM_LOAD( "9.bin", 0x00000, 0x40000, CRC(92342276) SHA1(f9436752f2ec67cf873fd01c729c7c113dc18be0) ) // ?
|
||||
ROM_LOAD( "9.bin", 0x00000, 0x40000, CRC(92342276) SHA1(f9436752f2ec67cf873fd01c729c7c113dc18be0) ) // ?
|
||||
|
||||
ROM_REGION( 0x18000, "gfx1", ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "7.bin", 0x00000, 0x8000, CRC(1edf1f1d) SHA1(558fa01f1efd7f6541047d3930bdce0974bae5b0))
|
||||
ROM_LOAD( "6.bin", 0x08000, 0x8000, CRC(13582e74) SHA1(27e318542606b8e8d38250749ba996402d314abd) )
|
||||
ROM_LOAD( "5.bin", 0x10000, 0x8000, CRC(28ff88cc) SHA1(46bc0407be857e8348159735b60cfb660f047a56) )
|
||||
ROM_LOAD( "7.bin", 0x00000, 0x8000, CRC(1edf1f1d) SHA1(558fa01f1efd7f6541047d3930bdce0974bae5b0))
|
||||
ROM_LOAD( "6.bin", 0x08000, 0x8000, CRC(13582e74) SHA1(27e318542606b8e8d38250749ba996402d314abd) )
|
||||
ROM_LOAD( "5.bin", 0x10000, 0x8000, CRC(28ff88cc) SHA1(46bc0407be857e8348159735b60cfb660f047a56) )
|
||||
|
||||
ROM_REGION( 0x20000, "gfx2", ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "1.bin", 0x00000, 0x8000, CRC(71bdab69) SHA1(d2c594ed88d6368df15b623c48eecc1c219b839e) )
|
||||
ROM_LOAD( "2.bin", 0x08000, 0x8000, CRC(fccd48d7) SHA1(af564f5ef9ff5b6363897ce6bdf0b21123911fd4) )
|
||||
ROM_LOAD( "3.bin", 0x10000, 0x8000, CRC(dc77d04a) SHA1(d8656130cde54d4bb96307899f6d607867e49e6c) )
|
||||
ROM_LOAD( "4.bin", 0x18000, 0x8000, CRC(0dbabaa2) SHA1(44235b19dac1c996e2166672b03f6e3888ecbefa) )
|
||||
ROM_LOAD( "4.bin", 0x00000, 0x8000, CRC(0dbabaa2) SHA1(44235b19dac1c996e2166672b03f6e3888ecbefa) )
|
||||
ROM_LOAD( "3.bin", 0x08000, 0x8000, CRC(dc77d04a) SHA1(d8656130cde54d4bb96307899f6d607867e49e6c) )
|
||||
ROM_LOAD( "1.bin", 0x10000, 0x8000, CRC(71bdab69) SHA1(d2c594ed88d6368df15b623c48eecc1c219b839e) )
|
||||
ROM_LOAD( "2.bin", 0x18000, 0x8000, CRC(fccd48d7) SHA1(af564f5ef9ff5b6363897ce6bdf0b21123911fd4) )
|
||||
|
||||
ROM_REGION( 0x300, "proms", 0 )
|
||||
ROM_LOAD( "p1.bin", 0x0000, 0x0100, CRC(ac529f04) SHA1(5bc92e50c85bb23e609172cc15c430ddea7fdcb5) )
|
||||
@ -3469,7 +3641,7 @@ ROM_START( cmast91 )
|
||||
ROM_REGION( 0x100, "proms2", 0 ) /* screen layout? */
|
||||
ROM_LOAD( "p4.bin", 0x0000, 0x0100, CRC(72212427) SHA1(e87a91f28284313c706ebb8175a3586780636e31) )
|
||||
|
||||
ROM_REGION( 0x800, "plds", 0 ) /* all 16L8-12/-15/-25 type, protected */
|
||||
ROM_REGION( 0x800, "plds", 0 ) /* all 16L8 type, protected */
|
||||
ROM_LOAD( "pld1.bin", 0x0000, 0x0104, NO_DUMP )
|
||||
ROM_LOAD( "pld2.bin", 0x0200, 0x0104, NO_DUMP )
|
||||
ROM_LOAD( "pld3.bin", 0x0400, 0x0104, NO_DUMP )
|
||||
@ -4013,11 +4185,11 @@ GAME( 198?, cmv801, 0, cm, cmv801, cm, ROT0, "Corsica",
|
||||
|
||||
GAME( 1992, cmv4, 0, cm, cmv4, cmv4, ROT0, "Dyna", "Cherry Master (ver.4)", 0 )
|
||||
GAME( 1991, cmaster, cmv4, cm, cmaster, 0, ROT0, "Dyna", "Cherry Master I (ver.1.01)", 0 )
|
||||
GAME( 1991, cmast91, 0, cmast91, cmast91, cmast91, ROT0, "Dyna", "Cherry Master '91 (ver.1.30)", 0 )
|
||||
|
||||
GAME( 198?, cm2v841, cmv4, cm, cmv801, 0, ROT0, "Dyna", "Cherry Master (II?) (ver.8.41, set 1)", GAME_NOT_WORKING )
|
||||
GAME( 198?, cm2841a, cmv4, cm, cmv801, 0, ROT0, "Dyna", "Cherry Master (II?) (ver.8.41, set 2)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 1991, cmast91, 0, cmast91, cmv801, cmast91, ROT0, "Dyna", "Cherry Master '91 (ver.1.30)", GAME_IMPERFECT_GRAPHICS | GAME_WRONG_COLORS | GAME_NOT_WORKING )
|
||||
|
||||
GAME( 1989, lucky8, 0, lucky8, lucky8, 0, ROT0, "Wing Co.Ltd / GEI", "New Lucky 8 Lines (set 1)", 0 )
|
||||
GAME( 1989, lucky8a, lucky8, lucky8, lucky8a, lucky8a, ROT0, "Wing Co.Ltd / GEI", "New Lucky 8 Lines (set 2)", 0 )
|
||||
GAME( 198?, ladylinr, 0, ladylinr, ladylinr, 0, ROT0, "TAB Austria", "Lady Liner", 0 )
|
||||
|
@ -173,6 +173,10 @@ static const rectangle visible1 = { 0*8, (14+48)*8-1, 4*8, (4+7)*8-1 };
|
||||
static const rectangle visible2 = { 0*8, (14+48)*8-1, 12*8, (12+7)*8-1 };
|
||||
static const rectangle visible3 = { 0*8, (14+48)*8-1, 20*8, (20+7)*8-1 };
|
||||
|
||||
static const rectangle cm91_visible1 = { 0*8, (14+48)*8-1, 4*8, (4+7)*8-1 }; /* same start for reel1 */
|
||||
static const rectangle cm91_visible2 = { 0*8, (14+48)*8-1, 11*8, (12+7)*8-1 }; /* 4 pixels less for reel2 */
|
||||
static const rectangle cm91_visible3 = { 0*8, (14+48)*8-1, 19*8, (19+7)*8-1 }; /* 8 pixels less for reel3 */
|
||||
|
||||
|
||||
VIDEO_UPDATE( goldstar )
|
||||
{
|
||||
@ -195,3 +199,25 @@ VIDEO_UPDATE( goldstar )
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
VIDEO_UPDATE( cmast91 )
|
||||
{
|
||||
int i;
|
||||
|
||||
bitmap_fill(bitmap,cliprect,get_black_pen(screen->machine));
|
||||
|
||||
for (i= 0;i < 64;i++)
|
||||
{
|
||||
tilemap_set_scrolly(goldstar_reel1_tilemap, i, goldstar_reel1_scroll[i]);
|
||||
tilemap_set_scrolly(goldstar_reel2_tilemap, i, goldstar_reel2_scroll[i]);
|
||||
tilemap_set_scrolly(goldstar_reel3_tilemap, i, goldstar_reel3_scroll[i]);
|
||||
}
|
||||
|
||||
tilemap_draw(bitmap, &cm91_visible1, goldstar_reel1_tilemap, 0, 0);
|
||||
tilemap_draw(bitmap, &cm91_visible2, goldstar_reel2_tilemap, 0, 0);
|
||||
tilemap_draw(bitmap, &cm91_visible3, goldstar_reel3_tilemap, 0, 0);
|
||||
|
||||
tilemap_draw(bitmap, cliprect, goldstar_fg_tilemap, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user