2012년 9월 22일 토요일

MMC/SD Drive V2 - Multi-ROM II 제작 #8 완료

Multi-ROM II SW가 1차 완료 되었습니다.

생각했던 기본기능은 다 넣었는데, 요구사항이 있다면 더 추가될 수 있겠습니다.


첨부된 MMC/SD BIOS 및 MFLASH 를 쓰시면 되겠습니다.

(그전에 Multi-ROM HW 확장부터 하셔야겠지만요. ㅎ.ㅎㅋ)

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


사용법은 아래 순서로 하시면 되겠습니다.


1. FLASHMAN을 이용하여, MMC/SD BIOS를 v4.10 으로 업데이트

   예: FLASHMAN MMCDISK3.ROM


2. MFLASH를 이용하여 롬파일을 MultiROM II에 다운로드

   MFLASH I  입력하면 플래쉬롬 초기화

   MFLASH A filename 으로 롬파일 다운로드 (파일명은 *.* 등의 와일드카드 사용가능)

  주의: 플래쉬롬이 가득찬 경우, 지우고 다른 롬을 넣고 싶을때는

          MFLASH I 를 통해 전체를 초기화해야합니다.



아래는 동작하는 모습입니다.



MFLASH I 로 전체 플래쉬롬 초기화 하는 과정입니다.

슬롯에 위치한 MMC/SD Drive 중 Multi-ROM II로 확장된 기기가 자동으로 인식됩니다.

사진에서는 7개의 AM29F040 플래쉬롬이 존재하는 걸 보여주네요. (최대 15개 사용가능)




MFLASH는 롬파일 다운로드시 확장자를 가리지 않습니다.

대신 확장자가 ".ROM" 이 아닌경우는 "." 을 없앤 이름이 제목으로 표시됩니다.

저는 아래처럼 _MULTI.ROM 디렉토리에 다운로드할 롬들을 모아봤습니다.

파일명을 적당히 수정해서 11자로 표시되도록 했습니다요~




MFLASH A *.* 으로 파일을 몽땅 다운로드하는 모습입니다.

메가롬인 경우 매퍼가 자동으로 인식/패치 됩니다.





다운로드 완료 후, MFLASH L 을 이용하여 게임 목록을 출력해봤습니다.




본체를 리셋하고 SPACE 키를 누르고 있으면, 아래처럼 멀티롬 메뉴로 진입니다.

P키를 누르면 팔레트를 모노크롬 스타일로 변경할 수 있습니다. (MSX1용 게임에서만 효과있음)

T키는 A1WX/WSX 또는 A1ST/GT 등의 CPU 고속모드를 켜는 기능입니다.

M키를 눌러서 멀티롬II 기능을 실행합니다.




아래처럼 게임 목록이 표시됩니다.

메가롬 및 SCC 를 사용하는 경우 오른쪽에 아이콘으로 확인가능합니다.


게임 선택은 상/하 커서키를 이용합니다.

좌/우 커서키로 페이지 이동을 할 수 있고,

문자키 입력하면 해당 문자로 시작되는 첫 게임으로 커서가 점프합니다.

게임 선택 후, SPACE 키를 누르면 게임이 시작됩니다.


참고로 멀티롬II 에서는,

 16KB 주소 미러링이 필요한 게임 또는 페이지2(8000H~BFFFH)에서 실행되는 게임을 제대로 지원합니다.

(예: RISE-OUT, RIVER RAID 등)




멀티롬 진입 메뉴에서 P키를 누르면 모노 팔레트 설정을 할수 있습니다. (총 4가지)

MSX2의 경우는 게임(또는 BIOS)에서 직접 팔레트를 변경하기 때문에 효과가 없습니다.


아래는 팔레트 설정 후 MSX1용 게임을 실행해본 모습입니다.







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가 간단하지용? ㅎ.ㅎㅋ

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




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