[Pascal] soundblaster auto-init in protected-mode

Pagina: 1
Acties:

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09-2025

BdR

TV is gooder then books

Topicstarter
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)
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


  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09-2025

BdR

TV is gooder then books

Topicstarter
:? nogal moeilijke vraag?

voor als iemand anders er ook naar zoekt, ik heb intussen de library SMIX gevonden. Dat voldoet aan de eisen..

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


  • TimMer
  • Registratie: Februari 2000
  • Niet online
Op vrijdag 17 mei 2002 14:21 schreef BdR het volgende:
:? nogal moeilijke vraag?

voor als iemand anders er ook naar zoekt, ik heb intussen de library SMIX gevonden. Dat voldoet aan de eisen..
Uhmm, ja, want ik werk niet met Pascal. Ik werk met Powerbuilder, C en Java. :)

  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

Ik weet niets van borland pascal af, of van de unit die je gebruikt. Maar *MAG* jij wel zomaar eventjes wat DMA-poortjes veranderen.. Dat lijkt me namelijk heel erg sterk.

edit:

De code in je zipfile ziet er trouwens ook behoorlijk 16bits realmode uit :)

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09-2025

BdR

TV is gooder then books

Topicstarter
Op vrijdag 17 mei 2002 14:39 schreef JayTaph het volgende:
Ik weet niets van borland pascal af, of van de unit die je gebruikt. Maar *MAG* jij wel zomaar eventjes wat DMA-poortjes veranderen.. Dat lijkt me namelijk heel erg sterk.
:? van wie zou dat niet mogen?
De code in je zipfile ziet er trouwens ook behoorlijk 16bits realmode uit :)
klopt, maar er staat ook een 'protected mode' versie bij (btw dat is niet mijn zipfile)

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:44
Volgens mij draait Pascal uitsluitend in gesimuleerde x86 modus (virtual mode). Volgens mij is het vrij tricky om dan gebruik te maken van geluid en dergelijke, tenzij je onder Windows 9x/ME werkt. Ik krijg al die oude DOS games onder Windows 2000 in ieder geval niet meer aan de praat.

De reden dat er weinig reacties kwamen lijkt me dat real mode nu wel erg ouderwets geworden is en de meeste bezoekers hier niet al te oud zullen zijn. Het is naar mijn mening ook niet zo zinnig om daar nog mee te ontwikkelen aangezien het steeds slechter wordt ondersteund.

Enfin; ik geloof dat de topicstarter zijn probleem zelf al had opgelost.

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 03-09-2025

BdR

TV is gooder then books

Topicstarter
Op vrijdag 17 mei 2002 15:33 schreef Soultaker het volgende:
Volgens mij draait Pascal uitsluitend in gesimuleerde x86 modus (virtual mode). Volgens mij is het vrij tricky om dan gebruik te maken van geluid en dergelijke, tenzij je onder Windows 9x/ME werkt. Ik krijg al die oude DOS games onder Windows 2000 in ieder geval niet meer aan de praat.
probeer die games eens zonder geluid of installeer VDMsound.. daarmee geeft SMIX ook geluid onder Windows 2000 (btw Windows XP heeft betere backward compatibiliteit dan Win2k)
De reden dat er weinig reacties kwamen lijkt me dat real mode nu wel erg ouderwets geworden is en de meeste bezoekers hier niet al te oud zullen zijn. Het is naar mijn mening ook niet zo zinnig om daar nog mee te ontwikkelen aangezien het steeds slechter wordt ondersteund.

Enfin; ik geloof dat de topicstarter zijn probleem zelf al had opgelost.
Borland Pascal 7.0 compileerd (o.a.) 16-bits protectedmode.. maar idd dit projectje is de eerste en meteen ook laatste game die ik schrijf mbv pascal.. en met SMIX is mijn probleem nu opgelost

maaruh steeds slechter ondersteund? SMIX werkt gewoon onder Windows XP (zelfs zonder NTVDM)

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


  • JayTaph
  • Registratie: Oktober 1999
  • Laatst online: 28-11-2025

JayTaph

Portability is for canoes.

van wie zou dat niet mogen?
Van je cpu. :+

Yo dawg, I heard you like posts so I posted below your post so you can post again.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:44
Op vrijdag 17 mei 2002 16:08 schreef BdR het volgende:
maaruh steeds slechter ondersteund? SMIX werkt gewoon onder Windows XP (zelfs zonder NTVDM)
Onder Windows 95 werkte 't nog een beetje. Onder Windows 98 soms niet. Onder Windows 2000 zelden. Ik zag daar een dalende lijn in. :)

Misschien dat XP nog even de 98/ME lijn door probeert te zetten, maar uiteindelijk gaat die backward compatibility er uit natuurlijk. Het is allemaal ook niet interessant voor programmeurs; je moet voor elke soort hardware aparte code schrijven.

Maar ik zal die VDM eens proberen. Altijd leuk om Stunts e.d. te kunnen spelen onder Windows 2000. :)
Pagina: 1