2018년 7월 23일 월요일

MMC/SD Drive V4 제작 #2 - DCSG, PSG, PCM Sound Test

CPLD 용량을 꽉꽉 채우니까, SCC 1개, DCSG 2개, PSG 1개, 8BIT PCM을 넣을 수 있네요. ㅎ.ㅎ

사실 올봄에 DCSG + PSG를 묶어서, 간단한 사운드 카트리지를 만들까 한번 생각했어요.

근데 이걸 활용하실 분이 별로 없으실 것 같아서 걍 놔뒀거든요 ㅋ

결국 MMC/SD V4에 끼워넣게 되었습니다. 으흐흐...



사운드 기능이니까, 걍 동영상으로 보시죠~

아래 순서로 진행됩니다.

1. DCSG 1개 테스트 -> Alex Kidd, I'm Sorry

2. DCSG 2개 테스트 -> Wonder Boy, Wonder Boy 2

3. DCSG 2개 + PSG 테스트 -> Exed Exes

4. PSG  2개 테스트 -> Flashgal, Slap Fighter, Tiger Heli

5. PCM  1개 테스트 -> YS2 오프닝, 에이핑크 방송영상





그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글로 ㄱㄱㄱ


2018년 7월 16일 월요일

MMC/SD Drive V4 제작 #1 - 구상 및 SCC Sound Test

이제 슬슬 V4를 준비할 때가 되었네요! ㅎ.ㅎㅋ

그 동안 생각했던 것들을 정리해봅니다.



[확장슬롯]


사실 저는 카트리지를 항상 확장슬롯에 꽂아놔서, 별 필요없는 기능인데요.

확장슬롯이 없거나, 메모리매퍼가 없는 분들을 위한 기능입니다.

(이걸 요청하시는 분이 좀 계셔서...)

V4를 기본슬롯에 꽂으면, 디스크롬/메모리매퍼가 서브슬롯으로 나뉘어 동작합니다.



[디스크 드라이브]


기존 V3의 기능은 V4에서도 그대로 유지될 예정입니다.

메모리카드는 microSDHC 16GB 한장이면 충분하겠구요.

FAT16 코드를 디스크롬에 내장할까 생각중입니다. (1chipMSX의 스타일?)



[메가램]


용량 큰 CPLD를 쓸 예정이라서, 가능하면 많은 기능을 넣으려고 합니다.

아스키/코나미/코에이SRAM 등 많이 쓰이는 것 위주로 되겠네요.

파일 로딩 시, 롬패치를 안해도 될테니 빠르게 구동되겠죠?



[게임러너]


V3에서는 램BIOS만으로 구현되었지만...

V4에서는 paraMSX-R와 유사한 방식으로 구현될 예정입니다.

카트리지를 확장슬롯에 꽂아서 쓰더라도 가상의 기본슬롯이 에뮬됩니다.



[Kanji 폰트]


디스크롬에 Kanji BIOS가 포함되는건 V3와 동일하구요.

여기에 JIS1/2 Kanji 폰트롬이 추가됩니다.



[사운드]


SCC, DCSG (SN76489), 12BIT DAC 등이 들어갑니다.

CPLD 여유가 되면, 다른(?) 것들도 넣어볼까 생각중입니다.




바뀌는 기능은 이정도로 보시면 되겠구요.

1차로 SCC 사운드를 구현해서 테스트해보았습니다.

그동안 DCSG, PSG 등을 넣어서 테스트해봤지만, 아무래도 SCC가 비중이 가장 크겠죠?


paraMSX-R 보드를 활용해서 SCC 사운드를 한번 구현해보았습니다.

보드의 SRAM 칩이 55ns 짜리라서, SCC 5채널 모두 동작하기는 힘들까 생각했는데요.

막상 40ns 타이밍으로 SRAM 처리해도 잘 동작하네요. ㄷㄷㄷ

실제 V4 보드에는 20ns 칩으로 들어갈 예정입니다. 안전빵! ㅎ.ㅎ


아래 영상은 파로디우스를 실행해본 모습입니다.

메가램은 슬롯2-0의 MMC/SD V3가 그대로 사용되었구요.

슬롯1에는 SCC 사운드가 구현된 paraMSX-R 보드가 장착되었습니다.

MMCSD.COM을 실행하면 슬롯1에서 SCC가 인식되는걸 볼 수 있습니다.

영상에는 없지만, 메탈기어2 디스크판(해킹버전)에서도 정상 인식되었어요.




그럼, 다음편에서 보아요~ ㅎ.ㅎ


궁금한 점 있으시면 댓글로 ㄱㄱㄱ


2018년 7월 1일 일요일

paraMSX-R 제작 #16 - 메모리 슬롯 설정

30년 전에 MSX를 쓰셨던 분들은 이걸 기억하실텐데요.

"MSX1은 메모리가 슬롯2에 있고, MSX2는 메모리가 슬롯0-2에 있다"

물론 국산 기종에 한정된 내용입니다. 아이큐1000, X-II 등등


그 시절에는 확장슬롯이나 외장 메모리매퍼를 쓰는 사용자가 (거의) 없으니,

프로그램 만들 때, 메인 메모리의 위치를 확인할 필요성이 없었습니다.

메인 BIOS의 MSX 버전만 확인해서, 이게 MSX1인지 MSX2인지 정도만 알면 땡이었어요.

파워업테크닉 책에도 슬롯 설명할 때 비슷한 내용이 나옵니다.


일제 MSX 기종은 메모리가 대부분 슬롯3-0에 있어요.

OEM으로 들어간 유럽쪽 필립스 기종도 마찬가지이구요.

그 때문에 유럽쪽 SW에서 메모리 슬롯을 변경할 때, FFFFH 번지를 그냥 써버리곤합니다.

아이큐2000 에서 하던거랑 비슷하죠ㅋ



그럼, 여기 paraMSX-R 글에서 메모리 얘기를 왜 하는지 궁금하실텐데요.

1주일 전에 paraMSX-R + 재미나 메가램을 테스트하느라, 메탈기어2를 한번 실행해본적이 있었어요.

아래 글에 보시면, 실행이 잘 안된다는 내용이 있어요. 아마 기억하시는 분 있으시죠?

https://cafe.naver.com/msx/1791


저도 이게 갑자기 생각나서 paraMSX-R로 테스트를 해봤는데...

어?? 그냥 잘 실행이 되더라구요.

아이큐2000(CPC-300) 에뮬 모드에서 MMC/SD V3의 DOS2로 로더를 실행했는데, 별 문제 없었습니다.

그래서 번쩍 머리에 떠오른 생각!

요즘 실기를 쓰는 분들 중 DOS2 활용을 위해, 메모리매퍼를 대용량으로 쓰는 경우가 많잖아요?

특히 국산 MSX2의 경우는 내부 슬롯0-2의 메모리를 확장하는게 힘이드니,

대개 확장슬롯 + 메모리매퍼 카트리지를 쓰게 됩니다.


재미나 메가램 용 메탈기어2가 실행안되는 이유도, 결국 메인 메모리 슬롯 문제인 것 같더라구요.

그래서 paraMSX-R로 테스트를 해봤습니다.


아래 3가지 설정에서 메탈기어2 로더를 테스트합니다.

1. CPC-300 모드 (DOS2 부팅을 위해 램512KB로 설정)

2. CPC-300 모드 (램을 슬롯0-2에서 슬롯2로 변경)

3. FS-A1F  모드 (램을 슬롯3-0에서 슬롯0-2로 변경)


아래 사진처럼 FS-A1F 모드에서도 메인메모리를 슬롯0-2에 놓으면, 로더가 정상 동작하더라구요.




결국, 실기 아이큐2000(내장램 128KB 슬롯0-2)에 외장 메모리매퍼(256KB 이상)를 꽂게되면...

메인 메모리로 쓰이는 슬롯이 변경되어 로더가 죽는 문제가 발생하게 됩니다.


그럼, 영상을 보시죠~





즐거운 주말되셔요~ ㅎ.ㅎ