2019년 5월 1일 수요일

VGMPlay - MMC/SD Drive V4 DCSG 코드 추가

올초 VGMPlay의 새버전이 릴리스 된다는 소식이 있었습니다.

정식버전이 나오면 MMC/SD V4의 사운드 코드를 추가하려했는데...

아직도 릴리스 소식이 없네요. ㅎ.ㅎㅋ


일단 현재 최신코드 기준으로 커밋을 만들어서 올렸습니다.

repo는 github에 별도로 만들었어요.

https://github.com/sharksym/vgmplay-sharksym





원제작자의 vgmplay-msx는 bitbucket에 코드가 있습니다. 참고하시구요.

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





VGMPlay 1.2 이후로 많이 바뀌었습니다.

특히 Franky의 사운드 카트리지의 디텍션이 따로 구현되어있어서,

bitbucket의 최신 코드로는 MMC/SD V4의 DCSG를 쓸 수가 없게되어 있습니다. ㅎ.ㅎ;


DCSG 사운드도 TI SN76489 칩과 SEGA VDP에 내장된 사운드를 구분할 수 있도록 되어있어요.

아시다시피 MMC/SD V4는 TI SN76489 칩이 들어있습니다.


MMC/SD V4 지원되는 코드로 빌드하면, 아래처럼 DCSG 사운드를 들을 수 있습니다.


SEGA VDP 사운드 재생 모습 (MMC/SD V4 한개 사용)





SN76489 x 2개 사운드 재생 모습 (MMC/SD V4 두개 사용)





그리고 최신버전의 VGMPlay에서는 DCSG 사운드를 MSX의 PSG로 에뮬레이션하는 코드가 들어있습니다.

만약 MMC/SD V4가 하나뿐이라면, 듀얼 DCSG 사운드의 경우 아래처럼 구동됩니다.





혹시 궁금한 부분 있으시면 댓글 주세요~ ㅎ.ㅎ


2019년 4월 20일 토요일

IMSP v0.6 (IMS Player for MSX-DOS2) (2019-04-20)


Download: IMSP_v0.6.zip

Download: STANDARD.zip


----------------------------------------------------------------

    IMS Player v0.6 (MSX-DOS2용 IMS 플레이어 2019.04.20)

        By 서영만 <sharksym@hitel.net>

----------------------------------------------------------------


* 변경 내용


  - 기능 추가

    OPLL 사운드 모드 지원



* IMSP


  IMSP는 MSX-DOS2 용 IMS 음악 플레이어입니다.

  MoonSound 호환 OPL4 카트리지를 OPL2 모드로 연주합니다.

  OPL4 카트리지가 없는 경우 OPLL 모드로 전환합니다.

  (OPLL 모드 시, 칩 내장된 악기 사용)



* 요구 사항


  MSX-DOS2, V9938/9958 VRAM 128KB, OPL4 또는 OPLL

  추가 메모리매퍼 사용하지 않음 (TPA 기본 메모리 사용)

  

  주의: IMS 데이터를 VRAM 영역(120KB)에 로딩하므로,

        FontPack ANSI 스크린, Kanji 스크린 등의 그래픽모드에서는

        실행이 불가능합니다. 일반 텍스트 모드를 사용하세요.



* 옵션 사항


  PAC-V/XII-V 카트리지가 있으면 LED 비주얼라이저가 동작합니다.



* 사용법


  PATH 걸린 디렉토리에 파일을 복사하시면 됩니다.

  IMSP.COM 및 STANDARD.BNK 두개를 복사합니다.

  DOS2 프롬프트에서 IMSP Filename으로 실행합니다.

  ESC키를 누르면, 프로그램 종료합니다.


2019년 4월 13일 토요일

M의 IMS 플레이어에 가사(ISS)를 출력해보아요~

M에 내장된 IMS 플레이어는 #IMSP라는 이름으로 들어있습니다.

IMSP.COM 으로된 별도 프로그램도 존재하니까 참고하시구요.

아래 링크를 보시면 되겠네요~ ㅎ.ㅎ

https://sharksym.blogspot.com/2019/04/imsp-v06-ims-player-for-msx-dos2-2019.html



관련 루틴이 무겁다보니, 터보알 고속모드에서만 제대로 구동이 됩니다.

#IMSP는 십년가까이 기능개선 없이 M에 내장되어있었습니다.


최근 X-II에 XII-V와 OPL4 카트리지를 내장하고 보니, #IMSP가 좀 아쉽더라구요ㅋ

그래서 최적화 삽질을 하게되었습니다~


IMS 코드 및, ADLIB 라이브러리를 모두 어셈블리로 바꾸는건 무리구요.

성능에 영향이 많이 가던 메모리 핸들러를 개선하고,

어셈블리를 좀 섞어서 상당히 속도 개선이 되었습니다.


이젠 R800 고속모드에서는 CPU 여유가 꽤 나옵니다.

그래도 일반 Z80 3.58MHz에서는 조금씩 버벅거리네요ㅋ

그럭저럭 들을만한 수준은 됩니다요~ ㅎ.ㅎ



R800 고속모드에서 여유가 생기면, 뭘 해야될까요?

당근 ISS 가사 출력 아닐까요? ㅎ.ㅎ

후딱 구현해서 돌려봅니다.

사실 ISS 루틴은 오래전부터 M에 들어있었어요. (속도가 느려서 켜지못하는 슬픔...)


문자 출력 부분도 좀 더 최적화해주니 제대로 돌아가네요!

ISS 가사는 M의 하단 윈도 두줄로 출력됩니다.

타이밍 맞춰서 색칠도 되구요. 노래방~ ㄱㄱ





ISS 출력은 고속모드에서만 자동으로 켜지도록 되어있습니다.

물론 ISS 파일이 존재하는 경우에서요~


그럼 실제 동작하는 모습을 영상으로 보시죠~

음악 저작권 문제때문에 유투브에서 짤릴수도 있으니, 참고하시구요. ㅎ.ㅎ






#IMSP 개선된 부분은 조만간 코드 정리되면 M v2.7 릴리스에 포함될 예정입니다.

기존의 별도 프로그램으로 된 IMSP.COM / IMSP4.COM은...

IMSP.COM 하나로 통합해서 OPLL 또는 OPL4를 지원할 예정입니다.


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