nec/pc9801_v.cpp: more aggressive PCG LR checks, fix mightyhd and volley2a

This commit is contained in:
angelosa 2024-10-22 23:44:10 +02:00
parent 522948ccbb
commit 6ae14ec244
2 changed files with 16 additions and 6 deletions

View File

@ -31285,7 +31285,6 @@ Optional [AMD-98] support, needs PIT for BGM
<year>1986</year>
<publisher>アポロテクニカ (Apollo Technica)</publisher>
<notes><![CDATA[
Has [kanji] PCG LR issues during gameplay (score digits)
Should screen mask bottom edge of screen
]]></notes>
<info name="alt_title" value="マイティーヘッド" />
@ -66539,13 +66538,10 @@ Crashes with a BASIC error when accessing house near starting point, incomplete
</part>
</software>
<software name="volley2a" cloneof="volley2" supported="partial">
<software name="volley2a" cloneof="volley2" supported="yes">
<description>Volleyball 2 on 2 (5.25&quot; Disk)</description>
<year>19??</year>
<publisher>&lt;unofficial&gt;</publisher>
<notes><![CDATA[
Has [kanji] PCG LR issues during gameplay and options (score digits)
]]></notes>
<part name="flop1" interface="floppy_5_25">
<dataarea name="flop" size="1265664">
<rom name="volleyball_2_on_2.fdi" size="1265664" crc="7331d549" sha1="835b02a5f411db1a3ef00ef6355cf40326e98588" offset="0" />

View File

@ -125,24 +125,38 @@ void pc9801_state::draw_text(bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd,
kanji_sel = 1;
if((tile & 0x7e00) == 0x5600)
{
// ikochan (karaoke intro) and mightyhd (game start and gameplay)
// draws these PCG strips where first tile is identical to second, with LR disabled.
// TODO: what happens with LR enabled?
if(lasttile == (tile | knj_tile))
{
tile_lr = 1;
lasttile = -1;
}
else
{
tile_lr = pcg_lr;
lasttile = (tile | knj_tile);
}
x_step = 1;
}
else if((tile & 0x7c00) == 0x0800) // 8x16 charset selector
{
x_step = 1;
lasttile = -1;
}
else
{
x_step = 2;
lasttile = -1;
}
// kanji_lr = 0;
}
else
{
x_step = 1;
lasttile = (tile | knj_tile);
lasttile = -1;
}
for(kanji_lr=0;kanji_lr<x_step;kanji_lr++)
{