mirror of
https://github.com/holub/mame
synced 2025-06-17 17:59:05 +03:00
Fix 01236: psurge: Power Surge isn't coining up.
This commit is contained in:
parent
d75b3d1dff
commit
a9de40c914
@ -45,7 +45,6 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "driver.h"
|
||||
#include "deprecat.h"
|
||||
#include "timeplt.h"
|
||||
#include "audio/timeplt.h"
|
||||
|
||||
@ -54,7 +53,7 @@
|
||||
|
||||
|
||||
|
||||
static UINT8 irq_enable;
|
||||
static UINT8 nmi_enable;
|
||||
|
||||
|
||||
/*************************************
|
||||
@ -65,22 +64,22 @@ static UINT8 irq_enable;
|
||||
|
||||
static MACHINE_START( timeplt )
|
||||
{
|
||||
state_save_register_global(irq_enable);
|
||||
state_save_register_global(nmi_enable);
|
||||
}
|
||||
|
||||
|
||||
static INTERRUPT_GEN( timeplt_interrupt )
|
||||
{
|
||||
if (irq_enable)
|
||||
if (nmi_enable)
|
||||
cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, ASSERT_LINE);
|
||||
}
|
||||
|
||||
|
||||
static WRITE8_HANDLER( irq_enable_w )
|
||||
static WRITE8_HANDLER( timeplt_nmi_enable_w )
|
||||
{
|
||||
irq_enable = data & 1;
|
||||
if (!irq_enable)
|
||||
cpunum_set_input_line(Machine, 0, INPUT_LINE_NMI, CLEAR_LINE);
|
||||
nmi_enable = data & 1;
|
||||
if (!nmi_enable)
|
||||
cpunum_set_input_line(machine, 0, INPUT_LINE_NMI, CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
@ -100,11 +99,27 @@ static WRITE8_HANDLER( timeplt_coin_counter_w )
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Memory maps
|
||||
* Power Surge protection
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
static READ8_HANDLER( psurge_protection_r )
|
||||
{
|
||||
return 0x80;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Memory maps
|
||||
*
|
||||
* Power Surge has no NMI enable,
|
||||
* and has a proection check
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static ADDRESS_MAP_START( timeplt_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||
AM_RANGE(0xa000, 0xa3ff) AM_READWRITE(SMH_RAM, timeplt_colorram_w) AM_BASE(&colorram)
|
||||
@ -114,7 +129,7 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xb400, 0xb4ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE(&spriteram_2)
|
||||
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE(irq_enable_w)
|
||||
AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_nmi_enable_w)
|
||||
AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_flipscreen_w)
|
||||
AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_sh_irqtrigger_w)
|
||||
AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_coin_counter_w)
|
||||
@ -127,6 +142,28 @@ static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( psurge_main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
AM_RANGE(0x0000, 0x5fff) AM_ROM
|
||||
AM_RANGE(0x6004, 0x6004) AM_READ(psurge_protection_r)
|
||||
AM_RANGE(0xa000, 0xa3ff) AM_READWRITE(SMH_RAM, timeplt_colorram_w) AM_BASE(&colorram)
|
||||
AM_RANGE(0xa400, 0xa7ff) AM_READWRITE(SMH_RAM, timeplt_videoram_w) AM_BASE(&videoram)
|
||||
AM_RANGE(0xa800, 0xafff) AM_RAM
|
||||
AM_RANGE(0xb000, 0xb0ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE(&spriteram)
|
||||
AM_RANGE(0xb400, 0xb4ff) AM_MIRROR(0x0b00) AM_RAM AM_BASE(&spriteram_2)
|
||||
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_WRITE(soundlatch_w)
|
||||
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_WRITE(watchdog_reset_w)
|
||||
AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_flipscreen_w)
|
||||
AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_sh_irqtrigger_w)
|
||||
AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(timeplt_coin_counter_w)
|
||||
AM_RANGE(0xc000, 0xc000) AM_MIRROR(0x0cff) AM_READ(timeplt_scanline_r)
|
||||
AM_RANGE(0xc200, 0xc200) AM_MIRROR(0x0cff) AM_READ_PORT("DSW1")
|
||||
AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0c9f) AM_READ_PORT("IN0")
|
||||
AM_RANGE(0xc320, 0xc320) AM_MIRROR(0x0c9f) AM_READ_PORT("IN1")
|
||||
AM_RANGE(0xc340, 0xc340) AM_MIRROR(0x0c9f) AM_READ_PORT("IN2")
|
||||
AM_RANGE(0xc360, 0xc360) AM_MIRROR(0x0c9f) AM_READ_PORT("DSW0")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -321,8 +358,8 @@ GFXDECODE_END
|
||||
static MACHINE_DRIVER_START( timeplt )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(Z80, MASTER_CLOCK/3/2) /* not confirmed, but common for Konami games of the era */
|
||||
MDRV_CPU_PROGRAM_MAP(main_map,0)
|
||||
MDRV_CPU_ADD_TAG("main", Z80, MASTER_CLOCK/3/2) /* not confirmed, but common for Konami games of the era */
|
||||
MDRV_CPU_PROGRAM_MAP(timeplt_main_map,0)
|
||||
MDRV_CPU_VBLANK_INT("main", timeplt_interrupt)
|
||||
|
||||
MDRV_MACHINE_START(timeplt)
|
||||
@ -348,6 +385,16 @@ static MACHINE_DRIVER_START( timeplt )
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
static MACHINE_DRIVER_START( psurge )
|
||||
MDRV_IMPORT_FROM(timeplt)
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_MODIFY("main")
|
||||
MDRV_CPU_PROGRAM_MAP(psurge_main_map,0)
|
||||
MDRV_CPU_VBLANK_INT("main", nmi_line_pulse)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -484,4 +531,4 @@ GAME( 1982, timeplt, 0, timeplt, timeplt, 0, ROT90, "Konami", "Time Pilo
|
||||
GAME( 1982, timepltc, timeplt, timeplt, timeplt, 0, ROT90, "Konami (Centuri license)", "Time Pilot (Centuri)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, timeplta, timeplt, timeplt, timeplt, 0, ROT90, "Konami (Atari license)", "Time Pilot (Atari)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1982, spaceplt, timeplt, timeplt, timeplt, 0, ROT90, "bootleg", "Space Pilot", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, psurge, 0, timeplt, psurge, 0, ROT270, "<unknown>", "Power Surge", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1988, psurge, 0, psurge, psurge, 0, ROT270, "<unknown>", "Power Surge", GAME_SUPPORTS_SAVE )
|
||||
|
Loading…
Reference in New Issue
Block a user