Added Kasan Hangulmadang-16 emulation. Patch from Greatpsycho.
This commit is contained in:
parent
ed30e17128
commit
87941f2903
8 changed files with 290 additions and 8 deletions
|
|
@ -203,10 +203,17 @@ void svga_render_text_80_ksc5601(svga_t *svga)
|
|||
|
||||
if(x + xinc < svga->hdisp && (chr & (nextchr | svga->ksc5601_sbyte_mask) & 0x80))
|
||||
{
|
||||
if((chr == 0xc9 || chr == 0xfe) && (nextchr > 0xa0 && nextchr < 0xff))
|
||||
dat = fontdatksc5601_user[(chr == 0xfe ? 96 : 0) + (nextchr & 0x7F) - 0x20][svga->sc];
|
||||
if((chr == svga->ksc5601_udc_area_msb[0] || chr == svga->ksc5601_udc_area_msb[1]) && (nextchr > 0xa0 && nextchr < 0xff))
|
||||
dat = fontdatksc5601_user[(chr == svga->ksc5601_udc_area_msb[1] ? 96 : 0) + (nextchr & 0x7F) - 0x20][svga->sc];
|
||||
else if(nextchr & 0x80)
|
||||
{
|
||||
if(svga->ksc5601_swap_mode == 1 && (nextchr > 0xa0 && nextchr < 0xff))
|
||||
{
|
||||
if(chr >= 0x80 && chr < 0x99) chr += 0x30;
|
||||
else if(chr >= 0xB0 && chr < 0xC9) chr -= 0x30;
|
||||
}
|
||||
dat = fontdatksc5601[((chr & 0x7F) << 7) | (nextchr & 0x7F)][svga->sc];
|
||||
}
|
||||
else
|
||||
dat = 0xFF;
|
||||
}
|
||||
|
|
@ -215,7 +222,8 @@ void svga_render_text_80_ksc5601(svga_t *svga)
|
|||
if (attr & 8) charaddr = svga->charsetb + (chr * 128);
|
||||
else charaddr = svga->charseta + (chr * 128);
|
||||
|
||||
dat = svga->vram[charaddr + (svga->sc << 2)];
|
||||
if ((svga->ksc5601_english_font_type >> 8) == 1) dat = fontdatksc5601[((svga->ksc5601_english_font_type & 0x7F) << 7) | (chr >> 1)][((chr & 1) << 4) | svga->sc];
|
||||
else dat = svga->vram[charaddr + (svga->sc << 2)];
|
||||
}
|
||||
if (svga->seqregs[1] & 1)
|
||||
{
|
||||
|
|
@ -255,10 +263,12 @@ void svga_render_text_80_ksc5601(svga_t *svga)
|
|||
}
|
||||
}
|
||||
|
||||
if((chr == 0xc9 || chr == 0xfe) && (nextchr > 0xa0 && nextchr < 0xff))
|
||||
dat = fontdatksc5601_user[(chr == 0xfe ? 96 : 0) + (nextchr & 0x7F) - 0x20][svga->sc + 16];
|
||||
if((chr == svga->ksc5601_udc_area_msb[0] || chr == svga->ksc5601_udc_area_msb[1]) && (nextchr > 0xa0 && nextchr < 0xff))
|
||||
dat = fontdatksc5601_user[(chr == svga->ksc5601_udc_area_msb[1] ? 96 : 0) + (nextchr & 0x7F) - 0x20][svga->sc + 16];
|
||||
else if(nextchr & 0x80)
|
||||
{
|
||||
dat = fontdatksc5601[((chr & 0x7F) << 7) | (nextchr & 0x7F)][svga->sc + 16];
|
||||
}
|
||||
else
|
||||
dat = 0xFF;
|
||||
if (svga->seqregs[1] & 1)
|
||||
|
|
|
|||
Loading…
Reference in a new issue