Add emulated Serial MIDI synthesizer support (#305) #6
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Binaries | |
on: [push, pull_request] | |
jobs: | |
README: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Install Dependencies | |
run: sudo apt-get update && sudo apt-get install -y build-essential make fonts-dejavu | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Install md-to-pdf (npm) | |
run: | | |
npm i md-to-pdf | |
- name: Create output directory | |
run: | | |
mkdir artifacts | |
- name: Create README | |
run: | | |
export PATH=$(pwd)/node_modules/.bin:$PATH | |
cat header_footer.md README.md RELEASES.md | md-to-pdf --config-file .gh/config.js --stylesheet .gh/markdown.css > "artifacts/README.pdf" | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: readme-pdf | |
path: artifacts/* | |
build-win-x86_64: | |
needs: [README] | |
runs-on: windows-2019 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
update: true | |
install: make git mingw-w64-x86_64-toolchain mingw-w64-x86_64-libelf mingw-w64-x86_64-SDL2 mingw-w64-x86_64-fluidsynth | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Fetch latest ROM | |
if: startsWith(github.ref, 'refs/tags/r') != true | |
run: | | |
gh run download -R X16Community/x16-rom -n "ROM Image" --dir latest_rom | |
shell: cmd | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Fetch latest release ROM | |
if: startsWith(github.ref, 'refs/tags/r') | |
run: | | |
gh run download -R X16Community/x16-rom -n "Release ROM Image" --dir latest_rom | |
shell: cmd | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy ROM symbols | |
run: | | |
cp latest_rom/*.h src/. | |
- name: Build Emulator | |
run: | | |
git reset --hard | |
git diff | |
TRACE=1 FLUIDSYNTH=1 CROSS_COMPILE_WINDOWS=1 SDL2CONFIG=sdl2-config make V=1 -j2 | |
mkdir emu_binaries | |
cp $(which SDL2.dll) emu_binaries/. | |
cp $(which zlib1.dll) emu_binaries/. | |
cp $(which libwinpthread-1.dll) emu_binaries/. | |
cp $(which libfluidsynth-3.dll) emu_binaries/. | |
cp $(which libgcc_s_seh-1.dll) emu_binaries/. | |
cp $(which libglib-2.0-0.dll) emu_binaries/. | |
cp $(which libgmodule-2.0-0.dll) emu_binaries/. | |
cp $(which libportaudio.dll) emu_binaries/. | |
cp $(which libintl-8.dll) emu_binaries/. | |
cp $(which libstdc++-6.dll) emu_binaries/. | |
cp $(which libgomp-1.dll) emu_binaries/. | |
cp $(which libreadline8.dll) emu_binaries/. | |
cp $(which libsndfile-1.dll) emu_binaries/. | |
cp $(which libpcre2-8-0.dll) emu_binaries/. | |
cp $(which libiconv-2.dll) emu_binaries/. | |
cp $(which libtermcap-0.dll) emu_binaries/. | |
cp $(which libFLAC.dll) emu_binaries/. | |
cp $(which libmp3lame-0.dll) emu_binaries/. | |
cp $(which libmpg123-0.dll) emu_binaries/. | |
cp $(which libogg-0.dll) emu_binaries/. | |
cp $(which libopus-0.dll) emu_binaries/. | |
cp $(which libvorbis-0.dll) emu_binaries/. | |
cp $(which libvorbisenc-2.dll) emu_binaries/. | |
cp sdcard.img.zip emu_binaries/. | |
cp x16emu.exe emu_binaries/. | |
cp makecart.exe emu_binaries/. | |
file emu_binaries/* | |
- name: Copy ROM | |
run: | | |
cp latest_rom/rom.bin emu_binaries/. | |
cp latest_rom/*.sym emu_binaries/. | |
- uses: actions/download-artifact@v4 | |
with: | |
name: readme-pdf | |
path: emu_binaries | |
- name: Fetch x16-docs PDFs | |
run: gh run download -R X16Community/x16-docs -n x16-docs-pdf --dir emu_binaries | |
shell: cmd | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: x16emu_win64 | |
path: emu_binaries/* | |
build-win-i686: | |
needs: [README] | |
runs-on: windows-2019 | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
update: true | |
install: make git mingw-w64-i686-toolchain mingw-w64-i686-libelf mingw-w64-i686-SDL2 mingw-w64-i686-fluidsynth | |
path-type: inherit | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Add /mingw32/bin to path | |
run: echo "/mingw32/bin" >> $GITHUB_PATH | |
- name: Fetch latest ROM | |
if: startsWith(github.ref, 'refs/tags/r') != true | |
run: | | |
gh run download -R X16Community/x16-rom -n "ROM Image" --dir latest_rom | |
shell: cmd | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Fetch latest release ROM | |
if: startsWith(github.ref, 'refs/tags/r') | |
run: | | |
gh run download -R X16Community/x16-rom -n "Release ROM Image" --dir latest_rom | |
shell: cmd | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy ROM symbols | |
run: | | |
cp latest_rom/*.h src/. | |
- name: Build Emulator | |
run: | | |
git reset --hard | |
git diff | |
TRACE=1 FLUIDSYNTH=1 WIN_SDL2=/mingw32 TARGET_CPU=x86 CROSS_COMPILE_WINDOWS=1 make V=1 -j2 | |
mkdir emu_binaries | |
cp $(which SDL2.dll) emu_binaries/. | |
cp $(which zlib1.dll) emu_binaries/. | |
cp $(which libwinpthread-1.dll) emu_binaries/. | |
cp $(which libfluidsynth-3.dll) emu_binaries/. | |
cp $(which libgcc_s_seh-1.dll) emu_binaries/. | |
cp $(which libglib-2.0-0.dll) emu_binaries/. | |
cp $(which libgmodule-2.0-0.dll) emu_binaries/. | |
cp $(which libportaudio.dll) emu_binaries/. | |
cp $(which libintl-8.dll) emu_binaries/. | |
cp $(which libstdc++-6.dll) emu_binaries/. | |
cp $(which libgomp-1.dll) emu_binaries/. | |
cp $(which libreadline8.dll) emu_binaries/. | |
cp $(which libsndfile-1.dll) emu_binaries/. | |
cp $(which libpcre2-8-0.dll) emu_binaries/. | |
cp $(which libiconv-2.dll) emu_binaries/. | |
cp $(which libtermcap-0.dll) emu_binaries/. | |
cp $(which libFLAC.dll) emu_binaries/. | |
cp $(which libmp3lame-0.dll) emu_binaries/. | |
cp $(which libmpg123-0.dll) emu_binaries/. | |
cp $(which libogg-0.dll) emu_binaries/. | |
cp $(which libopus-0.dll) emu_binaries/. | |
cp $(which libvorbis-0.dll) emu_binaries/. | |
cp $(which libvorbisenc-2.dll) emu_binaries/. | |
cp sdcard.img.zip emu_binaries/. | |
cp x16emu.exe emu_binaries/. | |
cp makecart.exe emu_binaries/. | |
file emu_binaries/* | |
- name: Copy ROM | |
run: | | |
cp latest_rom/rom.bin emu_binaries/. | |
cp latest_rom/*.sym emu_binaries/. | |
- uses: actions/download-artifact@v4 | |
with: | |
name: readme-pdf | |
path: emu_binaries | |
- name: Fetch x16-docs PDFs | |
run: gh run download -R X16Community/x16-docs -n x16-docs-pdf --dir emu_binaries | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: x16emu_win32 | |
path: emu_binaries/* | |
build-linux-x86_64: | |
needs: [README] | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Install Dependencies | |
run: | | |
sudo cp /etc/apt/sources.list /etc/apt/sources.list~ | |
sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list | |
sudo apt-get update | |
sudo apt-get install -y build-essential make libsdl2-dev libfluidsynth-dev | |
- name: Fetch latest ROM | |
if: startsWith(github.ref, 'refs/tags/r') != true | |
run: | | |
gh run download -R X16Community/x16-rom -n "ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Fetch latest release ROM | |
if: startsWith(github.ref, 'refs/tags/r') | |
run: | | |
gh run download -R X16Community/x16-rom -n "Release ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy ROM symbols | |
run: | | |
cp latest_rom/*.h src/. | |
- name: Build Emulator | |
run: | | |
TRACE=1 FLUIDSYNTH=1 make V=1 -j3 | |
mkdir emu_binaries | |
cp sdcard.img.zip emu_binaries/. | |
cp x16emu emu_binaries/. | |
cp makecart emu_binaries/. | |
file emu_binaries/* | |
- name: Copy ROM | |
run: | | |
cp latest_rom/rom.bin emu_binaries/. | |
cp latest_rom/*.sym emu_binaries/. | |
- uses: actions/download-artifact@v4 | |
with: | |
name: readme-pdf | |
path: emu_binaries | |
- name: Fetch x16-docs PDFs | |
run: gh run download -R X16Community/x16-docs -n x16-docs-pdf --dir emu_binaries | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: x16emu_linux-x86_64 | |
path: emu_binaries/* | |
build-linux-aarch64: | |
needs: [README] | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y build-essential make qemu-user-static | |
- name: Fetch latest ROM | |
if: startsWith(github.ref, 'refs/tags/r') != true | |
run: | | |
gh run download -R X16Community/x16-rom -n "ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Fetch latest release ROM | |
if: startsWith(github.ref, 'refs/tags/r') | |
run: | | |
gh run download -R X16Community/x16-rom -n "Release ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy ROM symbols | |
run: | | |
cp latest_rom/*.h src/. | |
- name: Build Emulator | |
uses: pguyot/arm-runner-action@v2 | |
with: | |
base_image: raspios_lite_arm64:2022-04-04 | |
image_additional_mb: 8192 | |
cpu: cortex-a53 | |
copy_artifact_path: emu_binaries | |
commands: | | |
apt-get update | |
apt-get install -y build-essential make libsdl2-dev file git libfluidsynth-dev | |
TRACE=1 FLUIDSYNTH=1 make V=1 -j3 | |
mkdir emu_binaries | |
cp sdcard.img.zip emu_binaries/. | |
cp x16emu emu_binaries/. | |
cp makecart emu_binaries/. | |
file emu_binaries/* | |
- name: Copy ROM | |
run: | | |
sudo chown -R runner emu_binaries | |
cp latest_rom/rom.bin emu_binaries/. | |
cp latest_rom/*.sym emu_binaries/. | |
- uses: actions/download-artifact@v4 | |
with: | |
name: readme-pdf | |
path: emu_binaries | |
- name: Fetch x16-docs PDFs | |
run: gh run download -R X16Community/x16-docs -n x16-docs-pdf --dir emu_binaries | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: x16emu_linux-aarch64 | |
path: emu_binaries/* | |
build-linux-armhf: | |
needs: [README] | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y build-essential make qemu-user-static | |
- name: Fetch latest ROM | |
if: startsWith(github.ref, 'refs/tags/r') != true | |
run: | | |
gh run download -R X16Community/x16-rom -n "ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Fetch latest release ROM | |
if: startsWith(github.ref, 'refs/tags/r') | |
run: | | |
gh run download -R X16Community/x16-rom -n "Release ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy ROM symbols | |
run: | | |
cp latest_rom/*.h src/. | |
- name: Build Emulator | |
uses: pguyot/arm-runner-action@v2 | |
with: | |
base_image: raspios_lite:2022-04-04 | |
image_additional_mb: 8192 | |
cpu: cortex-a7 | |
copy_artifact_path: emu_binaries | |
commands: | | |
apt-get update | |
apt-get install -y build-essential make libsdl2-dev file git libfluidsynth-dev | |
TRACE=1 FLUIDSYNTH=1 make V=1 -j3 | |
mkdir emu_binaries | |
cp sdcard.img.zip emu_binaries/. | |
cp x16emu emu_binaries/. | |
cp makecart emu_binaries/. | |
file emu_binaries/* | |
- name: Copy ROM | |
run: | | |
sudo chown -R runner emu_binaries | |
cp latest_rom/rom.bin emu_binaries/. | |
cp latest_rom/*.sym emu_binaries/. | |
- uses: actions/download-artifact@v4 | |
with: | |
name: readme-pdf | |
path: emu_binaries | |
- name: Fetch x16-docs PDFs | |
run: gh run download -R X16Community/x16-docs -n x16-docs-pdf --dir emu_binaries | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: x16emu_linux-armhf | |
path: emu_binaries/* | |
build-macos-x86_64: | |
needs: [README] | |
# this is currently macos-12, Monterey | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
brew install make sdl2 fluid-synth | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Fetch latest ROM | |
if: startsWith(github.ref, 'refs/tags/r') != true | |
run: | | |
gh run download -R X16Community/x16-rom -n "ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Fetch latest release ROM | |
if: startsWith(github.ref, 'refs/tags/r') | |
run: | | |
gh run download -R X16Community/x16-rom -n "Release ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy ROM symbols | |
run: | | |
cp latest_rom/*.h src/. | |
- name: Build Emulator | |
run: | | |
TRACE=1 MAC_STATIC=1 LIBSDL_FILE=/usr/local/Cellar/sdl2/*/lib/libSDL2.a HOMEBREW_LIB=/usr/local/lib make V=1 -j3 | |
mkdir emu_binaries | |
cp sdcard.img.zip emu_binaries/. | |
cp x16emu emu_binaries/. | |
cp makecart emu_binaries/. | |
file emu_binaries/* | |
- name: Copy ROM | |
run: | | |
cp latest_rom/rom.bin emu_binaries/. | |
cp latest_rom/*.sym emu_binaries/. | |
- uses: actions/download-artifact@v4 | |
with: | |
name: readme-pdf | |
path: emu_binaries | |
- name: Fetch x16-docs PDFs | |
run: gh run download -R X16Community/x16-docs -n x16-docs-pdf --dir emu_binaries | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: x16emu_macos_intel | |
path: emu_binaries/* | |
build-macos-arm64: | |
needs: [README] | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: | | |
brew install make sdl2 fluid-synth | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Fetch latest ROM | |
if: startsWith(github.ref, 'refs/tags/r') != true | |
run: | | |
gh run download -R X16Community/x16-rom -n "ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Fetch latest release ROM | |
if: startsWith(github.ref, 'refs/tags/r') | |
run: | | |
gh run download -R X16Community/x16-rom -n "Release ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy ROM symbols | |
run: | | |
cp latest_rom/*.h src/. | |
- name: Build Emulator | |
run: | | |
TRACE=1 MAC_STATIC=1 LIBSDL_FILE=/opt/homebrew/Cellar/sdl2/*/lib/libSDL2.a ADDL_INCLUDE=/opt/homebrew/include HOMEBREW_LIB=/opt/homebrew/lib FLUIDSYNTH=1 make V=1 -j3 | |
mkdir emu_binaries | |
cp sdcard.img.zip emu_binaries/. | |
cp x16emu emu_binaries/. | |
cp makecart emu_binaries/. | |
file emu_binaries/* | |
- name: Copy ROM | |
run: | | |
cp latest_rom/rom.bin emu_binaries/. | |
cp latest_rom/*.sym emu_binaries/. | |
- uses: actions/download-artifact@v4 | |
with: | |
name: readme-pdf | |
path: emu_binaries | |
- name: Fetch x16-docs PDFs | |
run: gh run download -R X16Community/x16-docs -n x16-docs-pdf --dir emu_binaries | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: x16emu_macos_m1 | |
path: emu_binaries/* | |
build-wasm: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Dependencies | |
run: sudo apt-get update && sudo apt-get install -y build-essential make libsdl2-dev | |
- uses: mymindstorm/setup-emsdk@v14 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.9' | |
- name: Fetch latest ROM | |
if: startsWith(github.ref, 'refs/tags/r') != true | |
run: | | |
gh run download -R X16Community/x16-rom -n "ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Fetch latest release ROM | |
if: startsWith(github.ref, 'refs/tags/r') | |
run: | | |
gh run download -R X16Community/x16-rom -n "Release ROM Image" --dir latest_rom | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Copy ROM symbols | |
run: | | |
cp latest_rom/*.h src/. | |
- name: Copy ROM | |
run: | | |
cp latest_rom/rom.bin . | |
- name: Build Emulator | |
run: | | |
make V=1 -j3 wasm | |
mkdir emu_binaries | |
cp x16emu.data x16emu.html x16emu.js x16emu.wasm emu_binaries/ | |
mkdir emu_binaries/webassembly | |
cp webassembly/styles.css webassembly/main.js webassembly/jszip.min.js emu_binaries/webassembly/ | |
file emu_binaries/* | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: x16emu_wasm | |
path: emu_binaries/* | |