@james This is great! I've made two "cracktros" myself "recently" (*ahem* in the past 2 years) and it wasn't always easy to find useful examples. Mode X was especially a hoot to figure out.
All the documentation was there, plenty of old books can be found on Archive.org, but those are about using VGA for normal programs and games.
Other than that it was looking at a lot of uncommented code, so it's great to see the actual, non-standard effects being explained here.
And if I got any details wrong, it's been 20 years...
https://fbxl.net/oma/qfak/index.html
(Has the QB version and the windows FB version)
- replies
- 1
- announces
- 0
- likes
- 0
@sj_zero @james That's impressive, all in pure QBasic?
Because I've seen QB game libraries that were actually compiled C/ASM libraries to speed things up, with a QB interface.
edit: playing it now. It does require some cycles on DOSBox so I guess it is indeed pure QB, but the scrolling is very smooth.
edit 2: the wavy effect of the water is cool
The only thing that might be assembly is the key handler. I really don't remember at this point, because I remember spending some time on an assembly key handler, but I also remember spending some time on a pure QB key handler. There was no native multikey routine so you had to poll the keyboard interrupt directly. I think an assembler keyboard routine would use interrupts to catch every key press and unpress whereas a QB routine has to poll the keyboard and is limited by the execution rate of the main game loop.
I guess, also the music. After Windows 2000 was released, any conception of using MS-DOS for music went out the window, so I think the dos version has a little visual basic program that looks for commands in a file in the root directory of the game, and then either plays or stops playing the music based on the commands in the file.