Cross-platform CMAKE project for old VESA/SVGA DOS Graphics

Hello everyone,

I've a lot of old code that I used to do in my school days. Those code maily used TurboC and DJGPP. For Graphics I mainly rely on Interrrupt 10h and VESA compatibily. I'll just draw everything in an array and then bitblt it to framepointer.

Now, I want to port them to modern OS, so that they can run without DOSBOX (Also DOSBOX takes hell a lot of time in compiling).

I want to create a cross-platform CMake project. And for display I just need a bitblt support. How to do that or which library to use for that purpose?
Thanks
https://roadrunneremail.org/
Last edited on
Just to learn CMake can take a lot of time:
https://cmake.org/cmake/help/v3.17/

It should be easier to have several compilers installed on system and do code modifications first for each compiler, on Windows ex:

llvm and GCC with Code::Blocks or VSCode
msvc in Visual Studio

Then once you're sure it compiles, start working on cross platform build configuration, which is CMake in your case.

I want to port them to modern OS

For that you'll also want to test your code on different systems, ex: in virtual machines, before start working with CMake.
Last edited on
I want to port them to modern OS
Very good learning experience, porting older code to modern practices.

I want to create a cross-platform CMake project.
A great XY problem.
http://xyproblem.info/

Doing cross-platform is a good idea, restricting yourself to using CMake without knowing the complexity of CMake is the stumbling block.

And for display I just need a bitblt support.
More XY issues. Modern OS support for graphics is vastly different than DOS. Windows GDI comes closest, but that restricts you to one OS and a very outdated way to muck around with graphics.

You seem to be forgetting about multi-media support, sound and music. That is another layer of complexity added to what you need to learn.

What about keyboard/mouse/joystick support from your games? You do want the user to interact with the game, right?

How to do that or which library to use for that purpose?
That is the single question you should ask, no preconceptions of how to do something.

Three cross-platform libraries come to mind, supporting the full multi-media shebang. Graphics, music/sound, mouse/keyboard.

SFML (Simple and Fast Multimedia Library) - http://www.sfml-dev.org/index.php
SDL (Simple DirectMedia Layer) - http://www.libsdl.org/
SIGIL (Sound, Input, and Graphics Integration Library) - http://www.libsigil.com/
Topic archived. No new replies allowed.