From 0e2c9793d4b54fc40a3ba34b4afaecd2bc4a93d8 Mon Sep 17 00:00:00 2001 From: Wengier Date: Sat, 20 Nov 2021 01:03:44 -0500 Subject: [PATCH] more --- CHANGELOG | 2 ++ src/ints/int_dosv.cpp | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index afb7689ae..3455cd6f3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -113,6 +113,8 @@ working when using the 4DOS shell. (Wengier) - Fixed "DIR>NUL" freeze/crash when only disk or CD images are mounted. (nanshiki) + - Fixed display glitches in the game "Continuing + adventures of Cyberbox". (Wengier) - Make memory B0000-B7FFF unmapped for the CGA emulation. Fixes "Backgammon 5.0" detecting that an MDA is also present when using CGA. (Allofich) diff --git a/src/ints/int_dosv.cpp b/src/ints/int_dosv.cpp index dff059d6e..4ee614d2d 100644 --- a/src/ints/int_dosv.cpp +++ b/src/ints/int_dosv.cpp @@ -642,15 +642,19 @@ uint8_t *GetDbcsFont(Bitu code) jfont_cache_dbcs_16[code] = 1; return &jfont_dbcs_16[code * 32]; } - } else if (dos.loaded_codepage == 950 && !(fontsize16%15) && isKanji1(code/0x100)) { + } if (((dos.loaded_codepage == 936 && gbk) || dos.loaded_codepage == 950) && !(fontsize16%15) && isKanji1(code/0x100)) { + Bitu c = code; + if (dos.loaded_codepage == 936) code = GetConvertedCode(code, 950); int offset = -1, ser = (code/0x100 - 161) * 157 + ((code%0x100) - ((code%0x100)>160?161:64)) + ((code%0x100)>160?64:1); if (ser >= 472 && ser <= 5872) offset = (ser-472)*30; else if (ser >= 6281 && ser <= 13973) offset = (ser-6281)*30+162030; if (offset>-1) { + code = c; memcpy(&jfont_dbcs_16[code * 32], fontdata16+offset, 30); jfont_cache_dbcs_16[code] = 1; return &jfont_dbcs_16[code * 32]; } + code = c; } } if(code >= 0x849f && code <= 0x84be) {