2018년 11월 4일 일요일

MMC/SD Drive V4 제작 #8 - OCM 기종에서 DCSG 동작불가

MMC/SD Drive V4에는 DCSG칩인 SN76489AN가 들어있습니다.

근데 저의 OCMC에서는 DCSG 컨트롤이 전혀 되지않네요.

OCMC 기본 펌웨어는 KdL PLD v3.1 또는 v3.2를 기반으로 제작된걸로 알고 있습니다.

제껀 v3.2 펌웨어입니다. 오리지널 OCM에서는 테스트를 못해봤지만, 아마 동작안 될 것 같네요.



DCSG칩은 조금 특이하게도 data write 시, 32 클럭동안 data를 유지해야하는 조건이 있는데요.

V4는 DCSG의 READY 출력신호를 이용하여 MSX의 /WAIT를 인가하는 방법으로 설계되어있어요.

세가 SG-1000 구조와 동일하다고 보시면 됩니다.


문제는 OCM의 /WAIT 상태에서 BUS 신호가 유지되지 않는 것처럼 보이더라구요.

실제로 오실로스코프 등으로 확인해본건 아니라서, 어떤 신호가 문제인지는 파악안된 상태입니다.

MRC 게시판을 검색해보니,

DCSG를 넣은 롬팩이 OCM에서는 소리가 안나온다는 얘기가 있긴하더라구요.

아마 OCM의 설계 문제가 아닐까 싶습니다.



암튼 결론은,

MMC/SD Drive V4의 DCSG 사운드는 OCM 계열의 본체에서는 사용불가입니다.

MMC/SD BIOS에서 부팅 시, KdL PLD 펌웨어가 인식되면 DCSG를 끄도록 해놨습니다.


OCM 본체에서 MMC/SD V4를 사용하실 분들은 참고하셔요.


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


2018-11-07 추가

/WAIT 처리 문제는 KdL PLD 문제로 확인되었습니다.

OCMC의 경우는 메가밍크스님의 최신 펌웨어(2018-11-07)로 업뎃하시면 정상동작합니다.

결론: 본문 내용은 잊으시면 되겠습니다요~ ㅎ.ㅎㅋ



PS. 최종 PCB가 나와서 조립해보았습니다.

    아래 사진처럼 빨간색 보드입니다요~ ㅎ.ㅎ




2018년 10월 28일 일요일

MMC/SD Drive V4 제작 #7 - 듀얼 DCSG 활용

MMC/SD V4에는 SCC-I, DCSG, 8BIT PCM 이렇게 3종류의 사운드가 들어있습니다.


만약 MMC/SD V4를 두개 이상 꽂게 되면 어떻게 될까요?

I/O 포트를 사용하는 DCSG와 PCM은 I/O 주소가 중복이 되겠죠?

참고로, SCC-I의 경우는 메모리맵 I/O로 구동되기 때문에 서로 충돌하지 않습니다.


DCSG, PCM의 기본포트는 아래와 같습니다.

DCSG = 49H (Franky DCSG 포트)

PCM  = 91H (Covox PCM 포트)


만약 카트리지가 두개가 장착이 되면 두번째 DCSG, PCM 포트는 아래처럼 변경됩니다.

DCSG = 3FH (MMM DCSG 포트)

PCM  = 0AH (MusicModule PCM 포트)


물론 포트를 개별적으로 OFF할 수도 있구요.

사실 DCSG, PCM 모두 출력전용 포트라서, 기기가 중복되어도 큰 문제가 생기지는 않습니다.

대신 사운드가 중복되니까 볼륨이 좀 크게 나오겠네요ㅋ


현재 DCSG의 경우는 활용할 수 있는 경우가 두가지인데요.

SG-1000 loader, VGMPlay


여기서 VGMPlay는 듀얼 DCSG를 지원합니다.

하지만 MMC/SD V4를 직접 지원하는건 아니니, 활용하려면 VGMPlay 소스를 좀 고쳐야겠죠?

PAC-V의 비주얼라이저도 쓸 수 있으면 더 좋겠구요. ㅎ.ㅎ


아래는 수정된 VGMPlay로 원더보이2 VGM을 재생하는 모습입니다.

DCSG는 구형파 3채널 + 노이즈 1채널로 구성되어있구요.

DCSG 칩 하나가 PAC-V의 LED바 4개를 사용하도록 했습니다.

듀얼 DCSG가 모두 동작하면 불꽃 8개를 볼 수 있겠네요.




영상도 하나 찍어보았습니다.

DCSG뿐만 아니라 PSG, SCC 재생 시에도 PAC-V의 불꽃을 볼 수 있어요. ㅎ.ㅎ




그럼, 이만...~

궁금한 부분이 있으시면 댓글달아주세요.



2018년 10월 20일 토요일

MMC/SD Drive V4 제작 #6 - GameRunner (가상 슬롯)

GameRunner는 가상의 MSX 환경을 만들어 주는 기능입니다.

MMC/SD V3에서도 GameRunner 기능(가상의 MSX1 ROM 환경)이 있었는데요,

V4는 내부 가상슬롯(확장슬롯이 아닙니다) 기능으로 좀 더 다양한 환경을 만들 수 있게되었습니다.


기능을 나열해보면요...

- MSX1,2,2+ 가상모드 (JP/KR/EU Locale 지원)

- BASIC 환경 지원

- DiskROM 지원 (DSK 파일 실행)

- MegaRAM과 DiskROM을 동시 구동 (ROM + DSK, DeluxeBox + DSK, SCC-I + DSK)

- RAM Kanji Font 지원

- 넌매퍼 64KB 또는 메모리매퍼 512KB 선택가능 (메인 메모리 설정)



V4의 가상 슬롯은 4개로 이루어져있구요. GameRunner 모드로 전환되면 활성화됩니다.

활성화되면, 가상 슬롯 4개가 본체의 기본 슬롯 4개를 대체하는 방식으로 동작합니다.


아래는 MSX2 JP 모드로 구동 후, SLOT_CHK.ROM을 실행한 모습입니다.

참고로, MMC/SD V4 카트리지는 A1GT의 슬롯2-0에 장착된 상태입니다.

어떤식으로 구현되는지 짐작이 되시죠? ㅎ.ㅎ





아래는 여러가지 조합으로 구동되는 GameRunner 영상입니다.

ROM/DSK 로딩없는 BASIC 부팅 및 각종 ROM, DSK, DeluxeBox, SCC-I 조합환경을 보여줍니다.





다음편에서는 PAC-V 비주얼라이저 연동과 듀얼 DCSG 동작 모습이 나올 예정입니다~ ㅎ.ㅎ

궁금한 부분이 있으시면 댓글달아주세요.



.

.

.


PS. 최종 테스트 용 V4 PCB가 나왔습니다. (아쉽게도 잘 동작하네요.ㅋ)

    곧 제작 신청을 받을 예정입니다. 올 크리스마스까지 달려보아요~ ㅎ.ㅎ/