9.9 KiB
Third-Party Licenses
This file inventories every third-party component JoeyLib depends on, either at runtime (linked into the produced binaries) or at build / test time. Components are grouped by role; within each group entries list the platforms that consume the component, the upstream URL, and the license.
When upstream license terms change, update the corresponding row here.
Runtime libraries (linked into joeylib output binaries)
These ship as part of, or are linked into, an executable built by JoeyLib. License compatibility for these matters most.
libxmp-lite
- Used on: DOS, Atari ST
- URL: https://github.com/libxmp/libxmp
- License: MIT
- Role: ProTracker / Amiga MOD replayer + SMIX SFX overlay. Linked into AUDIO binaries on the chunky-display platforms.
- Installed at:
toolchains/opt/libxmp/(installer componentlibxmp)
NinjaTrackerPlus (NTP)
- Used on: Apple IIgs
- URL: https://www.ninjaforce.com/html/products_software.html (downloads from https://www.ninjaforce.com/downloads/)
- License: No explicit license in the source distribution; written by Jesse Blue (NinjaForce). Treated here as free for use; consult upstream before commercial redistribution.
- Role: Apple IIgs Ensoniq DOC
.NTPmodule replayer + SFX streamer. Merlin32-assembled intontpplayer, which ships on the disk next to each IIgs program and is loaded at run time. - Installed at:
toolchains/opt/ntp/(source; installer componentntp).
PTPlayer
- Used on: Amiga
- URL: http://aminet.net/mus/play/ptplayer.lha (author Frank Wille, http://aminet.net/package/mus/play/ptplayer)
- License: Public Domain
- Role: ProTracker MOD replayer +
mt_playfxSFX channel for the Paula audio HAL. - Installed at:
toolchains/opt/ptplayer/(installer componentptplayer)
Build-time toolchains (NOT linked, used to produce binaries)
These run on the developer's machine to compile / assemble / link JoeyLib for each target. They are not redistributed inside the produced game binaries.
llvm-mos (clang / llvm-mc / link816 w65816 toolchain)
- Used on: Apple IIgs
- URL: https://github.com/llvm-mos/llvm-mos
- License: Apache License 2.0 with LLVM Exceptions (the upstream LLVM license).
- Role: clang C compiler targeting the 65816, plus llvm-mc for
assembling hand-written
.sfiles and link816 for producing OMF S16 executables. Driven bymake/support/iigs/clang-build.sh; the toolchain root is located via theLLVM816_ROOTenvironment variable. - Installed at:
toolchains/opt/llvm816/(installer componentllvm816)
Merlin32
- Used on: Apple IIgs
- URL: https://brutaldeluxe.fr/products/crossdevtools/merlin/
- License: Freely distributed by Brutal Deluxe Software (Olivier Zardini, Antoine Vignau). Source published with no formal open-source license header -- Brutal Deluxe's "open source philosophy" but copyright is retained. Treat as "free to use, redistribute as part of a build chain; ask before forking commercially."
- Role: 65816 cross-assembler. Builds NinjaTrackerPlus.
- Installed at:
toolchains/opt/merlin32/(installer componentmerlin32)
Bebbo m68k-amigaos GCC toolchain
- Used on: Amiga
- URL: https://github.com/AmigaPorts/m68k-amigaos-gcc
- License: GNU GPL v2 (gcc, binutils, libnix); per-component
copyrights listed in upstream
README.md. Includes assets covered by individual permissive notices (Roadshow, fd2pragma public domain, ira freeware, etc.). - Role: AmigaOS HUNK-format gcc + binutils + libnix used to compile the Amiga port and link against PTPlayer.
- Installed at:
toolchains/opt/amigaGcc/(installer componentamigaGcc)
vasm
- Used on: Amiga (PTPlayer only)
- URL: http://sun.hasenbraten.de/vasm/
- License: vasm custom license -- (c) Volker Barthelmann; free for
non-commercial use, plus an explicit commercial-use exception
for M68k + AmigaOS targets (see vasm distribution README). Other
commercial use requires written permission. JoeyLib's only
remaining vasm invocation is
ptplayer.asmon the Amiga path, which falls under the M68k+AmigaOS exception. - Role: Assemble third-party
ptplayer.asm(Frank Wille's Devpac/vasm-syntax source). Our own.sfiles are GAS syntax and go throughm68k-amigaos-as(binutils, GPL) instead. - Installed at: built with the Amiga GCC toolchain (AmigaPorts
vasmsub-project),toolchains/opt/amigaGcc/bin/vasmm68k_mot
m68k-atari-mint GCC toolchain (Thorsten Otto builds)
- Used on: Atari ST
- URL: https://tho-otto.de/download/mint/ (gcc upstream: GNU; mintlib: https://github.com/freemint/mintlib)
- License: GNU GPL v2 (gcc, binutils); mintlib is a mix of GPL and permissive (per-file headers).
- Role: GEMDOS-native gcc + binutils + mintlib used to compile the Atari ST port.
- Installed at:
toolchains/opt/mintGcc/(installer componentmintGcc)
DJGPP (build-djgpp packaging)
- Used on: DOS
- URL: https://github.com/andrewwutw/build-djgpp (DJGPP upstream: http://www.delorie.com/djgpp/)
- License: Build script GNU GPL v3; bundled gcc/binutils GNU
GPL v2; DJGPP runtime libraries (libc) are mostly public-domain or
permissive -- see DJGPP
readme.1st. - Role: 32-bit protected-mode gcc cross-compiler producing COFF binaries that run on 386+ DOS via DPMI.
- Installed at:
toolchains/opt/djgpp/(installer componentdjgpp)
CWSDPMI
- Used on: DOS
- URL: https://sandmann.dotster.com/cwsdpmi/
- License: Custom redistribution terms (Charles W. Sandmann,
(c) 1995-2010). Binary may be redistributed without source provided
the executables are unmodified and end users are notified of
source availability -- full terms in
cwsdpmi.doc. Source is GPL-licensed if distributed. - Role: Stubbed-into-binary DPMI server for DJGPP-compiled DOS
executables (via
embed-dpmi.sh). - Installed at:
toolchains/opt/cwsdpmi/(installer componentcwsdpmi)
NASM
- Used on: DOS
- URL: https://www.nasm.us/
- License: 2-clause BSD
- Role: Assembler for x86 inline-asm support files in the DOS port.
- Installed from: the Linux distribution's
nasmpackage
Test-time emulators (not shipped, not linked)
Used by joey-run and the test gates to run the produced binaries on the
developer's machine. Not part of any redistributed artifact. Installed by
./install.sh install emulators.
MAME
- Used on: Apple IIgs (apple2gs driver) and Sharp X68000 (x68k driver)
- URL: https://www.mamedev.org/
- License: GNU GPL v2+ (GPL-2.0-or-later) plus a 3-clause BSD alternative for some components.
- Installed at:
toolchains/opt/mame/, built from the 0.264 release with the patches ininstaller/patches/mame/(installer componentmame).
Hatari
- Used on: Atari ST
- URL: https://www.hatari-emu.org/
- License: GNU GPL v2
- Installed at: the distribution package on Debian and Ubuntu; on Fedora,
toolchains/opt/hatari/, built from the 2.4.1 source (installer componenthatari)
DOSBox Staging
- Used on: DOS
- URL: https://www.dosbox-staging.org/
- License: GNU GPL v2+
- Installed at:
toolchains/opt/dosbox/(the project's Linux release; installer componentdosbox)
FS-UAE
- Used on: Amiga
- URL: https://fs-uae.net/
- License: GNU GPL v2 (UAE codebase)
- Installed at: the distribution package on Debian and Ubuntu; on Fedora,
toolchains/opt/fsuae/, built from the 3.1.66 release (installer componentfsuae)
EmuTOS
- Used on: Atari ST (TOS replacement for Hatari)
- URL: https://emutos.sourceforge.io/
- License: GNU GPL v2
- Installed at:
toolchains/firmware/atarist/emutos-512k.img(installer componentemutos)
System ROMs and disk images (used for testing only)
These are not part of JoeyLib distribution. ./install.sh
places them in toolchains/firmware/ for emulator-side testing only; see
the source of each before shipping anything that depends on them.
Downloaded by the installer
- Apple IIgs MAME ROM sets (
apple2gs, ROM 03, andapple2gsr1, ROM 01): Apple Inc. proprietary firmware, from the archive.org MAME 0.240 split set. ComponentiigsFirmware. - Apple IIgs System 6.0.4 (
System.Disk): Apple Inc. proprietary OS, from the Apple II archive (https://mirrors.apple2.org.za/). ComponentiigsFirmware. - CFFA2 card firmware (
cffa20eec02.bin): freely redistributed by dreher.net (https://dreher.net/). ComponentiigsFirmware. - X68000 IPL-ROM and Human68k 3.02 system disk: from Sharp's own free
release (2000), published by the X68000 LIBRARY
(http://retropc.net/x68000/software/sharp/). Component
x68kFirmware.
Never downloaded (supplied by the user or the project's own bundle)
Installed with ./install.sh import PATH, or from the bundle a
project hosts (JOEY_BUNDLE_URL); matched by the checksums in
installer/files.sha1.
- Amiga Kickstart 3.1 ROM: Cloanto / Amiga Corp. proprietary, sold today
(Amiga Forever). Required by the Amiga test gates;
joey-runfalls back to FS-UAE's AROS without it. Componentkickstart. - X68000 CG (font) ROM: not part of Sharp's free release. MAME's x68000
driver needs it. Component
x68kCgrom. - Space Taxi C64 memory image (
stuff/spacetaxi/raw.bin): the original game's data, from which the example's levels are extracted. Optional. ComponentstaxiData.
Maintenance
When adding a new third-party dependency:
- Append a row in the appropriate section above.
- Record platform(s), upstream URL, license name, and a one-line role description.
- List where the installer puts it (
toolchains/opt/<component>/ortoolchains/firmware/). - If license terms restrict redistribution, call that out explicitly (as we do for Apple ROMs).