From 150bcf445e2bc41d69ff6db9ce556c01aa5f18d4 Mon Sep 17 00:00:00 2001 From: cracyc Date: Sun, 26 Oct 2014 11:15:14 -0500 Subject: [PATCH] (mess) pc9801: ascii font reading (nw) upd7220: attempt to resolve apparent contradiction in window behavior (nw) --- src/emu/video/upd7220.c | 2 +- src/mess/drivers/pc9801.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/emu/video/upd7220.c b/src/emu/video/upd7220.c index e31f14f8ce8..d869b16f052 100644 --- a/src/emu/video/upd7220.c +++ b/src/emu/video/upd7220.c @@ -1592,7 +1592,7 @@ void upd7220_device::update_graphics(bitmap_rgb32 &bitmap, const rectangle &clip addr = ((sad << 1) & 0x3ffff) + (y * (m_pitch << (im ? 0 : 1))); if (!m_display_cb.isnull()) - draw_graphics_line(bitmap, addr, y + (im ? bsy : (bsy >> 1)), wd); + draw_graphics_line(bitmap, addr, y + (bsy / m_lr), wd); } } else diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c index 1b4e31003c0..3576ce68bd0 100644 --- a/src/mess/drivers/pc9801.c +++ b/src/mess/drivers/pc9801.c @@ -1908,6 +1908,12 @@ READ8_MEMBER(pc9801_state::pc9801rs_knjram_r) pcg_offset|= offset & 0x1e; pcg_offset|= m_font_lr; + if(!(m_font_addr & 0xff)) + { + int char_size = m_video_ff[FONTSEL_REG]; + return m_char_rom[(m_font_addr >> 8) * (8 << char_size) + (char_size * 0x800) + ((offset >> 1) & 0xf)]; + } + /* TODO: investigate on this difference */ if((m_font_addr & 0xff00) == 0x5600 || (m_font_addr & 0xff00) == 0x5700) return m_kanji_rom[pcg_offset];