I’m proud to reveal a first peek at Gameminder
On my retro PCs I typically arrange my various games into groups of directories for specific genres (e.g action, shooter, strategy) however it can still be a bit fiddly scrolling through my games using various DOS commands.
Also when I come to launch a game, I often find that I’d not yet got it configured correctly or that there was a slight issue. For example, the sound effects not working.
All of these minor irritations got me thinking about creating a DOS based games launcher which would bypass these issues by creating a lightweight UI to browse my games and view information about them.
After a little research I decided to use Turbo Pascal 7 to create my launcher, using a combination of DOSBox and VSCode to provide a better IDE whilst compiling and testing in an emulated DOS environment.
I can imagine writing something like this on an actual retro PC in the Turbo Pascal being much more of a challenge! We’ve certainly been spoilt by using modern intuitive IDEs, large screens and other refinements.
One of the most complex challenges so far was working out how to launch a game without the launcher itself taking up too much memory. Thankfully some other skilled Pascal developers have already solved this issue by writing the current program to EMS or disk and leaving only a 2K stub in conventical RAM to manage the swap in and out of the launched executable.
The UI is modelled on an old DOS utility used to navigate, edit and execute files called PathMinder.
I first came across this on my Dad’s XT PC he used at home for work. When I got a 286 EGA PC a few years later, I carried on using and enjoying it.
I know that XTree seemed to be a more popular utility that performed a similar function, however I always preferred PathMinder. To me it was the superior underdog. So I’m creating GameMinder as a kind of tribute.
What’s left to do
I’m currently struggling with understanding how to work with arrays of records in Pascal. Unfortunately it seems to be a lot more fiddley than the modern languages that I’m used to!
Once that’s out the way, I need to implement the scanning of the file system to find the files in each game directory that will hold information about that game. These will need to be manually maintained and will contain simple text meta data about each game.
With that in place it’ll really just be continued refinement of the UI to offer features such as
I’ll also make the full source code available so that others can extend, improve or just learn from what I’ve done.