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 5, 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 5, 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 5, by kahuna

User metadata
Rank Newbie
Rank
Newbie

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

Be free!

Reply 4 of 5, 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 5, 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!