From 269b62055efdcc4ceb2ceff100ee6387c8151cc2 Mon Sep 17 00:00:00 2001 From: hap Date: Thu, 20 May 2021 17:10:19 +0200 Subject: namcos2_sprite: update note --- src/devices/bus/saitek_osa/sparc.cpp | 5 ++++- src/mame/drivers/namcos2.cpp | 3 --- src/mame/video/namcos2_sprite.cpp | 16 +++++++--------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/devices/bus/saitek_osa/sparc.cpp b/src/devices/bus/saitek_osa/sparc.cpp index 7620197dffa..b04ab070bce 100644 --- a/src/devices/bus/saitek_osa/sparc.cpp +++ b/src/devices/bus/saitek_osa/sparc.cpp @@ -8,10 +8,13 @@ Saitek OSA Module: Kasparov Sparc (1993) The chess engine is by the Spracklen's. Their last, and also their strongest. Hardware notes: -- Fujitsu MB86930 SPARClite @ 20MHz (fan cooled) +- Fujitsu MB86930 SPARClite @ 20MHz - 256KB ROM (4*AMD AM27C512) - 1MB DRAM (8*NEC 424256-60), expandable to 4MB +The module doesn't have its own LCD screen. It has a grill+fan underneath +at the front part, and a heatsink on the CPU. + TODO: - skeleton device, missing SPARClite emulation, maybe only needs the MMU? diff --git a/src/mame/drivers/namcos2.cpp b/src/mame/drivers/namcos2.cpp index 3b7b1eb93cd..357a9fbbeb6 100644 --- a/src/mame/drivers/namcos2.cpp +++ b/src/mame/drivers/namcos2.cpp @@ -27,9 +27,6 @@ known issues: Finest Hour: - roz plane colors are bad in-game - Final Lap: - - sprite size bit is bogus during splash screen - Final Lap 3: - uses unaligned 32x32 sprites, which aren't handled correctly in video/namcos2.cpp yet diff --git a/src/mame/video/namcos2_sprite.cpp b/src/mame/video/namcos2_sprite.cpp index 5467195af3c..8ef0f328d0d 100644 --- a/src/mame/video/namcos2_sprite.cpp +++ b/src/mame/video/namcos2_sprite.cpp @@ -227,18 +227,16 @@ void namcos2_sprite_device::draw_sprites(screen_device &screen, bitmap_ind16 &bi const u16 word0 = m_spriteram[offset + (loop * 4) + 0]; const u16 word1 = m_spriteram[offset + (loop * 4) + 1]; const u16 offset4 = m_spriteram[offset + (loop * 4) + 2]; + const int sizey = ((word0 >> 10) & 0x003f) + 1; - const int sizey = ((word0 >> 10) & 0x003f) + 1; - int sizex = (word3 >> 10) & 0x003f; - int is_32 = (word0 >> 9) & 0x0001; - - // The finallap title screen needs 32x32 sprites, but doesn't set the expected bit - // other games (eg. mirninja) do correctly set it. + // It appears that Final Lap does not support 16x16 sprites, otherwise the titlescreen and + // rear-view mirror have glitches. Other games (eg. mirninja) do correctly set it. // - // can the 16x16 support be disabled globally with a register, or via a pin on the chip? - if (m_force_32x32) - is_32 = 1; + // It's not expected that there's a missing emulation feature for disabling 16x16 sprite mode, + // but simply the early Namco System 2 hardware that Final Lap runs on does not support it. + bool is_32 = bool(word0 & 0x200) || m_force_32x32; + int sizex = (word3 >> 10) & 0x003f; if (!is_32) sizex >>= 1; if ((sizey - 1) && sizex) -- cgit v1.2.3