mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
scn2674: Fix premature address rollover with 16-bit extended addresses (nw)
This commit is contained in:
parent
9f93c1d348
commit
ab893535b7
@ -1112,6 +1112,7 @@ TIMER_CALLBACK_MEMBER(scn2674_device::scanline_timer)
|
|||||||
|
|
||||||
const bool mbc = (charrow == 0) && (m_buffer_mode_select == 3);
|
const bool mbc = (charrow == 0) && (m_buffer_mode_select == 3);
|
||||||
const bool blink_on = (screen().frame_number() & (m_character_blink_rate_divisor >> 1)) != 0;
|
const bool blink_on = (screen().frame_number() & (m_character_blink_rate_divisor >> 1)) != 0;
|
||||||
|
const uint16_t last_address = (m_display_buffer_last_address << 10) | 0x3ff;
|
||||||
for (int i = 0; i < m_character_per_row; i++)
|
for (int i = 0; i < m_character_per_row; i++)
|
||||||
{
|
{
|
||||||
u8 charcode, attrcode = 0;
|
u8 charcode, attrcode = 0;
|
||||||
@ -1154,10 +1155,11 @@ TIMER_CALLBACK_MEMBER(scn2674_device::scanline_timer)
|
|||||||
blink_on);
|
blink_on);
|
||||||
|
|
||||||
}
|
}
|
||||||
address = (address + 1) & 0xffff;
|
|
||||||
|
|
||||||
if (address > ((m_display_buffer_last_address << 10) | 0x3ff))
|
if ((address & 0x3fff) == last_address)
|
||||||
address = m_display_buffer_first_address;
|
address = (address & 0xc000) | m_display_buffer_first_address;
|
||||||
|
else
|
||||||
|
address = (address + 1) & 0xffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_display_enabled)
|
if (!m_display_enabled)
|
||||||
|
Loading…
Reference in New Issue
Block a user