mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
Hopefully fixed for good the Kanji lr bugs
This commit is contained in:
parent
10aaeb5a6d
commit
fa501d96fa
@ -52,12 +52,11 @@
|
||||
- Agumix Selects!: needs GDC = 5 MHz, interlace doesn't work properly;
|
||||
- Aki no Tsukasa no Fushigi no Kabe: moans with a kanji error
|
||||
"can't use (this) on a vanilla PC-9801, a PC-9801E nor a PC-9801U. Please turn off the computer and turn it on again."
|
||||
display of this kanji error is wrong on PC-9801RS;
|
||||
- Alice no Yakata: wants a "DSW 1-8" on.
|
||||
- Animahjong V3: accesses port 0x88, tile selection pointer has a gfx clearance bug;
|
||||
- Animahjong V3: accesses port 0x88;
|
||||
- Anniversary - Memories of Summer: thinks that a button is pressed, has window masking bugs during intro;
|
||||
- Another Genesis: fails loading;
|
||||
- Apple Club 1: how to pass?
|
||||
- Apple Club 1: how to pass an hand?
|
||||
(Applesauce Pirates)
|
||||
|
||||
- Brandish 2: Intro needs some window masking effects;
|
||||
@ -694,6 +693,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
|
||||
UINT16 tile;
|
||||
UINT8 kanji_lr;
|
||||
UINT8 kanji_sel;
|
||||
UINT8 x_step;
|
||||
|
||||
if(state->m_video_ff[DISPLAY_REG] == 0) //screen is off
|
||||
return;
|
||||
@ -702,7 +702,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
|
||||
char_size = state->m_video_ff[FONTSEL_REG] ? 16 : 8;
|
||||
tile = 0;
|
||||
|
||||
for(x=0;x<pitch;x++)
|
||||
for(x=0;x<pitch;x+=x_step)
|
||||
{
|
||||
UINT8 tile_data,secret,reverse,u_line,v_line;
|
||||
UINT8 color;
|
||||
@ -721,13 +721,21 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
|
||||
knj_tile = state->m_video_ram_1[(tile_addr*2+1) & 0x1fff] & 0xff;
|
||||
if(knj_tile)
|
||||
{
|
||||
kanji_lr = (knj_tile & 0x80) >> 7;
|
||||
kanji_lr |= (tile & 0x80) >> 7; // Tokimeki Sports Gal 3
|
||||
/* Note: lr 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 ...
|
||||
*/
|
||||
//kanji_lr = (knj_tile & 0x80) >> 7;
|
||||
//kanji_lr |= (tile & 0x80) >> 7; // Tokimeki Sports Gal 3
|
||||
tile &= 0x7f;
|
||||
tile <<= 8;
|
||||
tile |= (knj_tile & 0x7f);
|
||||
kanji_sel = 1;
|
||||
x_step = 2;
|
||||
// kanji_lr = 0;
|
||||
}
|
||||
else
|
||||
x_step = 1;
|
||||
|
||||
attr = (state->m_video_ram_1[(tile_addr*2 & 0x1fff) | 0x2000] & 0xff);
|
||||
|
||||
secret = (attr & 1) ^ 1;
|
||||
@ -738,13 +746,15 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
|
||||
gfx_mode = (state->m_video_ff[ATTRSEL_REG]) ? attr & 0x10 : 0;
|
||||
color = (attr & 0xe0) >> 5;
|
||||
|
||||
for(kanji_lr=0;kanji_lr<x_step;kanji_lr++)
|
||||
{
|
||||
for(yi=0;yi<lr;yi++)
|
||||
{
|
||||
for(xi=0;xi<8;xi++)
|
||||
{
|
||||
int res_x,res_y;
|
||||
|
||||
res_x = (x*8+xi) * (state->m_video_ff[WIDTH40_REG]+1);
|
||||
res_x = ((x+kanji_lr)*8+xi) * (state->m_video_ff[WIDTH40_REG]+1);
|
||||
res_y = y*lr+yi - (state->m_txt_scroll_reg[3] & 0xf);
|
||||
|
||||
if(!device->machine().primary_screen->visible_area().contains(res_x, res_y))
|
||||
@ -810,6 +820,7 @@ static UPD7220_DRAW_TEXT_LINE( hgdc_draw_text )
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static UPD7220_INTERFACE( hgdc_1_intf )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user