blog:x68_launcher_1

This is an old revision of the document!


X68000 Game Launcher - #1: Design & Logical Structure

So, you've got a fancy new (old) Sharp X68000, and you've somehow managed to get loads of games for it.

But you can't remember what all of those games are, where they are on your hard-drive, SD card or CF card, or what those truncated directory names like 'Nova', 'Plin' or 'Buster' actually refer to.

Also, I'm old now and I can't be bothered to navigate around a DOS filesystem any more, and the common 'browser' used on the X68000 is, well, mind numbingly boring…

… and it's not even a decent file explorer… it's for extracting archives!

Well in this series of articles I'm going to document my process for writing a graphical game browser and launcher for the X68000 itself. Not a cop-out by doing something similar for Windows, Mac or Linux. This is going to be a real piece of executable code that can run on the Sharp hardware, or inside an X68000 emulator.

There are some design principles for this application:

  • Must be able to be installed and run with minimal technical knowledge
    • I'm a programmer, but many people who use these old systems are not; they just want to play games on them. It should be possible to just unzip this application into a directory, edit a simple text file, and get it running. No developer or technical skills needed.
  • Must run on the base X68000 configuration with hard drive
    • There are many different X68000 models, but the application should be able to run on all of them, without requiring any special hardware (e.g. FPU, or large memory expansions). A minimally expanded 2MB system (just the on-board 1MB and a 1MB upgrade card) is what we'll aim for. No FPU, no 68030.
  • Build a list of games from a set of directories on (one or more) hard drive(s)
    • The common pre-installed hard drive image that is distributed amongst the community is a single 900MB image, but we need to cater for users with multiple drives and partitions, or games installed in locations other than the defaults in that image. Wherever the games are installed on the system, it should be possible to include them by simply listing where their parent directory is; e.g. A:\Games, or C:\Stuff\RPG_Games.
  • Display a nice user interface to scroll through the games, or filter by category (Action, Sports, RPG, Strategy, etc)
    • The big one. This is what will set the application apart from any of the existing launchers, file browsers or similar tools. Let's have something that looks nice and gives us extra information on a game or filter down from possibly hundreds of installed games to those we're interested in; just Strategy games, for example.
  • Launch any selected game
    • The launcher is only a browser if it can't launch a game, so it absolutely must be able to do this!

There are also some other goals that whilst not essential, would certainly improve the experience:

  • (Optionally) Inject extra metadata and artwork into those games
  • (Optionally) Allow control by keyboard, joystick or mouse
  • (Optionally) Output an audit file of all games

  • Run application
  • Scan through list of known game locations (e.g. A:\Games, C:\Games2)
  • Generate in-memory list of all game sub-folders (e.g. A:\Games\Arkanoid2)
    • Note if their sub-folder contains any additional metadata
    • Note if their sub-folder contains a known start.bat launch file
  • Sort list of all games by sub-folder or title from their metadata so we have a 0-9, A-Z, a-z list
  • Build user interface from graphics primitives and on-disk bitmap files
  • Populate a scrollable selection list

<< Back | (#2: Filesystem tools, data scraping & config loader) Next >>

  • blog/x68_launcher_1.1598109610.txt.gz
  • Last modified: 2020/08/22 15:20
  • by john