2016년 2월 20일 토요일

메인 메모리의 최대치는?

얼마나 많은 메모리를 쓸 수 있을지 한번 테스트해보았습니다.

메인 메모리로 사용되는 메모리 매퍼만 의미합니다. VRAM 이런건 제외하구요.


실기에 4MBytes 확장램 카트리지를 꽂아서 테스트하면 좋겠지만,

제가 가진 카트리지가 얼마안되니, 에뮬레이터의 힘을 빌렸습니다.


참고로 MSX 슬롯은 총 16개이구요.

MSX2 이상인 경우 메인/확장 BIOS가 슬롯2개를 점유하니까,

남은 슬롯에 메모리 몽땅 장착하면 14개, 총 용량 4MB x 14 = 56MBytes 넣을 수 있습니다.

근데 이렇게 다 채우면, 디스크 드라이브도 없고 DOS2도 없고... 사실 할 수 있는게 없어요. ㅎ.ㅎ


그래서 일반 MSX2+ 모델인 파나소닉 A1WSX 모델을 기준으로 테스트하였습니다.

blueMSX의 A1WSX 머신 컨피그를 기본으로 사용합니다.

슬롯0,1,2,3 모두 확장한 상태에서 BIOS 등의 내장 롬이 있는 슬롯 외엔 몽땅 램 4MBytes 장착!!

컨피그 파일은 아래처럼 됩니다.

[CMOS]

Enable CMOS=1

Battery Backed=1

[FDC]

Count=1

[CPU]

Z80 Frequency=3579545Hz

[Board]

type=MSX-T9769B

[Video]

version=V9958

vram size=128kB

[Subslotted Slots]

slot 0=1

slot 1=1

slot 2=1

slot 3=1

[External Slots]

slot A=1 0

slot B=1 1

[Slots]

0 0 0 0 84 "" ""

0 0 0 0 32 "" ""

0 0 0 0 34 "" ""

0 0 0 0 26 "" ""

0 0 0 0 24 "Machines\MSX2+ - Panasonic FS-A1WSX\a1wskfn.rom" ""

0 0 0 4 20 "Machines\MSX2+ - Panasonic FS-A1WSX\a1wsbios.rom" ""

0 1 0 4096 22 "" ""

0 2 2 2 78 "Machines\MSX2+ - Panasonic FS-A1WSX\a1wsmus.rom" ""

0 3 0 4096 22 "" ""

1 2 0 4096 22 "" ""

1 3 0 4096 22 "" ""

2 0 0 4096 22 "" ""

2 1 0 4096 22 "" ""

2 2 0 4096 22 "" ""

2 3 0 4096 22 "" ""

3 0 0 4096 22 "" ""

3 1 0 2 20 "Machines\MSX2+ - Panasonic FS-A1WSX\a1wsext.rom" ""

3 1 2 4 42 "Machines\MSX2+ - Panasonic FS-A1WSX\a1wskdr.rom" ""

3 2 2 4 57 "Machines\MSX2+ - Panasonic FS-A1WSX\a1wsdisk.rom" ""

3 3 0 6 142 "Machines\MSX2+ - Panasonic FS-A1WSX\a1wsfirm.rom" ""

 


늘어난 램을 쉽게 테스트하기 위해, DOS2로 부팅합니다.

카트리지 슬롯 A에 DOS2를 장착하구요, 슬롯 B에는 4MBytes 램 카트리지 장착했습니다.

결국 램이 장착된 슬롯은 아래처럼 되네요.

슬롯0-1, 슬롯0-3

슬롯1-0, 슬롯1-2, 슬롯1-3

슬롯2-0, 슬롯2-1, 슬롯2-2, 슬롯2-3

슬롯3-0


슬롯 10개에 모두 4MBytes, 총 용량 40MBytes를 장착했습니다. ㅎㄷㄷㄷㄷ


그럼 제대로 부팅되는지 볼까요?

아래처럼 정상적으로 40960KBytes 표시됩니다.

전원 올리면, 화면 깜깜한 상태로 한참 있길래 안켜지는 줄 알았습니다.ㅋ

40메가 램 체크하는데 시간이 좀 걸리네요.




DOS2 부팅 후, 매퍼가 모두 인식되었는지 확인해봅니다.

memory 명령을 쳤어요.

슬롯0-1의 메모리가 메인(primary) 메모리로 등록이 됐군요. 






슬롯0-1 이후 부터는,

번호가 큰 슬롯3-0 부터 역순으로 슬롯0-3까지 10개 모두 제대로 표시가 되었습니다.


음... 결론은 "40MBytes 까지는 잘 되더라" 입니다.


그럼, 즐거운 주말되셔요~ ㅎ.ㅎ


PS. MSX-DOS2의 메모리 매퍼 루틴은 한가지 제약이 있습니다.


메모리 매퍼 한개는 H/W적으로는 4MB(4,194,304 bytes)가 최대 용량이니까,

각 매퍼의 세그먼트(16KB) 갯수는 256개가 됩니다.

근데, DOS2의 매퍼 세그먼트 루틴은 Z80의 8BIT 레지스터를 세그먼트 갯수로 사용하는데,

8BIT 최대치인 255까지만 쓸 수 있어요.


위의 스크린 샷에서 total RAM 정보에 4,177,920 bytes로 나오는 이유가 그 때문입니다.

마지막 1개 세그먼트(16KB)를 사용하지 못하기 때문에 나타나는 현상이에요. ㅎ.ㅎ


2016년 1월 23일 토요일

MMC/SD Drive V3 제작 #8 - GameRunner 모드

MMC/SD V3 제작기 여덟번째입니다.

이전 일곱번째가 끝이라 생각했는데 하나 빼먹었더군요.ㅋ

MMC/SD V3 전용 GameRunner 모드에 관한 내용입니다.


롬 이미지 구동 시, 아래와 같은 향상된 기능을 쓸 수 있습니다.


1. 본체 리셋없이 DOS2로 복귀 가능

2. STATE SAVE/LOAD (*.SAV 파일 사용)

3. PAUSE 및 속도 조절

4. 모노컬러 팔레트 설정

5. 코나미 SCC 게임 구동 시, 외부 슬롯의 SCC 음원 카트리지 연동

6. Memory Cheat 기능 (blueMSX에서 쓰이는 *.MCF 파일 사용)


1~4는 게임 중 특정 키를 누르면 언제든 동작하는 기능이구요.

5 외부 슬롯 SCC는 자동으로 인식 및 구동됩니다.

6 치트 기능은 게임 실행 전에 사용될 항목을 고를 수 있습니다.


기존 DOS2 용 32KB롬 Loader인 GRUN.COM을 써보셨다면, 사용방식이 익숙하실 듯 합니다.

그리고, MSX2 전용 메가롬은 몇몇 게임 외에는 실행되지 않습니다.

MSX1 에서 실행가능한 메가롬은 상관이 없구요.


게임 SAVE/LOAD는 GRUN에서 많이 보셨을테니까,

 위의 5번,6번 사용하는 것 위주로 찍은 영상을 보여드리겠습니다요. ㅎ.ㅎ



궁금한 부분 있으시면, 댓글로 ㄱㄱ~


2015년 12월 26일 토요일

VGMPlay 1.1 for MSX 테스트 (MoonSound, SCC-I)

VGM (Video Game Music) 파일이 뭔지 아시나요? ㅎ.ㅎ

혹시 잘 모르시면, 아래 링크 참고하시구요. (도망..ㅋ)

http://www.smspower.org/Music/VGMFileFormat


요약하면,

VGM 파일은, 게임기 또는 컴퓨터에서 CPU가 사운드 Chip을 액세스하는 데이터들을 몽땅 로깅한 것입니다.

44100Hz 샘플링으로 되어있어서, 실제 기기에서 재생되는 것과 거의 동일한 품질로 사운드를 재생할 수 있어요.


암튼 요걸 MSX로 한번 재생해보았습니다.

프로그램은 제가 만든건 아니고 ㅋ

MRC의 grauw 아자씨가 만든걸 썼습니다. 버전 1.1까지 나와있구요.

원본 링크는 아래 참고하세요.

https://bitbucket.org/grauw/vgmplay-msx

https://bitbucket.org/grauw/vgmplay-msx/downloads


아래는 실기에서 VGMPlay 1.1 for MSX 구동한 영상입니다.

제 turboR에 문사운드, SCC-I 카트리지 장착된 상태이구요.

F1SPIRIT: PSG + SCC

GOONIES: PSC

SALAMANDER: PSG + SCC

YS II Special: OPL4(YM3812 OPL2 모드)

.. 순으로 나옵니다. 참고하셔요 ㅎ.ㅎ