sharksym's MSX World

sharksym.egloos.com

포토로그


구글 애드센스 (블로그 기본)


MMC/SD Drive V3 제작 #13 - PAC-V를 이용한 PSG 비주얼라이저 by sharksym

PAC-V에는 9채널의 LED 비주얼라이저가 들어있습니다.
기본적으로는 OPLL(FM 음원) 칩의 동작을 LED로 보여주는 것인데요.
이걸 S/W적으로 디스플레이하는 것도 가능합니다.
현재까지는 M에서 MPXP/IMSP 플레이어가 활용을 하고 있어요.

이제 MMC/SD Drive 차례가 왔습니다. ㅎ.ㅎ
MSX 본체에는 PSG 사운드가 기본으로 들어있구요.
FM 사운드가 보편화되기전의 수많은 게임들이 PSG만으로 소리를 내고 있습니다.
PSG 사운드에 맞춰 PAC-V의 LED 쇼를 즐길수 있으면 훨씬 신나겠지요? ㅎ.ㅎㅋ

S/W에서 PSG를 액세스 할때는 주로 두가지 방법을 사용합니다.
1. PSG I/O 포트로 직접 출력
2. 메인 BIOS의 WRTPSG 루틴 사용

1번처럼 I/O 포트를 직접 건드리면, 코드를 패치하지 않는 이상은 PAC-V 활용은 힘들겠구요.
2번의 메인 BIOS 루틴을 사용하는 경우는 방법이 있습니다.

사실 WRTPSG 루틴은 훅이 없어서, 코드를 가로채는게 불가능한데요.
MMC/SD의 GameRunner BIOS를 쓰게 되면 구현이 가능해집니다.
GameRunner에서는 PSG로 출력도 하고, 동시에 PAC-V LED으로 출력도 하는 것이죠.

아래 실제로 동작하는 모습을 보시지요~


PSG는 구형파(및 노이즈) 출력 채널이 3개 있습니다.
이걸 PAC-V의 LED바 9개 중에서 6개를 이용합니다.
PSG 한 채널에서 LED바 2개를 쓰는거죠~

노이즈만 출력하는 경우는 LED 2개 중 오른쪽 LED로 표시를 하구요.
그 외의 경우는 LED 2개로 보여줍니다.

MMCSD.COM 프로그램에서 GameRunner 모드(/G 옵션)를 사용하면,
슬롯의 PAC-V 카트리지가 인식되는 경우, 비주얼라이저를 쓸지 물어보게됩니다.
아래 사진 보셔요. Y 눌러주면 LED 쇼로 직행~ㅋ


제가 이런저런 게임들 테스트 해보니, 대부분의 경우 메인 BIOS의 루틴을 쓰고있더라구요.
이런 경우는 PSG 비주얼라이저가 동작하니까 신나게 겜을 할 수 있습니다
그 외 몇몇 BIOS 경유하지 않는 게임은 PSG를 직접 컨트롤하기 때문에, 비주얼라이저가 움직이지 않습니다.
워로이드 같은 ASCII에서 발매한 게임인데도 BIOS를 안쓰는 경우가 있었습니다요. 참고하시구요.

MSX에서 BIOS를 통한 S/W 호환성을 외치긴 했지만,
사실 게임에서 속도저하를 막으려면 VDP, PSG, PPI 등을 직접 컨트롤 하는 방법밖에는 없죠. ㅎ.ㅎ;

마지막으로 실제 동작하는 모습을 영상으로 담았습니다.
게임 이것저것 실행하다보니 13분짜리 긴 영상이 되었네요. 그럼, 즐감하셔요! ㅎ.ㅎ







CCL

크리에이티브 커먼즈 라이선스
Yeongman Seo에 의해 작성된 저작물은, 별도의 라이선스 조건이 없는 경우 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

MSX rating & email

ClusterMaps

구글 애드센스 (세로 큰직사각형)

통계 위젯 (화이트)

3543
187
114385

이 이글루를 링크한 사람 (화이트)

19