blog:x68_launcher_1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
blog:x68_launcher_1 [2021/02/24 14:41] johnblog:x68_launcher_1 [2021/02/24 15:32] (current) john
Line 1: Line 1:
 ====== X68kLauncher, a X68000 Game Launcher - Information & Downloads ====== ====== X68kLauncher, a X68000 Game Launcher - Information & Downloads ======
  
-So, you've got a fancy new (old) [[https://en.wikipedia.org/wiki/X68000|Sharp X68000]], and you've [[https://nfggames.com/X68000/index.php/Games/|somehow]] managed to get loads of games for it. +{{:blog:x68000_launcher_2.png?500|}} 
- +
-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...  +
- +
-{{:blog:lhes_01.png?400|}} +
- +
-... 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. +
- +
-===== Design Principles ===== +
- +
-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** +
- +
----- +
- +
-===== Logical Operation ===== +
- +
-  * 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 +
- +
-====== X68kLauncher ======+
  
 My //X68kLauncher// application is written in C, using the the [[blog:x68_devtools|GCC development tools as detailed on my site]]. My //X68kLauncher// application is written in C, using the the [[blog:x68_devtools|GCC development tools as detailed on my site]].
Line 66: Line 16:
    * It can export an audit file of all the found games    * It can export an audit file of all the found games
    * It can launch any game for which a start file is either found (e.g. start.bat), or which has been defined in metadata (e.g. run.com, go.exe, etc)    * It can launch any game for which a start file is either found (e.g. start.bat), or which has been defined in metadata (e.g. run.com, go.exe, etc)
 +
 +A demo of a (early) version of the application can be found on my Youtube channel:
 +
 +{{youtube>3cuFtyWimM8?large}}
  
 You can find versions of the X68kLauncher application ready to download on this page, as well as packaged up versions of games and their metadata ready to go. You can find versions of the X68kLauncher application ready to download on this page, as well as packaged up versions of games and their metadata ready to go.
Line 81: Line 35:
 Pre-compiled versions of the X68kLauncher application are listed here. Pre-compiled versions of the X68kLauncher application are listed here.
  
-^ Date ^ Notes ^ Download Links ^ +^ Date           ^ Notes                                ^ Download Links                      
-2020-09-07     First version which can launch games! Run //l.bat// and it will start up everything you need, as well as run the selected game on exit. Still need to implement game filtering, as well as re-launch the application after you exit the game. {{ :blog:pc98launcher_2020_09_07.zip |486}}|+                                                                                        |
  
 ===== Application Source Code ===== ===== Application Source Code =====
Line 94: Line 48:
 These packages include a pre-written __launch.dat__ metadata file, screenshots, box artwork and custom start files (in most cases following the Sharp X68000 convention of being named __!start.bat__). In cases where a game has a configuration tool to set music/sound options, this is set as the alt_start executable. These packages include a pre-written __launch.dat__ metadata file, screenshots, box artwork and custom start files (in most cases following the Sharp X68000 convention of being named __!start.bat__). In cases where a game has a configuration tool to set music/sound options, this is set as the alt_start executable.
  
-The packages should unzip directly to a directory such as __A:\Games__ on your PC-98 hard drive and //be ready to go//. //You don't need to find anything else//.+The packages should unzip directly to a directory such as __A:\Games__ on your X68000 hard drive and //be ready to go//. //You don't need to find anything else//.
  
-^ Info ^ Name                    ^ Developer      ^ Metadata ^ Screenshots ^ Box Artwork ^ Audio ^ Notes ^ +^ Info ^ Name                    ^ Developer      ^ Metadata ^ Screenshots ^ Box Artwork ^ Audio ^ Notes                 
-[[https://www.mobygames.com/game/pc98/advanced-power-dolls-2/|*]] {{ :blog:advanced_power_dolls_2.zip |Advanced Power Dolls 2}}  Kogado Studio  Yes      | Yes         | No          FM, MIDI (MPU+Serial) Metadata includes alt_start set to the configuration/music settings tool. |+                                                                                                         |
  • blog/x68_launcher_1.1614177671.txt.gz
  • Last modified: 2021/02/24 14:41
  • by john