VOGONS


GUS mixControl default

Topic actions

First post, by peterferrie

User metadata
Rank Oldbie
Rank
Oldbie

I noticed that the Fallen Angel demo from A-Men won't run in DOSBox unless either the real Ultrainit.exe exists, or any DemoVT-based demo was run first. After much tracing, I see that if I write a 0x0c to the GUS base port, then Angel runs without any depenencies. That suggests something IRQ related. At a guess, I suppose that Angel is assuming that IRQs are always enabled. Would the world break if that was the default mixControl value?

Reply 1 of 9, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Could you please check if ultrainit.exe does such a write as well (not followed
by a write to gusport+0x0b)?
It might even be enough to use myGUS.ChangeIRQDMA = true; for the gus
initialization code.

Reply 2 of 9, by lightmaster

User metadata
Rank Oldbie
Rank
Oldbie

demo might bue buggy, coz it was done in a hurry hehe..

Reply 3 of 9, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

😀 Though demos' gus support is quite good.

Reply 4 of 9, by lightmaster

User metadata
Rank Oldbie
Rank
Oldbie

Yeah that's right!

Reply 5 of 9, by peterferrie

User metadata
Rank Oldbie
Rank
Oldbie

>Could you please check if ultrainit.exe does such a write as well (not followed by a write to gusport+0x0b)?

Ultrinit.exe (I got the name wrong before) writes 0x0b to gusport, then writes 0 to gusport+0x0b, plus lots of other combinations, too.

>It might even be enough to use myGUS.ChangeIRQDMA = true; for the gus initialization code

I think that it's not a DMA problem, but that the IRQ never fires.
Changing the mixControl value alone (not touching ChangeIRQDMA at all) makes the demo work. Changing ChangeIRQDMA without touching mixControl still hangs.

Reply 6 of 9, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I think that it's not a DMA problem, but that the IRQ never fires.

Could make sense, i'd expect a default of 8 (initializing mixControl that way) to work in this case.

Reply 7 of 9, by peterferrie

User metadata
Rank Oldbie
Rank
Oldbie

And it does work using a value of 8.

Reply 8 of 9, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Ok thanks.

What's the last value written to that port by ultrinit.exe?

Reply 9 of 9, by peterferrie

User metadata
Rank Oldbie
Rank
Oldbie

Last value is 0x0b.