funtech/supracan.cpp: hookup sound CPU NMI, makes staiwbbl inputs to work

This commit is contained in:
angelosa 2024-09-06 19:45:51 +02:00
parent 3a94c9ad00
commit 5454c19626
2 changed files with 8 additions and 2 deletions

View File

@ -188,7 +188,8 @@ Crashes after few seconds in attract, controls [irq 3] as FRC
</part> </part>
</software> </software>
<!-- F012 - Rebel Star --> <!-- F012 - Rebel Star / 叛星 -->
<!-- presumably uses blending during gameplay -->
<!-- Unreleased Super A'can carts --> <!-- Unreleased Super A'can carts -->
<!-- Dinosaur Wars --> <!-- Dinosaur Wars -->

View File

@ -9,6 +9,7 @@ References:
- https://upload.wikimedia.org/wikipedia/commons/a/a6/Super-ACan-motherboard-flat.jpg - https://upload.wikimedia.org/wikipedia/commons/a/a6/Super-ACan-motherboard-flat.jpg
- https://github.com/angelosa/hw_docs/blob/main/funtech_superacan/pergame.md - https://github.com/angelosa/hw_docs/blob/main/funtech_superacan/pergame.md
******************************************************************************* *******************************************************************************
INFO: INFO:
@ -1366,9 +1367,10 @@ uint8_t supracan_state::_6502_soundmem_r(offs_t offset)
break; break;
case 0x411: case 0x411:
data = m_soundcpu_irq_source; data = m_soundcpu_irq_source;
m_soundcpu_irq_source = 0; // TODO: should really check for further pending irqs before acking
if (!machine().side_effects_disabled()) if (!machine().side_effects_disabled())
{ {
m_soundcpu_irq_source = 0;
LOGMASKED(LOG_SOUND, "%s: %s: 6502_soundmem_r: Sound IRQ source read + clear: %02x\n", machine().describe_context(), machine().time().to_string(), data); LOGMASKED(LOG_SOUND, "%s: %s: 6502_soundmem_r: Sound IRQ source read + clear: %02x\n", machine().describe_context(), machine().time().to_string(), data);
m_soundcpu->set_input_line(0, CLEAR_LINE); m_soundcpu->set_input_line(0, CLEAR_LINE);
} }
@ -1757,6 +1759,9 @@ TIMER_CALLBACK_MEMBER(supracan_state::scanline_cb)
{ {
LOGMASKED(LOG_IRQS, "Triggering VBL IRQ\n\n"); LOGMASKED(LOG_IRQS, "Triggering VBL IRQ\n\n");
m_maincpu->set_input_line(7, HOLD_LINE); m_maincpu->set_input_line(7, HOLD_LINE);
// TODO: ack, from $412?
// staiwbbl requires this for inputs to work
m_soundcpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
} }
break; break;
} }