summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2019-10-16 18:01:03 +0200
committer hap <happppp@users.noreply.github.com>2019-10-16 18:01:19 +0200
commitae1aa998a37afcbc00bcc0ca6c3f3c2000958392 (patch)
treed37d17b0ad02c9988e02634b084c77afe731319f
parent39bde3e47364ada9e1f0d74c73a2053ae6df9b06 (diff)
mustache: game runs in IM1(no irq vector used), irq stays high during vblank, old regression from https://github.com/mamedev/mame/commit/0a7b50a0054aa8aa7218c5542f00cd4b6ec723dc (nw)
-rw-r--r--src/mame/drivers/darkmist.cpp4
-rw-r--r--src/mame/drivers/metlfrzr.cpp4
-rw-r--r--src/mame/drivers/mustache.cpp15
-rw-r--r--src/mame/drivers/pc8401a.cpp2
-rw-r--r--src/mame/includes/mustache.h1
5 files changed, 7 insertions, 19 deletions
diff --git a/src/mame/drivers/darkmist.cpp b/src/mame/drivers/darkmist.cpp
index a0149a4c0ec..3e2e1c75864 100644
--- a/src/mame/drivers/darkmist.cpp
+++ b/src/mame/drivers/darkmist.cpp
@@ -231,10 +231,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(darkmist_state::scanline)
int scanline = param;
if(scanline == 240) // vblank-out irq
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0x10); /* Z80 - RST 10h */
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xd7); /* Z80 - RST 10h */
if(scanline == 0) // vblank-in irq
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0x08); /* Z80 - RST 08h */
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xcf); /* Z80 - RST 08h */
}
diff --git a/src/mame/drivers/metlfrzr.cpp b/src/mame/drivers/metlfrzr.cpp
index b436bdd6686..65fcaf95eac 100644
--- a/src/mame/drivers/metlfrzr.cpp
+++ b/src/mame/drivers/metlfrzr.cpp
@@ -359,11 +359,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(metlfrzr_state::scanline)
int scanline = param;
if(scanline == 240) // vblank-out irq
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0x10); /* Z80 - RST 10h */
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xd7); /* Z80 - RST 10h */
// TODO: check this irq.
if(scanline == 0) // vblank-in irq
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0x08); /* Z80 - RST 08h */
+ m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xcf); /* Z80 - RST 08h */
}
void metlfrzr_state::metlfrzr(machine_config &config)
diff --git a/src/mame/drivers/mustache.cpp b/src/mame/drivers/mustache.cpp
index f3fdf7c9232..f02df863948 100644
--- a/src/mame/drivers/mustache.cpp
+++ b/src/mame/drivers/mustache.cpp
@@ -166,17 +166,6 @@ static GFXDECODE_START( gfx_mustache )
GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0x80, 8 )
GFXDECODE_END
-TIMER_DEVICE_CALLBACK_MEMBER(mustache_state::scanline)
-{
- int scanline = param;
-
- if(scanline == 240) // vblank-out irq
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0x10); /* Z80 - RST 10h */
-
- if(scanline == 0) // vblank-in irq
- m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0x08); /* Z80 - RST 08h */
-}
-
void mustache_state::mustache(machine_config &config)
@@ -185,7 +174,6 @@ void mustache_state::mustache(machine_config &config)
Z80(config, m_maincpu, CPU_CLOCK);
m_maincpu->set_addrmap(AS_PROGRAM, &mustache_state::memmap);
m_maincpu->set_addrmap(AS_OPCODES, &mustache_state::decrypted_opcodes_map);
- TIMER(config, "scantimer").configure_scanline(FUNC(mustache_state::scanline), "screen", 0, 1);
SEI80BU(config, "sei80bu", 0).set_device_rom_tag("maincpu");
@@ -194,11 +182,12 @@ void mustache_state::mustache(machine_config &config)
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_refresh_hz(56.747);
- m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
+ m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500));
m_screen->set_size(32*8, 32*8);
m_screen->set_visarea(1*8, 31*8-1, 0, 31*8-1);
m_screen->set_screen_update(FUNC(mustache_state::screen_update));
m_screen->set_palette(m_palette);
+ m_screen->screen_vblank().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_mustache);
PALETTE(config, m_palette, palette_device::RGB_444_PROMS, "proms", 256);
diff --git a/src/mame/drivers/pc8401a.cpp b/src/mame/drivers/pc8401a.cpp
index d8e05c318ee..770e7ad0505 100644
--- a/src/mame/drivers/pc8401a.cpp
+++ b/src/mame/drivers/pc8401a.cpp
@@ -57,7 +57,7 @@ void pc8401a_state::scan_keyboard()
if (!m_key_strobe && strobe)
{
/* trigger interrupt */
- m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0x28); // Z80
+ m_maincpu->set_input_line_and_vector(INPUT_LINE_IRQ0, ASSERT_LINE, 0xef); // Z80 - RST 28h
logerror("INTERRUPT\n");
}
diff --git a/src/mame/includes/mustache.h b/src/mame/includes/mustache.h
index 25f8d451377..fc55e34dcf6 100644
--- a/src/mame/includes/mustache.h
+++ b/src/mame/includes/mustache.h
@@ -54,7 +54,6 @@ private:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
- TIMER_DEVICE_CALLBACK_MEMBER(scanline);
void decrypted_opcodes_map(address_map &map);
void memmap(address_map &map);
};