diff --git a/hash/x68k_flop.xml b/hash/x68k_flop.xml index 357220d9654..c8553c28222 100644 --- a/hash/x68k_flop.xml +++ b/hash/x68k_flop.xml @@ -1304,14 +1304,12 @@ Most info on release dates and Jpn titles come from the following (wonderful) re - + Aquales 1991 エグザクト (Exact) diff --git a/src/mame/sharp/x68k_crtc.cpp b/src/mame/sharp/x68k_crtc.cpp index f86dfc13d40..60d9b645ffd 100644 --- a/src/mame/sharp/x68k_crtc.cpp +++ b/src/mame/sharp/x68k_crtc.cpp @@ -186,7 +186,6 @@ void x68k_crtc_device::refresh_mode() logerror("Invalid mode %d", m_reg[20] & 0x1f); [[fallthrough]]; case 1: case 5: - case 0x11: div = 4; break; case 0x16: @@ -195,6 +194,7 @@ void x68k_crtc_device::refresh_mode() case 0x10: div = 6; break; + case 0x11: // aquales intro requires /3 for 0x11, TODO: figure out what wanted /4 case 0x15: div = 3; break; diff --git a/src/mame/sharp/x68k_v.cpp b/src/mame/sharp/x68k_v.cpp index 7ba37589be3..aa1d52cdb5a 100644 --- a/src/mame/sharp/x68k_v.cpp +++ b/src/mame/sharp/x68k_v.cpp @@ -215,7 +215,7 @@ bool x68k_state::draw_gfx_scanline( bitmap_ind16 &bitmap, rectangle cliprect, ui uint16_t xscr,yscr; uint16_t colour = 0; int shift; - bool blend, ret = false; + bool blend, ret = (m_video.reg[2] & 0x1a00) == 0x1a00; uint16_t *pal = (uint16_t *)m_gfxpalette->basemem().base(); int divisor = 1; if(m_crtc->gfx_double_scan()) @@ -262,6 +262,7 @@ bool x68k_state::draw_gfx_scanline( bitmap_ind16 &bitmap, rectangle cliprect, ui loc++; loc &= 0x3ff; } + ret = false; } } else // else 512x512 "real" screen size @@ -278,8 +279,6 @@ bool x68k_state::draw_gfx_scanline( bitmap_ind16 &bitmap, rectangle cliprect, ui lineoffset = (((scanline - m_crtc->vbegin() / divisor) + yscr) & 0x1ff) * 512; loc = xscr & 0x1ff; shift = 4; - if((m_video.reg[2] & 0x1a00) == 0x1a00) - ret = true; for(pixel=m_crtc->hbegin();pixel<=m_crtc->hend();pixel++) { colour = ((m_gvram[lineoffset + loc] >> page*shift) & 0x000f); @@ -332,8 +331,6 @@ bool x68k_state::draw_gfx_scanline( bitmap_ind16 &bitmap, rectangle cliprect, ui lineoffset1 = (((scanline - m_crtc->vbegin() / divisor) + yscr1) & 0x1ff) * 512; loc1 = xscr1 & 0x1ff; shift = 4; - if((m_video.reg[2] & 0x1a00) == 0x1a00) - ret = true; for(pixel=m_crtc->hbegin();pixel<=m_crtc->hend();pixel++) { colour = ((m_gvram[lineoffset0 + loc0] >> page*shift) & 0x000f); @@ -387,6 +384,7 @@ bool x68k_state::draw_gfx_scanline( bitmap_ind16 &bitmap, rectangle cliprect, ui loc++; loc &= 0x1ff; } + ret = false; break; } } @@ -765,7 +763,7 @@ uint32_t x68k_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, pcgprio = currprio; currprio++; } - if((m_video.gfx_pri == priority) && !m_crtc->gfx_layer_buffer()) + if((m_video.gfx_pri == priority) && !m_crtc->gfx_layer_buffer() && (m_video.reg[2] & 0x1f)) { gfxprio = currprio; currprio++;