본문 바로가기
컴퓨터하드웨어

RETROWAVE OPL3 - OPL3 플레이어 및 도스박스 패스스루 기기

by 월반장 2021. 6. 12.

RetroWave OPL3 는 OPL3(YMF262)칩을 현세대기에서도 사용가능하게 만든 기기입니다.

 

OPL3가 풍미한 시대는 1990년 초중반으로 도스게임에 많이 사용되었지요.

 

지금와서 도스게임의 사운드를 제대로 즐기기 위해서는 ISA나 일부 PCI사운드카드가 필요한데 현세대기에서 구동시키기는 참 어렵습니다. 된다고 해도 32비트 운영체제를 사용해야하거나 64비트도 가능은 합니다만 메인보드가 지금에서는 꽤 구형이어야 합니다.(인텔기준 3세대 정도)

 

이런 와중에 이 사운드를 기억하는 많은 사람들이 많이 연구해왔고 많은 발전이 이루어졌습니다. 

 

바다건너 일본의 세트로 거진 백만원은 우숩게 나가는 기기라던지...

 

작년에 소개한 OPL3DUO 혹은 모님께서 공제해주신 OPL2 보드도 있구요. 

 

이 기기들은 VGM플레이어로 VGM/VGZ 과 같은 파일을(opl2/3) 구동할 수도 있고,

도스박스의 패스스루 기능을 이용할 수도 있습니다.(예 : dosbox-x)

 

이번에 구입하고 사용해본 기기도 동일합니다. 전용플레이어도 있고, DOSBOX-X 에서 패스스루로 OPL2/3 호환게임을 도스박스의 에뮬기능을 이용하지 않고 패스스루해서 YMF262로 출력시킬 수 있습니다.

 

여기서 OPL3DUO 관련으로 제가 쓴 글을 보신 분은 

 

"왜 또 산거야?" 라고 하실 수 있습니다.

 

저 기능들은 OPL3DUO 로 충분했거든요.

 

네 충분합니다. 충분한데요. 이 충분하다는 점이 최적의 상황에서만 충분하다는게 불만이었습니다.

 

아두이노를 사용하는 OPL3DUO는 아두이노 보드와 메인보드에 달린 USB 포트 조합으로는 음이 늘어진다던지 흐름이 걸리는 느낌이 있다던지 해서 

 

호환 아두이노 보드이고 속도가 더 빠른 Teensy4.0와

ASMEDIA의 asm1142 칩 이상 급과 조합해야 충분합니다. (asm 2142, 3142, 3242)

(인텔이나 AMD 라이젠 메인보드에 내장된 USB 3.1 Gen2 에도 문제가 있어서 별도 확장카드를 달아야 합니다. 제가 쓴 관련 글을 보시면 인텔 NEC VIA 등 별의 별 카드로 다 테스트한 내용이 있습니다.)

 

asm1142는 USB 3.1 Gen2(=3.2 Gen1x2, Gen2x1) 의 10Gbps 칩셋으로

OPL3DUO는 5Gbps의 초기 usb3.0 으로는 최적의 성능을 내지 못합니다. ( USB2.0은 심하게 딜레이가 나옵니다.)

정확히는 OPL2와 OPL3 게임은 괜찮지만 OPL3 스테레오를 지원하는 게임에서 버벅인다던지 걸리는 느낌이 나는 등의 문제가 있습니다.(디센트의 OPL3 스테레오 설정을 해서 테스트 합니다.)

 

일단 제 상황에서 이런 것은 불만이 많은 부분인데요.

Teensy4.0 의 경우 이 보드를 사용해야 미디인터페이스 기능까지 완전히 사용할 수 있어서 OPL3DUO 개발자가

공인한 기기이지만 USB의 경우 신경을 많이 쓰이게 하는 쪽입니다.

 

제 메인보드인 x570 메인보드가 asm1142, 2142, 3142 확장카드를 달면 부팅을 못하는 희한한 문제가 있고(구형 바이오스에서만 정상작동) asm3242가(3.2 Gen2x2 20Gbps) 다행히 작동하는데 슬롯을 다 채워 사용할 수 밖에 없는 상태다 보니 이 확장카드를 NVME에 컨버터를 달아서 PCIE4.0 연장 케이블을 통해 연결한 상태입니다.

 

"뭐 어때 그렇게 사용하면 되지 않나?"

 

할 수 있겠습니다만 저 NVME에는 SSD 달고 싶습니다. 진짜로요...

더해서 왠지 연장케이블 때문에 몇 달에 한 번 드라이브도 풀리는 느낌이고 (정확하진 않습니다.)

외관상 또 보기도 싫더군요.

 

그러던 중에 DOSBOX-X 0.83.13 버전을 살펴보던 중 OPL2/3 설정 관련 부분에서 

 

RetroWave OPL3 이 추가되었더군요. 정보를 보니 STM32개발보드와 연결해서 사용하는 OPL3 사운드카드였습니다.

 

OPL3DUO는 아두이노보드와 연결하는데 풍문으로 듣기로는 STM32이 좀 더 같은 환경에서 안정적일 수 있다는 말을 들은 적이 있어서 바로 구입했습니다.

 

https://www.tindie.com/products/sudomaker/retrowave-opl3-sound-card/

 

RetroWave OPL3 Sound Card by SudoMaker on Tindie

REAL OPL3 sound card for the modern vintage at your fingertip

www.tindie.com

 

일단 RetroWave OPL3는 단독으로는 사용이 불가능합니다. 라즈베리파이 혹은 위에 언급한 STM32개발보드가 필요한데 다행히 개발자가 전용 STM32보드도 함께 팔고 있습니다.

*라즈베리파이에 연결 시 USB 어뎁터 기능도 가능한지는 모르겠네요.

걍 합체해서 팔면 안되는 건가 싶긴한데 개발자의 글들을 읽어보니 확장성을 생각하고 있더군요.

 

RetroWave OPL3와 전용 STM32보드 및 배송비를 포함하면 64달러정도(지금은 보드 버전업으로 가격이 올라서 70달러쯤 됩니다.)가 됩니다. 배송은 한 달 걸리더군요.(개발자가 중국인이라 중국서 출발하는데 꽤나 오래 걸리는 느낌입니다.)

 

더해서 나중에 펌웨어가 업그레이드 되면 STM32보드에 업데이트를 해주어야 하는데 이것을 위해서는 ST-LINK라는 기기가 또 필요합니다. 이 기기는 정품은 몇만원 줘야 하지만 호환품은 5~6천원이면 구입할 수 있습니다.

(ST-LINK는 국내서 구입)

 

 

제품은 아래와 같습니다. 전용 개발보드와 딱 맞게 합체되어 왔습니다.

상단의 핀들은 라즈베리파이와 호환됩니다.

좌측끝에 보이는 것이 3.5파이 스테레오출력단자, 좌측상단이 볼륨, 우측 끝이 USB입니다.

USB단자는 STM32개발보드에 달려 있습니다.

측면입니다. 이렇게 사운드카드와 개발보드가 합체한 상태입니다. 이 상태로 오더군요.

뒤집어 보았습니다.

*자세히 보시면 볼트가 육각입니다.... 뭔 생각으로 육각으로 해둔건지 모르겠더군요. 집에 저거 풀 장비가 있으니 망정이지...

측면 2번째 입니다. 

 

두 보드를 분리해보았습니다. 육각볼트이므로 아래 우측의 2번을 이용했습니다.(2파이인가? 크기 규격을 모르겠네요.)

 

아래 스샷의 하단의 개발보드 이름은 포테이토파이 라이트 .... 은근히 이런 작명센스가 보이더군요.

상단의 RetroWave OPL3 보드는 버전 2.0입니다. 

현재 3.0을 거쳐 3.1로 버전업 되었습니다. 출력측 필터와 다중보드이용기능을 넣었다고 하던데 덕분에 지금은 6달러인가 올랐습니다.

 

RetroWave OPL3 확대 샷

중앙 하단에 버브라운의 OPAMP 칩이 있습니다. 이 칩이 OPAMP역할인데 이 칩의 성향 때문인지 모르겠으나 OPL3DUO보다 저음부가 더 느껴집니다.

 

 

STM32 개발보드의 확대샷 

 

아래는 STM32 개발보드의 핀아웃쪽입니다. ST-LINK와 연결되어 프로그래밍 할 수 있습니다.

펌웨어를 업데이트 할려면 필요합니다. 

 

ST-LINK 호환품은 아래와 같이 생겼습니다. v2로 샀는데 최신의 STM32 프로그래밍 유틸과는 펌웨어 문제로 호환이 안되어 펌웨어를 업그레이드 해주어야 합니다. 이것은 아래 사용 설명 중에 알려드리겠습니다.

이런식으로 연결, 케이블은 동봉되어 있습니다.

DIO와 SWDIO, CLK와 SWCLK 를 연결, GND그대로 GND에,  3v3은 3.3v에 연결

 

아래는 펌웨어 다운로드/업데이트 소개입니다.

 

우선 개발보드인 포테이토파이 라이트와 위에서 언급한 ST-LINK를 연결한 후 ST-LINK의 USB단자를 컴퓨터에 연결합니다.

그리고 개발보드에 펌웨어를 다운로드 해 봅니다.(펌웨어 업데이트)

 

*개발보드 구입시 RetroWave OPL3를 컴퓨터의 USB여 연결해 사용할 수 있는 RetroWave OPL3 USB Adapter 펌웨어를 미리 담아달라고 옵션에서 선택할 수 있습니다만 추후 업데이트도 필요하니 먼저 소개해봅니다.

 

펌웨어는 아래에서 다운로드 

https://github.com/SudoMaker/RetroWave_USB_Adapter

 

SudoMaker/RetroWave_USB_Adapter

Contribute to SudoMaker/RetroWave_USB_Adapter development by creating an account on GitHub.

github.com

소스코드를 손수 컴파일 할 필요는 없고 우측 릴리즈를 클릭하면 컴파일된 파일들이 나옵니다. 

 

BIN이라던지 HEX 등을 다운로드 하시면 됩니다.

https://github.com/SudoMaker/RetroWave_USB_Adapter/releases

 

Releases · SudoMaker/RetroWave_USB_Adapter

Contribute to SudoMaker/RetroWave_USB_Adapter development by creating an account on GitHub.

github.com

 

 

STM32개발보드용 프로그램 유틸은 저는 STM32CubeProg를 사용했습니다.

https://www.st.com/en/development-tools/stm32cubeprog.html

 

STM32CubeProg - STMicroelectronics

STM32CubeProg - STM32CubeProgrammer software for all STM32, STM32CubePrg-W32, STM32CubePrg-W64, STM32CubePrg-Lin, STM32CubePrg-Mac, STMicroelectronics

www.st.com

 

 

설치 후 실행해보면 아래와 같습니다.  ST-LINK도 연결하지 않은 상태입니다. (연결하고 실행하세요.)

 

위의 화면에서 오픈파일을 클릭하고 펌웨어를 불러옵니다.

 

 

펌웨어가 불러지면 우측의 커넥트를 눌러서 개발보드와 연결합니다. 

 

하지만 STM32CubeProg와 ST-LINK가 버전이 맞지 않는 경우 아래와 같이 오류가 납니다.

 

ST-LINK의 펌웨어가 구형이라 나타나는 문제로 아래와 같이 펌웨어 업데이트를 통해 해결합니다.

*혹은 STM32CubeProg를 구형버전으로 다운 받으세요.

 

https://www.st.com/en/development-tools/stsw-link007.html

 

STSW-LINK007 - STMicroelectronics

STSW-LINK007 - ST-LINK, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 boards firmware upgrade, STSW-LINK007, STMicroelectronics

www.st.com

위의 사이트에서 파일을 다운로드 받습니다.(2021년 6월 현재 최신이나 시일이 지나면 다를 수 있으니 사이트에서 최신을 검색하세요.)

 

펌웨어 업데이트 프로그램을 실행하면 아래와 같습니다.

 

 

디바이스 커넥트를 눌러서 진행하는데

아래와 같이 오류가 나올 수 있는데 당황해하지 마시고 ST-LINK를 뺏다가 다시 연결해보세요.

제대로 연결되면 YES를 눌러 업데이트 합니다. 

 

 

이후 STM32CubeProg 에서 커넥트를 누르면 아래와 같이 연결이 성공합니다.

 

 

이후 다운로드를 클릭하여 업데이트 하면 되는데

No stm32 target found가 뜨는 경우가 있습니다.

이럴 때는 보드를 컴퓨터 USB단자에서 때었다가 다시 삽입 혹은 ST-LINK에 연결된 3.3v 핀을 다른 핀으로 변경후 재연결해보세요. (3.3v 핀이 2개가 있습니다.)

 

완료되면 아래와 같이 뜹니다.

 

 

준비가 다 되었으면 본격적으로 사용해보겠습니다.

 

먼저 개발자가 전용플레이어라고 내놓은 프로그램이 있습니다.

RetroWave Player 으로 VGM 및 VGZ파일을 구동시킬 수 있습니다.

https://github.com/SudoMaker/RetroWave

 

SudoMaker/RetroWave

Authentic sounds from vintage sound chips, on modern hardware! - SudoMaker/RetroWave

github.com

역시 소스코드를 직접 컴파일 할 필요 없이 릴리즈를 눌러 다운로드 받으면 됩니다. 

https://github.com/SudoMaker/RetroWave/releases

 

Releases · SudoMaker/RetroWave

Authentic sounds from vintage sound chips, on modern hardware! - SudoMaker/RetroWave

github.com

다운로드후 명렴프롬프트를 실행합니다. 

 

*실행시 플레이어의 폴더가 C: 루트에 있으면 실행시 사운드가 출력되지 않습니다.

다른 드라이버나 바탕화면 다운로드 폴더 등을 이용하세요.

 

 

Retrowave_player.exe 파일명.VGM 혹은 VGZ 가 기본 사용방법입니다. 

옵션 중 중요한 것은 -D 로 보드가 연결된 시리얼포트를 지정해 줄 수 있습니다.

제어판의 장치관리자에서 포트(COM & LPT)에서 자신의 시리얼포트 번호를 확인합니다.

제 컴퓨터에서는 USB 직렬 장치(COM7)로 나옵니다. 

Retrowave_player -d COM7 1.vgz 로 실행하는 스샷입니다.

COM은 반드시 대문자로 적으세요.

 

 

아래부터는 도스박스 실행법입니다.(DOSbox-X를 사용해야 합니다.)

아래 링크에서 다운로드 받습니다.

 

https://github.com/joncampbell123/dosbox-x/releases/tag/dosbox-x-v0.83.14

 

Release DOSBox-X 0.83.14 2021-06-01 02:25 · joncampbell123/dosbox-x

Note: Installation instructions are available from the INSTALL page. Also, always check out the DOSBox-X homepage for latest updates. You can also see the release notes here: DOSBox-X 0.83.14 Relea...

github.com

 

압축을 풀고 첫 실행시 설정파일이 담길 폴더를 찾는데 도스박스 폴더 그대로 적용해줍니다. 

 

이후 도스박스가 뜨면 Main-Configuration Tool 을 클릭해 줍니다. 

아래 화면이 뜨면 sound blaster을 클릭 

 

아래 화면에서 2가지를 수정합니다. 

oplemu를  retrowave_opl3 

retrowave_port 를 자신의 시리얼번호로 수정 (미리 언급한 대로 제어판의 장치관리자에서 확인하면 됩니다.)

제 환경에서는 COM7 입니다. (소문자로 써서 적용이 안되면 대문자로 작성하세요.)

모두 수정되었으면 세이브-세이브 

 

이 외에 dosbox-x.conf를 직접 수정해도 됩니다.

*처음 실행시에는 dosbox-x.conf 파일이 없어서 위의 스샷들 처럼 세이브를 해야 생성됩니다. 

파일을 메모장으로 열고 [sblaster] 를 찾아 갑니다. 

역시 동일하게 수정해 줍니다. 

 

 

아래는 구동 영상입니다.

 

테스트 게임은 디센트이며 설정은 OPL3 스테레오입니다. 

OPL3DUO 보드가 OPL2나 OPL3는 정상이나 OPL3 스테레오에서는 매우 민감하게 장치를 따지다 보니 

디센트의 해당 설정으로 테스트 합니다.

 

라이젠 3700x + x570 보드의 usb 3.1단자에 물렸습니다.(=usb 3.2 gen2 정말 이 버전 바꿈질은 짜증이 나는군요.)

 

 

 

그리고 아래처럼 동일 사양에서 메인보드의 USB 2.0 에서도 이상없이 잘 구동되었습니다.

OPL3DUO가 usb 버전이나 칩셋에 매우 민감한 부분과 달리 완만합니다.

 

 

 

단 컴퓨터 사양이 낮을 경우 USB2.0에서 지연이 나타납니다.

아래부터는 인텔 샌디브릿지 2600K에 Q77 메인보드 조합입니다. 

*윈도우10 32비트와 64비트 모두 테스트했습니다.(윈도우10 버전은 2021년 6월 현재 최신업데이트 적용)

 

아래는 윈도우10 32비트

아래는 윈도우10 64비트 

 

 

동일 조합의 인텔에서 USB 3.0은 2.0보다는 좋습니다 다만 약간 걸리는 느낌이 납니다.

 

아래는 윈도우10 32비트 

아래는 윈도우10 64비트 

 

 

하지만 DOSBOX-X는 저사양용이 있습니다. Mingw Lowend 라고 되어 있는 것을 사용해 보면 아래와 같습니다.

위의 언급한 문제들이 개선되면서 쓸만해집니다. (USB2.0 제외, 이건 컴자체가 고사양이어야 해결됩니다.)

*테스트 해보니 대체적으로 vsbuild, SDL2를 사용한 것은 사양을 타는 편입니다.

 

인텔의 최신 사양을 가진게 없다보니 가지고 있는 최신 사양은 라이젠 3700x 입니다. 

일단 최신사양의 컴퓨터에서는 usb2.0 에서도 정상적으로 디센트의 OPL3 스테레오 출력이 구동됩니다. 

 

 

특이한 것은 ASM1142~3242 에서는 지연이 나타납니다. OPL3DUO는 정상인 USB칩인데

오히려 RETROWAVE OPL3에서는 문제가 있더군요.

제가 쓰는 바이오스타 라이젠 x570 보드의 usb 3.0의 경우 asm1142가 들어가 있는 것으로 알고 있습니다.(장치는 AMD usb 3.0으로 나타납니다.)

같은 칩에서도 양상이 다른것을 봐서는 메인보드내장형은 문제가 없는 건가 싶기도 하네요. 

샘플로 사용할 x570 메인보드가 하나 더 있으면 비교가 더 정확하겠습니다만 없다보니 이런 부분의 테스트는 어려웠습니다.

 

 

 

 

그리고 위에서 언급한 전용 VGM 플레이어 테스트 입니다. 

 

아래 사용한 VGM/VGZ파일을 아래 공유합니다.(제목을 단순하게 번호로 해두어서 구분이 힘들긴 한데 몇 곡 없어서 ...)

RetroWave.7z
1.59MB

 

소서리안 

 

 

젤리아드

 

 

 

스노우브로스 

 

 

여기서 전용플레이어에서 문제가 나타납니다. 위 영상은 스노우브로스 41~49 스테이지의 BGM인데 

원곡과 비교하면 차이가 있습니다.

 

아래는 도스박스에서 도스용 VGM플레이어로 출력시킨 같은 파일입니다. 

도스용 플레이어도 공유합니다.

SBVGM137.ZIP
0.31MB

 

 

아래가 원곡

 

도스박스에서 도스용 VGM플레이어로 출력시킨 것이 원곡과 흡사합니다.

 

아래는 도스박스에서 출력시킨 나머지 VGM 파일들입니다.

 

소서리안

 

 

젤리아드

 

 

전용 플레이어의 버전이 0.0.1인 만큼 개선되겠지요...

 

 

마지막으로 아래는 OPL3DUO와 최대볼륨에서의 비교입니다.

(OPL3DUO는 헤드폰과 라인아웃 출력단이 있고 헤드폰쪽이 더 증폭되는 부분입니다. 그래서 헤드폰쪽으로 비교)

* RetroWave OPL3의 라인아웃과  OPL3DUO의 라인아웃 단은 출력게인이 거의 비슷했습니다.

비교 게임음악은 디센트의 OPL3 스테레오 입니다.

OPL3DUO 헤드폰 단자 볼륨을 최대로 한 상태에서 RetroWave OPL3의 라인아웃단 보다 20데시벨 정도 높기 때문에 

레트로웨이브는 노멀라이즈 설정으로 비슷하게 맞춰 주었습니다.

아래 스샷에서 상단이 OPL3DUO, 아래가 RetroWave OPL3 입니다. 

헤드폰과 라인아웃단 비교라 당연하겠습니다만 한 눈에 출력게인의 차이가 보입니다. (둘다 최대 볼륨 상태)

 

먼저 OPL3DUO에서 출력

 

아래는 동일한 게임의 RetroWave OPL3  출력 

 

 

잘 들어보면 RetroWave OPL3 쪽이 저음부가 강하다고 해야하나요 풍성한 느낌이 있습니다.

OPAMP의 성향이 아닌가 생각합니다.

 

그리고 잡음비는 아래와 같습니다. 

RetroWave OPL3

아래 스샷에서 보셔야할 부분은 RMS가 되겠습니다. 

실효치 잡음으로 짧은 구간에서는 평균적은 잡음정도로 이해할 수 있습니다.

좌우 -80데시벨 입니다. 시끄러울 정도로 크게 켜지 않는한 잡음이 없는 수준입니다. 

 

OPL3DUO입니다. -75데시벨 정도로 역시 시끄러울 정도로 크게 켜지 않는한 잡음이 없는 수준입니다. 

 

단 주의할 것은 최대볼륨에서 차이가 있다는 점입니다. 20데시벨정도 OPL3DUO가 높다보니 이점을 감안해야겠고 OPL3DUO는 헤드폰출력단을 측정한 것으로 라인아웃단은 RetroWave OPL3와 차이가 없습니다. 기본적인 잡음정도는 비슷하다고 봐야 겠습니다.

 

 

결론적으로 사양만 되면 USB2.0에서도 잘 되고, 메인보드의 내장된 USB3.0 이상급의 포트에서는 비교저 저사양(샌디브릿지 2600k)에서도 잘 작동하는 편입니다.(뭔가 걸리는 느낌이 없지는 않습니다만...)

최신의 라이젠 시스템에서는 USB2.0이나 3.0 이상 급에서 문제 없이 사용할 수 있었습니다.

인텔도 최신 사양에서는 동일하지 않을까 추측합니다.

제 입장에서  OPL3DUO보다 USB 칩셋에 덜 민감하다는 점은 큰 장점이 되겠네요.

다만 OPL3DUO보다 출력게인이 낮은 것이 단점이겠으나 라인아웃단은 동일하므로 받는 측에서 신경을 써주면 문제가 될 것이 없고(중간에 믹서 등으로 증폭해주거나 사운드카드/오디오인터페이스로 증폭 가능) 크기도 작아서 좋은 선택이 되겠습니다. 

 

끝으로 OPAMP 성향인지 몰라도 더 풍부하게 들리는 게 있습니다. 

이 부분은 청각이 워낙 주관성이 강해서 착각일 수도 있습니다. 위의 비교군에서 들어보시고 차이를 느낀다면 맞는 셈이겠지요.

댓글