dosbox-staging icon indicating copy to clipboard operation
dosbox-staging copied to clipboard

Drakkar (1989) bugs

Open kcgen opened this issue 2 years ago • 9 comments

Flagged by @python-exoproject here:

  • https://github.com/exoscoriae/eXoDOS/issues/4875

@python-exoproject, can you drop a note about the nature of the regression (Crash on start? video/audio/performance/...)

kcgen avatar Nov 29 '23 19:11 kcgen

Not much to tell unfortunately. The game starts, after the title screen there is a picture of a ship. When working the background then flashes (meant to be lightning I think?). In 81.0a the game just stops before the flashing would start, nothing in the console, no hard crash - just stops.

Python-Exoproject avatar Nov 30 '23 03:11 Python-Exoproject

Thanks for this info @Python-Exoproject !

Repro pack, if anyone wants to bisect: Drakk89-repro-pack.zip

  • cd Drakk89, then launch /path/to/dosbox-staging/dosbox

kcgen avatar Nov 30 '23 04:11 kcgen

Went back to even 0.79 and still had the same issue, and gave up there. Also tested X and ECE, with the same results.

The game is very bare-bones: CGA + Keyboard + PC Speaker (and nothing else!).. no mouse / Adlib / joystick / etc..

Setting the joysticktype to disabled or hidden fixes it and matches SVN:

[joystick]
joysticktype = hidden

The key-controls are abysmal:

  • 0 to start
  • Q moves left
  • W moves right
  • O jumps
  • space weapon

(hidden is probably the best because the joystick is still available for mapping to keyboard events, but hidden from DOS seeing in.)

Thanks for passing this along, @Python-Exoproject.

kcgen avatar Dec 01 '23 02:12 kcgen

Don't want to keep this as a bug, though @kcgen ? Just change the description perhaps?

johnnovak avatar Dec 01 '23 03:12 johnnovak

Ahh good catch - yup, dropping that label.

kcgen avatar Dec 01 '23 03:12 kcgen

Don't want to keep this as a bug?

I think the bug is on the game's side; but I guess we'd need real hardware to figure it out.

SVN has the same issue when a joystick is present (same hang):

2023-11-30_21-19

Some games just don't do well when a game port and joystick are present; maybe their authors didn't have one. Game ports weren't really ubiquitous in the DOS gaming scene until Creative integrated them in their first Sound Blaster in 1989 (the same year this game was released).

Another "tell" is that this game doesn't support any FM synth or DACs.. so the author might not have had any audio (or other gaming) expansion devices.

If you want to keep it open and check it on your physical PC first (w/ SB present + joystick plugged in) - that might solve it :-)

kcgen avatar Dec 01 '23 05:12 kcgen

I think the bug is on the game's side; but I guess we'd need real hardware to figure it out.

Right, wasn't entirely clear, my bad then 😅

Some games just don't do well when a game port and joystick are present; maybe their authors didn't have one. Game ports weren't really ubiquitous in the DOS gaming scene until Creative integrated them in their first Sound Blaster in 1989 (the same year this game was released).

Sounds plausible, yeah.

If you want to keep it open and check it on your physical PC first (w/ SB present + joystick plugged in) - that might solve it :-)

Well, I don't have a joystick for my retro PCs, so that settles it because I can't test it 😄 Feel free to close it then if you think that's best @kcgen.

johnnovak avatar Dec 01 '23 07:12 johnnovak

I tested it with 86Box 4.1.

  • When a joystick is not attached it boots from the disk image just fine and shows the viking ship with the "lightning" and continues to the game menu screen.
  • When a joystick is attached, it shows the viking ship without the lightning, but the game hangs at that point.

So there is a subtle difference compared to Staging, in that the ship is shown on 86Box, even when it hangs. But regardless the game appears to be buggy.

rderooy avatar Dec 04 '23 16:12 rderooy

Looked more at this, and I think it's OK.

On hardware, the game port disabled the joystick IO port (201h) when a joystick isn't present.

This is why Drakkar works for us when we set joysticktype = disabled or hidden: both those settings disable joystick IO port 201h, no matter what.

Our default though is to expose IO port (201h) because we want to let users map keyboard events to “mock up” a joystick, even if they don't have one.

There are roughly 30 or so Tandy games that require joystick control, so this approach of allowing keyboard->joystick events lets these games be played by people without a joystick (unlike on real hardware).

eXoDOS ships mappings for these specific games that pre-configure the keyboard arrow keys, Ctrl/Alt buttons to joystick actions.

Because the number of games that require a joystick outnumbers those that need the absence of a joystick (like Drakkar), the current default makes the most sense. (and setting joystick = hidden is an acceptable inconvenience for games like Drakkar).

kcgen avatar Dec 05 '23 04:12 kcgen

The game allows to play with the hacks we have in place. It's a poorly written game we allow users to play. Suggest closing this since this issue is resolved on our end.

Grounded0 avatar Aug 13 '24 01:08 Grounded0

The game allows to play with the hacks we have in place. It's a poorly written game we allow users to play. Suggest closing this since this issue is resolved on our end.

Agreed, probably it's a broken mess on various hardware configs too.

johnnovak avatar Aug 13 '24 01:08 johnnovak