romdev — third-party component inventory
========================================

TL;DR — Games you build with romdev are YOURS, including to sell commercially.
A built ROM contains only your code + permissive runtime libraries, compiled by
toolchains with runtime exceptions. The non-commercial caveat below applies ONLY
to redistributing the romdev tool bundle (which contains two non-commercial
emulator cores) — never to the games you make with it.

romdev's own code is MIT (see LICENSE). It bundles and redistributes
third-party emulator cores, compiler toolchains, and game runtime libraries,
each under its own license. This file inventories them.

Two kinds of bundled component, governed differently:

  • COMPILERS / TOOLCHAINS produce the user's ROM. Several are GPL/LGPL, but
    compilers carry a RUNTIME EXCEPTION: the license of the compiler does NOT
    extend to its output. A game compiled with GPL gcc/cc65/sdcc is the
    author's own work, freely licensable. The GPL obligation falls on US (we
    redistribute the compiler binary) — satisfied by shipping the build recipe
    + pinned upstream source so anyone can reproduce the binary (see
    packages/romdev/scripts/ and BUILDING.md).

  • EMULATOR CORES never touch the user's ROM — they are a dev instrument
    (run + observe). Their license governs only OUR redistribution of the core
    binary. Most are GPL (OSI open source, source available upstream). Two are
    NON-COMMERCIAL (see below), which is why romdev as a whole is distributed
    as SOURCE-AVAILABLE / FREE FOR NON-COMMERCIAL USE rather than OSI open
    source. romdev's own code is MIT and the game runtime libraries are
    permissive, so games you BUILD with romdev are unencumbered (see below);
    the non-commercial terms apply only to redistributing the bundled core
    binaries themselves.


NON-COMMERCIAL COMPONENTS (why romdev is "free for non-commercial use")
-----------------------------------------------------------------------
These two cores are under custom NON-COMMERCIAL licenses. They forbid
commercial redistribution of the core, so a distribution of romdev that
bundles them is free for non-commercial use and is not labeled OSI open
source. (Your code is MIT; your built games are unencumbered — this affects
only redistribution of these emulator binaries.)

  snes9x            SNES core           non-commercial (snes9x license)
  genesis_plus_gx   Genesis/SMS/GG core non-commercial (Genesis Plus GX license)


Emulator cores
--------------
  fceumm            NES                 GPL-2.0
  gambatte          GB / GBC            GPL-2.0
  genesis_plus_gx   Genesis / SMS / GG  non-commercial  ⚠ (see above)
  snes9x            SNES                non-commercial  ⚠ (see above)
  mgba              GBA                 MPL-2.0
  vice (x64)        C64                 GPL-2.0
  stella2014        Atari 2600          GPL-2.0
  prosystem         Atari 7800          GPL-2.0
  handy             Atari Lynx          zlib

Compiler toolchains  (runtime exception — does not encumber compiled ROMs)
--------------------------------------------------------------------------
  cc65              NES/C64/2600/7800/Lynx   zlib
  sdcc              GB/GBC/SMS/GG            GPL-2.0 (runtime libs: GPL + linking exception)
  arm-none-eabi-gcc GBA                     GPL-3.0 (GCC Runtime Library Exception)
  m68k-elf-gcc      Genesis (C)             GPL-3.0 (GCC Runtime Library Exception)
  binutils          (gcc toolchains)        GPL-3.0
  newlib            (gcc toolchains)        BSD-style (mixed permissive)
  asar              SNES (asm)              LGPL-3.0
  dasm              Atari 2600 (asm)        GPL-2.0
  vasm (m68k)       Genesis (asm)           free for any use (vasm license)
  rgbds             GB/GBC (asm)            MIT
  tcc816            SNES (C)                LGPL-2.1
  wla-dx            SNES (asm)              GPL-2.0

Game runtime / SDK libraries  (linked into the user's game; shipped as source)
------------------------------------------------------------------------------
  SGDK              Genesis C engine        MIT
  PVSnesLib         SNES C library          MIT
  libtonc / libgba  GBA C libraries         public domain / zlib-style
  maxmod / mmutil   GBA music               ISC
  hUGEDriver        GB/GBC music            MIT-style (see LICENSE-HUGEDRIVER)
  FamiTone2         NES music               permissive (see LICENSE-FAMITONE)

Full license texts for the bundled SDK libraries live alongside their source
under packages/romdev/src/platforms/*/lib/. Emulator-core and compiler license
texts travel with their upstream source, which is fetched at build time from
the pinned commits recorded in packages/romdev/scripts/versions.json.


Bundled data  (cheat database — used by gameCheats / applyCheat / makeCheat)
----------------------------------------------------------------------------
  romdev bundles a cheat database under packages/romdev/src/cheats/index/ — a
  pre-parsed, per-platform index built from the community-aggregated RetroArch /
  libretro-database cheat collection (the same data RetroArch, RetroDECK, and
  Batocera ship). These cheat codes are an aggregation assembled over years from
  Game Genie / Pro Action Replay code books and community cheat dumps; the
  collection has no single uniform license and individual codes carry no stated
  provenance. romdev redistributes a pre-parsed form (game name → decoded
  address/value entries) rather than the raw .cht files, and uses it only as a
  read/inspect aid + non-destructive cheat application. It is not linked into any
  built game and does not affect the license of games you make. Source:
  https://github.com/libretro/libretro-database (cht/). Rebuild the index from a
  local .cht tree with packages/romdev/scripts/build-cheat-index.mjs.
