/xtidebuilder

Streamlined Builder for XTIDE Universal BIOS

Primary LanguageShellMIT LicenseMIT

This is a nice automated way to build XTIDE Universal BIOS ROMs, including creating custom builds. The latter being the real benefit here.

What this does:

  • Creates a containerised environment with
    • Debian Linux Bookworm
    • Bash
    • Subversion
    • GNU Make
    • NASM
    • UPX
    • Perl
  • Clones the XUB Subversion repo
  • Patches the Makefiles to be nice and unixy
  • Patches out trailing whitespace in Revision.inc, which causes build errors (see BuB's video)
  • Builds the XUB binaries using the checksum target, producing ready-to-burn ROM images, tested in QEMU.
  • Builds the configurator utility, tested in QEMU.
  • Using a Github Action, verifies weekly that the toolchain produces working results in Linux, and macOS x86+ARM.

Last manual validation:

Linux Weekly Build Validation

macOS Weekly Build Validation

macOS ARM Weekly Build Validation

Last scheduled validation:

Linux Weekly Build Validation

macOS Weekly Build Validation

macOS ARM Weekly Build Validation

On Linux and macOS:

  • Install Docker
  • Make sure current user can run docker without sudo sudo usermod -aG docker $(whoami). Might need a reboot.
  • Clone this repository git clone https://github.com/RetroSwimAU/xtidebuilder then run ./runme.sh
  • Receive XUB binaries

On Windows:

  • Option 1:
    • Install WSL
    • Install Docker in WSL
    • Clone this repository git clone https://github.com/RetroSwimAU/xtidebuilder then run ./runme.sh
    • Receive XUB binaries
  • Option 2:
    • Install Docker Desktop
    • Download this repo -- https://github.com/RetroSwimAU/xtidebuilder/archive/refs/heads/main.zip
    • Unzip it somewhere
    • Open Command Prompt or PowerShell and go to where you unzipped it. Make sure you see compose.yaml in dir.
    • Type docker compose up (Or docker-compose up maybe, if docker is an older version)
    • Should receive XUB binaries, look in src/trunk/XTIDE_Universal_BIOS/Build under where you executed the docker command.
    • NB: I haven't tried this. Tried it now, and it works great! :D

Extra features:

  • Edit the options file under resources to affect how the build is performed
  • If you don't like Docker and wish to build directly in your Linux environment, got you covered.
    • Requires Make, NASM, UPX, Subversion, and Perl.
      • E.g. sudo apt install make nasm upx-ucl subversion perl
    • Clone the repo and run ./uncontained.sh
      • Scripts use GNU sed syntax, so on macOS, get gnu-sed from Homebrew brew install gnu-sed.
      • Then something like PATH="$(brew --prefix)/opt/gnu-sed/libexec/gnubin:$PATH" ./uncontained.sh should allow the script work.

Validation:

  • On a weekly schedule, GitHub builds the checksum target, and boots the ide_386.bin artifact in QEMU with a pre-built HDD image.
  • A screenshot is saved from QEMU and provided on the action summary to ensure the toolchain is producing viable binaries.
  • The ARM validation currently does not use Docker, but rather tha uncontained.sh. This is a GitHub hosted runner limitation, may be fixed in the future.

Credits: