joeylib2/LICENSES.md

10 KiB
Raw Blame History

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.
  • Vendored at: toolchains/audio/libxmp-lite/

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 .NTP module replayer + SFX streamer. Merlin32-assembled and linked into the AUDIO binary as bytes (see make/iigs.mk $(NTP_HEADER) rule).
  • Vendored at: toolchains/iigs/ntp/ninjatrackerplus.s (source); build product baked into examples/audio AUDIO binary.

PTPlayer


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.

Golden Gate (host tools: iix, profuse, mkfs-profuse, dumpobj)

  • Used on: Apple IIgs
  • URL: https://golden-gate.ksherlock.com/ (publisher / store: https://juiced.gs/store/golden-gate/)
  • License: Commercial software by Kelvin Sherlock, distributed through Juiced.GS / Gamebits. End-user purchase required; redistribution not permitted.
  • Role: Cross-host harness that runs ORCA-style IIgs tools on a modern OS. Provides the iix shell, the OMF linker, profuse (ProDOS FUSE mount), mkfs-profuse, dumpobj, and the IIgs-side filesystem image ($GOLDEN_GATE) that the harness emulates.
  • Distribution: Not redistributed by JoeyLib. Each developer must bring their own purchased copy. toolchains/install.sh builds host tools from a developer-supplied source checkout under stuff/GoldenGate/ (the stuff/ tree is gitignored) and stages the IIgs filesystem from a developer-supplied gg-linux.tgz. The resulting toolchains/iigs/gg-tools/ and toolchains/iigs/goldengate/ trees are gitignored.

ORCA/C compiler + ORCA libraries

  • Used on: Apple IIgs
  • URL: https://github.com/byteworksinc/ORCA-C (commercial distribution: https://juiced.gs/store/opus-ii/)
  • License: Commercial product by The Byte Works, Inc. (Mike Westerfield). Source code is published on GitHub under a custom license that grants only private use, fork, and modification; redistribution in any form other than submission back to the upstream repo requires written permission. Commercial rights remain with Byte Works; the compiler is sold today as part of the Opus ][ collection via Juiced.GS.
  • Role: ANSI C compiler for the 65816 + Apple IIgs runtime libraries. Run via Golden Gate's iix harness.
  • Distribution: Not redistributed by JoeyLib. ORCA support files arrive as part of the developer-supplied Golden Gate / Opus ][ install bundle and land inside the gitignored toolchains/iigs/goldengate/ tree.

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.
  • Vendored at: toolchains/iigs/merlin32/

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.
  • Vendored at: toolchains/amiga/gcc/

vasm

  • Used on: Amiga (PTPlayer only)
  • URL: http://sun.hasenbraten.de/vasm/
  • License: vasm custom license — © 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.asm on 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 .s files are GAS syntax and go through m68k-amigaos-as (binutils, GPL) instead.
  • Vendored at: toolchains/amiga/vasm/

m68k-atari-mint GCC toolchain (Thorsten Otto builds)

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.
  • Vendored at: toolchains/dos/djgpp/

CWSDPMI

  • Used on: DOS
  • URL: https://sandmann.dotster.com/cwsdpmi/
  • License: Custom redistribution terms (Charles W. Sandmann, © 19952010). 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).
  • Vendored at: toolchains/dos/cwsdpmi/

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.
  • Vendored at: toolchains/dos/nasm/

Test-time emulators (not shipped, not linked)

Used by scripts/run-*.sh to run the produced binaries on the developer's machine. Not part of any redistributed artifact.

GSplus (KEGS fork)

MAME

  • Used on: Apple IIgs (apple2gs driver, optional)
  • URL: https://www.mamedev.org/
  • License: GNU GPL v2+ (GPL-2.0-or-later) plus a 3-clause BSD alternative for some components.

Hatari

DOSBox

FS-UAE

EmuTOS

  • Used on: Atari ST (TOS replacement for Hatari)
  • URL: https://emutos.sourceforge.io/
  • License: GNU GPL v2
  • Vendored at: toolchains/emulators/support/emutos-512k.img

System ROMs and disk images (used for testing only)

These are not part of JoeyLib distribution and not redistributed. They are downloaded to the developer's local cache by toolchains/install.sh for emulator-side testing only. License terms prohibit redistribution; please consult the source if you intend to ship anything that depends on them.

Apple IIgs ROM 03

Apple IIgs System 6.0.4

Apple IIgs apple2gs MAME ROM set

  • Used on: Apple IIgs (MAME testing path)
  • URL: Same preservation archives as above.
  • License: Apple Inc. proprietary firmware. Required for MAME's apple2gs driver but not redistributed.

Amiga Kickstart ROM (optional)

  • Used on: Amiga (FS-UAE, optional — falls back to AROS)
  • URL: Cloanto / Amiga Forever (commercial), or original media.
  • License: Cloanto / Amiga Corp. proprietary. JoeyLib does not bundle Kickstart; users supply their own ROM at toolchains/emulators/support/kickstart.rom if they have one.

Maintenance

When adding a new third-party dependency:

  1. Append a row in the appropriate section above.
  2. Record platform(s), upstream URL, license name, and a one-line role description.
  3. If the dependency is vendored, list the path under toolchains/.
  4. If license terms restrict redistribution, call that out explicitly (as we do for Apple ROMs).