2024년 3월 2일 토요일

지난 20년 개발의 추억 #7 - AudioFactory

월간 추억팔이 #7편이 나왔습니다~ ㅎ.ㅎ


이전글을 보시려면, 아래 링크를 눌러주세요!

https://sharksym.blogspot.com/2023/07/20-1.html

https://sharksym.blogspot.com/2023/08/20-2.html

https://sharksym.blogspot.com/2023/10/20-3.html

https://sharksym.blogspot.com/2023/10/20-4-mmcsd-drive-v3.html

https://sharksym.blogspot.com/2023/11/20-5-paramsx-r.html

https://sharksym.blogspot.com/2024/01/20-6-paramsx-r-v11.html



2017년, MMC/SD V3를 3년째 쓰고 있군요~~

아시다시피 구버전(V2.x 등)에서 롬매퍼+사운드를 담당하던 SCC칩이 V3에서 제거되었습니다.


당시에 SCC-I 카트리지 또는 사운드 전용으로 개조한 SCC 카트리지를 쓰는 분이 많아서,

V3에 외부 SCC 사운드를 지원하는 방식으로 바뀐 것 자체가 큰 문제는 아니었는데요.

근데 이 방식은 기존 프로그램을 MMCSD가 자동패치해서 구동하는 방식이라서, 지원이 완벽하지 않다는 문제가...

암튼 다음번 MMC/SD V4에서는 SCC 사운드를 구현해서 넣기로 계획을 합니다. 흙흙...


좀 여담이지만...

2000년초에 레트로 사운드가 유행하면서, 각종 PSG, FM 계열의 에뮬로 뮤직플레이도 함께 유행했는데요.

저는 주로 윈도용 윈앰프를 썼는데, KSS, MGS 등의 음악 파일을 윈도에서 바로 들을 수 있어서 좋았지요.

그 때 윈앰프용 IMS 플러그인도 제가 만들었는데, 기억하시는 분들 계실지 모르겠네요ㅋ

회사에서 개발하면서 이어폰 꽂고 칩사운드를 즐기는 것도 나름 맛이 있었어요.


근데, 작년(2016년)에 MSX계에 어떤 S/W가 혜성처럼 등장하게됩니다. 바로 VGMPLAY

제가 GT를 쓰면서 MIDI, MP3 음악을 듣거나, 게임 오프닝을 보면서 사운드를 즐기는 경우가 많았거든요.

이젠 MSX용 VGMPLAY가 나오면서, PSG, SCC, OPLL, OPL4, DCSG 등 본체의 사운드 칩으로 음악을 쉽게 즐길 수 있게 되었네요.

실기를 켜는 즐거움이 2배로 더 늘어났다고 하면... 조금 과장이려나요? ㅎ.ㅎ


서론이 길었는데, 그렇게 AudioFactory 프로젝트가 시작됩니다.



13 AudioFactory


이름만 봐도 아시겠지만, 사운드 통합 기기가 되겠습니다.

현재 제가 쓰는 MSX 환경에서 슬롯 점유를 최소화하고 필요한 사운드를 추가하는 것이 목표입니다.



13.1 SCC-I


MMC/SD V4에 넣기 위한 SCC-I 에뮬입니다.

사운드만 넣어도 되겠지만, 어차피 슬롯 한개를 점유하는 기기니까... SCC-I 메모리도 128KB FULL로 넣어봅니다.



13.2 DCSG (SN76489)


세가 게임(오락실 기판 및 게임콘솔)에서 주로 쓰였는데요. 이제 MSX에서도 VGM 음악으로 즐길 수 있습니다.

저는 현재까지는 DCSG가 들어있는 SEGA VDP 카트리지(Franky)를 쓰고 있습니다.

이걸 대체하기 위한 DCSG(SN76489) 에뮬이 되겠네요.



13.3 Sec-PSG


일명 세컨더리 PSG가 되겠습니다 ㅎ.ㅎ

이쪽은 활용도가 높진 않지만, 오락실 기판에서 PSG 여러개를 쓰는 경우에 VGM 플레이를 즐길 수 있구요.

그 외 Sec-PSG를 쓰는 자작 게임에서도 활용할 수 있겠습니다요.



13.4 OPM (YM2151)


MSX용 기본 사운드는 아니지만, 야마하 뮤직 컴퓨터에서 사용된 SFG 카트리가 있습니다. 여기에 OPM이 포함되어있어요.

Memory Mapped I/O로 되어있어서 SCC-I랑 슬롯이 겹치니까, 이걸 넣으려면 고민을 좀 해야겠는데요.

근데 막상 기존에 즐겨듣던 VGM들이 OPM + ADPCM로 구성된 경우가 대부분이라, OPM 하나만으로는 그닥 쓸모가 없겠더라구요.

고민할 필요도 없이 OPM 기능은 삭제합니다 ㅎ.ㅎ



13.5 프로토타입 제작


paraMSX-R에서 쓰였던 보드 한장을 개조해서 만들어봅니다.




열심히 에뮬을 구현해보아요~ ㅎ.ㅎ

로직 소모를 줄이기 위해 짱구를 요리조리 돌려서 VHDL 코딩을!

기존의 음악환경에서 불편했던 것들이 해결되니 좋네요. 특히 DCSG 때문에 큼지막한 Franky를 꽂아둘 필요가 없어져서 최고!ㅋ


근데, 갑자기 이런 생각이 머리를 스칩니다.

MMC/SD V4에 SCC-I와 DCSG, Sec-PSG 에뮬을 몽땅 넣으면 어떨까? 으흠...



암튼, 요렇게 AudioFactory 프로젝트는 종료됩니다.

참고로, 이 기기는 제가 다른 분들에게 제작해드린 적은 없습니다.

아마 나중에 만들어지는 기기들을 보시면, 이유를 알 수 있을거에요 ㅎ.ㅎ/


.

.


2017년에 재밌는 작업을 했던 게 있어서 하나 더 적어봅니다.


IOBox라는 건데요.

이건 별도의 주변기기를 의미하는 것은 아니고 시리얼 포트를 활용한 프로그램입니다.


MSX에서 VGMPLAY를 쓰다보니, 예전 486 도스에서 썼던 SOP 음악이 생각나더라구요.

OPL3를 사용하는 음악이라서 재밌는 것들이 많았는데, MSX에는 SOP 플레이어가 없죠 ㅎ.ㅎ


그래서, 요상한걸 하나 구상하게 됩니다.

윈도의 DOSBOX 프로그램을 수정해서 OPL3 I/O를 MSX로 전송해서 들어보면 어떨까? 였죠.


PC와 MSX 간의 통신은 RS-232C 카트리지를 사용합니다.

DOSBOX의 OPL3 에뮬코드에 시리얼포트로 데이터 입출력을 넣습니다.

사실 이건 예전에 TV 내장된 리눅스용 paraMSX 에뮬에서 썼던 방식이긴합니다.

그 때는 PSG와 키보드(PPI) I/O를 본체쪽으로 시리얼포트를 이용해서 구현했었죠.


암튼 그렇게 구현해서 만든 DOSBOX용 외장 리얼 사운드카드가 되겠습니다.

PAC-V의 불꽃쇼도 나오면 좋으니, 함께 넣어봅니다ㅋ



아래는 NOTEW 프로그램으로 SOP 음악을 재생하는 모습이네요.




요렇게 2017년은 마무리되었습니다.


그럼, 다음편에서 뵙겠습니다! ㅎ.ㅎ


댓글 없음:

댓글 쓰기