2012년 9월 22일 토요일

MMC/SD Drive V2 - Multi-ROM II 제작 #7 다운로더 및 BIOS

멀티롬II 를 위한 다운로더 및 바이오스가 대충 완성되었습니다. ㅎ.ㅎ


첨부된 두 파일로 테스트 부탁드립니다. (MFLASH는 이상태로 정식버전이 될 확률이 높아요)

(아직 테스트 버전이라 파라동에만 올려두었습니다. 참고하세요...)


아래는 제 터보알에서 실행하는 모습입니다.

사용법 그대로 따라하시면 되겠습니다요~~



MFLASH.COM 은,

멀티롬 II 확장된 MMC/SD Drive의 플래쉬롬을 다운로드 하는 프로그램입니다.

DOS1, DOS2 환경 모두 지원합니다.


아래 세가지 명령을 쓸수 있습니다.

I = 전체 초기화

L = 게임 리스트 표시

A = 롬 추가(다운로드)




MFLASH I 를 실행한 모습입니다.

현재 동작중인 MMC/SD 중 멀티롬II 확장된 카트리지가 자동 선택됩니다.

혹시 두개 이상의 멀티롬II가 발견되면, 슬롯 선택 메뉴가 나올겁니다.


저는 AM29F040B 플래쉬롬 7개를 달았습니다.

각 플래쉬롬이 체크되면 보유 플래쉬롬 리스트에 등록이 되며,

chip erase 명령으로 전체 영역을 지워놓습니다.


참고로 플래쉬롬은 1개에서 최대 15개의 플래쉬롬을 쓸수 있습니다.

플래쉬롬 타입을 섞어써도 무방하구요.

74LS138 출력되는 /CE 신호 순서데로 연결안되더라도 상관없습니다.

(예: 3번, 6번 이렇게 두개만 달아도 됨) 


지원되는 플래쉬롬은 아래 세종류입니다. (모두 바이트 프로그래밍 방식의 4MBit입니다.)

AM29F040, MBM29F040, MX29F040


플래쉬롬 영역은 16KB 단위 블럭으로 관리합니다. 7개 플래쉬롬을 쓰면 총 224개의 블럭이 생기는 것이죠.




MFLASH A 명령을 써서 게임롬을 다운로드할수 있습니다.

MFLASH A USAS.ROM 등 한개 롬만 추가할수도 있고,

MFLASH A *.ROM 처럼 여러개 롬파일을 한번에 추가할수도 있습니다.


참고로 메가롬의 경우는 매퍼 종류를 자동으로 인식합니다.

만약 인식 실패하면 수동으로 선택할수 있는 메뉴가 표시됩니다.

지원되는 매퍼는 KONAMI SCC, KONAMI 8KB, ASCII 8KB, ASCII 16KB 네종류 입니다.


아래는 MFLASH I *.ROM 으로 디렉토리 내의 롬파일 몽땅 다운로드하는 모습입니다.




아래는 다운로드 완료 후 멀티롬II 를 구동한 모습입니다.

기존 멀티롬 처럼 MSX 부팅시 SPACE 키를 누르고 있으면 진입 메뉴가 나타납니다.

M 을 선택하면 멀티롬 메뉴에서 멀티롬II 메뉴로 전환합니다.


참고로 아래 사진을 보면 기존 멀티롬 기능은 활성화가 되어있지 않은 걸 알수 있습니다.

만약 R800 터보 모드를 켜려면 여기서 T를 눌러서 ON 시킨 후, M을 눌러서 멀티롬II로 진입하면 됩니다.




멀티롬II가 실행된 모습입니다.

상/하 커서키를 눌러서 롬을 고른 후, SPACE키를 누르면 게임이 실행됩니다.

파일명 옆에는 [메가롬] [SCC] 표시를 나타내는 아이콘이 나옵니다. 참고하세요.




아마 아직 MMC/SD Drive에 멀티롬II 확장하신 분이 없을 듯 한데요.

완성되시면 테스트 부탁드립니다. ㅎ.ㅎ



2012년 9월 21일 금요일

MMC/SD Drive V2 - Multi-ROM II 제작 #6 롬블럭 관리

멀티롬II를 잘 활용하기위해서는 SW가 필요합니다.


여러개의 크기가 다른 게임롬을 각 플래쉬롬에 나눠서 넣어야하구요,

실행할때는 선택된 게임 영역이 메모리 페이지1,2에 매핑되도록 해줘야되겠습니다.

메가롬의 경우는 매퍼 패치를 해서 SCC 뱅킹에 맞도록 전환됩니다.


아래는 멀티롬 전용 다운로더 툴인 MFLASH 프로그램의 동작 모습니다.

메가롬 게임 위주로 넣었습니다.


32KB 게임은 메가롬이 아니니까 매퍼 패치는 필요없고, 단지 페이지 매핑만 되면 OK입니다. ㅎ.ㅎ

해당 게임은 5번 플래쉬롬 12번 블럭에서 시작됩니다. 16KB 두개 블럭이라 12번,13번 블럭 사용이겠네요.




아래는 메탈기어2를 다운로드하는 모습입니다.

512KB라서 플래쉬롬 한개를 다 차지하겠네요.

사진에서는 7번 플래쉬롬으로 표시되었네요.

참고로 MFLASH 는 메가롬 매퍼를 자동으로 감지합니다. (강제 지정 옵션도 넣어야겠지요?)

알고리즘이 간단해서 오진이 있지만, 왠만큼은 돌아가는 듯 하네요. ㅋ




MFLASH L 명령을 쓰면, 다운로드 된 게임의 정보(플래쉬롬 번호 및 시작 블럭 번호)를 볼수 있습니다.




아래는 MMC/SD BIOS에서 멀티롬II를 구동하는 모습입니다.

기존 멀티롬 메뉴에서 M을 누르면 멀티롬II 프로그램이 동작됩니다.




UI가 간단하지용? ㅎ.ㅎㅋ

간단하게 롬파일 목록을 보여줍니다. 커서키로 선택하면 해당 게임이 실행되겠습니다.




불새를 실행해본 모습이네요.




MMC/SD Drive V2 - Multi-ROM II 제작 #5 롬 실행 테스트

낮엔 애들이랑 놀고 운전하고...

밤엔 책상에서 MSX랑 달려봅니다. (약간 피곤하군요~ㅎ.ㅎㅋ)



어제 각 플래쉬롬의 디바이스 ID가 읽히는지 테스트했었는데요,

이 상태에서 팩 뚜껑 닫고 문제가 없는지 동작 체크해봤습니다.

간단하게 메탈기어2 롬 이미지(512KB)를 다운로드 후, 덤프해서 비교하는 방법으로 테스트했습니다.


롬 1,2,3,... 잘되다가 ㅡ,.ㅡ 마지막 롬 7번에서 16KB 다운로드 후 뻗어버리네요..

덤프해보니, 첫 16KB(0000H~3FFFH)는 값이 정상적으로 들어가있는데...

그다음 16KB(4000H~7FFFH)가 첫 16KB랑 값이 똑같게 덤프가 되었더군요.

아마도 A14 위쪽의 어드레스가 잘못되거나 그랬겠지요.

근데 플래쉬롬들이 전부 병렬로 붙어있는데, 왜 마지막 하나만 이상할까... 좀 이상하네요. ㅎ.ㅎ;


결과는 아래 사진을 보시고~~ ㅋ


플래쉬롬 끼리 연결할때 저항 다리를 잘라서 쓴 곳이 많은데요.

마지막 7번 롬의 A14 핀이 떨어져버렸군요.

디카 접사로 보니 금이 쫘~악 ㅡ.ㅡ

아마도 팩 뚜껑 닫을때 플래쉬롬이 약간 뒤틀리면서 떨어진 것 같습니다.

암튼 다시 납땜했어요.




아래는 MFLOAD 프로그램으로 다운로드 테스트하는 모습입니다.

아직은 매퍼 패치가 안되니까 일단 SCC 용 게임롬만 구동이 됩니다.




MMC/SD BIOS의 멀티롬 선택을 확장해서,

아래처럼 멀티롬II를 구동할수 있도록 했습니다.

첫 메뉴에서 M 으로 멀티롬II 선택 후, 추가된 플래쉬롬 번호(16진수 ㅋ)를 고르면 됩니다.


SCC 롬 게임 이것저것 넣어서 테스트해봤는데, 대충 잘 돌아가는 듯 보이네요~ ㅎ.ㅎ




케이스를 닫은 모습입니다.

격돌~페넌트레이스의 희생으로 멀티롬 II 가 완성되었습니다요~ 묵념...




여기까지는 초간단 동작 테스트였구요.

다음은 제대로 된 롬 다운로더 및 멀티롬 II 선택 프로그램 제작으로 넘어갑니다.


그럼, 이만...