As the writing of this post, GoG winter sale is on, and Dungeon Keeper Gold Edition costs just $1.50. I have very fond memories of this game (slapping your minions never gets old), I used to play it a lot when I was like 6 years old.
I was expecting the Windows version of the game (with OpenGL support), but instead, GoG sells the MS-DOS version. This means that the graphics options are very limited.
Even so, I was still excited for the game. Fortunately, DOSBox is available for Linux, and surprisingly, the version that is available in the Ubuntu repositories is quite recent.
First I extracted the files from the game installer using
innoextract, but when I tried to launch the game, the executable complained about the CD-rom.
So I ran the game installer using wine and copied the game folder from the wine prefix.
Inside the game folder, GoG is kind enough to include a prefilled configuration file for DOSBox, dosboxDK.conf in this case. I ran the game executable using this configuration file through DOSBox.
dosbox -conf dosboxDK.conf KEEPER.EXE
… And disaster. The game launches in fullscreen mode and alters my displays settings, resolutions and also it looks split across my monitors.
At this point I have to mention that I have a multi monitor setup, a 4K monitor as primary display and a 1080p monitor in portrait to the right. As shown here:
DOSBox uses SDL to handle graphics and inputs. SDL does not like multi monitor setups (at least without some thinkering).
So, after some digging online, I managed to run the game in fullscreen, in my primary display, without screwing the resolution.
First I edited the dosboxDK.conf. Under the
[sdl] section, is the
fullresolution option. Its value should be the resolution of the monitor where the game will be displayed. In my case:
Next, I needed to “tell” SDL which monitor to use. I found that, fortunately, the
SDL_VIDEO_FULLSCREEN_DISPLAY environment variable exists. This variable is an unbelievable easy solution. Its value is the index of the desired display starting from 0.
I made a simple script to launch the game:
export SDL_VIDEO_FULLSCREEN_DISPLAY=0 dosbox -conf dosboxDK.conf KEEPER.EXE exit 0
Now the game works great without messing with my display settings.
If you are going to play this game, remember to toggle the “hi res” mode by pressing ALT+r in game.
I hope someone finds this post useful.