VOGONS


First post, by kahuna

User metadata
Rank Newbie
Rank
Newbie

Hello everyone,

I’d like to share a project I’ve been working on for my retro build. It is called G.R.O.G. (Game Runner Organized Grid).
It is a text-mode, CSV-driven game frontend for MS-DOS (386+).

grog1.png

The Motivation
Like probably some of you, I have a sizeable collection of games on my DOS PC, but I hate navigating 8-character directory trees manually. I also dislike heavy GUI launchers that sit resident in memory, eating up precious conventional RAM that games need.
I built G.R.O.G. to be fast, simple, and completely invisible when the game starts.

How It Works (The "Zero-Overhead" Strategy)
G.R.O.G. uses a C executable (compiled with DJGPP) for the menu interface and a Batch wrapper for execution.
1. You select a game in the menu.
2. The menu generates a temporary `_RUN.BAT` script and completely terminates (exit code).
3. The batch wrapper executes the game.
4. When the game quits, the wrapper loops back to the menu.

Result: Your game gets 100% of available system resources. The launcher uses 0KB of RAM while you are playing.

Key Features

  • CSV Database: No proprietary database formats. Your library is just a `GAMES.CSV` file you can edit. You can also open the provided `GAMES.XLSX` in any spreadsheet software and export it to CSV later.
  • Throttle Integration: If you have a fast machine - based on metadata in the CSV file - G.R.O.G. can automatically call slowdown scripts (using tools like CPUSPD or SETMUL) before launching a speed-sensitive game, and reset speed afterward.
  • Safety Interlocks based on metadata:
    - Warns if a game requires a CD and the drive is empty.
    - Pauses for Copy Protection checks (Code wheels/Manuals).
    - Checks memory requirements (warns if you need EMS/XMS).
  • Bare Metal Speed: Writes directly to VGA video memory (0xB8000) for instant scrolling.

Download & Source
This is open source (GPLv3). The release archive includes `CWSDPMI.EXE`, example throttle scripts, and a template database.
Codeberg Repo & Releases: https://codeberg.org/jjmarcos/grog
Please, take the time to go through the README file.
Binary Download: https://codeberg.org/jjmarcos/grog/releases

Disclaimer: This is a hobbyist project. Unlike the drink served at the SCUMM Bar, this G.R.O.G. contains 0% kerosene and 0% battery acid. However, use at your own discretion!

Feedback and bug reports are welcome!

Last edited by kahuna on 2026-01-05, 02:33. Edited 1 time in total.

Be free!

Reply 1 of 19, by zyzzle

User metadata
Rank Member
Rank
Member

This is outstanding. Finally a text-mode DOS game menu frontend. I wonder if it could be configured / augmented to:

1. Create a RAMDRIVE of x MB (based upon size of game -- user supplied in the .CSV file)
2. Decompress a single-archive ZIP, 7zip or RAR of the game to the RAMDRIVE
3. Execute the script by running the decompressed game directly from the RAMDRIVE.
4. Possibly run / configure SBEMU on a per-game basis for modern laptops with Intel HDA sound.

Up until now, I do all of this manually per game. They're all stored compressed in archives on a USB memory stick which boots to MS-DOS 7.1. I then decompress and run everything from a large RAMDRIVE. This is on a modern system with huge amounts of memory (8GB to 16GB), so there's plenty of RAM and CPU to spare... SBEMU / VSBHDA is also configured via .BAT file in each game's compressed archive. When decompressed, I run the .BAT file to configure and execute the game. Manually creating .BAT files for each of hundreds of games is a pain, though, and your menu solution is at once more elegant and less cumbersome.

Reply 2 of 19, by NeoG_

User metadata
Rank Member
Rank
Member

Cool project!

So far I have been using LaunchBOX DOS Edition 2.0 and it uses the same batch wrapper trick to not use any memory when launching games. but I have been wondering when my game list will hit the conventional memory limit as it can't page data from disk.

I have also been using nested batch files to configure system speed, multiple sound cards, mixer levels, MIDI devices, disc images, configuration resets on the fly executed by typing in %ENV% commands - Speed only wouldn't be enough but also once you start spreading to other stuff the configuration options become endless and virtually impossible to maintain.

It would be cool to have some kind of extensible framework definition that pre-defines scripts that can be plugged into the software and triggered in the CSV. For exmaple if I wanted to create a definitions module that switches PicoGUS modes or loads disc images from a USB drive. Then those definitions can be shared and used by other people.

But just thinking aloud. I am kind of stuck with launchbox for now because all of the game launch scripts are in it's database which was short sighted of me, I would need to run some kind of script to pull them out into individual batch files which could be used as executable targets in GROG

98/DOS Rig: BabyAT AladdinV, K6-2+/550, V3 2000, 128MB PC100, 20GB HDD, 128GB SD2IDE, SB Live!, SB16-SCSI, PicoGUS, WP32 McCake, iNFRA CD, ZIP100
XP Rig: Lian Li PC-10 ATX, Gigabyte X38-DQ6, Core2Duo E6850, ATi HD5870, 2GB DDR2, 2TB HDD, X-Fi XtremeGamer

Reply 3 of 19, by kahuna

User metadata
Rank Newbie
Rank
Newbie

Appreciate the feedback!
I'm working on the updates, stay tuned.

Be free!

Reply 4 of 19, by kahuna

User metadata
Rank Newbie
Rank
Newbie

Hello everyone!

Happy to report that 1.5 is out! and it introduces exactly what you are both asking for: The Module System.

It is an extensible framework. You can now create custom scripts (like PICOGUS.BAT, SBEMU.BAT, or MOUNT_ISO.BAT) in a MODULES folder and trigger them directly from the CSV, complete with arguments.
Part of this is the RAM Drives and archive management. The release includes a RAMLOAD module example out of the box. It accepts a specific archive and RAM size from the CSV (e.g., RAMLOAD:"DOOM.ZIP" 32M), creates the drive dynamically, unzips the game and launches it.

There is also the new built-in config launcher with a dedicated hotkey to launch configuration/setup utilities for any game directly from the menu (`C` key).

Please take the time to go through the README file:
G.R.O.G. main page

Give it a spin and let me know how it works for you!
Download G.R.O.G. v1.5 on Codeberg

Be free!

Reply 5 of 19, by Yoghoo

User metadata
Rank Member
Rank
Member

Thanks for this. It's documented very well! What I am missing is an edit function from within the program. Editing a CSV file in an editor on DOS is not a lot of fun. 😀 I know I can use Excel or whatnot on another PC but copying them back and forth is a bit cumbersome (for me at least). But overall I like it!

Reply 6 of 19, by kahuna

User metadata
Rank Newbie
Rank
Newbie

Read with Warcraft voice: "Your wish is my command!"

Something like this? 😉

The attachment grog-ed01.jpg is no longer available

Hopefully I can get it done and tested, then update the release and docs soon!

Be free!

Reply 7 of 19, by crusher

User metadata
Rank Member
Rank
Member

Wow, this sounds and looks nice! 😀
Will give this a try.

Keep up the good work!

Reply 8 of 19, by Yoghoo

User metadata
Rank Member
Rank
Member
kahuna wrote on Yesterday, 06:31:
Read with Warcraft voice: "Your wish is my command!" […]
Show full quote

Read with Warcraft voice: "Your wish is my command!"

Something like this? 😉

The attachment grog-ed01.jpg is no longer available

Hopefully I can get it done and tested, then update the release and docs soon!

Nice! Looks good. I assume you can also insert new records as well?

Reply 9 of 19, by kahuna

User metadata
Rank Newbie
Rank
Newbie

Does it insert records?
My friend, not only does it insert records, it calculates memory blocks, organizes your childhood, and gives a foot massage that would make LeChuck feel alive again! (massage oil sold separately)
I'm always open to hearing what the crew needs, but remember: I'm a Mighty Pirate™, not a waiter at the Scumm Bar. I can't serve every single grog that gets ordered from the back of the room!

I did, however, take a quick trip to the Swamp to consult the Voodoo Lady regarding a timeline. The cards (and my compiler) foretell that a new version will manifest likely tomorrow. Assuming LeChuck doesn't curse the upload!

Be free!

Reply 10 of 19, by vetz

User metadata
Rank l33t
Rank
l33t

This is very very nice! Thanks for the quick updates.

A feature request for me would be some sort of auto-scan feature and perhaps a community based metabase list. So you could set it to scan "C:\GAMES" and any match with .exe/file structures would auto insert a record or prompt for validation.

I'd lower the treshold to get started on an existing system 😀

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 11 of 19, by kahuna

User metadata
Rank Newbie
Rank
Newbie

Thanks for the kind words!

Technically, building an auto-scanner in DOS is a nightmare. Recursive directory scanning is really risky in C for DOS (it loves to cause stack overflows), but the real issue is the math. To identify a game, the CPU has to read the files and calculate an MD5 checksum first. On a retro machine, crunching those hashes is agonizingly slow; you'd be waiting ages just to generate the signature before we could even look it up in some sort of local database.

This tool is really built for the hands-on enthusiast who wants their config clean 😉
Trying to force modern, checksum-based auto-discovery onto a DOS machine is roughly the technical equivalent of trying to cross a ravine using a rubber chicken with a pulley in the middle. It sounds like a solution, but you're probably just going to get stuck halfway across.

Be free!

Reply 12 of 19, by crusher

User metadata
Rank Member
Rank
Member

A killer feature would be to include Coverart/Screenshots.
I know this is not possible because of textmode.

Just dreaming...
Graphical mode with mouse support, Coverart/Screenshots, maybe background music from the game that is currently highlighted

Why something like this haven't exist back in the old days?

Reply 13 of 19, by NeoG_

User metadata
Rank Member
Rank
Member
crusher wrote on Today, 07:57:

Why something like this haven't exist back in the old days?

A launcher wasn't needed for the 4 games you had installed on your computer

98/DOS Rig: BabyAT AladdinV, K6-2+/550, V3 2000, 128MB PC100, 20GB HDD, 128GB SD2IDE, SB Live!, SB16-SCSI, PicoGUS, WP32 McCake, iNFRA CD, ZIP100
XP Rig: Lian Li PC-10 ATX, Gigabyte X38-DQ6, Core2Duo E6850, ATi HD5870, 2GB DDR2, 2TB HDD, X-Fi XtremeGamer

Reply 14 of 19, by crusher

User metadata
Rank Member
Rank
Member
NeoG_ wrote on Today, 08:15:

A launcher wasn't needed for the 4 games you had installed on your computer

It was more like 40 and still is.

Reply 15 of 19, by vetz

User metadata
Rank l33t
Rank
l33t
kahuna wrote on Today, 07:56:
Thanks for the kind words! […]
Show full quote

Thanks for the kind words!

Technically, building an auto-scanner in DOS is a nightmare. Recursive directory scanning is really risky in C for DOS (it loves to cause stack overflows), but the real issue is the math. To identify a game, the CPU has to read the files and calculate an MD5 checksum first. On a retro machine, crunching those hashes is agonizingly slow; you'd be waiting ages just to generate the signature before we could even look it up in some sort of local database.

This tool is really built for the hands-on enthusiast who wants their config clean 😉
Trying to force modern, checksum-based auto-discovery onto a DOS machine is roughly the technical equivalent of trying to cross a ravine using a rubber chicken with a pulley in the middle. It sounds like a solution, but you're probably just going to get stuck halfway across.

Do you really need to calculate a MD5 checksum? Couldn't you just go by filename(s) and/or filesize and/or directory name? It won't be perfect, but if you have manual verification in the UI you could prompt the user to enter/correct values. Windows 3.x does something similar when it checks for DOS applications to be added as PIF files.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 16 of 19, by NeoG_

User metadata
Rank Member
Rank
Member
crusher wrote on Today, 08:39:

It was more like 40 and still is.

The proverbial you, I'm sure there was scant individuals with larger amounts of games installed but not enough to create market demand for a product

98/DOS Rig: BabyAT AladdinV, K6-2+/550, V3 2000, 128MB PC100, 20GB HDD, 128GB SD2IDE, SB Live!, SB16-SCSI, PicoGUS, WP32 McCake, iNFRA CD, ZIP100
XP Rig: Lian Li PC-10 ATX, Gigabyte X38-DQ6, Core2Duo E6850, ATi HD5870, 2GB DDR2, 2TB HDD, X-Fi XtremeGamer

Reply 17 of 19, by crusher

User metadata
Rank Member
Rank
Member

Not commercial product. But a hobby driven one like this.
There was a tool for everything. Commercial or selfmade.
But I can't remember of such a simple but great idea for such games launcher.

Reply 18 of 19, by Yoghoo

User metadata
Rank Member
Rank
Member
vetz wrote on Today, 09:01:

Do you really need to calculate a MD5 checksum? Couldn't you just go by filename(s) and/or filesize and/or directory name? It won't be perfect, but if you have manual verification in the UI you could prompt the user to enter/correct values. Windows 3.x does something similar when it checks for DOS applications to be added as PIF files.

You don't have to do that of course but even than there are almost 10000 games on DOS. Who's going to create a database for them? Also a user could change paths, directories etc (not to mention the duplicate file names). So a scan would be very much a miss on a lot of systems even if there was such a database. I would like it but I don't think it's feasible.

Reply 19 of 19, by vetz

User metadata
Rank l33t
Rank
l33t
Yoghoo wrote on Today, 12:17:
vetz wrote on Today, 09:01:

Do you really need to calculate a MD5 checksum? Couldn't you just go by filename(s) and/or filesize and/or directory name? It won't be perfect, but if you have manual verification in the UI you could prompt the user to enter/correct values. Windows 3.x does something similar when it checks for DOS applications to be added as PIF files.

You don't have to do that of course but even than there are almost 10000 games on DOS. Who's going to create a database for them? Also a user could change paths, directories etc (not to mention the duplicate file names). So a scan would be very much a miss on a lot of systems even if there was such a database. I would like it but I don't think it's feasible.

It would have to be a community based effort where you share your manual entries. It wouldn't be 100% perfect, but it'll be a good help/start to get going. If the search discovered a file which could fit multiple entries, it could prompt the user for the correct alternative.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes