Damian Walker

Personal Web Pages

Ossuary Port for DOS

Ossuary for DOS

Monday, 29th June 2020

Over the past week I've been working on a port of my old ZX Spectrum game Ossuary to DOS. It's aimed at an 8088-based PC with CGA graphics. I've converted the Spectrum graphics, and probably got about half way through the game development.

I've encountered a problem, though: it's very slow. Even when running in DOSBox with the default number of cycles, you can see it print the 16-character text message in the text box. The fault appears to lie with the graphics routines provided by OpenWatcom, my compiler of choice.

There are a few ways around this. I could store all the text as graphics, since OpenWatcom seems reasonably quick at displaying non text based graphics. There's a lack of pre-rendering functionality in the library, but the format of CGA bitmapped graphics in memory is simple enough that I can modify the bytes directly. I already use similar techniques to build the scrollable map window.

All this is remarkably fiddly though. What I'm tempted to do is resume work on another project - a graphical library that's specifically designed around off-screen pre-rendering to mitigate the problems of a slow CPU. I've made two attempts at this already, with varying success, but if I can get such a library working then it might make sense to implement Ossuary using that rather than fighting with OpenWatcom's own graphics routines.