SRWK 한글 패치 v1.16 — 엔딩 크레딧 멈춤 수정 (필수)
⚠ 엔딩 크레딧 멈춤 치명적 버그 수정 — 필수 업데이트
1회차 클리어 후 엔딩 크레딧에서 글자가 깨지고 진행이 멈추던 문제를 수정했습니다. v1.0 ~ v1.15 모든 버전이 영향을 받습니다.
적용
xdelta3 -d -s "Super Robot Wars K (Japan).nds" SRWK-Korean-v1.16.xdelta "Super Robot Wars K (Korean).nds"
| 항목 | 값 |
|---|---|
| 기준 ROM (JP) | 67,108,864 B · CRC32 D16DB8AF |
| 결과 ROM (KR) | 63,693,664 B · CRC32 BD9725D3 |
| 패치 | SRWK-Korean-v1.16.xdelta (약 1.6 MB) |
원인
스태프 이름을 한글로 옮기면 일본어 원본(한자 3~4자)보다 길어져 63개가 원래 자리에 안 들어갔고, 이를 크레딧 오버레이 뒤에 덧붙여 크기를 10,240 → 11,292바이트로 확장했던 것이 문제였습니다.
이 오버레이는 RAM 영역을 다른 오버레이들과 공유하고, 게임은 오버레이의 원래 끝 이후 메모리를 다른 용도로 사용합니다. 그래서 덧붙인 부분이 덮여 쓰레기 값이 되고 → 그 63개가 깨진 글자로 나오며 → 인접 메모리 침범으로 멈췄습니다. (제자리에 들어간 79개는 정상이라, 화면에서 "성은 멀쩡한데 이름만 깨지는" 증상으로 나타났습니다.)
수정
오버레이를 전혀 확장하지 않고, 크레딧 문자열 공간(총 2,382B)에 한글 142개(2,258B)를 재배치해 원래 크기(10,240B) 안에 전부 수납했습니다(여유 124B). 앞으로 확장이 재발하지 않도록 빌드에 크기 불변 검사를 넣었습니다.
검증: 문자열 142개 라운드트립 무결성, 문자열 풀·포인터 외 바이트 변경 0, ramSize 원복 확인.
기반: YameSoft 한글 패치. xdelta는 차분(diff)이며 게임 데이터를 포함하지 않습니다.