본문으로 건너뛰기
셀리카 공방SELICA WORKSHOP 검색

홈 / MSX 한글화 / RPG

● 배포중v1.5MSX2RPG디스크 1

파이널 판타지

FINAL FANTASY

Micro Cabin/SQUARE1989최종 갱신 2026-08-23누적 다운로드 632

스크린샷

1 / 4한글판 실제 화면
파이날 판타지 스크린샷01
플레이

← → 이동F 전체화면Esc 닫기썸네일 클릭 · 모바일 스와이프

파이날 판타지 스크린샷

소개

실기에서 플래시 카트리지로 만들어 세이브까지 플래시에 할 수 있는
MSX2판 파이날판타지 한글 버전을 배포합니다.

올 상반기에 한글화를 조금씩 진행하다가 방대한 맵과 어마어마한 대사, 아이템, 마법명, 적 등....
너무 어렵고 도저히 대사를 쓸 공간이 없어서 마지막으로 디스크에 대사들을 저장했습니다만,

매번 대사가 나올 때마다 디스크 로딩... 매 대사에 효과음이 존재하는 게임이라
효과음 늘어짐 깨짐에... 아 이건 도저히 쾌적한 게임이 안 되겠다.... 해서 ROM 버전으로 전환한 후
조금씩 진척을 이루기 시작했습니다. 이후 원판을 아예 새로 뜯고 다시 만드는 수준으로 작업한 것 같습니다.

실기에서 테스트는 yamanooto 8mb 버전으로 카트리지 제작하여 테스트 완료했고, 게임 시작부터 엔딩까지
모두 수행했습니다. (혹시 버그를 발견하면 알려주세요)

※ v1.5 부터 PAC / FM-PAC 세이브를 지원합니다.
플래시 카트리지가 아니어서 저장이 안 되던 환경(MMC/SD 등)과 에뮬레이터에서도
이제 인게임 저장이 됩니다. 자세한 내용은 아래 「세이브·로드에 대하여」를 봐 주세요.

■ 게임 외적으로 큰 변화

  1. 디스크 세이브-로드를 없애고, 플래시 롬 카트리지 제작을 상정하여
    플래시 세이브-로드를 구현했습니다.

    여관에서 자거나 필드에서 세이브 아이템을 써도 모두 카트리지 플래시에 직접 기록됩니다.
    섹터를 지우고 다시 쓰는 방식이라 저장 횟수 제한이 없습니다.

    v1.5 부터는 플래시에 쓸 수 없는 환경이면 PAC / FM-PAC 의 SRAM 에 저장합니다.
    따로 설정할 것은 없고, 롬이 알아서 판단합니다.

  2. 퍼포먼스 패치 적용으로 빠르고 쾌적한 플레이

MSX2판 파이날 판타지는 이동과 전투가 원래 느려서 플레이하기가 고통스러운 게임이었습니다만,
퍼포먼스 패치를 제작하신 분의 패치를 도입하여 어마어마하게 빠른 게임이 되었습니다.
최초 오리지날 기종인 패미컴 뿐만 아니라, 어떤 기종으로 나온 FF1이라도
MSX버전보다 빠르지 못할거라고 자신합니다.

  1. 캐릭터 생성 단계에서 이름 입력을 영문 대문자로만 받도록 간소화했습니다.
    (한글 이름까지 넣으면 문자표가 화면을 넘어가고, 이름이 나오는 자리마다 폭이 부족합니다)

  2. 세이브가 없는 상태에서는 타이틀 메뉴에 「이어하기」가 아예 나오지 않게 했습니다.
    원본에는 이 방어가 없어서, 세이브 없이 이어하기를 고르면 초기화되지 않은 상태로
    필드에 들어가 화면이 깨집니다.

  3. 유저 디스크(Disk 2)가 필요 없어졌습니다.
    원본은 저장할 때 유저 디스크를 반드시 넣어야 했고, 안 넣으면 그 자리에서 멈췄습니다.

  4. 상점·상태창·전투 화면의 표시를 한글 폭에 맞게 손봤습니다.
    (마법 가격 옆에 붙어 있던 레벨 표기 분리, 상태 이상 표시가 HP 를 덮어쓰던 문제,
    장비 교환 시 이름 잔상이 남던 문제 등)

■ 디스크를 ROM 으로 바꿔서 얻은 이점

  1. 대사를 읽는 디스크 로딩이 사라졌습니다.
    대사마다 나던 효과음 늘어짐·깨짐이 그대로 없어졌습니다.

  2. 한글을 넣을 공간이 생겼습니다.
    디스크에 남아 있던 빈 섹터는 15개(7.5KB)뿐이었고 그나마 흩어져 있어서,
    글리프를 담은 대사 레코드가 한 섹터 차이로 들어가지 않았습니다.
    ROM 뒤에 데이터 뱅크를 덧붙이니 64KB 를 쓸 수 있게 됐습니다.

  3. 텍스트를 그릴 때 섹터 읽기가 0회가 됐습니다.
    디스크 방식에서는 색인 → 레코드 → 폰트를 세 번 읽어야 했는데
    버퍼가 하나뿐이라 세 번째 읽기가 본문을 덮어쓰는 문제가 있었습니다.
    ROM 뱅크는 창만 바꾸면 되므로 그 문제 자체가 사라졌습니다.

  4. 메모리 매퍼가 필요 없어졌습니다.
    초기에는 폰트를 매퍼 RAM 뱅크에 올려서 128KB 이상 기기가 필요했지만,
    지금은 ROM 뱅크에서 읽으므로 RAM 64KB MSX2 에서도 동작합니다.

  5. 실기에서 디스켓 없이 카트리지만 꽂으면 됩니다. 로딩도 전반적으로 빨라졌습니다.

■ 세이브·로드에 대하여

저장할 곳을 롬이 스스로 고릅니다. 이용자가 설정할 것은 없습니다.

· 저장할 때 — 카트리지 플래시에 먼저 써 보고, 실패하면 PAC / FM-PAC 으로 넘어갑니다.
· 불러올 때 — 플래시를 먼저 보고, 거기에 없으면 PAC 을 봅니다.
· 어느 쪽이든 저장 횟수 제한은 없습니다.
(플래시는 섹터를 지우고 다시 쓰고, SRAM 은 애초에 소거가 필요 없습니다)

어디서 읽어왔는지는 타이틀 메뉴 문구로 구분됩니다.

· 플래시에서 읽었으면 「이어하기」
· PAC 에서 읽었으면 「PAC이어하기」

[에뮬레이터]

실행 예: openmsx -carta FFKRFLSH.ROM -romtype Yamanooto -extb pac

뒤에 붙은 -extb pac 이 저장을 살리는 부분입니다.
openMSX 는 플래시의 '섹터 소거' 를 흉내내지 않아 플래시 저장이 실패하는데,
그때 PAC 의 SRAM 으로 넘어가도록 되어 있어서 PAC 을 하나 꽂아 주면
여관에서 잔 기록이 그대로 남고 껐다 켜도 이어할 수 있습니다.
(-extb pac 없이 띄우면 게임은 잘 되지만 저장만 안 됩니다. v1.4 까지는 이 상태였습니다)

openMSX 에서 autodetect 로 매퍼를 선택하게 하면 KONAMI SCC 매퍼로 자동 지정됩니다만
해당 매퍼의 용량 제한(512KB)때문에 매 실행시 경고 메시지가 뜨게 됩니다.
실행에 문제는 없지만, 안정적인 진행을 위해 yamanooto 매퍼로 선택해주세요.

[실기 — 플래시 카트리지]

AMD 계열 칩을 쓴 플래시 카트리지에서 저장이 됩니다.
롬이 저장하는 순간 칩에 직접 물어봐서(autoselect) 언락 주소를 스스로 고르므로,
카트리지 세대를 신경 쓰지 않아도 됩니다.

· x8·x16 겸용 (바이트 모드) — 언락 0xAAA / 0x555
S29GL064N (8MB) ← 현행 Yamanooto
AM29LV160, M29W640 등

· x8 전용 — 언락 0x555 / 0x2AA
AM29F016 (2MB) ← 구형 Yamanooto
AM29F040B (512KB), AM29F002 등

※ 용량이 아니라 그 칩이 16비트도 지원하는지가 기준입니다.
겸용 칩은 바이트 모드에서 주소선이 한 칸 밀려 0x555 가 0xAAA 가 됩니다.
작은 칩이 대체로 x8 전용이라 결과적으로 용량과 상관있어 보일 뿐입니다.

※ SST 39SF / 39VF 계열은 지원하지 않습니다.
이 계열은 언락 주소가 0x5555 / 0x2AAA 인데, 그 주소를 만들려면 A13·A14 가 필요합니다.
그런데 이 게임의 매퍼는 8KB 단위로 창을 잡고, 플래시 쓰기 게이트를 여는 순간
뱅크 전환이 막히기 때문에 시퀀스 도중에 창을 옮길 수도 없습니다.
즉 8KB 창 하나로는 그 주소를 만들 방법이 없습니다.
다만 이런 카트리지라도 PAC 을 함께 꽂으면 PAC 쪽에 저장됩니다.

※ MegaFlashROM SCC+ SD, Carnivore2 등은 확인하지 못했습니다.
쓰기 허용 레지스터가 카트리지마다 달라서, 언락 주소가 맞아도 저장이 안 될 수 있습니다.

※ ROM 크기는 896KB 이고, 세이브 영역이 칩 0xD0000 부근에 있어
최소 1MB 이상 플래시가 필요합니다.

[실기 — PAC / FM-PAC (v1.5 부터)]

MMC/SD 같은 롬 실행기로 돌리시면 카트리지에 쓸 수가 없습니다.
그럴 때 PAC 이나 FM-PAC 을 같이 꽂아 두면 그 SRAM 에 저장합니다.

※ PAC 은 확장 슬롯 말고 카트리지 슬롯에 직접 꽂아 주세요.
본체 내장 MSX-MUSIC 은 SRAM 이 없어 대상이 아닙니다.

※ PAC 의 8KB 는 여러 게임이 나눠 씁니다.
이 롬은 정해진 자리(SRAM 0x10F8~0x14FF)만 쓰고 서명을 확인하므로,
다른 게임의 세이브를 덮어쓰지 않습니다. 남의 자리에 쓰지도 않습니다.

※ 플래시와 PAC 에 둘 다 세이브가 있으면 플래시가 우선입니다.
PAC 쪽 세이브는 지워지지 않고 가려질 뿐이라, 나중에 롬을 다시 구워
플래시가 비면 다시 나타납니다. 고장이 아닙니다.

처음 롬을 플래시에 굽고 시작하면 세이브가 없는 상태이기 때문에
시작 메뉴에 「새로시작」만 나옵니다.

게임 중에 여관이나 세이브 아이템으로 저장하여 기록이 생기면,
그 다음부터는 카트리지를 꽂고 전원을 켰을 때 「이어하기」가 나타납니다.

■ 당부의 말씀

이 패치는 세이브 문제까지 해결해 두었기 때문에,
플래시 카트리지로 손쉽게 그대로 완성된 상품이 됩니다.
그래서 걱정이 앞섭니다.

★이 한글 패치를 적용한 롬을 담은 카트리지를 판매하지 말아 주세요.

원작의 권리는 지금도 활발히 활동하는 글로벌 기업에 있습니다.
그 회사의 작품으로 만들어진 결과물을, 정작 그 회사는 지나친 채
이익으로 바꾸는 일은 하지 말아 주셨으면 합니다.

치트

숨겨진 토글 키를 만들어두었으나 게임 난이도 하락의 이유로 공개하지 않습니다.

업데이트 이력

2개 버전
  1. v1.5PAC / FM-PAC 세이브 지원중요↓ 305

    ■ 새로 생긴 것
    · PAC / FM-PAC 에도 저장됩니다.
    플래시 카트리지가 아니어서 저장이 안 되던 환경(MMC/SD 등)과
    에뮬레이터에서도 이제 인게임 저장이 됩니다.
    · 저장한 곳이 타이틀 문구로 보입니다 — 플래시면 「이어하기」, PAC 이면 「PAC이어하기」.
    · 세이브가 없으면 「이어하기」 항목이 아예 뜨지 않습니다.
    ■ 저장 규칙
    · 저장할 때는 플래시에 먼저 쓰고, 실패하면 PAC 으로 넘어갑니다.
    · 불러올 때는 플래시를 먼저 보고, 없으면 PAC 을 봅니다.
    · 둘 다 횟수 제한이 없습니다.
    · PAC 은 정해진 자리(SRAM 0x10F8~0x14FF)만 쓰므로 다른 게임 세이브를 덮지 않습니다.

  2. v1.0↓ 327

이 작업의 개발기록

1편

댓글

6
가입 없이 작성할 수 있습니다. 비밀번호로 본인 글을 수정·삭제할 수 있어요.
ㅇㅇ125.242.*.*(수정됨)
openMSX에서 ERROR: CALLED NON EXISTING BASIC 라고 뜨면서 실행이 안되네요. 21.0윈도우x64 버전으로 실행했고요. 다른 옵션은 건들지 않은 상태로 실행했습니다
selicaADMIN
바이오스를 뭘로 하셨는지 정보를 주시겠어요? 기본적인 openmsx 내장 바이오스로는 실행이 어렵습니다.
selicaADMIN(수정됨)
ERROR: CALLED NON EXISTING BASIC. 은 C-BIOS 의 메시지입니다.
openMSX 설치 폴더의 share/machines/cbios_main_*.rom 안에 그대로 들어 있는 문자열이고, 게임이 내놓는 에러가 아닙니다.

C-BIOS 는 실기 BIOS 를 못 넣는 대신 openMSX 가 기본으로 딸려 보내는 오픈소스 BIOS인데, MSX-BASIC 이 아예 없습니다.
이 게임 롬은 부팅 과정에서 BASIC 진입점을 거치므로 그 자리에서 이 메시지가 뜨고 멈춥니다.

그리고 openMSX 매뉴얼(doc/manual/setup.html:212)에 명시돼 있듯, 설치 후 아무것도 안 건드리면 기본 머신이 C-BIOS_MSX2+ 입니다.
"다른 옵션은 건들지 않았다"고 한 게 바로 이 상태 — 시스템 ROM(실기 BIOS)을 안 넣은 새 설치입니다.
21.0 이라서 생긴 문제도 아니고, 롬타입 자동인식 문제도 아닙니다.
ㅇㅇ125.242.*.*
기본 바이오스로는 실행이 안되는거였군요. 다른 바이오스 파일을 받아서 실행하니 잘 나오네요. 답변 감사합니다
ㅇㅇ125.242.*.*(수정됨)
아 그리고 버그제보 하나 드립니다. 상태화면에서 각 스탯 수치가 한사람것을 복사한것같이 네명이 전부 같은 수치로 나오는 현상이 있네요.
로로니니58.122.*.*
감사합니다~ MSX의 파판1은 뭔가 소리가 매력적이더라구요^^