KOEI/삼국지 시리즈

삼국지4PK 윈도우95판 노시디 패치를 만든다.

K66Google 2019. 11. 6. 17:41



 * 알림

윈도우10 64bit에서 삼국지4 윈95판을 실행하려면 다른 프로그램이 필요합니다. 관련 내용은 링크를 참조하세요.



지난번에 나는 삼국지4PK 윈도우95판의 멀티태스킹 패치를 만든 적이 있었다.

이번에는...

바로 CD-ROM 넣어달라는 메시지 창을 우회해보고자 한다. 일명 노시디 패치를 만들어보는 것이다.

보아하니... 비베의 Messagebox와 흡사해보이는데... JMP로 잘 넘기면 될 지도 모르겠다.



일단 노시디 패치를 만들어본 적 없기 때문에 참고 게시물을 보면서 진행을 해보았다. (링크)

실행파일을 불러오고 계속 F8만 눌렀더니 00465616 지점에서 CD를 넣어달라는 메시지가 출력되었다.

그리고 00465616에서는 0040109F를 CALL하고 있다.



일단 위쪽의 0046560D는 JNZ에서 JMP로 무조건 점프하게 만들었다.



그리고 0040109F로 들어왔다. MessageBoxA라는 함수가 있는 지점으로 이동된다. 004010CE에서 Text라는 문자열에 CD-ROM을 넣어달라는 말이 들어가 있다. Text에 F2로 브레이크 포인트를 걸고 Ctrl+F2 (재시작) 를 하고 F9 (실행) 했더니 저 Text 자리에서 멈추는 걸 보면, 이 부분이 노시디 패치의 중요한 지점이라는 걸 알 수가 있다.



그래서 CALL 명령어 위의 JNZ를 JMP로 바꾸고 저장해서 실행해봤는데... 그래도 여전히 CD-ROM 요구 메시지가 뜬다.

아무래도 0040109F로 연결되는 모든 CALL 명령어들을 JMP로 다 뛰어넘게 만들어야 할 것 같다.

0040109F 선택 - 마우스 오른쪽 클릭 - Find references to - Selected command 하니까 어디서 0040109F를 호출하고 있는지 목록이 뜬다. 총 4군데 지점이 있어서 3군데는 CALL 명령어 위의 JNZ들을 JMP로 바꿨다.

그런데 0048E12B는 JNZ가 없어서 그냥 CALL 명령어를 NOP 처리했다.



이러한 작업 도중 알게 된 사실이 있다.

삼국지4PK 윈도우95판은 CD-ROM에서 MMAP, FLAG, TOSHI, HEXMP256이라는 파일을 읽어들인다.

FLAG는 기본적으로 게임 폴더에 있지만 나머지 3파일은 그렇지 않기 때문에, 노시디 패치와 동봉할 필요가 있어보인다.

그렇지 않으면 '지금 데이터를 읽는 중...' 이란 문구에서 넘어가지 않는다.


아무튼, 이렇게 해서 삼국지4PK 노시디 패치가 완성되었다. 실행파일은 SAM4W95 폴더에 붙여넣고 사용하거나, 원본 실행파일 백업 후 덮어쓰기한 뒤에 사용해도 된다.


 SAN4W95_nocd3.zip

SAN4W95_노시디 필수파일.7z


* 본 패치는 멀티태스킹 패치도 포함하고 있습니다. (관련 문서)

* 게임CD를 D드라이브에 삽입해야 음악 · 동영상이 재생됩니다. 게임CD를 삽입하지 않거나 다른 드라이브에 삽입하면 재생되지 않습니다.

* 노시디 필수파일도 같이 다운로드받아서 SAM4W95 폴더에 붙여넣어야 합니다. 그렇지 않고 노시디 exe 파일을 실행하면 무한로딩에 빠집니다.


그럼 이만...