diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2011-05-07 17:44:04 +0000 |
---|---|---|
committer | Angelo Salese <angelosa@users.noreply.github.com> | 2011-05-07 17:44:04 +0000 |
commit | c331e62b73d06d196539815575deaf96810ccfe7 (patch) | |
tree | 708261420000955b7cb3dcf5da433a4ce577b142 | |
parent | d5dd01d59927e8b9b6d85c292e0b585c0a32800a (diff) |
Fixed missing sprite regression in the Wiz driver [Angelo Salese]
-rw-r--r-- | src/mame/drivers/wiz.c | 21 | ||||
-rw-r--r-- | src/mame/includes/wiz.h | 1 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c index 4b4b110b16b..1192658ee29 100644 --- a/src/mame/drivers/wiz.c +++ b/src/mame/drivers/wiz.c @@ -213,6 +213,13 @@ static WRITE8_HANDLER( wiz_coin_counter_w ) coin_counter_w(space->machine(), offset,data); } +static WRITE8_HANDLER( wiz_nmi_mask_w ) +{ + wiz_state *state = space->machine().driver_data<wiz_state>(); + + state->m_nmi_mask = data & 1; +} + static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 ) AM_RANGE(0x0000, 0xbfff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM @@ -220,7 +227,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 ) AM_RANGE(0xd000, 0xd3ff) AM_BASE_MEMBER(wiz_state, m_videoram2) /* Fallthrough */ AM_RANGE(0xd400, 0xd7ff) AM_BASE_MEMBER(wiz_state, m_colorram2) AM_RANGE(0xd800, 0xd83f) AM_BASE_MEMBER(wiz_state, m_attributesram2) - AM_RANGE(0xd840, 0xd85f) AM_BASE_MEMBER(wiz_state, m_spriteram2) AM_SIZE_MEMBER(wiz_state, m_spriteram) + AM_RANGE(0xd840, 0xd85f) AM_BASE_MEMBER(wiz_state, m_spriteram2) AM_SIZE_MEMBER(wiz_state, m_spriteram_size) AM_RANGE(0xd000, 0xd85f) AM_RAM AM_RANGE(0xe000, 0xe3ff) AM_BASE_MEMBER(wiz_state, m_videoram) /* Fallthrough */ AM_RANGE(0xe400, 0xe7ff) AM_RAM @@ -229,7 +236,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8 ) AM_RANGE(0xe000, 0xe85f) AM_RAM AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW0") AM_RANGE(0xf000, 0xf000) AM_RAM AM_BASE_MEMBER(wiz_state, m_sprite_bank) - AM_RANGE(0xf001, 0xf001) AM_WRITE(interrupt_enable_w) + AM_RANGE(0xf001, 0xf001) AM_WRITE(wiz_nmi_mask_w) AM_RANGE(0xf002, 0xf003) AM_WRITE(wiz_palettebank_w) AM_RANGE(0xf004, 0xf005) AM_WRITE(wiz_char_bank_select_w) AM_RANGE(0xf006, 0xf006) AM_WRITE(wiz_flipx_w) @@ -680,12 +687,20 @@ static MACHINE_RESET( wiz ) state->m_dsc0 = state->m_dsc1 = 1; } +static INTERRUPT_GEN( wiz_vblank_irq ) +{ + wiz_state *state = device->machine().driver_data<wiz_state>(); + + if(state->m_nmi_mask & 1) + device_set_input_line(device,INPUT_LINE_NMI,PULSE_LINE); +} + static MACHINE_CONFIG_START( wiz, wiz_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, 18432000/6) /* 3.072 MHz ??? */ MCFG_CPU_PROGRAM_MAP(main_map) - MCFG_CPU_VBLANK_INT("screen", nmi_line_pulse) + MCFG_CPU_VBLANK_INT("screen", wiz_vblank_irq) MCFG_CPU_ADD("audiocpu", Z80, 14318000/8) /* ? */ MCFG_CPU_PROGRAM_MAP(sound_map) diff --git a/src/mame/includes/wiz.h b/src/mame/includes/wiz.h index ac84ae94862..84c06c6104c 100644 --- a/src/mame/includes/wiz.h +++ b/src/mame/includes/wiz.h @@ -21,6 +21,7 @@ public: UINT8 *m_spriteram; UINT8 *m_spriteram2; size_t m_spriteram_size; + UINT8 m_nmi_mask; }; |