게임 한글화 작업은 복잡한 과정으로, 다양한 문제를 해결해야 합니다. 본 글에서는 게임 내 문자 출력 문제와 영상 한글화, 메시지 파일 이식 과정 등을 다루며, 성공적인 한글화를 이루기 위한 방법을 공유합니다.
문제 해결 과정
뒷 바이트가 0xFE인 문자 처리
게임에서 뒷 바이트가 0xFE인 문자가 ?로 출력되는 문제를 해결하기 위해 어셈블리 수정을 시도했습니다. 0xFD는 성공적으로 출력되었으나 0xFE는 여전히 문제였습니다. 이때, 뒷 바이트가 0x7E인 경우 +0x80을 더해 0xFE로 변환하는 방법을 생각했습니다.
- 수정 과정:
- TextOutA 함수 호출 전, 특정 위치에서 뒷 바이트를 변환하는 루틴 추가
- 기존 코드에서 변환 함수로 변경하여 0x7E를 0xFE로 복구
이렇게 수정한 결과, 게임 내 신무장 이름 입력창에서 정상적으로 출력되는 모습을 확인할 수 있었습니다.
반각 가타카나의 전각 히라가나 강제 변환
한국어 출력이 ‘쪽쭈혻쯤’으로 오류가 발생하는 문제를 해결하기 위해 Ollydbg를 사용하여 분석을 시작했습니다. 일본어 반각 가타카나가 전각 히라가나로 강제 변환되는 원인을 파악하고, 해당 변환 함수를 우회하는 방법을 모색했습니다.
- 해결 방법:
- 강제 변환 호출을 우회하기 위해 JMP 구문을 수정
- 최종적으로 ‘한글’이 정상적으로 출력되는 결과를 얻었습니다.
영상 한글화
동영상 편집 및 코덱 선택
게임의 오프닝 영상이 변경되면서, 새로운 영상 편집이 필요했습니다. 프리미어 프로를 사용하여 기존 영상을 수정하고, 적절한 코덱을 선택하여 인코딩하는 과정이 포함되었습니다.
- 코덱 설정:
- WMV3 코덱으로 인코딩하여 문제 해결
- 비트레이트 조정으로 화질 저하 방지
이 과정을 통해 원본 영상에 비해 용량이 증가했지만, 화질을 유지할 수 있었습니다.
메시지 이식 및 한글화
메시지 파일 변환
삼국지5PK의 메시지 파일을 한글로 변환하기 위해, VB.Net으로 메시지 에디터를 제작하여 제어코드를 유지하면서 대사를 복사했습니다. 그러나 메시지 파일의 용량 제한 문제가 발생하였습니다.
- 문제 해결:
- 런처 한글화 방법을 사용하여 메모리에서 대사를 가로채고 수정
- Ollydbg로 메모리 주소를 확인하고, 출력 문장을 조정하는 방법을 구현
이러한 과정을 통해 대사 출력 용량 제한 문제를 극복하고, 한글화를 성공적으로 마무리할 수 있었습니다.
결론
게임 한글화 과정은 다양한 문제를 해결하는 도전이었습니다. 뒷 바이트 처리, 영상 편집, 메시지 이식 등 각 단계에서의 문제 해결이 중요했습니다. 이러한 경험을 바탕으로 앞으로의 한글화 작업에도 도움이 될 것으로 기대합니다.
자주 묻는 질문
한글화 작업에서 가장 어려운 점은 무엇인가요?
한글화 과정에서의 가장 큰 어려움은 문자 출력과 변환 문제입니다. 이를 해결하기 위해 많은 시간과 노력이 필요했습니다.
어떤 도구를 사용하여 한글화 작업을 진행했나요?
Ollydbg, Crystaltile2, VB.Net, 프리미어 프로 등의 도구를 사용하여 한글화 작업을 진행했습니다.
한글화 완료 후 테스트는 어떻게 진행했나요?
한글화가 완료된 후, 게임을 실행하여 출력되는 대사와 영상을 확인하며 테스트를 진행했습니다.

