2016년 12월 17일 토요일

HI-TECH C 용 BGM 라이브러리 만들기 #4 - FM 지원

기존 BGM 루틴에 FM 사운드도 추가하였습니다.

여기서 FM은 MSX-MUSIC(YM2413-OPLL) 칩을 의미합니다요.

왠만한 후기형 MSX2/2+에는 MSX-MUSIC이 내장되어있어요.

물론 turbo R에서도 지원되구요.


MSX-MUSIC은 두가지 동작 모드가 있어요. 멜로디/리듬 모드인데요.

멜로디 모드는 9채널 모두 멜로디 악기로 동작하는 모드이고,

리듬 모드는 마지막 3채널(7,8,9번)을 리듬 악기(5가지)로 구동하는 모드입니다.


아마 20여년전에 BASIC으로 구동해보셨던 분 많으시죠? ㅎ.ㅎ

이제 C로 한번 해보셔요~ㅋㅋ


그리고 라이브러리 내에서 CPU 모드를 체크해서, 칩 액세스 타이밍을 적절하게 세팅합니다.

Z80 일반모드, R800 고속모드 상관없이 자동으로 처리되니까 참고하세요.



그럼, 이쯤에서 1편에서 나왔던 요구사항을 점검해봅니다.


1. 배경음악 재생

2. 효과음 등의 사운드 믹스

3. PSG 구동

4. OPLL 구동

5. MML 사용


오홍~ 대충 완성이군요. ㅎ.ㅎ

유X군님께, 올 연말까지 라이브러리 정리해드리기로 약속했는데...

미션 성공이네요. 만세~!



백문이불여일견! 소리를 들어보겠습니다요! (쓰고보니 반대네요~. 백견이불여일문? ㅋ)

듣기전에 기존 테트리스 프로그램의 PSG, FM 채널 설정부분의 코드를 잠깐 보시지요.




BGM 채널 0,1,2는 PSG로 출력이 되구요.

채널 3,4,...,11은 FM으로 출력이 됩니다.


만약 FM 리듬모드를 켜면,

채널 3,4,...,8는 FM 멜로디 출력

채널 9는 FM 리듬 출력으로 처리됩니다.



그럼, 동작 영상 나갑니다~

PSG/FM 테스트 프로그램과 테트리스 구동 모습입니다.





그럼, 즐거운 주말되세요!


댓글 없음:

댓글 쓰기