안 되냐? 니넨 축구 얘기 하잖아. 난 대신 게임 얘기 한다니까? 알겠냐? 아무튼, 전에 쓴 글에 이어서… 자 그렇다면 이러한 꿈의 에뮬머신은 어떻게 완성되는가! 일단 개념 정리 전에, 나는 닌텐도 스위치 온라인 서비스 가입자이다. 내돈내산 스위치와 내부 프로그램을 변조하는 것은 닌텐도와의 규약 위반은 될지 모르나 남에게 피해를 안 준다면 큰 문제 없다고 알고 있다. 이 점을 분명히 하면서…
개념을 정리해보자. 닌텐도가 제공하는 에뮬레이터도 결국은 어떤 프로그램이다. 그리고 스위치의 커스텀펌인 atmosphere는 layeredFS 기능을 제공한다. 가령 설치된 프로그램이 A, B, C, D라는 파일로 구성돼있다고 할 때 프로그램을 직접 변조하지 않더라도 D를 변조한 D’에 해당하는 파일을 atmosphere의 contents/타이틀id 폴더에 넣어두기만 하면 프로그램이 A, B, C, D’를 읽어오도록 할 수 있다는 거다. 이 D’에다가 한글패치된 파일을 집어 넣는 게 그동안 스위치 비공식 한글패치의 적용 방식이었다.
그렇다면, 닌텐도가 제공하는 에뮬레이터에 대해서도 롬파일 등의 정보를 담고 있는 부분을 마치 한글패치를 적용하는 것처럼 다른 롬파일 등으로 대체할 수 있다면, 임의로 별개의 게임롬을 구동하는 것이 가능할 것이다! 바로 이 점을 활용하는 것이다. 핵심은 롬파일, 타이틀 목록과 실제 롬 파일의 매칭 정보가 들어있는 파일, 각 타이틀의 구체적 메타 정보를 담고 있는 파일을 내가 커스터마이징한 파일로 대체하는 것이다. 에뮬레이터를 뜯어보면 수정이 매우 용이하게 작성돼있다. 그냥 줄줄이 쓰면 되게 돼있어. 눈이 좀 아프지만… 다만 커버이미지 등은 XTX.Z 확장자를 달고 있는데 Z확장자는 Zip 에서 사용하는 zlib을 적용했다는 거고 XTX는 얘들이 쓰는 그래픽 포맷이다. 추출 프로그램 등으로 불러올 수 있다. 이걸 바꾸면 나만의 커버 아트를 넣을 수 있는 거지. 완벽해.
근데 이 모든 과정이 귀찮잖아… 게임 하나 넣자고 이 삽질을 다 해야? 덕중덕은 양덕이다 라는 말이 있지. 이걸 대충 알아서 해주는 프로그램을 어떤 양덕이 개발하였다 이것이다. DarkAkuma라는, 이름만 딱 봐도… 아무튼 이 양반이 CaVE Database Manager라는 프로그램을 자기 블로그에 공개해놨다. 이걸 이용하면 앞서의 복잡한 과정을 좀 부실하긴 하지만 GUI를 활용해 좀 더 편하게 할 수 있다.
이 프로그램에 대해서 좀 더 설명을 하자면… 닌텐도가 자체 개발한 에뮬레이터에는 그들다운 코드네임이 붙어 있다. SFC에뮬레이터는 Canoe, FC는 KachiKachi이다. 아마 들어본 분도 있을텐데, 슈퍼패미컴 미니, 패미컴 미니에 들어가있는 에뮬레이터를 좀 고친 거다. 여튼. CaVE Database Manager는 여기에 닌텐도64 에뮬레이터인 hovercraft, MD/제네시스 에뮬레이터에 더해 공개되지 않은 게임보이 에뮬레이터인 hiyoko, GBA 에뮬레이터인 sloop의 관리/적용을 할 수 있도록 한다. 그래서 이 프로그램을 활용해 각 에뮬레이터의 대체파일들을 만들고, 앞서 atmosphere의 기능을 이용해서 적용한다면 나만의 콜렉션을 만들 수 있게 되는 것이다!
다만 Canoe와 KachiKachi의 경우 자기들이 제공한 롬을 돌리는 것만이 목적이므로, 호환성의 폭은 상대적으로 좁다. 그 중에서도 Canoe가 좀 그런데, 롬을 그냥 넣으면 안되고 DarkAkuma가 제공하는 툴로 컨버팅을 한 후에 넣어야 한다. 심지어 슈패미니용과 스위치용을 구분돼있다. 그러나 이걸로도 안 돌아가는 게임이 있다. 가령 테일즈 오브 판타지아는 안 돌아간다. 원본 카트리지가 Canoe가 지원하지 않는 영역의 마스크롬-메모리맵을 사용하기 때문으로 추측. 근데 덕중덕은 뭐다? 양덕이다… 특정롬에 영문패치를 한 경우 양덕들이 만들어 놓은 패치를 추가 적용하면 테일즈 오브 판타지아도 스위치의 Canoe에서 돌릴 수 있다. 다만 한글패치롬으로는 안 된다. 특히 이 게임의 한글패치는 임의로 롬확장을 한 거여서 안 된다. 성검전설3의 경우는 원본롬은 돌아가지만 한글패치 적용 롬은 글자가 깨진다. 이런 게임들은 어쩔 수 없이 레트로아크에서 돌리는 걸로 만족해야 한다.
KachiKachi도 아쉬움이 있는데 가령 일본판 캐슬바니아3인 악마성전설이다. 악마성전설 카트리지에는 보다 화려한 음향효과를 제공하려는 목적으로 특수칩이 들어가있다. 근데 캐슬바니아3에는 이 특수칩이 없다. 그래서 음악 딱 들으면 차이가 느껴진다. 악마성전설은 채널이 8개고 캐슬바니아3는 원래 패미컴사양인 5개다. 관심있으면 함 들어봐라.
이게 악마성전설의 Beginning (36분55초)
https://youtu.be/KqyoTvZ5cOE?t=2215
이게 캐슬바니아3의 Beginning
https://youtu.be/78706bv98S8
그런데 KachiKachi는 이 특수칩을 에뮬레이션 할 마음은 없는지, 악마성전설을 돌리면 뻗어버린다. 캐슬바니아3는 돌아간다. 레트로아크로 돌리시고… 몇 가지 안 되는 경우를 써놨지만 대부분은 작동한다. 그리고 SFC복각 패드는 스위치용 KachiKachi에서도 Canoe와 동일하게 인식한다. 최고다!
그담에 나머지 떠들만한 게… sloop 포함 나머지 에뮬레이터와, 여기엔 해당 안 되지만 CaVE Database Manager가 제공하는 Zebra엔진을 적용한 새턴 게임 에뮬레이션인데… 이건 나중에 또 얘기해보자.