VOGONS


First post, by vsuontam

User metadata
Rank Newbie
Rank
Newbie

😊 Hello,

I am an old school DOS demo scene dude, and was trying to get a demo written by our group to run in Dosbox 0.65. The demo was presented in Assembly 93.

You can not imagine my happiness when I managed to run two first parts without problems! Thanks to all developers for great work. I was almost in tears, seeing my carefully crafted asm code to run once again. Those days...

However, I would be eager to get the demo run from start to end. I did not manage to run the demo with sound blaster sounds on. Dosbox crashes with "Exit to error: CPU:GRP5:Illegal Call 7".

The weird thing is that sounds works in one part of the program. If I remember correctly from the year 93, the part that works, uses DMA based routine to transfer samples directly to SB. All the other parts try to use a third party .mod playing library (STMIK?) if I remember correctly.

If anyone wants to give the demo a try (it is actually quite humorous), download it at: http://www.hut.fi/u/vsuontam/SSAFT.ZIP

Start ssaft.exe inside the zip, and set the SB values correctly in the first part (by pressing arrow keys). Enter starts the demo. The demo crashes with the said error after the text "Unexpected" is displayed.

I tried with all the possible sb variants in dosbox.conf, but nothing helped. I also disabled all other audio devices, and tried to tune EMS, UMB etc parameters I know. But nothing helped on me. Specs of my HW:

HP Omnibook 6100 (Pentium III-M 1.13 GHz, 256 MB), mother board Intel 830MP, ATI Mobility Radeon 16MB, running on Windows 2000, with sp4 (build 2195)

The problem can be reproduced by running the "ssaft sb 7 220 p4" and it does it always instantly at startup, run without options to get it run for a while. I was running the demo on vga mode, and I tried to use different sound options.

All help/suggestions appreciated.

Thanks in advance,

Vesa

P.S I can attach the zip if needed, but it can be downloded easily from the above url.

Reply 1 of 6, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

well the error you are getting in DOSBox basicly means that zero code was executed.
So there is a jump or an irq going wrong. The library could have removed the irq handler before the irq came. You might want to try setting the irq of the soundblaster irq of dosbox to 5.

But this is offcourse pure speculation. I would have to take a look to see what is wrong with it.

Water flows down the stream
How to ask questions the smart way!

Reply 2 of 6, by eL_PuSHeR

User metadata
Rank l33t++
Rank
l33t++

I tested it with IRQ5 inside DOSBox. Didn't work either.

Intel i7 5960X
Gigabye GA-X99-Gaming 5
8 GB DDR4 (2100)
8 GB GeForce GTX 1070 G1 Gaming (Gigabyte)

Reply 3 of 6, by vsuontam

User metadata
Rank Newbie
Rank
Newbie

OK, good to know what the error message means. It might be a timing issue then. We developed the Demo for a 286 PC. Or could it be a library relocation issue with the third party library?

Interrupt coming before interrupt handler set?

Memories of good old days are getting stronger 😀

I remember now that STMIK worked so that you had to "poll" the library with regular intervals. If I remember correctly we did use clock interrupts for polling the device and STMIK used DMA interrupts to feed the samples (calculated in polling phase) to SB.

Maybe the order of interrupts have changed somehow, and STMIK library is sensitive for that.

Is there some ways of twaking the SB DMA handling or interrupt handling in general? Can it be, that way dosbox handles SB sound is somehow "too fast" compared to the year 1993?

An other guess that comes to my mind, is that the jump to STMIK library somehow does not succeed. Have there been changes in .exe structure between DOS versions? I think I was using Dos 6.01 or something by then... (I think jumping to the libary code may be the problem, since even if I disable sound (from the demo) Dosbox crashes at the place, we try to jump to library code (just to set some IRQ values, but not starting the sound).

Well, these are just my random guesses, and they might be completely irrelevant. All suggestions however welcome on how to proceed from here.

Thanks,

Vesa

Reply 5 of 6, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Don't know if it's sound related at all. The sb dsp reset is just the last
visible message.

If you're handy with a debugger, at 8b4:10f there are three successive
calls to one function, just the registers are set up differently. The first
call succeeds, but during the second one it overwrites code, which it
executes later (still in that call though).
Could be that this code is part of that library, does some lengthy memory
translation/decryption/whatever.

Reply 6 of 6, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Debugged the demo Srecko mentioned a bit, and there were some similarities
so i tried to look up what sound module they use, and as vsuontam
already stated they (both) use the STMIK scream tracker mod player.

With a bit more fiddling i could get it to work, actually they can't detect
the soundblaster and do some assumptions later which corrupt the code.
They don't do that much in their sb detection, but require data to be
available/not available depending on executed instructions and stuff
like that.