먼저 잡설부터 하겠다.
윈도우10에서 정상적으로 실행할 수 없는 삼국지4PK (윈도우95판)과 삼국지5PK (마찬가지로 윈도우95판)의 일판 실행파일을 얻어서 한글 출력을 하고자 하였다. 인터넷에 돌고 있는 반각 필터링 부분까지 다 교체했다.
그런데 아무리 해도 메시지 부분이 한글화가 안 되고 저렇게 깨져서 나온다. (삼국영웅열전 항목을 볼 것.)
LS11 압축해제 프로그램으로 일판 메시지 파일과 한글판 메시지 파일을 각각 해제한 뒤, 크리스탈타일로 마지막 문장을 비교해가면서 맞는 파일같으면 그냥 교체하고 압축해서 집어넣었는데 저렇게 '갂갃갅갆' 이라고 입력한 부분이 '핤핦핧핪' 이라고 나오는 것이다.
아무래도, 메시지 파일(message.s4 혹은 message.s5)을 읽을때는 반각 필터링뿐 아니라 반각 가타카나-전각 히라가나 치환 코드까지 들어가 있는 걸로 판단이 된다.
돌아가는 변환꼴은 대충 이렇다. (반각 필터링까지 다 해놓은 상태 기준)
* 실행파일
입력시 강제변환
81xx ~ 9Fxx → +4000 → C1xx ~ DFxx
A0xx ~ DFxx → 0 → A0xx ~ DFxx
E0xx ~ FCxx → -4000 → A0xx ~ BCxx
FDxx → FD , xx
왜 4000 (10진수가 아니라 16진수다.) 을 더하고 빼는지 모르겠다. 아무튼 EUC-KR 대역(B0xx~C8xx)는 아무 변동이 없으므로 여기까지는 괜찮다. 그러나...
* 메시지파일
반각 가타카나 → 전각 히라가나 → +4000 (전각 히라가나가 82xx 대역에 있으니까) → 강제변환 순이다.
。 (A1) → ? (변환 안됨. 단독 사용 불가?)
「 (A2) → (변환 안됨. 단독 사용 불가?)
」 (A3) → (변환 안됨. 단독 사용 불가?)
、 (A4) → (변환 안됨. 단독 사용 불가?)
・ (A5) → (변환 안됨. 단독 사용 불가?)
ヲ (A6) → を (82 F0) → 찐 (C2 F0)
ァ (A7) → ぁ (82 9F) → 혺 (C2 9F)
(...중간 생략)
ン (DD) → ん (82 F1) → 찔 (C2 F1)
゙ (DE) → ? (단독 사용 불가?)
゚ (DF) → ? (단독 사용 불가?)
즉, 다시 정리하면
입력시 강제변환
81xx ~ 9Fxx → +4000 → C1xx ~ DFxx
A1xx ~ A5xx → ?
A6xx ~ DDxx → 82xx → +4000 → C2xx
DExx ~ DFxx → ?
E0xx ~ FCxx → -4000 → A0xx ~ BCxx
FDxx → FD , xx
인 것이다. 이걸 그래픽으로 보기 좋게 정리했다.
이른바, '쪽쭈혻쯤' 문제다.
아마 메시지 파일은 1바이트마다 비교해서 A6~DD 범위 내에 있으면 무조건 전각 히라가나로 변환을 시키는 모양이다.
문제는, 가(B0 A1) 부터 힝(C8 FE) 까지 모두 첫 바이트가(B0 ~ C8) 반각 가타카나가 사용하는 범위 내에 들어가있다는 것이다.
이러면 메시지 한글 출력은 불가능하다.
장수명과 도시명을 담당하는 sndata.s4 파일은 성공적으로 한글을 출력하는데 왜 message.s4 파일만 이러는 것일까?
올리디버거를 들여다봐도, 도무지 무슨 루틴인지 몰라서 그냥 때려쳤는데... 어느 카페의 게시물을 보고 드디어 메시지 파일도 한글 출력이 가능하게 되었다. 이에 대한 내용은 반각 가타카나를 전각 히라가나로 강제변환시키는 게임은 어떻게 한글 출력을 하는가. 게시물을 참조하기 바란다.
그러던 중, 삼국지4·삼국지5의 한글판과 일판의 대부분 파일이 호환이 되고 있다는 점을 파악하였다.
즉, 일판에다가 한글판 파일을 덮어써도 게임은 어느정도 돌아간다는 것이다.
대부분의 파일은 언어가 바뀌어도 호환이 되기 때문에, 여기서는 한글화 관련 파일과 호환이 안 되는 파일을 적도록 하겠다.
언급되지 않은 파일은 한글화나 호환 관련 사항에 영향을 주지 않는 파일이다.
* 삼국지4PK 한글화 관련 파일 / 호환이 안되는 파일
graph - 버튼 관련 한글화
hiback - 불가능 (일기토 모드 튕김)
message - 불가능 (시나리오 선택, 대화창 충돌)
mmap - 배경 지도 한글화
newgrp - 버튼 '환경' , '편집' 한글화
packgrp2 - 불가능 (시나리오 선택 시 화면 깨짐. 게임 진행 불가)
sndata - 장수명, 도시명 한글화
SMODE1 - 사운드 체크 모드 한글화
SMODE2 - 사운드 체크 모드 한글화
HEGRP - 공성전/반격전에서의 커맨드 버튼
HWGRP - 공성전/반격전에서의 계절 그림
logo, nbdata, savedat, userdat은 덮어쓸 필요 없음.
* 삼국지5PK 한글화 관련 파일 / 호환이 안되는 파일
btngrp - 버튼 (결정, 취소 등) 관련 한글화
calc - 버튼 (계산기 창) 한글화
graph - 평정 윈도우창 계절 표시, 턴 진행 시 년월 표시 한글화
henv - 전투 맵 위 정보 그래픽 한글화
mainwin - 평정 윈도우창 한글화
map256 - 배경 지도 한글화
mapanm - 진형 설정 한글화
message - 불가능 (시작 메뉴에서 충돌)
sndata - 장수명, 도시명 한글화
soundgrp - 사운드 모드 한글화
taiki - 장수명 한글화
logo, nbdata, nidata, savedata는 덮어쓸 필요 없음.
그럼 이만...
'KOEI > 삼국지 시리즈' 카테고리의 다른 글
삼국지4PK 윈도우95판 노시디 패치를 만든다. (4) | 2019.11.06 |
---|---|
삼국지4PK 윈도우95판 멀티태스킹 패치. (4) | 2019.08.01 |
삼국지13PK의 editdata_pk.s13 헥스 에딧 및 능력치 110 제한 뚫기 (3) | 2017.09.28 |
삼국지10PK 애니 캐릭터 패치 적용. (0) | 2016.11.12 |
삼국지6 PK(Sam6PK) BGM 패치 (0) | 2016.09.05 |