Re: NES 캡틴 츠바사 2 가 왜 한글화가 안되는지 알겠네요..
그 중문판, 에뮬 개조 필요 없습니다. 원인 찾았어요.
문제는 롬 파일의 iNES 헤더에 매퍼 번호가 74로 잘못 적혀 있는 겁니다.
실제 기판은 매퍼 195 (Waixing 外星電腦 보드 — 부팅 로고에 회사명 2006년까지 뜸).
중국 해적 MMC3 클론들(74/191/192/194/195)은 "CHR 어느 뱅크가 RAM이냐"만 다른
형제들이라, 번호가 틀리면 한자 글리프를 CHR-RAM에 올리는 게 허공에 쓰여서
그 자리에 원본 가나 타일이 깨져 보이는 겁니다. 말씀하신 증상 그대로요.
수정법: 헥스에디터로 파일 오프셋 0x06을 32로, 0x07을 C0으로 바꾸면 끝.
(= 매퍼 195 지정. 두 바이트 수정이 전부입니다)
이러면 순정 최신 Mesen에서 타이틀부터 인게임까지 전부 정상으로 돕니다.
동봉 에뮬만 되던 건 걔가 이 보드를 하드코딩 지원해서였고요.
폰트 분석하신 것도 맞습니다 — 한자를 16×16으로 8×8 타일 4장 합성해서
호출부에 조립하는 방식이고, 글리프 원본은 확장 PRG 뱅크(파일 0x6E010부터
글자당 32바이트, 1140자)에 비트맵으로 들어있습니다. 텍스트는 2바이트
빅엔디언 글리프 번호 배열이라, 이 자리에 한글 폰트+한글 번호를 넣으면
그대로 한글이 나옵니다. 실제로 오프닝 첫 대사를 한글로 바꿔서 순정 Mesen에
띄우는 것까지 확인했습니다. 한글화, 됩니다.
자 여기까지 제 똘마니의 정리였습니다 꾸벅
smash99

tgfwehe
하리하리
Seankim
다만이공
울트라후니
길냥이고고
바하레퀴엠
zmfkd1
이마자토


추측으로 덮어쓰지 말고 이 위에서 시작해라.
[베이스 롬]
- 원본(일본판)이 아니라 "중문판(外星/Waixing 2006 한화)"을 베이스로 쓴다.
뱅크 확장·한자 렌더러가 이미 완성돼 있어서 원본 개조보다 훨씬 싸다.
- 중문판 롬 헤더의 매퍼 번호 74는 오기다. 실제 기판 = 매퍼 195.
파일 오프셋 0x06=0x32, 0x07=0xC0으로 고치면 순정 최신 Mesen에서 완전 정상 구동.
(이거 안 고치면 글리프가 CHR-RAM에 안 올라가 깨진 가나가 뜬다 — 에뮬 개조 불필요)
[구조 3층 — 전부 실측 확정]
1. 스크립트 층: 원본 스크립트 스트림은 보존, 인라인 일본어만 "2바이트 빅엔디언
메시지 ID"로 치환된 구조. 0xFC = 메시지 목록 종료.
2. 문자열 층: 2바이트 빅엔디언 "글리프 번호" 배열 + 0xFF 종료.
개행 코드는 쓰지 않는다(있긴 한데 죽은 기능). 대사창은 자동 줄바꿈이고
실표시 폭 = 완성형 8자/줄. 줄 정렬은 공백 글리프로 채워서 맞춘다.
3. 글리프 층: 글리프 번호 = 창고 인덱스 직결. 창고 = 파일 0x6E010 + N×32,
글자당 32바이트(16×16, 8×8 타일 4장: 좌상→우상→좌하→우하, 행당 8바이트 MSB=왼쪽).
한자 1140자(0~1139) 사용 중, 1140번부터 빈 슬롯 — 한글은 여기에 추가하면
한자 안 건드리고 공존 가능. 렌더러는 뱅크 = 55+(N>>8), 주소 = (N&0xFF)×32로 계산.
[포인터]
- 스토리 3그룹 포인터 테이블: 파일 0x3D067 / 0x3D1C3 / 0x3D331 (LE16, base $A000 뱅크상대).
- 선수명 0x3D487, 실황 0x3D727, 메뉴 0x3DB21 등 총 9그룹.
- 문자열이 원래 슬롯보다 길어지면 같은 뱅크의 빈 공간에 새로 쓰고 포인터만 옮기면 된다.
[공정 순서]
1. 헤더 매퍼 195 교정 → 무개조 상태로 Mesen 정상 구동 확인 (기준선)
2. 한글 폰트(8×16 또는 12×12 비트맵 폰트를 16×16 셀에 재패킹) 준비
3. 파일럿: 오프닝 첫 대사(그룹0 ID0, 포인터 0x3D067 첫 엔트리) 하나만 한글로
바꿔서 에뮬 확인 — 이게 뜨면 전 층 검증 끝
4. 그 다음에 전체 번역 물량전 (일본어 원본 롬에서 원문 추출해 번역, 중국어 중역 금지)
[작업 규율 — 이거 안 지키면 전에 실패한 길 그대로 간다]
- 한 번에 하나만 바꾸고, 바꿀 때마다 에뮬 스크린샷으로 확인해라.
- 화면이 깨지면 "패치 전 상태(기준선)가 어떻게 보였는지"부터 확인해라.
기준선 없이 디버깅하면 엉뚱한 데를 판다.
- AI가 "확인해달라"는 건 정상이다. 대신 확인 항목을 스크린샷 한 장으로
판정 가능하게 좁혀서 요구하게 해라 ("이 장면에서 이 글자가 보이는가" 수준).
- 수정 전 원본 백업, 수정한 오프셋 목록을 매번 기록하게 해라.
이 롬도 분석 제대로 해볼걸 그랫네요. 진짜라니... 8폰트를 16폰트 호출하게 하는 아이디어도 신기...
이 정도면 누가 파고들어도 한글화 되겠네요.
암튼 이런 정보 너무 고맙습니다.
중국애들이 롬핵을 한게 결정적 아이디어예요
중국판응ㄴ 실제 원판 용량 두배임 ㄷㄷ