VOGONS


First post, by Neville

User metadata
Rank Oldbie
Rank
Oldbie

Now, I understand this soiunds weird. I should be posting here if I couldn't get the sound working in "Arctic Moves", rather than having solved the issue. But this is weird enough to deserve some space, I hope.

Under real DOS, the game auto-detects sound hardware, there's no separate SETUP program or anything. Under DOSBox this, for some reason, doesn't work.

But for some reason, if you edit DOSBox.conf and change joystick type from "auto" to "2axis" (and probably other types, I haven't tried yet) the game detects the sound hardware!

Pretty weird, huh? I've added the info to the compatibility list.

Reply 1 of 5, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Sound works in the first mission when you configure a joystick in DOSBox, but it's not entirely effective because sound is still missing on the title and prologue screens. Sound works completely, regardless of gameport detection, when booting real DOS. The game uses hard-coded memory addresses that belong to DOS and relies on pre-existing memory values; which is weird and/or messy programming.

Although DOSBox allocates the memory region for its emulated DOS structures, it is not actually using the specific addresses, so a workaround is possible. The attached program sets memory values that should enable all sound in the game without having to boot DOS and without having to configure a joystick.

Reply 2 of 5, by Neville

User metadata
Rank Oldbie
Rank
Oldbie

Thank you!

Reply 3 of 5, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

with which table would this correspond ?

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

Reply 4 of 5, by Neville

User metadata
Rank Oldbie
Rank
Oldbie
ripsaw8080 wrote:

The game uses hard-coded memory addresses that belong to DOS and relies on pre-existing memory values; which is weird and/or messy programming.

The bit about messy programming I can believe. I remember when the game was released in 1995, it ran way too fast even on 486/66 computers, you had to use the "Turbo" button to make it playable.

Later I learned the game had a complicated production. It was supposed to appear as early as 1991-92 for Amiga and Atari ST. They probably cut corners to convert it to PC.

Reply 5 of 5, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

It uses segment 0x40 addresses 0x4F0 thru 0x4FF and 0x9EA (I think 0x9EA was not intended, should have been 0x4F0+0xA like the rest of the code, not 0x4F0+0x4FA)

In DOS 5/6 the addresses are not part of a table, they are actually DOS code. The game swaps between several executables, and maybe the developer was being lazy by storing global vars in a mostly-dormant area of DOS. In DOS 3.3 the addresses are part of a device table, but with the game being from 1995, earlier versions of DOS were probably not seeing much use by then.