sharksym's MSX World

sharksym.egloos.com

포토로그


구글 애드센스 (블로그 기본)


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

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 하셔요~ ㅎ.ㅎ





Title MSXrating email rss

CCL

크리에이티브 커먼즈 라이선스
Yeongman Seo에 의해 작성된 저작물은, 별도의 라이선스 조건이 없는 경우 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

ClusterMaps

구글 애드센스 (세로 큰직사각형)

통계 위젯 (화이트)

1643
172
167116

이 이글루를 링크한 사람 (화이트)

28