VOGONS


First post, by peterferrie

User metadata
Rank Oldbie
Rank
Oldbie

Triangle demo by Trillian crashes during GUS init.
I see this code:
outb 0x343, 0x42
outb 0x344, 4
sets low 8 bits of gRegData, waiting for second byte

outb 0x343, 0x41
outb 0x345, 0x81
sets high 8 bits of gRegData, then issues the command to assign register 0x41 only.
Two problems: low 8 bits are zeroed due to second write to 0x343; and register 0x42 is never assigned anyway.

Is it a limitation in DOSBox, or the demo got lucky somehow on real hardware?

Reply 1 of 2, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Looks like a dosbox bug, docs are a bit sparse with word/dword access
to the registers (where the 344/345 might be accessed using words by
most games??).

Reply 2 of 2, by peterferrie

User metadata
Rank Oldbie
Rank
Oldbie

I suppose that's how they work.
The demo polls for an acknowledgement, and works nicely (with sound) if I bypass that. I will make a patch for the demo.