2022년 8월 10일 수요일

MMC/SD Drive V4 제작 #17 - 마이크로캐빈 디스크의 자동인식

[서론]


혹시 중/고딩 시절 디스크 게임을 실행할 때 부팅이 안되는 경우를 겪어보신 적이 있나요?


디스크 게임에서 발생하는 가장 큰 문제는 메모리 부족현상입니다.

사용환경에 따라 WORKAREA가 점유하는 용량이 다르게 되니, 결국 스택 부족으로 프로그램이 죽는거죠.

(사실 메모리매퍼를 활용하면 좋겠지만, MSX2 최소사양이 램 64KB라서 거기 딱 맞춘...ㅋ)


주변기기들은 각자 필요한 메모리(RAM) 공간을 WORKAREA를 통해 할당합니다.

FDD를 여러개를 장착하면 점유 메모리도 더 늘어나게됩니다.

근데 이게 80년대에는 별 문제가 없었어요.

보통은 본체내장 FDD 또는 외장 FDD 한대만 연결해서 쓰니까요.


암튼 당시 게임들이 FDD 한개의 환경에 딱 맞도록 구동하고 있는데요.

좀 특이한 경우가 두가지가 있습니다.


@ 코에이 게임

이 게임들은 드라이브 문자 1개(A:)만 할당했을 때의 여유메모리를 필요로 합니다.

부팅할 때 CTRL 키를 눌러서 FDD의 B: 드라이브 용 메모리를 해제해야합니다.

그냥 부팅하면 친절하게도 CTRL 키를 눌러서 다시 부팅하라고 알려줍니다요.

만약 디스크 기기가 두개 이상이라면, CTRL 키를 눌러도 드라이브 문자가 두개(A: B:)라서 실행안됩니다.

MMC/SD의 ONE-Drive 모드가 들어있는 이유가 이 때문입니다. 대부분 FDD 내장된 기종을 사용하시니까요.


조금 특이한 경우라면 대우의 듀얼FDD인 CPF-360C인데요.

이넘은 CTRL 키를 눌러도 메모리 해제가 안되는걸로 알려져있어요.

통상의 방법으로는 코에이 게임을 구동하는게 불가능합니다.

(물론 꼼수는 있어요. 궁금하시면 게시판 검색 ㄱㄱ)



@ 마이크로캐빈 게임

이쪽은 좀 많이 특이한 경우인데요ㅋ

드라이브 문자가 1개(A:)만 있어도 구동이 안되고, 3개(C: ~) 이상 있어도 안됩니다.

딱 두개(A: B:)만 있어야합니다. 그지 같다능...



[본론]


만약 본체에 디스크 기기가 두개가 존재한다면, 마이크로캐빈의 게임을 어떻게 구동해야할까요?

부팅할 때 CTRL 키를 눌러주면 됩니다. 쉽죠?


근데 MMC/SD V3,V4는 DSK 구동 시 ONE-Drive가 기본적으로 ON이 되어있습니다. (MMC/SD V1,V2는 OFF가 기본값)

부팅할 때 본체의 FDD를 초기화하지 않습니다. 그러니까 디스크기기는 1개, 드라이브 문자도 1개(A:)가 되는 셈이죠.

결국 ONE-Drive를 켜면 프레이 같은 게임들이 실행이 안됩니다.

이 문제로 게시판에 가끔 질문이 올라오곤 하더라구요. ㅎ.ㅎ


정상적으로 실행하려면, /DO 옵션으로 ONE-Drive를 꺼야합니다.

물론 부팅할 때 CTRL 키를 눌러서 드라이브 문자를 두개로 맞춰야하겠구요.


"나는 /DO 쓰고 CTRL 키 눌러도 안되던데???"라고 하실 분 있을거에요.

아이큐2000, FS-A1처럼 본체에 FDD가 없는 경우인데요. 이때는 CTRL 키를 누르면 안됩니다.

드라이브 문자가 하나만 남으니까요. 그냥 부팅해서 문자 2개(A: B:)를 유지해줘야합니다.


MMC/SD 한개로 여러 종류의 환경에서 쓸 때 귀찮은 문제가 이 '마이크로캐빈'의 게임입니다요.

한참 V2를 쓰던 시절에도 그랬고, 지금의 V4도 마찬가지구요.

V1/V2 시절에는 DSK 구동옵션이 저장되는 방식이라 SD카드를 따로쓰면 쉽게 해결됩니다만...

지금의 V3/V4에서는 실행할 때 옵션 선택을 해야되니, 이게 무슨 상황인지 이해를 해야합니다.


저는 이십여년 이 짓(?)을 했으니 별로 어렵지 않은데, 아마 위에 쓴 내용도 이해가 안가시는 분들도 계실거에요.

뭐 예전에 이런 말 하는 분도 봤는데, "MSX쪽 개발하는 사람들은 죄다 ㅂㅅ인지, 그냥 한방에 실행되게 못 만드냐?"

MSX를 수퍼패미콤 같은 단일기종의 콘솔 겜기 정도로 생각하는 사람이 꽤 많거든요.

그 놈의 재믹스 때문에...-_-

진짜 대X전자 담당자를 한대 때려주고 싶습니다요. (멍청한 유저는 죄가 없...ㅋ)

.

.

.


하지만, 결국 제가 백기를 들었습니다ㅋㅋ

어차피 현재 문제되는 경우가 마이크로캐빈 게임들 뿐이니까 이넘들만 자동으로 처리해주는 걸로 정리했어요.

프레이, XAK, 공주만들기, 환영도시 등 게임 갯수가 몇개 안되니까...

MMCSD.COM에서 실행할 때 디스크를 구분해서 /DO 옵션이 자동적용되도록 했습니다.

그리고 본체의 FDD 유무에 따라 CTRL 키 부팅을 자동설정해줍니다.


본체 환경을 따질 필요없이, 그냥 옵션 없이 DSK를 구동하면 되겠습니다.



[결론]


FDD_EMU 모드에서는 아무옵션 없이 실행하면 이렇게 동작합니다.

일반 게임, 코에이 게임 -> ONE-Drive ON

마이크로캐빈 게임 -> ONE-Drive OFF 및 조건부 CTRL 부팅 사용


참고)

GameRunner II에서는 항상 FDD_EMU가 드라이브 문자 2개(A: B:)로 동작합니다.

해당 머신의 실기를 쓰는 느낌으로 쓰시면 되겠습니다.

-> 코에이 게임의 경우, CTRL 키를 눌러서 부팅!


그럼, 즐 MMC/SD 하셔요~ ㅎ.ㅎ


댓글 없음:

댓글 쓰기