고치는 것
- 실행하면 "[색상표]를 256색으로…" 메시지가 나오거나, 아무 메시지 없이 바로 꺼진다.
- "CD-ROM 드라이브가 없는 곳에서는…" 또는 "CD-ROM을 넣어 주십시오"가 반복된다.
- 창이 뜨지 않거나, 화면이 아래로 밀려 잘리고 마우스 클릭 위치가 어긋난다.
- 오프닝 뒤 640×480 / 800×600 화면 크기 선택이 나오지 않는다.
- 동영상이 작게 나오거나 색이 깨진다.
- 640×480 창이 지금 모니터에서는 너무 작다.
준비물
- 게임 파일: 삼국지 4 파워업키트 for Windows 95 (K) 글의
Sam4PKK_Win95_220129.7z.001~.026. 이 패치는 그 압축을 푼 게임 폴더(SAN4W95.EXE가 있는 폴더)와 CD 이미지(Audio.cue,Audio.bin)를 사용합니다. - 이 패치: Releases의
rotk4-patch.zip— 패치ddraw.dll, cnc-ddraw v7.1.0.0, 설정ddraw.ini, 안내서읽어보기.txt.
설치와 실행
Windows 10/11
- 받은
.7z.001을 7-Zip으로 풉니다. - 게임 폴더를 쓰기 가능한 곳에 둡니다 (예:
C:\Games아래).C:\Program Files아래에서는 저장이 안 됩니다. rotk4-patch.zip의 파일을 모두 게임 폴더에 풉니다.- 게임 폴더 안에
CD폴더를 만들고Audio.cue와Audio.bin을 넣습니다. 게임이 시작할 때 CD를 검사하므로 꼭 필요합니다. SAN4W95.EXE를 실행합니다.
메뉴의 화면 → x1 / x2 / x3으로 창을 정수배로 키웁니다. Alt+Enter는 전체 화면 전환입니다. 그 밖의 사용법과 문제 해결은 읽어보기.txt에 있습니다.
Linux (Wine)
위 1~4와 같이 준비한 뒤, Wine prefix에 다음을 해 둡니다.
- 한글 로캘과 코드페이지:
HKCU\Control Panel\International에Locale=00000412,LocaleName=ko-KR;HKCU\Software\Wine\Fonts에Codepages=949,949. - 한글 글꼴을
drive_c/windows/Fonts에 넣습니다 (확인은 굴림gulim.ttc로 했습니다). - CD-ROM 종류의 드라이브 하나:
HKLM\Software\Wine\Drives에"e:"="cdrom"(빈 디렉터리를 연결해도 됩니다).
cd /path/to/game # 게임 폴더에서 실행해야 합니다
WINEDLLOVERRIDES=ddraw=n,b LANG=ko_KR.UTF-8 wine SAN4W95.EXE
화면 필터 바꾸기 (선택)
기본 설정은 픽셀이 또렷한 nearest neighbor입니다. 창이 게임 화면의 정수배라서 픽셀이 고르게 보입니다. 부드러운 화면이나 CRT·스캔라인 효과를 원하면 게임 폴더의 cnc-ddraw config.exe나 ddraw.ini의 [ddraw] 부분에서 바꿉니다.
- Windows는 보통 Direct3D 9로 그리고, 필터는
d3d9_filter입니다:0nearest neighbor(기본),1bilinear. 이 게임은 256색이라2bicubic과3lanczos는 bilinear처럼 보입니다. - Wine은 보통 OpenGL로 그리고, 필터는
shader입니다:Nearest neighbor(기본),Bilinear,Bicubic,Lanczos,xBR-lv2중 하나, 또는.glsl셰이더 파일의 경로. - CRT, 스캔라인, xBR 같은 셰이더 파일은 cnc-ddraw 릴리스의
cnc-ddraw.zip에 든Shaders폴더에 있습니다. 그 폴더를 게임 폴더에 복사하고shader=Shaders\crt\crt-lottes-fast-no-warp-bilinear.glsl처럼 지정합니다. Windows에서 셰이더 파일을 쓰려면renderer=opengl도 함께 바꿉니다.
CD 음악을 MP3로 줄이기 (선택)
Audio.bin은 약 480 MB입니다. 저장소의 tools/cd2mp3.sh(Linux, lame 필요)로 음악 트랙을 MP3로 바꾸면 약 63 MB가 되고 Audio.bin은 지워도 됩니다.
동작 원리
게임 폴더의 ddraw.dll(이 패치)이 먼저 불리고, 실제 화면 처리는 cnc-ddraw.dll이 맡습니다. 이 패치는 그 사이에서 다음을 처리합니다.
- 256색 검사와 화면 모드: cnc-ddraw가 게임보다 먼저 올라오게 해서 256색 화면으로 보이게 하고, 게임이 하지 않는 8비트 모드 설정을 대신 합니다.
- 창 활성화: Win95 DirectDraw가 해 주던 창 표시·활성화를 대신 합니다.
- CD: CD 이미지(BIN/CUE, 또는 MP3)로 MCI CD 오디오를 흉내 내어 CD 검사와 배경 음악을 처리합니다.
- 화면 크기: 640×480 / 800×600 선택이 나오게 하고, 창을 게임 화면의 정수배로 맞춥니다.
- 동영상: 게임 화면 크기로 맞추고, 동영상마다 만든 팔레트로 색을 맞춥니다.
역공학으로 찾은 주소와 자세한 내용은 docs/san4w95-internals.md에 있습니다.
시험한 환경
- Windows 11 (1920×1200, 배율 125%)
- Ubuntu 26.04 LTS, Wine 10.0
두 환경에서 게임 진행, 음악, 동영상, 640×480 / 800×600 선택, 창 정수배 확대와 마우스 가두기 메뉴를 확인했습니다. 윈도우에서는 MP3 음악을 넣은 배포본으로 시험했습니다. CD 이미지(BIN)를 그대로 넣는 방식은 Wine에서만 시험했습니다. Windows 10에서는 시험하지 않았습니다.
라이선스
이 패치는 MIT, 함께 넣은 cnc-ddraw는 MIT, MP3 재생에 쓴 minimp3는 CC0입니다.