Een vraagje voor de pascal/soundblaster kenners..
Ik ben bezig met een spelletje in Borland Pascal en wil nu geluid toevoegen. Er moeten samples gemixed worden, that's all.. ik hoef geen MOD of midi players of whatever.
Nu had ik een perfecte UNIT gevonden op deze site. Kijk bij de geluids voorbeelden de "Mixing sound samples through Sound Blaster DMA" is precies wat ik zocht. Het pobleem is alleen.. het werkt niet in protected-mode. Dit heeft er waarschijnlijk mee te maken dattie een pointer verkeerd omzet naar een linear adres in de functie "StartPlayBack", dat gebeurt zo (is volgens mij wel goed)
en dan loopt hij vast op het moment dat ie het DMA kanaal 'unmasked'
Dus ik zocht verder en vond Soundlib2 die werkt wel goed in Protected Mode alleen die kan geen auto-init mixing waardoor dezelfde sample niet meedere malen tegelijk kan worden afgespeeld
Dus mijn vraag:
weet iemand waarom het eerst genoemde voorbeeld niet werkt in protected mode
of
Weet iemand een betere Borland Pascal unit die auto-init mixing in protected mode ondersteund..?
Ik ben bezig met een spelletje in Borland Pascal en wil nu geluid toevoegen. Er moeten samples gemixed worden, that's all.. ik hoef geen MOD of midi players of whatever.
Nu had ik een perfecte UNIT gevonden op deze site. Kijk bij de geluids voorbeelden de "Mixing sound samples through Sound Blaster DMA" is precies wat ik zocht. Het pobleem is alleen.. het werkt niet in protected-mode. Dit heeft er waarschijnlijk mee te maken dattie een pointer verkeerd omzet naar een linear adres in de functie "StartPlayBack", dat gebeurt zo (is volgens mij wel goed)
code:
1
2
3
4
5
| {Convert pointer to linear address}
LinearAddress := Seg (DMABuffer^);
LinearAddress := LinearAddress shl 4 + Ofs (DMABuffer^);
Page := LinearAddress shr 16; {Calculate page}
OffSet := LinearAddress and $FFFF; {Calculate offset in the page} |
en dan loopt hij vast op het moment dat ie het DMA kanaal 'unmasked'
code:
1
| Port[$0A] := DMA;) {Unmask DMA channel} |
Dus ik zocht verder en vond Soundlib2 die werkt wel goed in Protected Mode alleen die kan geen auto-init mixing waardoor dezelfde sample niet meedere malen tegelijk kan worden afgespeeld
Dus mijn vraag:
weet iemand waarom het eerst genoemde voorbeeld niet werkt in protected mode
of
Weet iemand een betere Borland Pascal unit die auto-init mixing in protected mode ondersteund..?
mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider