728x90

2022/02/16 3

삼국지5PK 일판에 한글을 출력시키고 말겠다. (4부)

(3부에 이어서 계속) 13. 덜어내기 작업 완료 마침내 덜어내기 작업까지 완료되었다. 덜어낸 문장은 약 1600개 정도다. 이제 메시지 쪽은 잘못 옮겨 적거나 제어코드를 빼먹은 게 아닌 이상 건드릴 것이 없다. 14. 메시지 파일에서 %s로 들어오는 문장의 조사 처리 지원 한글판 문장 이식이 끝나고, 계속 이런 곳 저런 곳 돌아다니면서 제대로 출력되고 있는지 확인하고 있었다. 그런데... 이런 문장이 떴다. "재야 장수의 병사은 변경할 수 없습니다." 아니... 분명히 앞의 '사' 자 때문에 '는' 으로 바뀌어야 하는데, 왜 '은'으로 출력되는거지? 도스창을 보니까... 아하... '병사' 로 문장이 안 들어오고 '%s' 로 들어와서 그런 거였다. %s는 C언어에서 문자열을 취급하는 애인데... 그러면..

삼국지5PK 일판에 한글을 출력시키고 말겠다. (3부)

(2부에 이어서 계속...) * 안내 본문에서 말하는 '메시지 파일' 은 MESSAGE.s5를 말하는 것이 아닌, MESSAGE.s5를 LS11 압축해제하고 나온 56개의 메시지 파일을 의미하는 것입니다. 11. 외부 메시지를 읽어들이는 런처 제작 지난번의 '메시지 파일 용량 제한 문제' 를 돌파하기 위해 나는 예전에 보았던 '런처 한글화' 방식을 떠올렸다. 런처 한글화 방식을 이용해서 메시지 파일에는 m00000 이런 식으로 치환 번호를 쓰고, 외부 메시지 파일(.txt)에는... m00000>=테스트입니다. 이런 식으로 치환할 메시지를 입력하는 것이다. 다행히도 런처의 기본 소스는 '코에이 게임 연구소' 카페에서 얻을 수 있었다. (링크) 이 분에게는 대항해시대2 윈도우95판 한글화 때 엔딩 메시지 ..

삼국지5PK 일판에 한글을 출력시키고 말겠다. (2부)

(1부에 이어서 계속...) 6. 뒷 바이트가 0xFE인 문자들이 ?로 뜨는 문제 지난 1부에서, 뒷 바이트가 0xFD, 0xFE로 끝나는 글자들이 게임 내에서 ?로 출력되는 문제가 있다고 말한 적이 있었다. 어셈블리 수정을 통해 0xFD 글자들은 출력시키는 데 성공했으나 0xFE 글자들은 여전히 출력이 ?로 뜨는 상태다. ?로 뜨는 이유는, 뒷 바이트가 0xFE에서 0x7E로 바뀌었기 때문이다. 여기서 나는 또 다른 꼼수가 생각났다. 뒷 바이트가 0x7E면 +0x80해서 무조건 0xFE로 만들면 어떨까? 왜냐하면 한국어 인코딩(CP949)은 애당초 뒷 바이트에 0x7E를 사용하지 않기 때문에, 0xB07E... 0xB17E... 이런 문자 코드 자체가 존재하지 않는다. 따라서 무조건 0xFE로 바꿔도 ..