mirror of
https://github.com/holub/mame
synced 2025-05-30 17:41:47 +03:00
Move Wing Co stuff out to a different class
This commit is contained in:
parent
014297fbee
commit
ad354d52ac
@ -785,7 +785,7 @@ static ADDRESS_MAP_START( lucky8_map, AS_PROGRAM, 8, goldstar_state )
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
WRITE8_MEMBER(goldstar_state::magodds_outb850_w)
|
||||
WRITE8_MEMBER(wingco_state::magodds_outb850_w)
|
||||
{
|
||||
// guess, could be wrong, this might just be lights
|
||||
|
||||
@ -801,12 +801,12 @@ WRITE8_MEMBER(goldstar_state::magodds_outb850_w)
|
||||
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(goldstar_state::magodds_outb860_w)
|
||||
WRITE8_MEMBER(wingco_state::magodds_outb860_w)
|
||||
{
|
||||
// popmessage("magodds_outb860_w %02x\n", data);
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START(magodds_map, AS_PROGRAM, 8, goldstar_state )
|
||||
static ADDRESS_MAP_START( magodds_map, AS_PROGRAM, 8, wingco_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
// where does the extra rom data map?? it seems like it should come straight after the existing rom, but it can't if this is a plain z80?
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
|
||||
@ -958,7 +958,7 @@ WRITE8_MEMBER(unkch_state::unkcm_0x03_w)
|
||||
{
|
||||
//popmessage("unkcm_0x03_w %02x", data);
|
||||
|
||||
m_unkch_vidreg = data;
|
||||
m_vidreg = data;
|
||||
|
||||
// -x-- ---- seems to toggle when a 'normal' tilemap should be displayed instead of the reels?
|
||||
}
|
||||
@ -7477,22 +7477,22 @@ static GFXDECODE_START( cm97 )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
WRITE8_MEMBER(goldstar_state::system_outputa_w)
|
||||
WRITE8_MEMBER(wingco_state::system_outputa_w)
|
||||
{
|
||||
//popmessage("system_outputa_w %02x",data);
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(goldstar_state::system_outputb_w)
|
||||
WRITE8_MEMBER(wingco_state::system_outputb_w)
|
||||
{
|
||||
//popmessage("system_outputb_w %02x",data);
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(goldstar_state::system_outputc_w)
|
||||
WRITE8_MEMBER(wingco_state::system_outputc_w)
|
||||
{
|
||||
m_lucky8_nmi_enable = data & 8;
|
||||
m_unkch_vidreg = data & 2;
|
||||
m_nmi_enable = data & 8;
|
||||
m_vidreg = data & 2;
|
||||
//popmessage("system_outputc_w %02x",data);
|
||||
}
|
||||
|
||||
@ -7763,7 +7763,7 @@ PALETTE_INIT_MEMBER(goldstar_state,cmast91)
|
||||
}
|
||||
}
|
||||
|
||||
PALETTE_INIT_MEMBER(goldstar_state,lucky8)
|
||||
PALETTE_INIT_MEMBER(goldstar_state, lucky8)
|
||||
{
|
||||
/* BBGGGRRR */
|
||||
|
||||
@ -8171,19 +8171,19 @@ static MACHINE_CONFIG_START( cmast91, goldstar_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
INTERRUPT_GEN_MEMBER(goldstar_state::lucky8_irq)
|
||||
INTERRUPT_GEN_MEMBER(wingco_state::masked_irq)
|
||||
{
|
||||
if(m_lucky8_nmi_enable)
|
||||
if (m_nmi_enable)
|
||||
device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( lucky8, goldstar_state )
|
||||
static MACHINE_CONFIG_START( lucky8, wingco_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(lucky8_map)
|
||||
//MCFG_CPU_IO_MAP(goldstar_readport)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", goldstar_state, lucky8_irq)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", wingco_state, masked_irq)
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
|
||||
@ -8197,9 +8197,9 @@ static MACHINE_CONFIG_START( lucky8, goldstar_state )
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(wingco_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(wingco_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(wingco_state, system_outputc_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -8213,7 +8213,7 @@ static MACHINE_CONFIG_START( lucky8, goldstar_state )
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_FORMAT(BBGGGRRR)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
|
||||
@ -8232,13 +8232,13 @@ static MACHINE_CONFIG_START( lucky8, goldstar_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( bingowng, goldstar_state )
|
||||
static MACHINE_CONFIG_START( bingowng, wingco_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(lucky8_map)
|
||||
//MCFG_CPU_IO_MAP(goldstar_readport)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", goldstar_state, lucky8_irq)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", wingco_state, masked_irq)
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
|
||||
@ -8252,9 +8252,9 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state )
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(wingco_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(wingco_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(wingco_state, system_outputc_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -8262,7 +8262,7 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state )
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_bingowng)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
|
||||
@ -8270,7 +8270,7 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state )
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng)
|
||||
MCFG_VIDEO_START_OVERRIDE(wingco_state, bingowng)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -8286,61 +8286,11 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_START( bingownga, goldstar_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(lucky8_map)
|
||||
//MCFG_CPU_IO_MAP(goldstar_readport)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", goldstar_state, lucky8_irq)
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
|
||||
MCFG_I8255_IN_PORTB_CB(IOPORT("IN1"))
|
||||
MCFG_I8255_IN_PORTC_CB(IOPORT("IN2"))
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_1", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("IN3"))
|
||||
MCFG_I8255_IN_PORTB_CB(IOPORT("IN4"))
|
||||
MCFG_I8255_IN_PORTC_CB(IOPORT("DSW1"))
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", bingownga) /* GFX Decode is the only difference with the parent machine */
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state,bingowng)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_SOUND_ADD("snsnd", SN76489, PSG_CLOCK)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
|
||||
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
|
||||
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
|
||||
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
|
||||
MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(goldstar_state, ay8910_outputa_w))
|
||||
MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(goldstar_state, ay8910_outputb_w))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
static MACHINE_CONFIG_DERIVED( bingownga, bingowng )
|
||||
MCFG_GFXDECODE_MODIFY("gfxdecode", bingownga)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
PALETTE_INIT_MEMBER(goldstar_state,magodds)
|
||||
PALETTE_INIT_MEMBER(wingco_state, magodds)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < 0x100; i++)
|
||||
@ -8357,13 +8307,13 @@ PALETTE_INIT_MEMBER(goldstar_state,magodds)
|
||||
}
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( magodds, goldstar_state )
|
||||
static MACHINE_CONFIG_START( magodds, wingco_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
|
||||
MCFG_CPU_PROGRAM_MAP(magodds_map)
|
||||
//MCFG_CPU_IO_MAP(goldstar_readport)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", goldstar_state, lucky8_irq)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", wingco_state, masked_irq)
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_0", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("IN0"))
|
||||
@ -8377,9 +8327,9 @@ static MACHINE_CONFIG_START( magodds, goldstar_state )
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(wingco_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(wingco_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(wingco_state, system_outputc_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -8387,15 +8337,15 @@ static MACHINE_CONFIG_START( magodds, goldstar_state )
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_SIZE(64*8, 32*8)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_magical)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(wingco_state, screen_update_magical)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", magodds)
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,magodds)
|
||||
MCFG_PALETTE_INIT_OWNER(wingco_state, magodds)
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state,magical)
|
||||
MCFG_VIDEO_START_OVERRIDE(wingco_state, magical)
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
@ -8443,7 +8393,7 @@ static MACHINE_CONFIG_START( kkotnoli, goldstar_state )
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
|
||||
|
||||
@ -8483,7 +8433,7 @@ static MACHINE_CONFIG_START( ladylinr, goldstar_state )
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
|
||||
@ -8499,7 +8449,7 @@ static MACHINE_CONFIG_START( ladylinr, goldstar_state )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( wcat3, goldstar_state )
|
||||
static MACHINE_CONFIG_START( wcat3, wingco_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK)
|
||||
@ -8519,9 +8469,9 @@ static MACHINE_CONFIG_START( wcat3, goldstar_state )
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255_2", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("DSW2"))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(goldstar_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(goldstar_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(goldstar_state, system_outputc_w))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(wingco_state, system_outputa_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(wingco_state, system_outputb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(wingco_state, system_outputc_w))
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
@ -8534,7 +8484,7 @@ static MACHINE_CONFIG_START( wcat3, goldstar_state )
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", ncb3)
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
|
||||
MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
|
||||
@ -8773,12 +8723,10 @@ MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( cherrys, ncb3 )
|
||||
MCFG_GFXDECODE_MODIFY("gfxdecode", cherrys)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
static MACHINE_CONFIG_DERIVED( cm97, ncb3 )
|
||||
MCFG_GFXDECODE_MODIFY("gfxdecode", cm97)
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -8840,7 +8788,7 @@ static MACHINE_CONFIG_START( megaline, unkch_state )
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", megaline)
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
|
||||
// MCFG_NVRAM_ADD_1FILL("nvram")
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state,goldstar)
|
||||
@ -8885,7 +8833,7 @@ static MACHINE_CONFIG_START( bonusch, unkch_state )
|
||||
|
||||
MCFG_GFXDECODE_ADD("gfxdecode", "palette", megaline)
|
||||
MCFG_PALETTE_ADD("palette", 256)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state,lucky8)
|
||||
MCFG_PALETTE_INIT_OWNER(goldstar_state, lucky8)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(goldstar_state, goldstar)
|
||||
|
||||
@ -10886,7 +10834,7 @@ YM2203
|
||||
|
||||
is this the original Magical Odds?
|
||||
*/
|
||||
DRIVER_INIT_MEMBER(goldstar_state,magoddsc)
|
||||
DRIVER_INIT_MEMBER(wingco_state, magoddsc)
|
||||
{
|
||||
int A;
|
||||
UINT8 *ROM = memregion("maincpu")->base();
|
||||
@ -13594,7 +13542,7 @@ DRIVER_INIT_MEMBER(goldstar_state,cmast91)
|
||||
ROM[0x0a92] = 0x9b;
|
||||
}
|
||||
|
||||
DRIVER_INIT_MEMBER(goldstar_state,lucky8a)
|
||||
DRIVER_INIT_MEMBER(wingco_state, lucky8a)
|
||||
{
|
||||
UINT8 *ROM = memregion("maincpu")->base();
|
||||
|
||||
@ -14188,9 +14136,9 @@ GAME( 1992, cmast92, 0, cmast91, cmast91, goldstar_state, cmast91,
|
||||
|
||||
|
||||
GAMEL( 1989, lucky8, 0, lucky8, lucky8, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 1, W-4)", 0, layout_lucky8 )
|
||||
GAMEL( 1989, lucky8a, lucky8, lucky8, lucky8a, goldstar_state, lucky8a, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 2, W-4)", 0, layout_lucky8 )
|
||||
GAMEL( 1989, lucky8a, lucky8, lucky8, lucky8a, wingco_state, lucky8a, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 2, W-4)", 0, layout_lucky8 )
|
||||
GAMEL( 1989, lucky8b, lucky8, lucky8, lucky8b, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 3, W-4, extended gfx)", 0, layout_lucky8 )
|
||||
GAMEL( 1989, lucky8c, lucky8, lucky8, lucky8, goldstar_state, lucky8a, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 4, W-4)", 0, layout_lucky8 )
|
||||
GAMEL( 1989, lucky8c, lucky8, lucky8, lucky8, wingco_state, lucky8a, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 4, W-4)", 0, layout_lucky8 )
|
||||
GAMEL( 1989, lucky8d, lucky8, lucky8, lucky8d, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 5, W-4, main 40%, d-up 60%)", 0, layout_lucky8 )
|
||||
GAMEL( 1989, lucky8e, lucky8, lucky8, lucky8d, driver_device, 0, ROT0, "Wing Co., Ltd.", "New Lucky 8 Lines (set 6, W-4, main 40%, d-up 60%)", 0, layout_lucky8 )
|
||||
GAMEL( 198?, ns8lines, 0, lucky8, lucky8b, driver_device, 0, ROT0, "<unknown>", "New Lucky 8 Lines / New Super 8 Lines (W-4)", 0, layout_lucky8 )
|
||||
@ -14211,8 +14159,8 @@ GAMEL( 1993, bingownga, bingowng, bingownga,bingownga,driver_device, 0,
|
||||
GAME( 1992, magodds, 0, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 1)", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1992, magoddsa, magodds, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 2)", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1992, magoddsb, magodds, magodds, magodds, driver_device, 0, ROT0, "Pal Company / Micro Manufacturing Inc.", "Magical Odds (set 3)", GAME_WRONG_COLORS | GAME_IMPERFECT_GRAPHICS )
|
||||
GAME( 1991, magoddsc, magodds, magodds, magoddsc, goldstar_state, magoddsc, ROT0, "Pal Company", "Magical Odds (set 4, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
|
||||
GAME( 1991, magoddsd, magodds, magodds, magoddsc, goldstar_state, magoddsc, ROT0, "Pal Company", "Magical Odds (set 5, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
|
||||
GAME( 1991, magoddsc, magodds, magodds, magoddsc, wingco_state, magoddsc, ROT0, "Pal Company", "Magical Odds (set 4, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
|
||||
GAME( 1991, magoddsd, magodds, magodds, magoddsc, wingco_state, magoddsc, ROT0, "Pal Company", "Magical Odds (set 5, custom encrypted CPU block)", GAME_WRONG_COLORS | GAME_NOT_WORKING |GAME_NO_SOUND)
|
||||
|
||||
|
||||
/* --- Amcoe games --- */
|
||||
|
@ -1,8 +1,8 @@
|
||||
class goldstar_state : public driver_device
|
||||
{
|
||||
public:
|
||||
goldstar_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
goldstar_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
driver_device(mconfig, type, tag),
|
||||
m_fg_vidram(*this, "fg_vidram"),
|
||||
m_fg_atrram(*this, "fg_atrram"),
|
||||
m_bg_vidram(*this, "bg_vidram"),
|
||||
@ -37,8 +37,6 @@ public:
|
||||
optional_shared_ptr<UINT8> m_reel3_scroll;
|
||||
|
||||
|
||||
UINT8 m_unkch_vidreg;
|
||||
|
||||
tilemap_t *m_reel1_tilemap;
|
||||
tilemap_t *m_reel2_tilemap;
|
||||
tilemap_t *m_reel3_tilemap;
|
||||
@ -50,19 +48,16 @@ public:
|
||||
UINT8 m_cmaster_girl_pal;
|
||||
UINT8 m_cm_enable_reg;
|
||||
UINT8 m_cm_girl_scroll;
|
||||
UINT8 m_lucky8_nmi_enable;
|
||||
int m_tile_bank;
|
||||
|
||||
DECLARE_WRITE8_MEMBER(protection_w);
|
||||
DECLARE_READ8_MEMBER(protection_r);
|
||||
DECLARE_WRITE8_MEMBER(lucky8_outport_w);
|
||||
DECLARE_WRITE8_MEMBER(ncb3_port81_w);
|
||||
DECLARE_WRITE8_MEMBER(goldstar_lamps_w);
|
||||
DECLARE_WRITE8_MEMBER(cb3_lamps_w);
|
||||
DECLARE_WRITE8_MEMBER(cm_outport1_w);
|
||||
DECLARE_WRITE8_MEMBER(pkrmast_lamps_w);
|
||||
DECLARE_WRITE8_MEMBER(lucky8_outport_w);
|
||||
DECLARE_WRITE8_MEMBER(magodds_outb850_w);
|
||||
DECLARE_WRITE8_MEMBER(magodds_outb860_w);
|
||||
DECLARE_WRITE8_MEMBER(ladylinr_outport_w);
|
||||
DECLARE_READ8_MEMBER(fixedvalb4_r);
|
||||
DECLARE_READ8_MEMBER(fixedvala8_r);
|
||||
@ -92,16 +87,12 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(goldstar_reel3_ram_w);
|
||||
DECLARE_WRITE8_MEMBER(goldstar_fa00_w);
|
||||
DECLARE_WRITE8_MEMBER(cm_background_col_w);
|
||||
DECLARE_WRITE8_MEMBER(system_outputa_w);
|
||||
DECLARE_WRITE8_MEMBER(system_outputb_w);
|
||||
DECLARE_WRITE8_MEMBER(system_outputc_w);
|
||||
DECLARE_WRITE8_MEMBER(ay8910_outputa_w);
|
||||
DECLARE_WRITE8_MEMBER(ay8910_outputb_w);
|
||||
DECLARE_DRIVER_INIT(goldstar);
|
||||
DECLARE_DRIVER_INIT(cmast91);
|
||||
DECLARE_DRIVER_INIT(nfb96_dk);
|
||||
DECLARE_DRIVER_INIT(cm);
|
||||
DECLARE_DRIVER_INIT(lucky8a);
|
||||
DECLARE_DRIVER_INIT(nfb96sea);
|
||||
DECLARE_DRIVER_INIT(schery97a);
|
||||
DECLARE_DRIVER_INIT(rp35);
|
||||
@ -116,7 +107,6 @@ public:
|
||||
DECLARE_DRIVER_INIT(po33);
|
||||
DECLARE_DRIVER_INIT(match133);
|
||||
DECLARE_DRIVER_INIT(rp36c3);
|
||||
DECLARE_DRIVER_INIT(magoddsc);
|
||||
DECLARE_DRIVER_INIT(nfb96_c1);
|
||||
DECLARE_DRIVER_INIT(fb2010);
|
||||
DECLARE_DRIVER_INIT(super9);
|
||||
@ -131,15 +121,9 @@ public:
|
||||
DECLARE_VIDEO_START(cherrym);
|
||||
DECLARE_PALETTE_INIT(cmast91);
|
||||
DECLARE_PALETTE_INIT(lucky8);
|
||||
DECLARE_VIDEO_START(bingowng);
|
||||
DECLARE_VIDEO_START(magical);
|
||||
DECLARE_PALETTE_INIT(magodds);
|
||||
UINT32 screen_update_goldstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
INTERRUPT_GEN_MEMBER(lucky8_irq);
|
||||
void do_blockswaps(UINT8* ROM);
|
||||
void dump_to_file( UINT8* ROM);
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -148,11 +132,42 @@ public:
|
||||
};
|
||||
|
||||
|
||||
class wingco_state : public goldstar_state
|
||||
{
|
||||
public:
|
||||
wingco_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
goldstar_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
DECLARE_WRITE8_MEMBER(magodds_outb850_w);
|
||||
DECLARE_WRITE8_MEMBER(magodds_outb860_w);
|
||||
DECLARE_WRITE8_MEMBER(system_outputa_w);
|
||||
DECLARE_WRITE8_MEMBER(system_outputb_w);
|
||||
DECLARE_WRITE8_MEMBER(system_outputc_w);
|
||||
|
||||
DECLARE_DRIVER_INIT(lucky8a);
|
||||
DECLARE_DRIVER_INIT(magoddsc);
|
||||
|
||||
DECLARE_VIDEO_START(bingowng);
|
||||
DECLARE_VIDEO_START(magical);
|
||||
DECLARE_PALETTE_INIT(magodds);
|
||||
UINT32 screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
UINT32 screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
|
||||
INTERRUPT_GEN_MEMBER(masked_irq);
|
||||
|
||||
private:
|
||||
UINT8 m_nmi_enable;
|
||||
UINT8 m_vidreg;
|
||||
};
|
||||
|
||||
|
||||
class cb3_state : public goldstar_state
|
||||
{
|
||||
public:
|
||||
cb3_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: goldstar_state(mconfig, type, tag)
|
||||
cb3_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
goldstar_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
@ -168,8 +183,8 @@ protected:
|
||||
class chrygld_state : public goldstar_state
|
||||
{
|
||||
public:
|
||||
chrygld_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: goldstar_state(mconfig, type, tag)
|
||||
chrygld_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
goldstar_state(mconfig, type, tag)
|
||||
{
|
||||
}
|
||||
|
||||
@ -184,8 +199,8 @@ protected:
|
||||
class sangho_state : public goldstar_state
|
||||
{
|
||||
public:
|
||||
sangho_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: goldstar_state(mconfig, type, tag),
|
||||
sangho_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
goldstar_state(mconfig, type, tag),
|
||||
m_reel1_attrram(*this, "reel1_attrram"),
|
||||
m_reel2_attrram(*this, "reel2_attrram"),
|
||||
m_reel3_attrram(*this, "reel3_attrram")
|
||||
@ -225,8 +240,8 @@ private:
|
||||
class unkch_state : public goldstar_state
|
||||
{
|
||||
public:
|
||||
unkch_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: goldstar_state(mconfig, type, tag),
|
||||
unkch_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
goldstar_state(mconfig, type, tag),
|
||||
m_reel1_attrram(*this, "reel1_attrram"),
|
||||
m_reel2_attrram(*this, "reel2_attrram"),
|
||||
m_reel3_attrram(*this, "reel3_attrram")
|
||||
@ -260,4 +275,6 @@ private:
|
||||
required_shared_ptr<UINT8> m_reel1_attrram;
|
||||
required_shared_ptr<UINT8> m_reel2_attrram;
|
||||
required_shared_ptr<UINT8> m_reel3_attrram;
|
||||
|
||||
UINT8 m_vidreg;
|
||||
};
|
||||
|
@ -162,36 +162,6 @@ VIDEO_START_MEMBER(goldstar_state, goldstar)
|
||||
m_cm_enable_reg = 0x0b;
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(goldstar_state, bingowng)
|
||||
{
|
||||
m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
|
||||
m_reel1_tilemap->set_scroll_cols(64);
|
||||
|
||||
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
|
||||
// is there an enable reg for this game?
|
||||
m_cm_enable_reg = 0x0b;
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(goldstar_state, magical)
|
||||
{
|
||||
m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
m_reel2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
m_reel3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
|
||||
m_reel1_tilemap->set_scroll_cols(32);
|
||||
m_reel2_tilemap->set_scroll_cols(32);
|
||||
m_reel3_tilemap->set_scroll_cols(32);
|
||||
|
||||
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_magical_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
|
||||
// is there an enable reg for this game?
|
||||
m_cm_enable_reg = 0x0b;
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(goldstar_state, cherrym)
|
||||
{
|
||||
m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
@ -311,105 +281,6 @@ UINT32 goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_ind1
|
||||
}
|
||||
|
||||
|
||||
UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int i;
|
||||
|
||||
bitmap.fill(m_palette->black_pen(), cliprect);
|
||||
|
||||
if (!(m_cm_enable_reg &0x01))
|
||||
return 0;
|
||||
|
||||
if (m_cm_enable_reg &0x08)
|
||||
{
|
||||
for (i= 0;i < 64;i++)
|
||||
{
|
||||
m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
|
||||
}
|
||||
|
||||
|
||||
const rectangle visible1(0*8, (14+48)*8-1, 3*8, (4+7)*8-1);
|
||||
m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
|
||||
}
|
||||
|
||||
if (m_cm_enable_reg &0x04)
|
||||
{
|
||||
if (memregion("user1")->base())
|
||||
{
|
||||
gfx_element *gfx = m_gfxdecode->gfx(2);
|
||||
int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
|
||||
int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
|
||||
|
||||
gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_cm_enable_reg &0x02)
|
||||
{
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int i;
|
||||
|
||||
bitmap.fill(m_palette->black_pen(), cliprect);
|
||||
|
||||
if (!(m_cm_enable_reg &0x01))
|
||||
return 0;
|
||||
|
||||
if (m_cm_enable_reg &0x08)
|
||||
{
|
||||
// guess, could be wrong, but different screens clearly need different reel layouts
|
||||
if (m_unkch_vidreg & 2)
|
||||
{
|
||||
for (i= 0;i < 32;i++)
|
||||
{
|
||||
m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
|
||||
m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
|
||||
// m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
|
||||
}
|
||||
|
||||
|
||||
const rectangle visible1alt(0*8, (16+48)*8-1, 4*8, 16*8-1);
|
||||
const rectangle visible2alt(0*8, (16+48)*8-1, 16*8, 28*8-1);
|
||||
|
||||
m_reel1_tilemap->draw(screen, bitmap, visible1alt, 0, 0);
|
||||
m_reel2_tilemap->draw(screen, bitmap, visible2alt, 0, 0);
|
||||
//m_reel3_tilemap->draw(screen, bitmap, &magical_visible3, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i= 0;i < 32;i++)
|
||||
{
|
||||
m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
|
||||
m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
|
||||
m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
|
||||
}
|
||||
|
||||
|
||||
const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+8)*8-1);
|
||||
const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
|
||||
const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
|
||||
|
||||
m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
|
||||
m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
|
||||
m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_cm_enable_reg &0x02)
|
||||
{
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int i;
|
||||
@ -487,6 +358,137 @@ UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16
|
||||
|
||||
|
||||
|
||||
VIDEO_START_MEMBER(wingco_state, bingowng)
|
||||
{
|
||||
m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
|
||||
m_reel1_tilemap->set_scroll_cols(64);
|
||||
|
||||
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
|
||||
// is there an enable reg for this game?
|
||||
m_cm_enable_reg = 0x0b;
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(wingco_state, magical)
|
||||
{
|
||||
m_reel1_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
m_reel2_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
m_reel3_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),this),TILEMAP_SCAN_ROWS,8,32, 64, 8);
|
||||
|
||||
m_reel1_tilemap->set_scroll_cols(32);
|
||||
m_reel2_tilemap->set_scroll_cols(32);
|
||||
m_reel3_tilemap->set_scroll_cols(32);
|
||||
|
||||
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_magical_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
|
||||
// is there an enable reg for this game?
|
||||
m_cm_enable_reg = 0x0b;
|
||||
}
|
||||
|
||||
|
||||
UINT32 wingco_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int i;
|
||||
|
||||
bitmap.fill(m_palette->black_pen(), cliprect);
|
||||
|
||||
if (!(m_cm_enable_reg &0x01))
|
||||
return 0;
|
||||
|
||||
if (m_cm_enable_reg &0x08)
|
||||
{
|
||||
for (i= 0;i < 64;i++)
|
||||
{
|
||||
m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
|
||||
}
|
||||
|
||||
|
||||
const rectangle visible1(0*8, (14+48)*8-1, 3*8, (4+7)*8-1);
|
||||
m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
|
||||
}
|
||||
|
||||
if (m_cm_enable_reg &0x04)
|
||||
{
|
||||
if (memregion("user1")->base())
|
||||
{
|
||||
gfx_element *gfx = m_gfxdecode->gfx(2);
|
||||
int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
|
||||
int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
|
||||
|
||||
gfx->zoom_transpen(bitmap,cliprect,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_cm_enable_reg &0x02)
|
||||
{
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT32 wingco_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int i;
|
||||
|
||||
bitmap.fill(m_palette->black_pen(), cliprect);
|
||||
|
||||
if (!(m_cm_enable_reg &0x01))
|
||||
return 0;
|
||||
|
||||
if (m_cm_enable_reg &0x08)
|
||||
{
|
||||
// guess, could be wrong, but different screens clearly need different reel layouts
|
||||
if (m_vidreg & 2)
|
||||
{
|
||||
for (i= 0;i < 32;i++)
|
||||
{
|
||||
m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
|
||||
m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
|
||||
// m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
|
||||
}
|
||||
|
||||
|
||||
const rectangle visible1alt(0*8, (16+48)*8-1, 4*8, 16*8-1);
|
||||
const rectangle visible2alt(0*8, (16+48)*8-1, 16*8, 28*8-1);
|
||||
|
||||
m_reel1_tilemap->draw(screen, bitmap, visible1alt, 0, 0);
|
||||
m_reel2_tilemap->draw(screen, bitmap, visible2alt, 0, 0);
|
||||
//m_reel3_tilemap->draw(screen, bitmap, &magical_visible3, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i= 0;i < 32;i++)
|
||||
{
|
||||
m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
|
||||
m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
|
||||
m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
|
||||
}
|
||||
|
||||
|
||||
const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+8)*8-1);
|
||||
const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
|
||||
const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
|
||||
|
||||
m_reel1_tilemap->draw(screen, bitmap, visible1, 0, 0);
|
||||
m_reel2_tilemap->draw(screen, bitmap, visible2, 0, 0);
|
||||
m_reel3_tilemap->draw(screen, bitmap, visible3, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_cm_enable_reg &0x02)
|
||||
{
|
||||
m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
WRITE8_MEMBER(sangho_state::fg_vidram_w)
|
||||
{
|
||||
m_fg_vidram[offset] = data;
|
||||
@ -714,7 +716,7 @@ VIDEO_START_MEMBER(unkch_state, unkch)
|
||||
|
||||
m_cmaster_girl_num = 0;
|
||||
m_cmaster_girl_pal = 0;
|
||||
m_unkch_vidreg = 0x00;
|
||||
m_vidreg = 0x00;
|
||||
|
||||
m_fg_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8, 64, 32);
|
||||
m_fg_tilemap->set_transparent_pen(0);
|
||||
@ -735,7 +737,7 @@ UINT32 unkch_state::screen_update_unkch(screen_device &screen, bitmap_ind16 &bit
|
||||
{
|
||||
// guess, this could be something else completely!!
|
||||
// only draw the first 'reels' tilemap, but fullscreen, using alt registers? (or no scrolling at all? - doubtful, see girl)
|
||||
if (m_unkch_vidreg & 0x40)
|
||||
if (m_vidreg & 0x40)
|
||||
{
|
||||
for (i= 0;i < 32;i++)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user