mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
(With help from Mamesick)
Implemented proper video timing and scanline interrupts. Fixes m72_0115u3yel
This commit is contained in:
parent
bc7e03ec5e
commit
5ef1f5ec19
@ -78,10 +78,67 @@ kengo 0x18 --------------
|
||||
#include "m72.h"
|
||||
|
||||
|
||||
/* in video/m72.c */
|
||||
#define MASTER_CLOCK XTAL_32MHz
|
||||
#define SOUND_CLOCK XTAL_3_579545MHz
|
||||
|
||||
|
||||
static UINT16 *protection_ram;
|
||||
static emu_timer *scanline_timer;
|
||||
static UINT8 m72_irq_base;
|
||||
|
||||
static TIMER_CALLBACK( m72_scanline_interrupt );
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
static MACHINE_START( m72 )
|
||||
{
|
||||
scanline_timer = timer_alloc(m72_scanline_interrupt, NULL);
|
||||
}
|
||||
|
||||
static MACHINE_RESET( m72 )
|
||||
{
|
||||
m72_irq_base = 0x20;
|
||||
machine_reset_m72_sound(machine);
|
||||
timer_adjust(scanline_timer, video_screen_get_time_until_pos(0, 0, 0), 0, attotime_never);
|
||||
}
|
||||
|
||||
static MACHINE_RESET( xmultipl )
|
||||
{
|
||||
m72_irq_base = 0x08;
|
||||
machine_reset_m72_sound(machine);
|
||||
timer_adjust(scanline_timer, video_screen_get_time_until_pos(0, 0, 0), 0, attotime_never);
|
||||
}
|
||||
|
||||
static MACHINE_RESET( kengo )
|
||||
{
|
||||
m72_irq_base = 0x18;
|
||||
machine_reset_m72_sound(machine);
|
||||
timer_adjust(scanline_timer, video_screen_get_time_until_pos(0, 0, 0), 0, attotime_never);
|
||||
}
|
||||
|
||||
static TIMER_CALLBACK( m72_scanline_interrupt )
|
||||
{
|
||||
int scanline = param;
|
||||
|
||||
/* raster interrupt - visible area only? */
|
||||
if (scanline < 256 && scanline == m72_raster_irq_position - 128)
|
||||
{
|
||||
video_screen_update_partial(0, scanline);
|
||||
cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, m72_irq_base + 2);
|
||||
}
|
||||
|
||||
/* VBLANK interrupt */
|
||||
else if (scanline == 256)
|
||||
{
|
||||
video_screen_update_partial(0, scanline);
|
||||
cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, m72_irq_base + 0);
|
||||
}
|
||||
|
||||
/* adjust for next scanline */
|
||||
if (++scanline >= machine->screen[0].height)
|
||||
scanline = 0;
|
||||
timer_adjust(scanline_timer, video_screen_get_time_until_pos(0, scanline, 0), scanline, attotime_never);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1863,27 +1920,26 @@ static const struct YM2151interface ym2151_interface =
|
||||
static MACHINE_DRIVER_START( rtype )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(rtype_map,0)
|
||||
MDRV_CPU_IO_MAP(m72_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_ram_map,0)
|
||||
MDRV_CPU_IO_MAP(sound_portmap,0)
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(m72)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(m72)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(m72)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -1891,7 +1947,7 @@ static MACHINE_DRIVER_START( rtype )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -1930,28 +1986,27 @@ ADDRESS_MAP_END
|
||||
static MACHINE_DRIVER_START( m72 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(m72_map,0)
|
||||
MDRV_CPU_IO_MAP(m72_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_ram_map,0)
|
||||
MDRV_CPU_IO_MAP(sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(fake_nmi,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(m72)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(m72)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(m72)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -1959,7 +2014,7 @@ static MACHINE_DRIVER_START( m72 )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -1982,28 +2037,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( dkgenm72 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(m72_map,0)
|
||||
MDRV_CPU_IO_MAP(m72_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_ram_map,0)
|
||||
MDRV_CPU_IO_MAP(sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(fake_nmi,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(xmultipl)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(m72)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(m72)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -2011,7 +2065,7 @@ static MACHINE_DRIVER_START( dkgenm72 )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2025,28 +2079,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( xmultipl )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(xmultipl_map,0)
|
||||
MDRV_CPU_IO_MAP(m72_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_ram_map,0)
|
||||
MDRV_CPU_IO_MAP(sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(xmultipl)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(m72)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(m72)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -2054,7 +2107,7 @@ static MACHINE_DRIVER_START( xmultipl )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2068,27 +2121,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( dbreed )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(dbreed_map,0)
|
||||
MDRV_CPU_IO_MAP(hharry_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_rom_map,0)
|
||||
MDRV_CPU_IO_MAP(rtype2_sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(xmultipl)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(rtype2)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(hharry)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -2096,7 +2149,7 @@ static MACHINE_DRIVER_START( dbreed )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2109,35 +2162,32 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( dbreed72 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(dbreed72_map,0)
|
||||
MDRV_CPU_IO_MAP(m72_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_ram_map,0)
|
||||
MDRV_CPU_IO_MAP(sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(xmultipl)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(m72)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_VIDEO_START(m72)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2151,28 +2201,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( rtype2 )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(rtype2_map,0)
|
||||
MDRV_CPU_IO_MAP(rtype2_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_rom_map,0)
|
||||
MDRV_CPU_IO_MAP(rtype2_sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(m72)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(rtype2)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(rtype2)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -2180,7 +2229,7 @@ static MACHINE_DRIVER_START( rtype2 )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2193,28 +2242,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( majtitle )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(majtitle_map,0)
|
||||
MDRV_CPU_IO_MAP(majtitle_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_rom_map,0)
|
||||
MDRV_CPU_IO_MAP(rtype2_sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(m72)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(majtitle)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(majtitle)
|
||||
MDRV_VIDEO_UPDATE(majtitle)
|
||||
@ -2222,7 +2270,7 @@ static MACHINE_DRIVER_START( majtitle )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2235,28 +2283,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( hharry )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(hharry_map,0)
|
||||
MDRV_CPU_IO_MAP(hharry_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_rom_map,0)
|
||||
MDRV_CPU_IO_MAP(rtype2_sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(xmultipl)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(rtype2)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(hharry)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -2264,7 +2311,7 @@ static MACHINE_DRIVER_START( hharry )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2278,28 +2325,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( hharryu )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(hharryu_map,0)
|
||||
MDRV_CPU_IO_MAP(rtype2_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_rom_map,0)
|
||||
MDRV_CPU_IO_MAP(rtype2_sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(xmultipl)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(rtype2)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(rtype2)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -2307,7 +2353,7 @@ static MACHINE_DRIVER_START( hharryu )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2321,27 +2367,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( poundfor )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(rtype2_map,0)
|
||||
MDRV_CPU_IO_MAP(poundfor_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_rom_map,0)
|
||||
MDRV_CPU_IO_MAP(poundfor_sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(fake_nmi,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(m72)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(rtype2)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(poundfor)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -2349,7 +2395,7 @@ static MACHINE_DRIVER_START( poundfor )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
@ -2362,28 +2408,27 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( kengo )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(V30,32000000/4) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_ADD(V30,MASTER_CLOCK/2/2) /* 16 MHz external freq (8MHz internal) */
|
||||
MDRV_CPU_PROGRAM_MAP(kengo_map,0)
|
||||
MDRV_CPU_IO_MAP(kengo_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(m72_interrupt,256)
|
||||
|
||||
MDRV_CPU_ADD(Z80, 3579545)
|
||||
MDRV_CPU_ADD(Z80, SOUND_CLOCK)
|
||||
MDRV_CPU_PROGRAM_MAP(sound_rom_map,0)
|
||||
MDRV_CPU_IO_MAP(rtype2_sound_portmap,0)
|
||||
MDRV_CPU_VBLANK_INT(nmi_line_pulse,128) /* clocked by V1? (Vigilante) */
|
||||
/* IRQs are generated by main Z80 and YM2151 */
|
||||
MDRV_SCREEN_REFRESH_RATE(55)
|
||||
MDRV_SCREEN_VBLANK_TIME(DEFAULT_60HZ_VBLANK_DURATION)
|
||||
|
||||
MDRV_MACHINE_START(m72)
|
||||
MDRV_MACHINE_RESET(kengo)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
MDRV_SCREEN_SIZE(512, 512)
|
||||
MDRV_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 16*8, (64-16)*8-1 )
|
||||
MDRV_GFXDECODE(rtype2)
|
||||
MDRV_PALETTE_LENGTH(512)
|
||||
|
||||
MDRV_SCREEN_ADD("main", 0)
|
||||
MDRV_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
|
||||
MDRV_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
|
||||
|
||||
MDRV_VIDEO_START(poundfor)
|
||||
MDRV_VIDEO_UPDATE(m72)
|
||||
@ -2391,7 +2436,7 @@ static MACHINE_DRIVER_START( kengo )
|
||||
/* sound hardware */
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579545)
|
||||
MDRV_SOUND_ADD(YM2151, SOUND_CLOCK)
|
||||
MDRV_SOUND_CONFIG(ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(0, "left", 1.0)
|
||||
MDRV_SOUND_ROUTE(1, "right", 1.0)
|
||||
|
@ -7,12 +7,7 @@
|
||||
/*----------- defined in video/m72.c -----------*/
|
||||
|
||||
extern UINT16 *m72_videoram1,*m72_videoram2,*majtitle_rowscrollram;
|
||||
|
||||
MACHINE_RESET( m72 );
|
||||
MACHINE_RESET( xmultipl );
|
||||
MACHINE_RESET( kengo );
|
||||
|
||||
INTERRUPT_GEN( m72_interrupt );
|
||||
extern UINT32 m72_raster_irq_position;
|
||||
|
||||
VIDEO_START( m72 );
|
||||
VIDEO_START( rtype2 );
|
||||
|
@ -5,59 +5,12 @@
|
||||
|
||||
|
||||
UINT16 *m72_videoram1,*m72_videoram2,*majtitle_rowscrollram;
|
||||
UINT32 m72_raster_irq_position;
|
||||
static UINT16 *m72_spriteram;
|
||||
static INT32 splitline;
|
||||
static tilemap *fg_tilemap,*bg_tilemap;
|
||||
static int xadjust;
|
||||
static int bgadjust;
|
||||
static INT32 scrollx1,scrolly1,scrollx2,scrolly2;
|
||||
static INT32 video_off;
|
||||
|
||||
static int irqbase;
|
||||
|
||||
MACHINE_RESET( m72 )
|
||||
{
|
||||
irqbase = 0x20;
|
||||
machine_reset_m72_sound(machine);
|
||||
}
|
||||
|
||||
MACHINE_RESET( xmultipl )
|
||||
{
|
||||
irqbase = 0x08;
|
||||
machine_reset_m72_sound(machine);
|
||||
}
|
||||
|
||||
MACHINE_RESET( kengo )
|
||||
{
|
||||
irqbase = 0x18;
|
||||
machine_reset_m72_sound(machine);
|
||||
}
|
||||
|
||||
INTERRUPT_GEN( m72_interrupt )
|
||||
{
|
||||
int line = 255 - cpu_getiloops();
|
||||
|
||||
if (line == 255) /* vblank */
|
||||
{
|
||||
cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, irqbase+0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (line != splitline - 128)
|
||||
return;
|
||||
|
||||
video_screen_update_partial(0, line + 128);
|
||||
|
||||
/* this is used to do a raster effect and show the score display at
|
||||
the bottom of the screen or other things. The line where the
|
||||
interrupt happens is programmable (and the interrupt can be triggered
|
||||
multiple times, by changing the interrupt line register in the
|
||||
interrupt handler).
|
||||
*/
|
||||
cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, irqbase+2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -156,7 +109,7 @@ static TILEMAP_MAPPER( majtitle_scan_rows )
|
||||
|
||||
static void register_savestate(void)
|
||||
{
|
||||
state_save_register_global(splitline);
|
||||
state_save_register_global(m72_raster_irq_position);
|
||||
state_save_register_global(video_off);
|
||||
state_save_register_global(scrollx1);
|
||||
state_save_register_global(scrolly1);
|
||||
@ -183,8 +136,11 @@ VIDEO_START( m72 )
|
||||
|
||||
memset(m72_spriteram,0,spriteram_size);
|
||||
|
||||
xadjust = 0;
|
||||
bgadjust = 0;
|
||||
tilemap_set_scrolldx(fg_tilemap,0,0);
|
||||
tilemap_set_scrolldy(fg_tilemap,-128,16);
|
||||
|
||||
tilemap_set_scrolldx(bg_tilemap,0,0);
|
||||
tilemap_set_scrolldy(bg_tilemap,-128,16);
|
||||
|
||||
register_savestate();
|
||||
}
|
||||
@ -206,8 +162,11 @@ VIDEO_START( rtype2 )
|
||||
|
||||
memset(m72_spriteram,0,spriteram_size);
|
||||
|
||||
xadjust = -4;
|
||||
bgadjust = 0;
|
||||
tilemap_set_scrolldx(fg_tilemap,4,0);
|
||||
tilemap_set_scrolldy(fg_tilemap,-128,16);
|
||||
|
||||
tilemap_set_scrolldx(bg_tilemap,4,0);
|
||||
tilemap_set_scrolldy(bg_tilemap,-128,16);
|
||||
|
||||
register_savestate();
|
||||
}
|
||||
@ -216,7 +175,8 @@ VIDEO_START( poundfor )
|
||||
{
|
||||
video_start_rtype2(machine);
|
||||
|
||||
xadjust = -6;
|
||||
tilemap_set_scrolldx(fg_tilemap,6,0);
|
||||
tilemap_set_scrolldx(bg_tilemap,6,0);
|
||||
}
|
||||
|
||||
|
||||
@ -241,8 +201,11 @@ VIDEO_START( majtitle )
|
||||
|
||||
memset(m72_spriteram,0,spriteram_size);
|
||||
|
||||
xadjust = -4;
|
||||
bgadjust = 0;
|
||||
tilemap_set_scrolldx(fg_tilemap,4,0);
|
||||
tilemap_set_scrolldy(fg_tilemap,-128,16);
|
||||
|
||||
tilemap_set_scrolldx(bg_tilemap,4,0);
|
||||
tilemap_set_scrolldy(bg_tilemap,-128,16);
|
||||
|
||||
register_savestate();
|
||||
}
|
||||
@ -264,8 +227,11 @@ VIDEO_START( hharry )
|
||||
|
||||
memset(m72_spriteram,0,spriteram_size);
|
||||
|
||||
xadjust = -4;
|
||||
bgadjust = -2;
|
||||
tilemap_set_scrolldx(fg_tilemap,4,0);
|
||||
tilemap_set_scrolldy(fg_tilemap,-128,16);
|
||||
|
||||
tilemap_set_scrolldx(bg_tilemap,6,0);
|
||||
tilemap_set_scrolldy(bg_tilemap,-128,16);
|
||||
|
||||
register_savestate();
|
||||
}
|
||||
@ -338,7 +304,7 @@ WRITE16_HANDLER( m72_videoram2_w )
|
||||
|
||||
WRITE16_HANDLER( m72_irq_line_w )
|
||||
{
|
||||
COMBINE_DATA(&splitline);
|
||||
COMBINE_DATA(&m72_raster_irq_position);
|
||||
}
|
||||
|
||||
WRITE16_HANDLER( m72_scrollx1_w )
|
||||
@ -447,7 +413,7 @@ static void m72_draw_sprites(running_machine *machine, mame_bitmap *bitmap,const
|
||||
code = m72_spriteram[offs+1];
|
||||
color = m72_spriteram[offs+2] & 0x0f;
|
||||
sx = -256+(m72_spriteram[offs+3] & 0x3ff);
|
||||
sy = 512-(m72_spriteram[offs+0] & 0x1ff);
|
||||
sy = 384-(m72_spriteram[offs+0] & 0x1ff);
|
||||
flipx = m72_spriteram[offs+2] & 0x0800;
|
||||
flipy = m72_spriteram[offs+2] & 0x0400;
|
||||
|
||||
@ -458,7 +424,7 @@ static void m72_draw_sprites(running_machine *machine, mame_bitmap *bitmap,const
|
||||
if (flip_screen)
|
||||
{
|
||||
sx = 512 - 16*w - sx;
|
||||
sy = 512 - 16*h - sy;
|
||||
sy = 284 - 16*h - sy;
|
||||
flipx = !flipx;
|
||||
flipy = !flipy;
|
||||
}
|
||||
@ -499,7 +465,7 @@ static void majtitle_draw_sprites(running_machine *machine, mame_bitmap *bitmap,
|
||||
code = spriteram16_2[offs+1];
|
||||
color = spriteram16_2[offs+2] & 0x0f;
|
||||
sx = -256+(spriteram16_2[offs+3] & 0x3ff);
|
||||
sy = 512-(spriteram16_2[offs+0] & 0x1ff);
|
||||
sy = 384-(spriteram16_2[offs+0] & 0x1ff);
|
||||
flipx = spriteram16_2[offs+2] & 0x0800;
|
||||
flipy = spriteram16_2[offs+2] & 0x0400;
|
||||
|
||||
@ -510,7 +476,7 @@ static void majtitle_draw_sprites(running_machine *machine, mame_bitmap *bitmap,
|
||||
if (flip_screen)
|
||||
{
|
||||
sx = 512 - 16*w - sx;
|
||||
sy = 512 - 16*h - sy;
|
||||
sy = 256 - 16*h - sy;
|
||||
flipx = !flipx;
|
||||
flipy = !flipy;
|
||||
}
|
||||
@ -545,10 +511,10 @@ VIDEO_UPDATE( m72 )
|
||||
return 0;
|
||||
}
|
||||
|
||||
tilemap_set_scrollx(fg_tilemap,0,scrollx1 + xadjust);
|
||||
tilemap_set_scrollx(fg_tilemap,0,scrollx1);
|
||||
tilemap_set_scrolly(fg_tilemap,0,scrolly1);
|
||||
|
||||
tilemap_set_scrollx(bg_tilemap,0,scrollx2 + xadjust + bgadjust);
|
||||
tilemap_set_scrollx(bg_tilemap,0,scrollx2);
|
||||
tilemap_set_scrolly(bg_tilemap,0,scrolly2);
|
||||
|
||||
tilemap_draw(bitmap,cliprect,bg_tilemap,TILEMAP_DRAW_LAYER1,0);
|
||||
@ -570,7 +536,7 @@ VIDEO_UPDATE( majtitle )
|
||||
return 0;
|
||||
}
|
||||
|
||||
tilemap_set_scrollx(fg_tilemap,0,scrollx1 + xadjust);
|
||||
tilemap_set_scrollx(fg_tilemap,0,scrollx1);
|
||||
tilemap_set_scrolly(fg_tilemap,0,scrolly1);
|
||||
|
||||
if (majtitle_rowscroll)
|
||||
@ -578,12 +544,12 @@ VIDEO_UPDATE( majtitle )
|
||||
tilemap_set_scroll_rows(bg_tilemap,512);
|
||||
for (i = 0;i < 512;i++)
|
||||
tilemap_set_scrollx(bg_tilemap,(i+scrolly2)&0x1ff,
|
||||
256 + majtitle_rowscrollram[i] + xadjust);
|
||||
256 + majtitle_rowscrollram[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
tilemap_set_scroll_rows(bg_tilemap,1);
|
||||
tilemap_set_scrollx(bg_tilemap,0,256 + scrollx2 + xadjust);
|
||||
tilemap_set_scrollx(bg_tilemap,0,256 + scrollx2);
|
||||
}
|
||||
tilemap_set_scrolly(bg_tilemap,0,scrolly2);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user