nec/pc9801_v.cpp: kanji attribute doesn't want tile_lr

This commit is contained in:
angelosa 2024-10-05 19:43:06 +02:00
parent cb1045148e
commit 3cb694eda3

View File

@ -107,15 +107,16 @@ void pc9801_state::draw_text(bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd,
uint8_t knj_tile = m_video_ram[0][tile_addr & 0xfff] >> 8;
if(knj_tile)
{
/* Note: bit 7 doesn't really count, if a kanji is enabled then the successive tile is always the second part of it.
Trusted with Alice no Yakata, Animahjong V3, Aki no Tsukasa no Fushigi no Kabe, Apros ...
*/
// Note: bit 7 doesn't really count for normal kanjis,
// if a kanji is enabled then the successive tile is always the second part of it.
// Trusted with alice, animjv3, akitsuka, apros ...
//kanji_lr = (knj_tile & 0x80) >> 7;
//kanji_lr |= (tile & 0x80) >> 7; // Tokimeki Sports Gal 3
//kanji_lr |= (tile & 0x80) >> 7; // tokisg3
tile &= 0x7f;
tile <<= 8;
tile |= (knj_tile & 0x7f);
kanji_sel = 1;
// ginga and gage wants to dispatch PCG depending on the attribute
if((tile & 0xfe00) == 0x5600)
{
tile_lr = knj_tile & 0x80 ? 1 : 0;
@ -132,9 +133,9 @@ void pc9801_state::draw_text(bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd,
for(kanji_lr=0;kanji_lr<x_step;kanji_lr++)
{
/* Rori Rori Rolling definitely uses different colors for brake stop PCG elements,
assume that all attributes are recalculated on different strips */
uint8_t attr = (m_video_ram[0][((tile_addr+kanji_lr+tile_lr) & 0xfff) | 0x1000] & 0xff);
// - roliroli wants to read the current strip for brake stop PCG elements
// - flixx selects attribute by the linear X in ranking (i.e. no tile_lr)
uint8_t attr = (m_video_ram[0][((tile_addr + kanji_lr) & 0xfff) | 0x1000] & 0xff);
uint8_t secret = (attr & 1) ^ 1;
uint8_t blink = attr & 2;