This is the MSXHub packages repository containing the package definitions for all the software available in MSXHub.
To build and test a package in your own PC some software is required:
- GNU make
A MSXHub package is just a YAML file in the packages/ directory. This file contains the package information and the script required to build it.
The file has to be the same as the package name (in uppercase) plus the
yaml extension in lowercase.
A package file contains several mandatory fields defining the package itself.
The name of the package to be created.
- Capital letters
- No longer than 8 characters
The version of the software being packaged.
- No longer than 16 characters
- Cannot contain the following characters
Release number of the package. It starts with 1 and it's increased every time a new package with the same version number is created. Every time a new version is package, the release number should be back to 1.
- Must be an integer number
Short description of the package.
- No longer than 80 characters
Name of the author or authors of the packaged software. Can be a personal name or a company name.
- No longer than 128 characters
Name of the author of the package itself. That's you! :)
- No longer than 128 characters
License of the packaged software.
- Should be in the list defined in msxhub.com/list_licenses
Please, open an issue if the required license is not in the list.
Category of the packaged software.
- Should be in the list defined in msxhub.com/categories
Please, open an issue if the required category is not in the list.
Minimum system required to run the software.
- Should be in the list defined in msxhub.com/list_systems
Please, open an issue if the required system is not in the list.
List of required extensions to run the software.
- Should be in the list defined in msxhub.com/list_requirements
Please, open an issue if the required extension is not in the list.
Web URL where to find more information of the packaged software. In some cases, the packaged software doesn't have an official website. Just use a relevant URL in such cases.
- No longer than 256 characters
Long description of the packaged software. Markdown format can be used to add style to the text.
Default directory where to install the packaged software in MSX-DOS format. Do not specify the drive letter as it will be automatically added by MSXHub.
- Should start with
\VIwill be installed in
\MSXDOS2Twill be installed in
Before building the package, the required files need to be downloaded. This list field define all the files required to build the package and the URLs where to get it them.
Use the following format:
files: - vi.zip: 'https://github.com/fr3nd/msx-vi/releases/download/v%VERSION%/vi.zip'
First define the name of the file and then the URL where to fetch it.
%VERSION% will be automatically replaced by the content defined in the field
GNU Bash script to generate the package.
The script needs to have all the commands to uncompress the downloaded file and place all the required files in the
In some cases,
BAS files need to be created. In such cases, here documents may be used. Do not forget to convert the resulting file to DOS format after it's been created:
cat > package/RUNME.BAT << EOF basic LOADER.BAS EOF unix2dos package/RUNME.BAT
- The first line should be
mkdir -p packageto create the directory where all the files will be stored.
build: | mkdir -p package/ unzip alien8.zip mv Alien8msx2.rom package/alien8.rom cat > package/alien8.bat << EOF srom alien8.rom EOF unix2dos package/alien8.bat
Simple changelog of the package in Markdown format.
changelog: | - 1.0.0-1 2018-09-02 - First release
make PACKAGE(replace PACKAGE by your package name in capital letters): Test and build the specified package.
make clean: Clean all generated files.
make emulator: Run OpenMSX with the generated packages under the
\FILESdirectory for testing.
Optional override the OPENMSX_ARGS environment variable to define an other machine and/or extra hardware;
OPENMSX_ARGS="-machine Philips_NMS_8250 -ext ide -ext moonsound" make emulator