ymfspdif.7z
0.53MB

최근에 구글링을 하다가 발견했습니다. 

 

자주 가는 http://rayer.g6.cz 사이트와 VOGONS에서 정보를 얻었네요. 

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

a simple utility that enables S/P-DIF output on Yamaha YMF72x/73x/74x/75x PCI soundcards under DOS. It also allows you to read and write MMIO DSP registers. Without any parameter it displays current setting according to PCI configuration registers. 

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

http://rayer.g6.cz/programm/programe.htm

 

보곤스는 

https://www.vogons.org/viewtopic.php?f=62&t=49489&start=60 

참조 

 

원리는 간단하더군요. SPDIF가 비활성화된 MMIO base address 와 활성화된 base address를 비교해서 찾은 모양입니다. 설치된 카드의 MMIO base address에서 0x0018 만큼의 위치에서 0x1 bit로 변경해주면 됩니다. 

 

RayerR와 Stretch 님이 각기 방법을 공개하였습니다. 

 

Stretch 은 PCI 장치들의 속성을 찾아 Peritool로 변경하는 방법을 사용하였습니다.

 

순서는  먼저 YMF7x4 카드를 설치하고(SPDIF 단자가 달렸거나 헤더가 있는 제품이어야겠지요.)

 

그 다음 PCI.EXE나 SMB.EXE, PCIVIEW.EXE 등을 이용해 MMIO 주소를 확인해야 합니다.

 

위의 파일들 모두 첨부해두었습니다.

*cwsdpmi.exe가 없다고 나올 경우를 대비해 cwsdpmi.exe도 함께 압축하였습니다. 

 

아래가 PCI.EXE를 실행해 찾은 모습 

실행 뒤 다음 화면은 엔터를 치면 넘어갑니다. 몇번 넘기면 야마하라고 나옵니다. 

저는 해당 주소가 EB000000h 입니다. 화면 중간쯤에 보이네요.

 

 

아래는 SMB.exe로 찾은 것

SMB /pci 로 옵션을 주셔야 합니다. 이건 그냥 쫙 지나가기 때문에 브레이크(Pause)버튼 눌러서 멈추고 다시 아무키 눌러서 내리고 다시 멈추고 반복해야 합니다. 걍 PCI.exe가 편하네요.

역시 EB000000h가 보이네요.

 

 

아래는 PCIVIEW.EXE를 실행한 것 야마하코퍼레이션이 보이는군요.

이 상태에서 F1을 눌러줍니다.

 

F1을 누르면 아래 화면이 나오는데 다시 F1을 눌러가면서 야마하코퍼레이션이 나올때까지 눌러줍니다. 

 

야마하가 나오면 F3을 눌러줍니다.

 

그럼 아래 화면이 나옵니다. EB000000가 보이네요.

주소를 찾았으면 Peritool로 편집해주어야 합니다. 

 

Peritool 폴더로 들어가면 PT.EXE가 보입니다.(첨부한 압축파일에 다 포함되어 있습니다.)

 

PT.exe MEM write 1 0xEB000018 0x1

 

*MEM은 반드시 대문자여야 합니다. 

EB000000에 0018을 더해준 위치를 00에서 01은 편집하는 것입니다. 

 

엔터를 누르면 허무하게 끝나면서 디지털단자가 옵티컬의 경우 빨간색 빛이 나오기 시작합니다. 

 

2번째 RayerR씨는 이 과정을 파일하나로 해결하였습니다. 제목의 ymf7xx.exe 입니다. 

그냥 실행하면 아래 처럼 해당 카드의 정보가 나옵니다. SPDIF아웃이 꺼져있네요.

물론 위에서 설정한 주소정보도 나옵니다. EB000000h 

그외 PCI에 할당된 주소들과 도스에서 설정한 주소들도 주루룩 나옵니다. 

SB주소에서 IRQ 7 옆의 괄호에 serialized 는 S-IRQ로 설정하면 저렇게 나오더군요. 뒤에 DMA는 설정한대로 PC/PCI로 표기되어 나옵니다. 

IRQ나 DMA나 뭘로 설정해도 디지털출력이 다 활성화 됩니다. 

 

아래는 옵션

/e가 활성화입니다.

/ea는 라인입력까지 함께 디지털출력되는 기능이군요. 우리의(?) 목표는 깨끗한 FM과 디지타이즈의 출력이기 때문에 이런 기능은 잘 쓰지 않겠지요. 사실 YMF7x4 시리즈의 라인입력단의 노이즈라는 것은.... 걍 안쓰는게 좋은 기능이겠습니다.

/d는 비활성화 /r은 mmio 주소의 핵사 뷰어, /w는 주소편집 옵션입니다.  

 

아래는 

YMF7xx.exe /e를 실행한 장면입니다. 

SPDIF 아웃이 활성화 됩니다. 

아래는 테스트에 사용한 카드들 입니다.

좌측이 야마하의 웨이브포스 192D(YMF724 옵티컬 광단자), 우측이 XWAVE의 YMF724(코엑시얼 동축) 입니다.

옵티컬이나 코엑시얼이나 관계없이 잘 됩니다.

744나 754같은 것은 이미 VOGONS에서 테스트가 된 상태라 여기까지는 하지 않았습니다.  

(보니 듣도보도 못한 메이커 제품도 잘 되는군요.)

 

테스트환경은 많이 가혹하게 두고 했습니다.

440bx보드에 투알라틴 펜티엄3-S 1.4기가, 512램에 

다른 사운드카드와 랜카드 등 다른 슬롯이 모두 채워진 상태에서 테스트했습니다.

YMF7x4카드의 경우 PC/PCI 상태를 온/오프시키기도 했고(DDMA와 번걸아가며 테스트), IRQ설정과 경우의 DMA설정과 경우의 수를 조합해 가며 (ISA/S-IRQ/INTA) 테스트 완료.. 이상없습니다. 

 

*단 YMF7x4의 DSDMA가 실행된 상태에서는 먹히지 않습니다. 그렇기 때문에 DSDMA 실행 전에 활성화 시켜주어야 합니다.

보통 DSDMA를 사용하는 경우가 

SETUPDS.EXE /S 로 로딩하고 그다음 DSDMA를 실행하는 식인데 중간에 활성화를 하도록 배치파일을 편집하면 되겠지요. 

*사족으로 DSDMA는 PCPCI연결이 안되고 DDMA까지 막힌 상태에서 쓰는 것으로 EMM386이 로딩되어 있어야 합니다.

440bx와 같은 보드에서는 필요성이 적고(호환성 문제로 극히 일부게임에 사용하긴 합니다.) 펜티엄4 이상에서 사용해야 합니다. 펜티엄2~3급은 인텔은 거진 DDMA까 되고 비아는 패치드라이버가 있으면 DDMA사용이 됩니다.

 

 

테스트한 게임은 둠, 프메2, 고인돌시리즈 등 다양합니다. 디지털출력이라고 호환성이 떨어지는 건 아니라서 

YMF7x4 시리즈의 가공할 호환성을 그대로 디지털출력으로 쓸 수 있게 되었네요.

 

위에 언급한 보곤스의 링크에서는 CMI8738 등 비슷한 카드들의 디지털출력도 연구하는 모양입니다만..

개인적으로 아무래도 호환성이나 OPL의 음색면이나 YMF7x4시리즈의 디지털출력이면 차고 넘칠듯 하네요.

 

현재 PC/PCI + 디지털출력이 달린 YMF7x4 와  PC/PCI 달린 메인보드의 입수난이도는 차이가 크네요.

후자 메인보드야 이베이에 널려 있는데다 잘보면 국내에서도 찾을 수 있는데

사운드카드 쪽이 까다롭네요. PCPCI는 극한의 호환성을 추구하지 않는다면 필수는 아니라 패스는 가능합니다만 그래도 디지털출력이 달린 YMF7x4 카드가 그닥 많이 올라오진 않더라구요. 이베이나 일옥이나... 오히려 국내 카페 회원님들이 더 자주 판매하셨을 듯 합니다. 여튼 이런 제품 보이면 다들 잘 챙겨둡시다. 

 

글 읽어주셔서 감사합니다. 

Posted by 월반장