Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Emulace Sound Blasteru v DOSu - heurka!

      21.7.2018 O nefunkn emulaci Sound Blasteru v DOSovch ovladach od Creative pro zvukovky SB Live! a Audigy jsem se zmioval ji dve. Problm je v tom, e ovladae pro odchytvn legacy I/O pstup potebuj funkn routovn PCI signlu SERR# na NMI procesoru, kter se z novch zkladnch desek nkam vytratilo, protoe si asi nvrhi MB mysleli, e u to nebude nikdo k niemu potebovat. Bu chyb pmo fyzicky spoj na MB nebo nen routovn nakonfigurovan v chipsetu. Pro druh ppad jsem napsal utilitu SERREN, kter nkdy aspo zprovozn FM syntzu (cvrdlikn pes Adlib). V ppad m zkladn desky Gigabyte GA-P67-DS3-B3 mi to ale stejn nepomohlo, zvukovka je pln nm, ani ji dn program nedetekuje. Zkouel jsem jet SERREN upravit tak, aby zapnul SERR# routovn i na onboard PCIe -> PCI mstku IT8892E, avak nebylo to nic platn. Stejn by to ale neeilo nefunkn samplovan zvuk, kter vyaduje funkn DMA, jeho emulace na novch deskch tak nefunguje (ani nevm, jakm zpsobem je to eeno). Patrn posledn chipsety, kde jet v tchto ovladach emulace SB fungovala, byla ada intel 8xx, na novjch chipsetech s PCIe u prost smla. Zkouel jsem tak dal PCI zvukov karty ForteMedia FM801 a C-Media CMI8738, kter maj SB emulan ovlada pro DOS, ale bez spchu. UPDATE: nakonec se mi povedlo rozbhnout starou ISA zvukovku pes vlastn LPC2ISA adaptr, dal monost je nov softwarov emultor SBEMU pro DOS.
      Ji jsem nevil, e by se nalo njak funkn een SB emulace v DOSu na novch MB, ale kupodivu nkdo na fru VOGONS ped 2 lety objevil funkn zvukov karty od Yamahy s chipy YMF72x a 74x na PCIe chipsetu intel 965 a pozdji tak Aureal Vortex (2) - chipy AU88xx. Dle byla ovena funknost i na novjm PCIe chipsetu intel x58 pro Core 1. generace (Nehalem) a spn otestovna vce ne stovka DOSovch her. Tento chipset m na rozdl od P67 jet nativn PCI sbrnici, take jsem byl zvdav, jestli to bude fungovat i u m pes PCIe to PCI mstek. S Ruthanem jsme si ji pedtm vymovali njak informace ohledn zvuku pod DOSem a tak nebyl problm se zapjenm karty na testovn, kterou jsem si v ptek v noci pivezl dom.
      V sobotu jsem kartu s ipem YMF744B s naptm stril do PCI slotu m zkladn desky a nainstaloval ovladae. Pro spn zprovoznn v DOSu je poteba splnit pr podmnek. Inicializan program setupds.exe pouv extender DOS/4GW, kter m problm s 4 GB RAM. Zkouel jsem jak pvodn dos4gw.exe verze 1.97, kter vyhodil paradoxn chybu: "DOS/4GW fatal error (1307): not enough memory", tak novj dos4g.exe verze 2.61, kter t zkolaboval s chybou: "DOS/4G fatal error (1010): can't initialize loader LINEXE_LOADER [1]". Bylo tedy teba omezit velikost XMS pamti na 2,5 GB i mn. Zhy jsem zjistil, e dal potebn program dsdma.exe (rezidentn emultor legacy SB s podporou DMA) pi zaveden ihned restartuje PC, pokud je XMS vce ne cca 704 MB, take jsem nakonec velikost XMS omezil na 512 MB. Toho lze doclit nap. pouitm sprvce pamti himemx.exe s parametrem /MAX=512M, cel dek do config.sys:
DEVICE=C:\DOS\HIMEMX.EXE /MAX=512M /METHOD:FAST /VERBOSE
      Dal hek je v tom, e rezident dsdma.exe vyaduje sprvce pamti s podporou VCPI, kter pepne CPU do virtulnho reimu v86, jinak vyhod chybu: "Program could not load. This program requires an expanded memory manager such as EMM386.EXE with VCPI support". Je mon pout EMM386 (i v kombinaci s UMBPCI) s podporou EMS:
DEVICE=C:\DOS\UMBPCI.SYS
DEVICEHIGH=C:\DOS\EMM386.EXE FRAME=NONE RAM D=64 HIGHSCAN AUTO VERBOSE
nebo bez podpory EMS:
DEVICE=C:\DOS\UMBPCI.SYS
DEVICEHIGH=C:\DOS\EMM386.EXE NOEMS D=64 HIGHSCAN AUTO VERBOSE
A nebo Quarterdeck QEMM386, kter sm neum vce jak 256 MB XMS, take ho ani nen teba omezovat (parametry jsou specifick pro moji HW konfiguraci a nejsou tedy penositeln):
DEVICE=C:\QEMM\QEMM386.SYS RAM ROM XBDA:N ARAM=B000-B7FF X=F000-FFFF X=C000-CFFF RF ST:M
Tak jsem experimentoval modernm sprvcem pamti JEMMEX, ale pi sputn njak pmode hry jsem vdy dostal chybu: "DOS/16M error: [17] system software does not follow VCPI or DPMI specifications Spawn Error: Error 0" Pozdji jsem piel na to, e je teba vypnout podporu rozen VME parametrem NOVME:
DEVICE=C:\DOS\JEMMEX.EXE A20METHOD:FAST XMSHANDLES=96 MAXEXT=512M MIN=32M MAX=64M NOVME VERBOSE
Bohuel nkter hry i dema nejsou kompatabiln (nebo pouvaj nesnenliv extendery) s reimem v86 a pak takov pokus o sputn programu kon ztuhem nebo restartem PC. BTW pozdji jsem zjistil, e dsdma.exe instaluje do pamti rezidentn 32-bitov DPMI 0.9 server a zlikviduje kompletn VCPI sluby. Dostupn pam pes DPMI zvis na pouitm manaeru (patrn dle velikosti VCPI pamti, kterou nabzel) EMM386 (32 MB) nebo JEMM386 (60 MB), co pro star hry v pohod sta.
      V souboru autoexec.bat jsem pak ml tyto dky pro zaveden ovladae:
SET BLASTER=A220 I5 D1 T4
C:\DS-XG\setupds.exe /S
C:\DS-XG\dsdma.exe
Extender dos4gw.exe mm umstn v systmov cest PATH. Po sputn setupds.exe bez parametru je mon ovit funknost zvukov karty. Ml jsem tam aktivn akort poloky pro nativn zvuk a FM syntzu (oboje pehrlo ist ukzkov zvuk), poloka SB emulace byla zaedl. Vyzkouel jsem verze 3.14, 3.15 a 3.16 a vechny se chovaly stejn. Nastaven je uloeno v souboru ds.ini. Kdy jsem tam manuln zeditoval nap. hodnotu parametru SBIRQ, tak ovlada zmnu patrn nereflektoval (alespo ne ve vpisu), nicmn doporuuju nastavit SBIRQ na jinou hodnotu ne INTAIRQ (PCI peruen). Pozdji jsem tak napsal jednoduchou DOSovou utilitu YMF7XX na zapnut S/P-DIF vstupu.
      Ve zbylm ase nsledovalo testovn v nkolika hrch a demech, kter mm trvale na disku. Vsledky jsou docela dobr, akort jsem narazil na problm u her, kter implicitn pouvaj Sound Blaster Pro (nap. Doom), kde se v samplovanm zvuku objevovalo jaksi praskn. U her, kde lo v nastaven zmnit typ DSP na Sound Blaster 16 nebo Sound Blaster 2.x byl zvuk v pohod. Tak celkem nepekvapiv nefungovala wavetable syntza, protoe karta nem dnou vlastn soundfont ROM i RAM, pouze fungovala FM syntza Adlib i Sound Blaster. To se d ale eit pes extern DreamBlaster. U se mi podailo sehnat 2 ipy SAM2695 z Belgie a postavm si vlastn DreamBlaster pmo do gameportu. Pi testovn jsem zkusil natoit narychlo video: st 1., st 2. (zvuk je snman mikrofonem ve foku, take za kvalitu se omlouvm). Zde jsou shrnuty vsledky testovanch her a demek:

program/karta YMF744B SFX
MS-DOS 6.22
YMF724F SFX
MS-DOS 6.22
AU8820B2 SFX
MS-DOS 6.22
AU8820B2 SFX
Win98 SE
AU8830 SFX
MS-DOS 6.22
music (FMS)
MS-DOS 6.22
SBEMU 5.4.2023
MS-DOS 6.22
SFX/music
Blood OK (SB16), praskn s SB Pro OK OK OK OK OK OK / OK
Commander Keen - OK OK OK OK OK OK / OK
Doom 1 praskn ve zvuku OK OK OK OK OK OK / OK
Doom 2 praskn ve zvuku OK OK OK OK OK OK / OK
Duke Nukem 3D OK (SB16), praskn s SB Pro OK OK OK OK OK OK / OK
Dyna Blaster OK OK OK nelze spustit OK OK OK / OK 6
F-22 Lightning II - OK - - - - nedetekuje SB
Quake praskn ve zvuku OK OK OK OK n/a OK / n/a
SandWarriors OK (SB 2.x), praskn s SB Pro OK OK OK OK OK setup OK / game HDPMI error
Wolfenstein 3D OK OK OK OK OK OK OK / OK
DosAmp - - - - - n/a OK 3
DSS Player - OK - - - n/a nedetekuje SB
FastTracker II - DPMI error - - - n/a X / n/a
Impulse Tracker - OK - - - n/a OK / n/a
Inertia Player - OK - - - n/a OK / n/a
MikMod Player - OK - - - n/a OK / n/a
Open Cubic Player - zatuhne - - - n/a OK, ske obraz 4
OpenMPT123 - OK - - - n/a JEMM crash
TetraMED - OK - - - n/a totln zkreslen
XTC Player - zatuhne - - - n/a nedetekuje SB
RealSpectrum - - - - - - OK / n/a 5
Amnesia - nelze spustit - - - - nelze spustit
Blind - OK - - - - X / n/a
Boost zatuhne zatuhne OK 1 OK OK n/a OK / n/a 7, 8
Crystal Dream - zatuhne - - - - X / n/a
Crystal Dream 2 - nelze spustit - - - - nelze spustit
Cyboman 3 - zatuhne - - - - zatuhne
Cyboman 4 - OK - - - - OK
Dejavu - OK - - - - X / n/a
Delusion - OK - - - - zatuhne
Dimension - OK - - - - X / n/a
Dream OK (SB16), praskn s SB Pro OK OK 2 OK OK 2 n/a OK / n/a 5, 8
DX Project - nelze spustit - - - - zatuhne
Hyla - zatuhne - - - - X / n/a
Jump - zatuhne - - - - X / n/a
Lamer - OK - - - - praskav zvuk
Second Reality OK (SB mono), praskn s SB Pro OK zatuhne nelze spustit zatuhne n/a zrychlen zvuk
The Fulcrum - OK - - - n/a X / n/a
Vlak by MovDS - - - - - - OK / n/a 5
1 - nkdy se zvuk v prbhu pehrvn zasekne a opakuje dokola posledn DMA buffer
2 - pouze pi nastaven SB DSP 2.00 - 3.xx, 8-bit, mono, sem tam zvuk peskakuje
3 - SBEMU pehrv 44 kHz MP3 polovin rychlost, s parametrem -downsample hraje OK na 22 kHz
4 - obraz ru periodick debug vpis z HDPMI32I, s upravenou verz obraz neske
5 - ped sputnm programu nutno spustit utilitu setpvi.exe
6 - pro VSBHDA nutno pout parametr /CF1
7 - ped sputnm dema nutno zmnit preferenci PMODE/W extenderu z VCPI na DPMI utilitou pmwsetup /M0 boost.exe
8 - s VSBHDA je zvuk trhan, s SBEMU pehrv hladce
"X" - program b bez zvuku, "n/a" - program nepouv FM syntzu, "-" - netestovno

      Tyto vsledky jsou pro m rozhodn zajmav a pokusm se njakou takovou zvukovku zskat. Bohuel ty nejlevnj se nabz zrovna v Americe, kde potovn pesahuje cenu samotn karty (a jet k tomu clo). Na eskch bazarech jsem neobjevil vbec nic. Dal zajmav informace pila od uivatele agent_x007 z VOGONS, kter spn otestoval demo Boost na zvukov kart Aureal Vortex 2 a chipsetu intel x58. Tyto karty toti pouvaj ovlada, kter e emulaci DMA njakm jinm zpsobem, jen nevynucuje "problmov" reim v86. Tyto karty se tak obecn prodvaj za vy ceny ne Yamahy. Z hlediska funkcionality pod DOSem by mlo bt jedno, jestli je to star Aureal Vortex (AU8810/AU8820) nebo novj Aureal Vortex 2 (AU8830).
      Ruthan tak vyzkouel svou Yamahu v novj zkladn desce Gigabyte s chipsetem intel Z97 bez nativnch PCI slot a fungovala mu jen FM syntza. Takt byl problm, pokud se zvukovka pipojila do PCIe slotu MB s chipsetem intel x58 pes extern PCIe to PCI mstek Pericom. Ve vpisu PCI konfiguranch registr jsem si viml, e extern mstek neml zapnut subtraktivn dekdovn (v mm ppad ho onboard mstek ITE zapnut m), take se domnvm, e pokud by se zapnulo, mohlo by to teba fungovat. UPDATE: Ruthan u sehnal i Aureal Vortex a zaal testovat. Dal relevantn vlkna na VOGONS: Sound Blaster Emulator for Dos?, Is there PCI-E soundcard with working DOS SB driver?, PCI sound cards and Chipsets from various manufacturers... Which PCI Sound Card for DOS (SB, FM and General MIDI)?
      UPDATE: Ruthan spn otestoval funknost zvukovek Yamaha YMF7xx a Aureal Vortex na novj zkladn desce Gigabyte GA-X79-UP4 se socketem LGA 2011 pro HEDT procesory Sandy Bridge-E a Ivy Bridge-E. PCH chipset intel X79 m jet nativn podporu PCI 2.3 slotu, ale deska u m AMI UEFI, co ukazuje, e samotn UEFI nen obecn pekkou kompatability.

      28.4.2022 Sehnal jsem zkladn desku Gigabyte GA-H97-HD3 rev. 1.1 s 2 PCI sloty a tak jsem otestoval, zda-li v n bude fungovat zvukovka Yamaha YMF744 pod DOSem. PCI sloty jsou eeny pes stejn PCIe -> PCI mstek IT8892E jako na m zkladn desce Gigabyte GA-P67-DS3-B3. V UEFI setupu jsem povypnal vechny zbytenosti nechal aktivn pouze legacy funkce. Ovlada zvukovku zinicializoval, zavedl se i dsdma.exe, testovac WAV se v nativnm reimu v setupds.exe pehrl taky, ale emulace SB SFX nefunguje. Vechny hry, co jsem zkouel, tak zatuhnou pi sputn, nap. Doom vytuhne ve fzi "S_Init: Setting up sound". Funguje akort FM syntza. Zkouel jsem jet mnit sprvce pamti a pendat zvukovku do druhho PCI slotu, ale nemlo to dn efekt. Zatm tedy posledn chipset, kde to jet funguje, zstv X79.

      7.8.2018 Dnes mi dorazil balek z Polska se zvukovou kartou Yamaha YMF724F, kterou jsem nael na Allegru. Nyn se tam zrovna nabz Yamaha YMF744 XP za 15 Zlotch. Kartu jsem naden stril do druhho PCI slotu (spodn u kraje desky) vedle SB Audigy msto TV tuneru. K dn kolizi prostedk nedolo, nechm si tedy v PC ob zvukovky. Audigy budu nadle pouvat ve Windows, Linuxu a pr DOSovch programech s nativn podporou a Yamahu pro SB emulaci v DOSu. Ve Windows jsem j zatm ve sprvci zazen zakzal. Oba vstupy mm pipojen k zesilovai pes pepna. V DOSu jsem pouil stejn ovladae a nastaven jako pi pedchozm testu YMF744B. Pjemn m pekvapilo, e u YMF724F se neobjevuje ve zvuku dn praskn pi nastaven SB Pro ve hrch. Zkouel sem kartu v obou PCI slotech i bez SB Audigy a neprask, hraje ist. Ze zvdavosti jsem kartu vyzkouel jet ve 3 dalch zkladnch deskch. Zatm co v Gigabyte GA-H55M-S2 s nativnmi PCI sloty fungovala YMF724F sprvn, tak na platform AMD Asus M4A79XTD EVO a Gigabyte GA-MA790GP-DS4H sice setupds.exe sprvn kartu rozpoznal a TSR dsdma.exe se bez chyby zavedl, ale zvukovka pak nevydala ani hlsku. Ani testovac zvuky v setupds.exe nely pehrt (menu v programu bylo neaktivn).

Yamaha YMF724F-V PCI

      3.9.2018 Dostal jsem jednu Yamahu YMF744B s upadlm blokovacm kondenztorem na napjen PVDD. Karta fungovala i bez nj, ale pro podek jsem tam pipjel 1 µF keramiku 0603. Znovu jsem kartu pezkouel a potvrdilo se, e YMF744B v Doomu 1 a 2 prask a tak vude tam, kde se vybere typ karty SB Pro. Po vmn zvukovky zpt za mou YMF724F praskn zmizelo. Nevm, m to je, ale na jinch (starch) zkladnch deskch to neprask.

Yamaha YMF744B-R PCI

      5.9.2018 Dnes mi dorazil balek z Ruska se zvukovou kartou Diamond Aureal Vortex AU8820B2, kterou jsem koupil pes eBay. Ovladae jsou ke staen zde. Pro DOS sta zavst TSR asp4dos.com, kter funguje i v relnm mdu a nepotebuje dnou podporu EMS/XMS, ale nevyluuje se s nimi. Pokud nen k dispozici UMB, tak TSR seere 37 kB doln pamti, co me bt v nkterch ppadech problm. TSR nat nastaven z textovho souboru vortex.ini z adrese Windows (dle systmov promnn WINBOOTDIR), ale k dispozici je i patchnut verze pro samotn DOS, jen se d systmovou promnnou VORTEXINI, kterou si lze libovoln nastavit. Nastaven v INI souboru lze upravit bu run (dleit jsou zejmna promnn PCIIRQ - skuten IRQ PCI karty, SBFMIRQ - emulovan IRQ SB, SBFMDMA, SBFMDMA2, SBFMBase, FMBase a MPU401Base) nebo pokud mte nainstalovan i Windows 9x, tak nainstalovat windows ovlada a nechat nastaven na nm. Pod Windows navc funguje wavetable syntza (vyuv 5MB banku sampl aurealgm).

nastaven SB Pro emulace ve Windows 98 SE

nastaven wavetable syntzy ve Windows 98 SE

      Otestoval jsem znovu hry a dema uveden v tabulce ve. Vechny hry fungovaly, ale nepodailo se mi rozbhnout demka Dream a Second Reality. Vyzkouel jsem nkolik konfigurac sprvc pamti (JEMMEX, QEMM386, HIMEM + UMBPCI + EMM386 EMS/NOEMS, HIMEM + UMBPCI, HIMEM a bez) s minimem dalch driver a TSR, ale vdy dolo k zatuhnut pi startu dema. Akort demo Boost fungovalo se zvukem, ale obas se stalo, e se teba po 30 s od sputn zvuk zaseknul (neustle se opakoval dokola posledn obsah DMA bufferu) a obraz bel dl. Paradoxn pod Windows 98 SE fungovala emulace SB lpe, povedlo se mi tam rozbhnout i demo Dream. Second Reality mi nelo spustit zejm z dvodu nekompatability s Windows. Dal poznatek je ten, e Aureal Vortex m opravdu hnusn zvuk FM syntzy, hor sem jet neslyel. Yamaha nebo ESS zn o dost lpe. U her podporujcch General MIDI to natst e DreamBlaster.

Diamond Aureal Vortex AU8820B2 PCI

      15.12.2018 Ruthan mi zapjil na vyzkouen zvukovou kartou Aureal Vortex2 AU8830. Nic moc jsem si od toho nesliboval, co se mi tak potvrdilo. Nainstaloval jsem ovladae a znovu otestoval hry a dema uveden v tabulce ve. Karta se chovala prakticky stejn, jako jej pedchdce Aureal Vortex AU8820B2, v kvalit FM syntzy jsem nepoznal dn podstatn rozdl. Snad jedin vhoda je, e tahle karta m header na WaveBlaster.

Aureal Vortex2 AU8830 PCI

OpenSource SBEMU software pro DOS

      10.3.2023 Na VOGONS fru jsem nael zajmav projekt SBEMU uivatele Crazii, kter emuluje zvukovky SB 1.0, 2.0, Pro a 16 na modernch zvukovch ipech intel AC'97, HDA, nVidia nForce, VIA VT8233, VT82C686, SB Live! a Audigy pod DOSem v relnm i chrnnm reimu. Autor vyuil kdy ovlada zvukovek z populrnho DOSovho pehrvae MPXPlay, kter jsou portovan z Linuxu. Pro podporu v RM je teba pout JEMM386 verze 5.74 (a novj), do kter Japheth pidal podporu I/O trap API (QPI) a loadnout JLM qpiemu.dll nebo pout QEMM386. Pro podporu v PM je poteba loadnout upraven DPMI server hdpmi32i.exe (parametr r ho zavede trvale jako rezident, parametr x limituje pam na 256 MB kvli nkterm starm programm, kter pi detekci vce pamti crashnou). Podob zejm funguje i yamahck ovlada dsdma.exe s integrovanm DPMI serverem. Zdrojky i binrky jsou ke staen na GitHubu. Zde je lnek od Sledgeho a Philovo video s testy rznch her. M bohuel SBEMU na MB Gigabyte GA-P67-DS3-B3 nefunguje, sice detekuje mou SB Audigy, ale nsledn zatuhne s chybou: "Internal stack overflow, System halted". Japheth na tento problm taky narazil a zmioval, e je problm v poad vykonvn funkc v SBEMU, kdy dojde k povolen peruen dve, ne je nainstalovna ISR. ekm tedy, a to Crazii zapracuje do oficiln verze.

      19.3.2023 Crazii vydal aktualizovanou verzi SBEMU 1.0 beta 2b, kter opravuje problm s IRQ na SB Live! a Audigy. Tak pibyla funkce pro vpis detekovanch zvukovek (parametr /scl) a monost vybrat si poadovanou (parametr /sc <n>). Take nyn se mi u SBEMU loadne korektn a prvn rychl test v Doomu probhl spn, SFX i hudba hraje OK, bez sekn i praskn. Avak v Dyna Blaster i demo Boost nehraje vbec. Postupn budu testovat dle a vsledky doplnm do tabulky ve. UPDATE: v beta 2c byla opravena chyba detekce Sound Blasteru ve he Dyna Blaster.


jload.exe C:\DOS\PLUS\qpiemu.dll
JLoad: 'C:\DOS\PLUS\qpiemu.dll' loaded successfully.		      

hdpmi32i.exe -r -x
HDPMI32 now resident						      

sbemu.exe /k44100
00:00:00.000 sc_sbliv.c   1250 SB sound card: 4 3 531102	      
Found sound card: SB Live!/Audigy				      
Real mode support: enabled.					      
Protected mode support: enabled.				      
OPL3 emulation enabled at port 388h.				      
Sound Blaster Pro emulation enabled at Adress: 220, IRQ: 7, DMA: 1    

set
BLASTER=A220 I7 D1 T5

      23.11.2023 Uivatel Thomas Perl vytvoil fork SBEMU-X, kter pidv podporu dalch zvukovek, pehrvn CD audio, voliteln debugovn pes sriov port a monost multiplatformn kompilace z Windows, Linuxu a MacOS.

      26.3.2024 Japheth vydal novou verzi svho SB emultoru VSBHDA 1.4 (fork SBEMU), kter nov podporuje i 16-bitov chrnn reim, take si mete zahrt nativn se zvukem teba hru Tyrian 2000. Na moj SB Audigy hraje vstup s VSBHDA velmi potichu i pi nejvy nastaven hlasitosti, musel jsem podn vyhulit volume na zesilovai. Tak pozor na to, e verze DPMI serveru hdpmi32i.exe dodvan s VSBHDA nen kompatabiln s SBEMU, je tedy dobr mt pro kad SB emultor odpovdajc verzi separtn.

      6.8.2024 Vyzkouel jsem novou verzi SBEMU beta 4 a zjistil jsem problm, e na SB Audigy pehrv zvuk o nco rychleji (frekvenn ve) ne normln, cca o 10% (nap. v Doomu). Mon jako kdyby se zvuk vzorkovan na 44,1 kHz pehrval nesprvn na 48 kHz. Zkouel jsem postupn star verze a zjistil, e se to rozbilo v buildu z 6.2.2024 2:04 (tato a novj u hraj zrychlen) a posledn sprvn hrajc build je z 5.2.2024 6:40 Problm jsem reportoval na GitHubu i ve vlknu na VOGONS fru, ale zatm bez odezvy.

      21.1.2025 Ml jsem monost si chvilku pohrt se zapjenou zkladn deskou MSI Z270 PC MATE, kde jsme s JejKeyem zkoueli BIOS mod pro podporu Coffee Lake s integrovanm kodekem Realtek ALC887 HDA 7.1. Je zajmav tm, e m i legacy rozhran jako COM, LPT a PS/2 porty a 1 PCI slot. Zkusil jsem na n nabootovat DOS a spustit SBEMU a zvuk v Doomu bez problmu fungoval. VSBHDA 1.5 tento kodek nedetekoval. Vyzkouel jsem i PCI zvukovku Yamaha YMF744 (pouit PCIe -> PCI mstek je zde Asmedia ASM1083), ovlada ji nael a zinicializoval, zavedl se i dsdma.exe, ale setupds.exe hlsil problm, e neme najt kodek a nelo ani mnit nastaven. Zvuk samozejm nefungoval a vechny PM programy mi zatuhly pi startu. Tak mi zhadn tuhnul emm386.exe pi bootu (i pi omezen velikosti XMS pomoc himemx.exe), take jsem testoval jen s jemm386.exe.

      24.1.2025 Chvilku jsem zkoumal zdrojky SBEMU, abych zjistil, v em se li novj verze s nesprvnou rychlost pehrvn zvuku na SB Audigy, jak jsem u zmioval ve. V tch dvou commitech, vzdlench od sebe jen necel den, jsou zmny pouze v souborech main.c a au_base.c ve funkci mixer_speed_lq(), kter njak souvis s interpolac z emulovan samplovac frekvence SB na relnou samplovac frekvenci fyzick zvukovky. VSBHDA m dost odlinou strukturu zdrojk a tam jsem nic takovho nenael. Sice tomu kdu bez koment prd rozumm, ale zkusil jsem aspo pokusn revertovat zmny dle posledn funkn verze z 5.2.2024 6:40. Nejprve do prvn rozbit verze z 6.2.2024 2:04 a pak i do posledn verze 1.0.0 beta 5 z 18.8.2024 a ono to funguje :) Ale samozejm nevm, jestli jsem tm nerozjebal nco dalho, jestli nen poteba jet nco upravit v main.c. Moje zkompilovan binrka je ke staen zde.


diff au_base.ok au_base.bad

1020c1020
<  const unsigned int inend=(sourcesample/channels) << 12;
---
>  const unsigned int inend=(sourcesample/channels - 1) << 12; //for n samples,
interpolation n-1 steps
1047c1047
<   intmp2=ipi < total-ch ? intmp1+ch : intmp1;
---
>   intmp2=intmp1+ch;

      29.1.2025 Na VOGONS fru jsem objevil dal fork SB emultoru VSBHDASF s podporou SW emulace wavetable syntzy pomoc SoundFont bank souboru. Tyto *.SF2 soubory lze najt nap. v originlnch Windows driverech SB AWE i Live. Ped sputnm VSBHDASF je teba nastavit promnnou prosted SOUNDFONT s cestou k souboru, nap. set SOUNDFONT=C:\SBLIVE\SFBANK\4gmgsmt.sf2 nebo ho pejmenovat na sfont.sf2 a nahrt do adrese k exi. Vyzkouel jsem posledn verzi 1.5.1 z GitHubu v Doomu a Bloodu a MIDI hudba hrla ist bez njakch zsek.

      13.10.2025 Japheth vydal novou verzi svho SB emultoru VSBHDA 1.8, kter (u od verze 1.7) podporuje takt SW emulaci wavetable syntzy pomoc knihovny TinySoundFont a SoundFont soubor (*.SF2). Pi sputn VSBHDA je teba zadat pomoc parametru /SF:C:\SBLIVE\SFBANK\4gmgsmt.sf2 cestu k souboru. Funguje i zvuk v Dyna Blasteru, pokud je VSBHDA sputn s parametrem /CF1 (nastavuje compatability flag bit 0 - DSP pkazy F2/F3h vyvolaj okamit peruen, nikoliv a po prodlev). Tak je mon VSBHDA unloadnout pomoc uninst.exe, co musm udlat, pokud chci restartovat PC pomoc CTRL+ALT+DEL, jinak zatuhne (i v ppad SBEMU, ale ten zatm unloadnout nelze). Tak se to hod v ppad, e potebujeme teba pro jinou hru spustit VSBHDA s jinmi parametry.
      Zjistil jsem, e nkter programy s VSBHDA pehrvaj zvuk lehce trhan, zatm co s SBEMU hladce. To se d experimentln ovlivnit hodnotou nedokumentovanho 16-bitovho Timer registru na I/O adrese IObase+1Ah. VSBHDA nastavuje tento registr na hodnotu 1E0h jako Win9X driver, zatm co SBEMU pouv hodnotu 1Ah. J jsem musel pro plynul zvuk tuto hodnotu jet vce snit, u dema Boost na 1-3 a u dema Dream na 1.

      5.12.2025 Uivatel KYA vytvoil dal modifikaci SBEMU, kter funguje jen jako minimalistick emultor DDMA masteru (VDMA) pro DDMA slave blok v PCI2ISA mstku ITE IT8888F vyuvajc zachytvn I/O port a reln ISA zvukovky.

DreamBlaster - wavetable syntza do game portu

      28.8.2018 Problm okliv FM syntzy a chybjc wavetable syntzy se d eit pomoc externho MIDI synteztoru jako nap. Roland Sound Canvas, kter se d pipojit pes rozhran MPU-401 MIDI skoro ke kad zvukovce s game portem. Na 15-pinovm game portu je pin 12 vyuit jako vstup UARTu MIDI out a pin 15 jako vstup MIDI in. Na pinech 1, 8 a 9 je navc k dispozici napjec napt 5 V. Rychlost je 31250 baud a poslaj se tam MIDI pkazy jako zapni notu x, vypni notu y atd. Napov rove na vstupu nen pesn definovan (dleit je proudov budic schopnost), zle jakm naptm je napjen zvukov ip na kart z kterho vstup jde. V ppad YMF724 je to 3,3 V.
      Jet poznamenm, e kdysi nkter karty podporovaly MPU-401 "intelligent mode" s dalmi funkcemi, kter vyuvaly njak star hry. Novj zvukov karty u maj MPU-401 jen v UART reimu. V ppad poteby lze funkcionalitu "intelligent mode" zskat pomoc rezidentnho OpenSource programu SoftMPU pro DOS, kter podporuje tyto zvukov karty a nebo pro slab PC lze podit HW een HardMPU v podob 8-bitov ISA karty s MCU ATmega1284P i karty PCMIDI.

MIDI UART data out oscilogram

      Jeliko takov synk od Rolandu je velk a drah krabice, tak francouzsk firma Dream vyvinula vlastn jednoipov een v podob integrovanho obvodu SAM2695 (a dalch). Tento obvod obsahuje 0,5 MB banku sampl, efektov DSP (umoujc 64-hlasnou polyfonii, reverb, chorus, prostorov efekt a 4-psmov ekvalizr), stereo DAC a pomocn analogov mikrofonn vstup. ip je v pomrn mravm pouzde QFN48 (6 x 6 mm; 0,4 mm pitch), napjen z 3,3 V (MIDI vstup je 5V-tolerantn) a s typickm odbrem 18 mA. Je pouit nap. v daughterboardu WaveBlaster za 35 euro, kter lze osadit na pin header karet Sound Blaster. Ob m zvukov karty Yamaha 724 a 744 vak takov header nemaj a na Aureal Vortexu se s nm sice potalo, ale zstal neosazen (spolu s dalmi soustkami). Navc se mi cena zd ponkud vysok, take jsem se rozhodl navrhnout si vlastn univerzln DreamBlaster do game portu, kter se vejde do krytky konektoru Cannon. Jeho vstup se jednodue propoj jack-jack kablkem do line-in vstupu zvukovky a v mixru se nastav vhodn hlasitost. U her se v setupu vybere msto Adlib i FM syntzy General MIDI nebo MPU-401 a jede se. Pokud by nkdo chtl zrove pouvat gameport i pro joystick, d se snadno vyrobit rozdvojka, kde se na druh konektor pro DreamBlaster vythnou 3 drty (5 V, GND a MIDI out).
      Sehnat ipy SAM2695 nebylo pln jednoduch (v bnch obchodech se soustkama je vbec nevedou a na eBay jsou pedraen). Nakonec jsem ale sehnal pr kousk od jednoho manka z Belgie, ktermu jsem na opltku poslal jeden osazen DreamBlaster. Schma zapojen je celkem minimalistick, vychzejc z datasheetu. Napjen je eeno mm oblbenm 3,3V LDO TLV70033 z 5V vstupu game portu. Pro analogovou st je napjen jet lehce filtrovno RC lnkem R1 - C9. Vstupn napt vnitnho 1,2V regultoru lze zkontrolovat na pinu 34, resp. C16 a C17. Po zapnut je aktivn sriov rozhran MIDI IN na pinu 16 a paraleln rozhran je neaktivn.

schma DreamBlasteru

      Vytvoil jsem layout 2-vrstvho plonho spoje, kter jsem poslal do vroby nskmu AllPCB, nebo jsem se dozvdl, e tam te maj dopravu DHLkem zdarma pi cen 10 $ za 5 ks destiek do velikosti 5 x 5 cm. Abych vyuil monou plochu, pifail jsem k zakzce jet druh plok na spnan sniujc mni s LM43603, take vsledn velikost byla 75 x 33 mm, co pod spadalo do 10$ kategorie. Za 3 dny u byla zakzka vyroben a odeslan. Za dal 2 dny dorazila do R, ale jeliko jsem byl zrovna mimo, vyzvednul jsem ji pozdji. Po rozbalen (dorazilo 6 ks PCB) mu ct, e kvalita je na velmi slun rovni, pouhm okem jsem nepoznal rozdl nap. od Pragoboardu. Za ty prachy s takhle rychlou dopravou je to fakt parda, to u asi nebudu doma nic osvtlovat pes flii a leptat (vyjma jednoduchch PCB, kter instantn namrm lihovkou :).

DreamBlaster PCB layout panelizace 2 PCB pro zakzku v AllPCB vyroben destiky z AllPCB vyroben destiky z AllPCB osazen DreamBlaster - top osazen DreamBlaster - bottom
PCB layout GERBER panelizace vyroben PCB vyroben PCB osazen PCB osazen PCB

      Destiky jsem rozezal, zapiloval okraje a hned jednu na zkouku osadil. Obvod SAM2695 jsem pipjel regulovanou horkovzdunou pistol, zbytek klasicky mikropjkou. Nenarazil jsem na dn podstatn chyby a DreamBlaster fungoval na prvn zapnut. Rozdl proti FM syntze je opravdu znt, viz ukzkov videa: test s Doomem, test s Duke Nukem 3D.



Zpt

Aktualizovno 30.12.2025 v 2:36