From 0c4cb4b01fd0a13c3a0b8d77cf7f1783db831c87 Mon Sep 17 00:00:00 2001 From: smf- Date: Sun, 11 Dec 2016 18:06:29 +0000 Subject: [PATCH] Use correct Commodore LCD font [Mike Naberezny, smf] --- src/mame/drivers/clcd.cpp | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/mame/drivers/clcd.cpp b/src/mame/drivers/clcd.cpp index 391bb56dc8d..2454262d341 100644 --- a/src/mame/drivers/clcd.cpp +++ b/src/mame/drivers/clcd.cpp @@ -139,27 +139,20 @@ public: int chrw = (m_lcd_size & LCD_SIZE_CHRW) ? 8 : 6; - for (int y = 0; y < 16; y++) + for (int y = 0; y < 128; y++) { - int offset = (m_lcd_scrolly * 128) + (m_lcd_scrollx & 0x7f) + (y * 128); + int offset = (m_lcd_scrolly * 128) + (m_lcd_scrollx & 0x7f) + ((y / 8) * 128); for (int x = 0; x < 480; x++) { uint8_t ch = m_ram->pointer()[offset + (x / chrw)]; - uint8_t bit = font[((ch & 0x7f) * chrw) + (x % chrw)]; + uint8_t bit = font[((ch & 0x7f) * 8) + (y % 8)]; if (ch & 0x80) { bit = ~bit; } - bitmap.pix16((y * 8) + 0, x) = (bit >> 0) & 1; - bitmap.pix16((y * 8) + 1, x) = (bit >> 1) & 1; - bitmap.pix16((y * 8) + 2, x) = (bit >> 2) & 1; - bitmap.pix16((y * 8) + 3, x) = (bit >> 3) & 1; - bitmap.pix16((y * 8) + 4, x) = (bit >> 4) & 1; - bitmap.pix16((y * 8) + 5, x) = (bit >> 5) & 1; - bitmap.pix16((y * 8) + 6, x) = (bit >> 6) & 1; - bitmap.pix16((y * 8) + 7, x) = (bit >> 7) & 1; + bitmap.pix16(y, x) = (bit >> (7 - (x % chrw))) & 1; } } } @@ -838,8 +831,8 @@ ROM_START( clcd ) ROM_LOAD( "sizapr.u103", 0x10000, 0x8000, CRC(0aa91d9f) SHA1(f0842f370607f95d0a0ec6afafb81bc063c32745)) ROM_LOAD( "kizapr.u102", 0x18000, 0x8000, CRC(59103d52) SHA1(e49c20b237a78b54c2cb26b133d5903bb60bd8ef)) - ROM_REGION( 0x20000, "lcd_char_rom", 0 ) - ROM_LOAD( "lcd_char_rom", 0x000000, 0x000800, BAD_DUMP CRC(7db9d225) SHA1(0a8835fa182efa55d027828b42aa554608795274) ) + ROM_REGION( 0x1000, "lcd_char_rom", 0 ) + ROM_LOAD( "lcd-char-rom.u16", 0x00000, 0x1000, CRC(7b6d3867) SHA1(cb594801438849f933ddc3e64b03b56f42f59f09)) ROM_END