mirror of
https://github.com/holub/mame
synced 2025-05-16 19:00:43 +03:00
deprecat.h, WIP code for metro.c
This commit is contained in:
parent
0f97935628
commit
72d39635c1
@ -9,7 +9,6 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "deprecat.h"
|
||||
#include "cpu/hd6309/hd6309.h"
|
||||
#include "sound/2203intf.h"
|
||||
#include "video/konicdev.h"
|
||||
|
@ -32,7 +32,6 @@ metlclsh:
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "deprecat.h"
|
||||
#include "cpu/m6809/m6809.h"
|
||||
#include "sound/2203intf.h"
|
||||
#include "sound/3526intf.h"
|
||||
@ -133,6 +132,13 @@ ADDRESS_MAP_END
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
static INPUT_CHANGED( coin_inserted )
|
||||
{
|
||||
if(newval != oldval)
|
||||
cputag_set_input_line(field.machine(), "sub", INPUT_LINE_NMI, ASSERT_LINE);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( metlclsh )
|
||||
PORT_START("IN0") /* c000 */
|
||||
PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coinage ) )
|
||||
@ -176,8 +182,8 @@ static INPUT_PORTS_START( metlclsh )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_IMPULSE(1) PORT_CHANGED(coin_inserted, 0)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) PORT_IMPULSE(1) PORT_CHANGED(coin_inserted, 0)
|
||||
|
||||
PORT_START("DSW") /* c003 */
|
||||
PORT_DIPNAME( 0x01, 0x01, DEF_STR( Lives ) )
|
||||
@ -196,7 +202,7 @@ static INPUT_PORTS_START( metlclsh )
|
||||
PORT_DIPSETTING( 0x10, DEF_STR( Off ) )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNKNOWN ) // cpu2 will clr c040 on startup forever
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(1)
|
||||
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_IMPULSE(1) PORT_CHANGED(coin_inserted, 0)
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_VBLANK )
|
||||
INPUT_PORTS_END
|
||||
|
||||
@ -264,14 +270,6 @@ static const ym3526_interface ym3526_config =
|
||||
metlclsh_irqhandler
|
||||
};
|
||||
|
||||
static INTERRUPT_GEN( metlclsh_interrupt2 )
|
||||
{
|
||||
if (cpu_getiloops(device) == 0)
|
||||
return;
|
||||
/* generate NMI on coin insertion */
|
||||
if ((~input_port_read(device->machine(), "IN2") & 0xc0) || (~input_port_read(device->machine(), "DSW") & 0x40)) /* TODO: remove me */
|
||||
device_set_input_line(device, INPUT_LINE_NMI, ASSERT_LINE);
|
||||
}
|
||||
|
||||
static MACHINE_START( metlclsh )
|
||||
{
|
||||
@ -303,7 +301,6 @@ static MACHINE_CONFIG_START( metlclsh, metlclsh_state )
|
||||
|
||||
MCFG_CPU_ADD("sub", M6809, 1500000) // ?
|
||||
MCFG_CPU_PROGRAM_MAP(metlclsh_slave_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metlclsh_interrupt2,2)
|
||||
// IRQ by cpu #1, NMI by coins insertion
|
||||
|
||||
MCFG_MACHINE_START(metlclsh)
|
||||
|
@ -98,6 +98,18 @@ driver modified by Eisuke Watanabe
|
||||
#include "sound/ymf278b.h"
|
||||
#include "video/konicdev.h"
|
||||
|
||||
/* TODO: NOT measured! */
|
||||
#define PIXEL_CLOCK (XTAL_14_31818MHz/2)
|
||||
|
||||
#define HTOTAL (456)
|
||||
#define HBEND (0)
|
||||
#define HBSTART (320)
|
||||
|
||||
#define VTOTAL (262)
|
||||
#define VBEND (0)
|
||||
#define VBSTART (240)
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
|
||||
@ -109,7 +121,15 @@ driver modified by Eisuke Watanabe
|
||||
static READ16_HANDLER( metro_irq_cause_r )
|
||||
{
|
||||
metro_state *state = space->machine().driver_data<metro_state>();
|
||||
int res,i;
|
||||
|
||||
res = 0;
|
||||
for(i=0;i<8;i++)
|
||||
res |= (state->m_requested_int[i] << i);
|
||||
|
||||
return res;
|
||||
|
||||
#if 0
|
||||
return state->m_requested_int[0] * 0x01 + // vblank
|
||||
state->m_requested_int[1] * 0x02 +
|
||||
state->m_requested_int[2] * 0x04 + // blitter
|
||||
@ -118,6 +138,7 @@ static READ16_HANDLER( metro_irq_cause_r )
|
||||
state->m_requested_int[5] * 0x20 +
|
||||
state->m_requested_int[6] * 0x40 + // unused
|
||||
state->m_requested_int[7] * 0x80 ; // unused
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -167,6 +188,7 @@ static IRQ_CALLBACK( metro_irq_callback )
|
||||
static WRITE16_HANDLER( metro_irq_cause_w )
|
||||
{
|
||||
metro_state *state = space->machine().driver_data<metro_state>();
|
||||
int i;
|
||||
|
||||
//if (data & ~0x15) logerror("CPU #0 PC %06X : unknown bits of irqcause written: %04X\n", cpu_get_pc(&space->device()), data);
|
||||
|
||||
@ -174,6 +196,10 @@ static WRITE16_HANDLER( metro_irq_cause_w )
|
||||
{
|
||||
data &= ~*state->m_irq_enable;
|
||||
|
||||
for(i=0;i<8;i++)
|
||||
if (BIT(data, i)) state->m_requested_int[i] = 0;
|
||||
|
||||
#if 0
|
||||
if (BIT(data, 0)) state->m_requested_int[0] = 0;
|
||||
if (BIT(data, 1)) state->m_requested_int[1] = 0; // DAITORIDE, BALCUBE, KARATOUR, MOUJA
|
||||
if (BIT(data, 2)) state->m_requested_int[2] = 0;
|
||||
@ -182,84 +208,65 @@ static WRITE16_HANDLER( metro_irq_cause_w )
|
||||
if (BIT(data, 5)) state->m_requested_int[5] = 0; // KARATOUR, BLZNTRND
|
||||
if (BIT(data, 6)) state->m_requested_int[6] = 0;
|
||||
if (BIT(data, 7)) state->m_requested_int[7] = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
update_irq_state(space->machine());
|
||||
}
|
||||
|
||||
|
||||
static INTERRUPT_GEN( metro_interrupt )
|
||||
static TIMER_DEVICE_CALLBACK( metro_interrupt )
|
||||
{
|
||||
metro_state *state = device->machine().driver_data<metro_state>();
|
||||
metro_state *state = timer.machine().driver_data<metro_state>();
|
||||
int scanline = param;
|
||||
|
||||
switch (cpu_getiloops(device))
|
||||
if(scanline == 240)
|
||||
{
|
||||
case 0:
|
||||
state->m_requested_int[0] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
state->m_requested_int[0] = 1;
|
||||
update_irq_state(timer.machine());
|
||||
}
|
||||
|
||||
default:
|
||||
state->m_requested_int[4] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
if(scanline == 0)
|
||||
{
|
||||
state->m_requested_int[4] = 1;
|
||||
update_irq_state(timer.machine());
|
||||
}
|
||||
}
|
||||
|
||||
/* Lev 1. Lev 2 seems sound related */
|
||||
static INTERRUPT_GEN( bangball_interrupt )
|
||||
static TIMER_DEVICE_CALLBACK( msgogo_interrupt )
|
||||
{
|
||||
metro_state *state = device->machine().driver_data<metro_state>();
|
||||
metro_state *state = timer.machine().driver_data<metro_state>();
|
||||
int scanline = param;
|
||||
|
||||
state->m_requested_int[0] = 1; // set scroll regs if a flag is set
|
||||
state->m_requested_int[4] = 1; // clear that flag
|
||||
update_irq_state(device->machine());
|
||||
if(scanline == 224-16) // TODO: timing quirk
|
||||
{
|
||||
state->m_requested_int[0] = 1;
|
||||
update_irq_state(timer.machine());
|
||||
}
|
||||
|
||||
if(scanline == 0)
|
||||
{
|
||||
state->m_requested_int[4] = 1;
|
||||
update_irq_state(timer.machine());
|
||||
}
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( msgogo_interrupt )
|
||||
{
|
||||
metro_state *state = device->machine().driver_data<metro_state>();
|
||||
|
||||
switch (cpu_getiloops(device))
|
||||
{
|
||||
case 10:
|
||||
state->m_requested_int[0] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
|
||||
case 224:
|
||||
state->m_requested_int[4] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static TIMER_CALLBACK( vblank_end_callback )
|
||||
{
|
||||
metro_state *state = machine.driver_data<metro_state>();
|
||||
state->m_requested_int[5] = param;
|
||||
}
|
||||
|
||||
/* lev 2-7 (lev 1 seems sound related) */
|
||||
static INTERRUPT_GEN( karatour_interrupt )
|
||||
static TIMER_DEVICE_CALLBACK( karatour_interrupt )
|
||||
{
|
||||
metro_state *state = device->machine().driver_data<metro_state>();
|
||||
metro_state *state = timer.machine().driver_data<metro_state>();
|
||||
int scanline = param;
|
||||
|
||||
switch (cpu_getiloops(device))
|
||||
if(scanline == 240)
|
||||
{
|
||||
case 0:
|
||||
state->m_requested_int[0] = 1;
|
||||
state->m_requested_int[5] = 1; // write the scroll registers
|
||||
/* the duration is a guess */
|
||||
device->machine().scheduler().timer_set(attotime::from_usec(2500), FUNC(vblank_end_callback));
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
|
||||
default:
|
||||
state->m_requested_int[4] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
state->m_requested_int[0] = 1;
|
||||
//state->m_requested_int[5] = 1; // write the scroll registers (TODO: where to put this without making the game to hang???)
|
||||
update_irq_state(timer.machine());
|
||||
}
|
||||
else if(scanline == 0)
|
||||
{
|
||||
state->m_requested_int[4] = 1;
|
||||
update_irq_state(timer.machine());
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,29 +300,25 @@ static INTERRUPT_GEN( gakusai_interrupt )
|
||||
{
|
||||
metro_state *state = device->machine().driver_data<metro_state>();
|
||||
|
||||
switch (cpu_getiloops(device))
|
||||
{
|
||||
case 0:
|
||||
state->m_requested_int[1] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
}
|
||||
state->m_requested_int[1] = 1;
|
||||
update_irq_state(device->machine());
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( dokyusei_interrupt )
|
||||
static TIMER_DEVICE_CALLBACK( dokyusei_interrupt )
|
||||
{
|
||||
metro_state *state = device->machine().driver_data<metro_state>();
|
||||
metro_state *state = timer.machine().driver_data<metro_state>();
|
||||
int scanline = param;
|
||||
|
||||
switch (cpu_getiloops(device))
|
||||
if(scanline == 240)
|
||||
{
|
||||
case 0:
|
||||
state->m_requested_int[1] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
case 1: // needed?
|
||||
state->m_requested_int[5] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
state->m_requested_int[1] = 1;
|
||||
update_irq_state(timer.machine());
|
||||
}
|
||||
else if(scanline == 0)
|
||||
{
|
||||
// needed?
|
||||
state->m_requested_int[5] = 1;
|
||||
update_irq_state(timer.machine());
|
||||
}
|
||||
}
|
||||
|
||||
@ -3494,18 +3497,15 @@ static MACHINE_CONFIG_START( balcube, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(balcube_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_MACHINE_START(metro)
|
||||
MCFG_MACHINE_RESET(metro)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, 224)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14220)
|
||||
@ -3528,18 +3528,15 @@ static MACHINE_CONFIG_START( daitoa, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(daitoa_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_MACHINE_START(metro)
|
||||
MCFG_MACHINE_RESET(metro)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14220)
|
||||
@ -3562,18 +3559,15 @@ static MACHINE_CONFIG_START( msgogo, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(msgogo_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(msgogo_interrupt,262) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", msgogo_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_MACHINE_START(metro)
|
||||
MCFG_MACHINE_RESET(metro)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, 224)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14220)
|
||||
@ -3596,18 +3590,15 @@ static MACHINE_CONFIG_START( bangball, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(bangball_map)
|
||||
MCFG_CPU_VBLANK_INT("screen", bangball_interrupt)
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_MACHINE_START(metro)
|
||||
MCFG_MACHINE_RESET(metro)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, 224)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14220)
|
||||
@ -3630,18 +3621,15 @@ static MACHINE_CONFIG_START( batlbubl, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(batlbubl_map)
|
||||
MCFG_CPU_VBLANK_INT("screen", bangball_interrupt)
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_MACHINE_START(metro)
|
||||
MCFG_MACHINE_RESET(metro)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, 224)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14220)
|
||||
@ -3663,7 +3651,7 @@ static MACHINE_CONFIG_START( daitorid, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_32MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(daitorid_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_12MHz)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -3675,11 +3663,8 @@ static MACHINE_CONFIG_START( daitorid, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(58)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14220)
|
||||
@ -3706,7 +3691,7 @@ static MACHINE_CONFIG_START( dharma, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(dharma_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -3718,11 +3703,8 @@ static MACHINE_CONFIG_START( dharma, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -3748,7 +3730,7 @@ static MACHINE_CONFIG_START( karatour, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(karatour_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(karatour_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", karatour_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -3760,11 +3742,8 @@ static MACHINE_CONFIG_START( karatour, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 240)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -3790,7 +3769,7 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(kokushi_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(karatour_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", karatour_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -3802,11 +3781,8 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 240)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14220)
|
||||
@ -3832,7 +3808,7 @@ static MACHINE_CONFIG_START( lastfort, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(lastfort_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -3844,11 +3820,8 @@ static MACHINE_CONFIG_START( lastfort, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(58)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART + 40, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(360, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -3873,7 +3846,7 @@ static MACHINE_CONFIG_START( lastforg, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(lastforg_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(karatour_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", karatour_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -3885,11 +3858,8 @@ static MACHINE_CONFIG_START( lastforg, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(58)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART + 40, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(360, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -3914,18 +3884,15 @@ static MACHINE_CONFIG_START( dokyusei, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(dokyusei_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(dokyusei_interrupt,2) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", dokyusei_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_MACHINE_START(metro)
|
||||
MCFG_MACHINE_RESET(metro)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, 224)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 256-32)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14300)
|
||||
@ -3958,11 +3925,8 @@ static MACHINE_CONFIG_START( dokyusp, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, 384, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(384, 256-32)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-32-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14300)
|
||||
@ -3996,11 +3960,8 @@ static MACHINE_CONFIG_START( gakusai, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 240)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14300)
|
||||
@ -4034,11 +3995,8 @@ static MACHINE_CONFIG_START( gakusai2, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 240)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14300)
|
||||
@ -4064,7 +4022,7 @@ static MACHINE_CONFIG_START( pangpoms, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(pangpoms_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -4076,11 +4034,8 @@ static MACHINE_CONFIG_START( pangpoms, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART + 40, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(360, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -4106,7 +4061,7 @@ static MACHINE_CONFIG_START( poitto, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(poitto_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -4118,11 +4073,8 @@ static MACHINE_CONFIG_START( poitto, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART + 40, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(360, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -4148,8 +4100,8 @@ static MACHINE_CONFIG_START( pururun, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2) /* Not confirmed */
|
||||
MCFG_CPU_PROGRAM_MAP(pururun_map)
|
||||
//MCFG_CPU_VBLANK_INT_HACK(msgogo_interrupt,262) /* fixes the title screen scroll in GunMaster, but makes the game painfully slow */
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
// MCFG_TIMER_ADD_SCANLINE("scantimer", msgogo_interrupt, "screen", 0, 1) /* fixes the title screen scroll in GunMaster, but makes the game painfully slow */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1) /* ? */
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2) /* Not confiremd */
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -4161,11 +4113,8 @@ static MACHINE_CONFIG_START( pururun, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -4192,7 +4141,7 @@ static MACHINE_CONFIG_START( skyalert, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(skyalert_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -4204,11 +4153,8 @@ static MACHINE_CONFIG_START( skyalert, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART + 40, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(360, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -4234,7 +4180,7 @@ static MACHINE_CONFIG_START( toride2g, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_24MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(toride2g_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(metro_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", metro_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
@ -4246,11 +4192,8 @@ static MACHINE_CONFIG_START( toride2g, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14100)
|
||||
@ -4283,11 +4226,8 @@ static MACHINE_CONFIG_START( mouja, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(58)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(512, 256)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14300)
|
||||
@ -4317,7 +4257,7 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(blzntrnd_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(karatour_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", karatour_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(blzntrnd_sound_map)
|
||||
@ -4328,11 +4268,8 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(58)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(blzntrnd)
|
||||
@ -4365,7 +4302,7 @@ static MACHINE_CONFIG_START( gstrik2, metro_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL_16MHz)
|
||||
MCFG_CPU_PROGRAM_MAP(blzntrnd_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(karatour_interrupt,10) /* ? */
|
||||
MCFG_TIMER_ADD_SCANLINE("scantimer", karatour_interrupt, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, XTAL_16MHz/2)
|
||||
MCFG_CPU_PROGRAM_MAP(blzntrnd_sound_map)
|
||||
@ -4376,11 +4313,8 @@ static MACHINE_CONFIG_START( gstrik2, metro_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(58)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 224)
|
||||
MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(gstrik2)
|
||||
@ -4427,14 +4361,16 @@ static INTERRUPT_GEN( puzzlet_interrupt )
|
||||
state->m_requested_int[2] = 1;
|
||||
update_irq_state(device->machine());
|
||||
break;
|
||||
|
||||
default:
|
||||
// timer
|
||||
device_set_input_line(state->m_maincpu, H8_METRO_TIMER_HACK, HOLD_LINE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( unknown_interrupt )
|
||||
{
|
||||
metro_state *state = device->machine().driver_data<metro_state>();
|
||||
|
||||
device_set_input_line(state->m_maincpu, H8_METRO_TIMER_HACK, HOLD_LINE);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( puzzlet, metro_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -4442,17 +4378,15 @@ static MACHINE_CONFIG_START( puzzlet, metro_state )
|
||||
MCFG_CPU_PROGRAM_MAP(puzzlet_map)
|
||||
MCFG_CPU_IO_MAP(puzzlet_io_map)
|
||||
MCFG_CPU_VBLANK_INT_HACK(puzzlet_interrupt, 5)
|
||||
MCFG_CPU_PERIODIC_INT(unknown_interrupt,60)
|
||||
|
||||
MCFG_MACHINE_START(metro)
|
||||
MCFG_MACHINE_RESET(metro)
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(58)
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, 224) // was 58fps?
|
||||
MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MCFG_SCREEN_SIZE(320, 256-32)
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
|
||||
MCFG_SCREEN_UPDATE(metro)
|
||||
|
||||
MCFG_GFXDECODE(14300)
|
||||
|
@ -394,4 +394,4 @@ static DRIVER_INIT(pip)
|
||||
pc_vga_init(machine, &vga_interface, NULL);
|
||||
}
|
||||
|
||||
GAME( 199?, pntnpuzl, 0, pntnpuzl, pntnpuzl, pip, ROT90, "Century?", "Paint & Puzzle",GAME_NO_SOUND|GAME_NOT_WORKING )
|
||||
GAME( 199?, pntnpuzl, 0, pntnpuzl, pntnpuzl, pip, ROT0, "Century?", "Paint & Puzzle",GAME_NO_SOUND|GAME_NOT_WORKING )
|
||||
|
@ -444,9 +444,10 @@ void metro_draw_sprites( running_machine &machine, bitmap_t *bitmap, const recta
|
||||
metro_state *state = machine.driver_data<metro_state>();
|
||||
UINT8 *base_gfx = machine.region("gfx1")->base();
|
||||
UINT8 *gfx_max = base_gfx + machine.region("gfx1")->bytes();
|
||||
const rectangle &visarea = machine.primary_screen->visible_area();
|
||||
|
||||
int max_x = machine.primary_screen->width();
|
||||
int max_y = machine.primary_screen->height();
|
||||
int max_x = visarea.max_x + 1;
|
||||
int max_y = visarea.max_y + 1;
|
||||
|
||||
int max_sprites = state->m_spriteram_size / 8;
|
||||
int sprites = state->m_videoregs[0x00/2] % max_sprites;
|
||||
@ -725,9 +726,10 @@ SCREEN_UPDATE( metro )
|
||||
metro_state *state = screen->machine().driver_data<metro_state>();
|
||||
int pri, layers_ctrl = -1;
|
||||
UINT16 screenctrl = *state->m_screenctrl;
|
||||
const rectangle &visarea = screen->machine().primary_screen->visible_area();
|
||||
|
||||
state->m_sprite_xoffs = state->m_videoregs[0x06 / 2] - screen->width() / 2;
|
||||
state->m_sprite_yoffs = state->m_videoregs[0x04 / 2] - screen->height() / 2;
|
||||
state->m_sprite_xoffs = state->m_videoregs[0x06 / 2] - (visarea.max_x + 1) / 2;
|
||||
state->m_sprite_yoffs = state->m_videoregs[0x04 / 2] - (visarea.max_y + 1) / 2;
|
||||
|
||||
/* The background color is selected by a register */
|
||||
bitmap_fill(screen->machine().priority_bitmap, cliprect, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user