diff --git a/src/mame/cinematronics/leland.cpp b/src/mame/cinematronics/leland.cpp index f0cacf93840..9dcc1b8e6e0 100644 --- a/src/mame/cinematronics/leland.cpp +++ b/src/mame/cinematronics/leland.cpp @@ -2,7 +2,7 @@ // copyright-holders:Aaron Giles,Paul Leaman /*************************************************************************** - Cinematronics/Leland driver + Cinematronics / Leland Cinemat System driver driver by Aaron Giles and Paul Leaman Games supported: diff --git a/src/mame/cinematronics/leland.h b/src/mame/cinematronics/leland.h index 7ac22c79d1c..5a65a19f453 100644 --- a/src/mame/cinematronics/leland.h +++ b/src/mame/cinematronics/leland.h @@ -2,7 +2,7 @@ // copyright-holders:Aaron Giles /************************************************************************* - Cinemat/Leland driver + Cinematronics / Leland Cinemat System driver *************************************************************************/ #ifndef MAME_CINEMATRONICS_LELAND_H @@ -164,7 +164,6 @@ private: u8 m_sound_port_bank = 0U; u8 m_alternate_bank = 0U; u8 m_gfxbank = 0U; - u16 m_last_scanline = 0U; emu_timer *m_scanline_timer = nullptr; u8 cerberus_dial_1_r(); diff --git a/src/mame/cinematronics/leland_a.cpp b/src/mame/cinematronics/leland_a.cpp index 3fcbfab7302..e574747934e 100644 --- a/src/mame/cinematronics/leland_a.cpp +++ b/src/mame/cinematronics/leland_a.cpp @@ -2,7 +2,7 @@ // copyright-holders:Aaron Giles,Paul Leaman /*************************************************************************** - Cinemat/Leland driver + Cinematronics / Leland Cinemat System driver Leland sound hardware driver by Aaron Giles and Paul Leaman diff --git a/src/mame/cinematronics/leland_a.h b/src/mame/cinematronics/leland_a.h index a1653536b0f..86387886a72 100644 --- a/src/mame/cinematronics/leland_a.h +++ b/src/mame/cinematronics/leland_a.h @@ -2,7 +2,9 @@ // copyright-holders:Aaron Giles /************************************************************************* - Cinemat/Leland driver + Cinematronics / Leland Cinemat System driver + + Leland sound hardware *************************************************************************/ #ifndef MAME_CINEMATRONICS_LELAND_A_H diff --git a/src/mame/cinematronics/leland_m.cpp b/src/mame/cinematronics/leland_m.cpp index 89a13031290..bd64cd6814f 100644 --- a/src/mame/cinematronics/leland_m.cpp +++ b/src/mame/cinematronics/leland_m.cpp @@ -2,9 +2,9 @@ // copyright-holders:Aaron Giles, Paul Leaman /*************************************************************************** - Cinemat/Leland driver + Cinematronics / Leland Cinemat System driver - driver by Aaron Giles and Paul Leaman + Leland machine hardware ***************************************************************************/ @@ -413,7 +413,7 @@ void ataxx_state::machine_reset() TIMER_CALLBACK_MEMBER(leland_state::leland_interrupt_callback) { - int scanline = param; + u8 scanline = param; /* interrupts generated on the VA10 line, which is every */ /* 16 scanlines starting with scanline #8 */ @@ -421,15 +421,13 @@ TIMER_CALLBACK_MEMBER(leland_state::leland_interrupt_callback) /* set a timer for the next one */ scanline += 16; - if (scanline > 248) - scanline = 8; m_master_int_timer->adjust(m_screen->time_until_pos(scanline), scanline); } TIMER_CALLBACK_MEMBER(leland_state::ataxx_interrupt_callback) { - int scanline = param; + u8 scanline = param; /* interrupts generated according to the interrupt control register */ m_master->set_input_line(0, HOLD_LINE); @@ -1206,8 +1204,11 @@ void ataxx_state::ataxx_master_output_w(offs_t offset, u8 data) break; case 0x08: /* */ - m_master_int_timer->adjust(m_screen->time_until_pos(data + 1), data + 1); + { + u8 scanline = data + 1; + m_master_int_timer->adjust(m_screen->time_until_pos(scanline), scanline); break; + } default: LOGMASKED(LOG_WARN, "Master I/O write offset %02X=%02X\n", offset, data); @@ -1408,9 +1409,8 @@ void leland_state::rotate_memory(const char *cpuname) int banks = (memregion(cpuname)->bytes() - startaddr) / 0x8000; u8 *ram = memregion(cpuname)->base(); u8 temp[0x2000]; - int i; - for (i = 0; i < banks; i++) + for (int i = 0; i < banks; i++) { memmove(temp, &ram[startaddr + 0x0000], 0x2000); memmove(&ram[startaddr + 0x0000], &ram[startaddr + 0x2000], 0x6000); diff --git a/src/mame/cinematronics/leland_v.cpp b/src/mame/cinematronics/leland_v.cpp index 13318af892d..f25870e864b 100644 --- a/src/mame/cinematronics/leland_v.cpp +++ b/src/mame/cinematronics/leland_v.cpp @@ -2,7 +2,7 @@ // copyright-holders:Aaron Giles /*************************************************************************** - Cinemat/Leland driver + Cinematronics / Leland Cinemat System driver Leland video hardware @@ -33,18 +33,17 @@ static constexpr int QRAM_SIZE = 0x10000; TIMER_CALLBACK_MEMBER(leland_state::scanline_callback) { - int scanline = param; + u8 scanline = param; + u8 last_scanline = scanline - 1; /* update the DACs */ if (!(m_dac_control & 0x01)) - m_dac[0]->write(m_video_ram[(m_last_scanline) * 256 + 160]); + m_dac[0]->write(m_video_ram[last_scanline << 8 | 0xa0]); if (!(m_dac_control & 0x02)) - m_dac[1]->write(m_video_ram[(m_last_scanline) * 256 + 161]); + m_dac[1]->write(m_video_ram[last_scanline << 8 | 0xa1]); - m_last_scanline = scanline; - - scanline = (scanline+1) % 256; + scanline++; /* come back at the next appropriate scanline */ m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); @@ -114,7 +113,6 @@ void leland_state::video_start() save_item(NAME(m_xscroll)); save_item(NAME(m_yscroll)); save_item(NAME(m_gfxbank)); - save_item(NAME(m_last_scanline)); for (u8 i = 0; i < 2; i++) { save_item(NAME(m_vram_state[i].m_addr), i); @@ -242,15 +240,20 @@ int leland_state::vram_port_r(offs_t offset, int num) break; default: - LOGMASKED(LOG_WARN, "%s: Warning: Unknown video port %02x read (address=%04x)\n", - machine().describe_context(), offset, addr); + if (!machine().side_effects_disabled()) + LOGMASKED(LOG_WARN, "%s: Warning: Unknown video port %02x read (address=%04x)\n", + machine().describe_context(), offset, addr); ret = 0; break; } - state->m_addr = addr; - if (addr >= 0xf000) - LOGMASKED(LOG_COMM, "%s:%s comm read %04X = %02X\n", machine().describe_context(), num ? "slave" : "master", addr, ret); + if (!machine().side_effects_disabled()) + { + state->m_addr = addr; + + if (addr >= 0xf000) + LOGMASKED(LOG_COMM, "%s:%s comm read %04X = %02X\n", machine().describe_context(), num ? "slave" : "master", addr, ret); + } return ret; }