VOGONS


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 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.