2015년 11월 14일 토요일

GRUN v1.6 release

Download: GRUN_v1.6_20151113.zip


----------------------------------------------------------------

    Game Runner v1.6 (MSX-DOS2용 게임 로더 2015.11.13)

        By 서영만 <E-mail:sharksym@hitel.net>

----------------------------------------------------------------


* Game Runner (GRUN)


  GRUN은 16KB 또는 32KB의 MSX1 게임롬 로더입니다.

  게임 실행 중 DOS로 복귀가 가능하며,

  게임 속도 조절 및 상태 저장/복구 기능을 지원합니다.



* 요구 사항


  MSX-DOS2가 구동되는 MSX2(VRAM 128KB) 이상의 기종.

  메모리 매퍼 추가사용 없음.



* 사용법


  DOS2 프롬프트에서 아래처럼 입력하면 롬파일이 실행됩니다.

  GRUN gamename.rom


  디스크 세이브를 하려면, 아래처럼 입력하면 됩니다.

  GRUN gamename.rom gamename.sav


  특수키 입력

  ESC : 게임을 강제 종료하고 DOS2로 복귀

  1   : 일시 정지

  0   : 게임 속도를 원래의 60프레임으로 복귀

  2   : 게임 속도를 30프레임으로 낮춤

  3   : 게임 속도를 40프레임으로 낮춤

  4   : 게임 속도를 45프레임으로 낮춤

  5   : 게임 속도를 48프레임으로 낮춤

  6   : 게임 속도를 50프레임으로 낮춤

  7   : 게임 속도를 52프레임으로 낮춤

  F4  : 게임 상태를 저장

  F5  : 게임 상태를 복구



* 마지막으로


  MSX 메인 BIOS를 패치 후 램에서 구동하므로,

  제대로 실행안되는 게임도 있습니다.

  코나미, 남코 등의 게임은 대부분 동작합니다.

 

  turboR에서 실행하는 경우, Z80 모드로 전환됩니다.


  

2015년 11월 2일 월요일

MMC/SD Drive V3 제작 #6 - 2DD DSK 모드

MMC/SD Drive에는 DSK 이미지 파일을 구동하는 기능이 있습니다.


구버전 V2에서는 SD카드를 2000개의 720KB 블럭으로 쪼개서 DSK파일을 저장하고,

게임 구동 시, 필요한 블럭(클러스터)을 리스트로 만들어서 관리하는 방법을 사용했습니다.

DISKMAN 프로그램의 메인 기능이었지요. ㅎ.ㅎㅋ

DISKMAN 사용법이 좀 번거럽긴 하지만... DSK 이미지 한번 세팅하면, 그 후론 쉽게 실행할 수 있는 장점이 있습니다.


하.지.만...

DISKMAN 사용법이 어렵다는 의견이 좀 많았습니다.

디스크 파티션이랑 UI 구상하느라, 거의 한달을 고민해서 만든거였는데... ㅜ.ㅜ


암튼 이번 V3에서는 DSK 관리를 위한 툴을 사용하지 않습니다.

그냥 디렉토리에 존재하는 DSK 파일을 드라이브 A:로 마운트해서 부팅시킵니다.


디스켓 여러장으로 된 게임인 경우는,

COPY /B DISKA.DSK + DISKB.DSK + DISKC.DSK  GAME.DSK

이런식으로 하나의 파일로 붙여서 사용하게 됩니다.


아래는 현재까지 구현된 기능들입니다.

- DSK 파일 클러스터 처리 (FAT12/FAT16 모두 지원)

- 여러장으로 묶은 DSK 처리 (숫자 키 눌러서 디스크 선택/전환)

- OneDrive 모드 (본체 내장 FDD 디스크롬 사용못하도록 설정)

- VDP 커맨드 처리 중 디스크 액세스 시, 자동으로 딜레이 타임 추가


참고로 기존 V2에 있던, 뱅킹 disable 모드가 V3에서는 항상 켜지게되구요.

게임 호환성을 위한 디스크 속도 낮추는 기능은 필요없도록 만들었습니다.

(필요한 경우 자동으로 속도가 낮춰집니다.)


아래는 MMCSD.COM 프로그램으로 Princess maker 를 구동한 모습입니다.

부팅 시 화면 한장 찍었어요.





참고로 OneDrive 모드는 부팅 시 CTRL키를 누르고 있으면, 켜지게 됩니다.

MMCSD.COM으로 DSK 구동하게 되면, 자동으로 리부팅하게 되는데, 이때 눌러주면 되겠습니다.

코에이 삼국지 등등 메모리 문제로 부팅 시 CTRL 키 눌러야하는 게임 생각하시면 되겠네요.


아래는 터보알에서 구동해본 영상입니다.

부팅 후, M에서 DSK 파일 클릭으로 원샷~에 실행되는걸 볼 수 있습니다요~

아마 보시면... 따로 매뉴얼 없어도 쉽게 사용이 가능할거라 생각됩니다. (아닐까요? ㅋ)




마지막으로... 하나 덧붙입니다.


기존 V2 기기를 OCM(또는 OCMC) 에서 사용하면, 디스크 전환이 불가능했었는데요.

이게 OCM VHDL 버그같네요. 8255 PPI쪽 문제인데... 해당 내용은 따로 글 올려보겠습니다.

암튼 OCM에서도 디스크 전환 잘 됩니다. OCM 버그를 회피하도록 코드를 수정했어요. ㅋㅋ

V2쪽 BIOS도 짬날때 업뎃해야겠습니다.


그럼, 이만 줄입니다. 즐거운 하루되셔요~ ㅎ.ㅎ

2015년 10월 22일 목요일

MMC/SD Drive V3 제작 #5 - MegaRAM 모드

MMC/SD Drive V3에는 플래쉬롬 외에 SRAM이 추가됩니다.


원래 SRAM은 MBR, FAT, 파티션 정보, 2DD에뮬 시 정보 저장을 위해 쓰이게 되는데요.

뭐 이정도라면 32KB 정도면 충분합니다만...

걍 512KB짜리 SRAM을 넣기로 결정했습니다.


왜냐구요?

MMC/SD Drive V3에서는 V2에서 쓰이던 멀티롬 기능이 제거되고,

대신 메가램 기능이 들어가게 되거든요..ㅋ


참고로 메가램은 메가롬을 흉내내는 기기입니다.

디럭스 박스, 럭셔리 박스 등의 카트리지 생각하시면 맞습니다!


이번 V3에서는 SCC 칩이 들어가지 않기 때문에, SCC 사운드는 들을 수 없지만,

HW적으로 기존 멀티롬 보다 좀 더 롬구동에 적합하도록 되었습니다.


MMC/SD에서 게임롬 구동을 짧게 비교하자면...

# V2 멀티롬

 1. 롬디스크 영역 일부에 롬 데이터 저장

 2. 롬의 뱅킹 루틴을 패치하여, 메인램으로 뱅킹 코드 이동

 3. 실제 HW에 맞도록 뱅크 변경하여 적용


# V3 메가램

 1. SRAM 영역에 롬 데이터 저장

 2. 롬의 뱅킹 루틴의 주소 변경(패치 )

 3. MMC/SD Drive를 메가램모드로 부팅


V2의 뱅킹 루틴은 메인램 상에 존재해야되서, 수행되는 코드 양이 늘어나게 됩니다.

대부분의 경우는 문제 없지만, 타이밍에 민감한 부분에서는 손해가 될 수 있어요.


V3의 메가램은 IO 주소만 변경되는거라서, 수행되는 코드 양이 동일하거나 약간만 증가합니다.

ASCII 8K, KONAMI 8K, KONAMI SCC 매퍼는 원본과 코드 사이즈 같구요,

ASCII 16K 매퍼는 V2 패치 코드의 절반 사이즈로 구동됩니다.


참고로, V2 멀티롬은 플래쉬롬에 이미 롬데이터가 들어있기 때문에,

DOS 구동이 불가능한 본체(32KB램 달린 MSX1 등)에서도 게임이 실행되는 장점이 있어요. ㅎ.ㅎ

주로 즐기는 게임 한두개 정도라면, 한번 로딩으로 언제든 실행이 가능하니 꽤 편하지요.


글이 자꾸 길어지네요. 별 내용이 아닌데..ㅋ

암튼 실제 구동 화면을 보시겠습니다요~


아래는 악마성 드라큐라 롬을 실행하는 모습입니다.

매퍼가 KONAMI 8K로 인식되구요. 패치되어 로딩됩니다.




아래는 4가지 매퍼타입의 메가롬들을 하나씩 실행해보는 영상입니다.

실제 동작이 어떻게 되는지 참고하시면 되겠습니다.