From 5f591fb5f87d2e5f18c261d27d9cbaea70c3493b Mon Sep 17 00:00:00 2001 From: angelosa Date: Fri, 23 May 2025 19:06:35 +0200 Subject: [PATCH] sega/model3.cpp: system port 8 is just an irq check strobe * fix spikeout/spikeofe bootup --- src/mame/sega/model3.cpp | 37 +++++++++---------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/src/mame/sega/model3.cpp b/src/mame/sega/model3.cpp index 173e445d722..8cac4cb1a9b 100644 --- a/src/mame/sega/model3.cpp +++ b/src/mame/sega/model3.cpp @@ -30,7 +30,7 @@ vs2 - works harley - works skichamp - boots after skipping the drive board errors, massive slowdowns - srally2 - works + srally2 - works, uses JTAG patch, draws no polygon if coin is inserted at Sega logo srally2p/srally2pa/sraly2dx - needs specific JTAG patch / bypass von2/von2a/von2o/von254g - works fvipers2 - crashes after player selection @@ -1520,33 +1520,13 @@ void model3_state::model3_sys_w(offs_t offset, uint64_t data, uint64_t mem_mask) else logerror("m3_sys: unknown mask on IRQen write\n"); break; case 0x18/8: - if ((mem_mask & 0xff000000) == 0xff000000) // int ACK with bits in REVERSE ORDER from the other registers (Seeeee-gaaaa!) - { // may also be a secondary enable based on behavior of e.g. magtruck VBL handler -// uint32_t old_irq = m_irq_state; - uint8_t ack = (data>>24)&0xff, realack; - int i; - - switch (ack) - { - case 0xff: // no ack, do nothing - return; - - default: - realack = 0xff; // default to all bits set, no clearing - for (i = 7; i >= 0; i--) - { - // if bit is clear, clear the bit on the opposite end - if (!(ack & (1<base();