DirPlayer (dirplayer-rs): authorship notice
===========================================

This program is licensed under the GNU General Public License, version 3
(see the file LICENSE, which is unchanged). This file adds to it; it removes
nothing. Every copyright and licence notice that already stands in this tree,
in any file, remains in force and must stay.

1. Upstream
-----------
This tree is a modified version of DirPlayer, https://github.com/igorlira/dirplayer-rs
(remote "origin"), as of upstream commit 68376fbb4494a6bbad4c70081ecdcb99814a74c9.
The copyright in the upstream code belongs to its authors, as recorded in the
upstream history. Nothing here claims otherwise.

2. Modifications
----------------
Copyright (C) 2026 Rasmus KD (TBH, tbh.dk)

This applies to the modifications made to the upstream code after the commit
named above, authored by Rasmus Kjaer Damgaard (git author "Rasmus Kjær Damgaard"
and "rasmus123d", both with the e-mail 59487370+RasmusKD@users.noreply.github.com),
and to the files he added. The git history of this tree is the record of who
wrote what; `git log --author=RasmusKD` lists these changes. They are released
under the GPL-3.0, like the rest of the program.

3. Areas of these modifications
-------------------------------
Grouped by subsystem. The list is a summary, not a limit: the history is exact.

- Lingo interpreter and built-in handlers: operator precedence and coercion in
  value expressions and text evaluation, list, string, rect and point
  handling, handler lookup order, script and event-script lifecycle, error and
  abort behaviour, debugger scope listing.
- Score, sprites and timeline: frame and event dispatch, go/play landing
  rules, transitions, tweening and keyframes, sprite channel records, film
  loops (including lazy reading of their scores), sprite size and stretch
  rules, cast library assignment.
- Rendering and text: WebGL2 renderer fixes for ink, shapes and alpha masks,
  bitmap decoding (lazy decode, alpha planes, palette index handling),
  embedded outline font parsing and layout, glyph placement under a scaled
  stage, paragraph spacing and wrapping.
- Sound: pause and resume of channels, playlist behaviour when a clip ends
  early.
- Movie file and chunk parsing: Director chunk readers, score and cast
  readers, media chunk handling, faster score parsing.
- Loading and host integration: reading a movie ahead from host-held bytes
  and in slices, mounting a prepared movie, retry rules for transient fetch
  failures, host handler lookup, JavaScript API and callbacks.
- Xtras: the FileXtra4 plug-in and the xtra dispatch it relies on.
- Build and deployment controls: a compile-time host lock and the build
  script that strips local paths from the binary.
- Testing: a virtual clock for native tests, native end-to-end tests over
  recorded movies, parser, cast-load and rendering regression tests, and the
  small measurement tools under vm-rust/tools.

4. Additional term under GPL-3.0 section 7(b)
---------------------------------------------
As permitted by section 7(b) of the GNU General Public License, version 3,
the following additional term applies to the material added by Rasmus KD as
described in section 2 of this file:

  Anyone who conveys this material, or a work containing it, in source or
  object form, must preserve the author attribution "Copyright (C) 2026
  Rasmus KD (TBH, tbh.dk)" and this file (NOTICE) with it, and must keep that
  attribution in the Appropriate Legal Notices that a work containing it
  displays, if such notices are displayed.

This is the whole of the additional term. It adds nothing else to the GPL-3.0.

5. Third-party code in this tree
--------------------------------
This section is information only; it adds no term. These files hold code or
tables written from other projects. Each keeps its own copyright and licence,
and those notices must stay with the files. The licence texts are in the
folder LICENSES.

This archive holds the source of the program the site ships. It leaves out
every file that compiles only under a cargo feature that program's build
leaves off (BUILD.md lists them by feature), and with those files the
entries c) Intel U3D Sample Software and d) NVIDIA PhysX 3.4 of this section
and the licence texts LICENSES/Apache-2.0.txt and
LICENSES/BSD-3-Clause-PhysX.txt, which apply only to them. The engine's own
tree keeps them.

a) ScummVM, https://www.scummvm.org
   Copyright (C) the ScummVM developers (see the COPYRIGHT file of ScummVM).
   GNU General Public License, version 3 or (at your option) any later version.
   - vm-rust/src/player/bitmap/builtin_tiles.rs: pixel data derived from
     engines/director/graphics-data.h (tile1..tile8).
   - vm-rust/src/player/bitmap/quickdraw_patterns.rs: the table
     director3QuickDrawPatterns of engines/director/graphics-data.h.
   - vm-rust/src/player/bitmap/palette.rs: Director's built-in palettes.
     Several tables equal the palettes in engines/director/graphics-data.h;
     the 256-entry tables were checked against Director 11.5 output.

b) ProjectorRays, https://github.com/ProjectorRays/ProjectorRays
   Mozilla Public License, version 2.0 (LICENSES/MPL-2.0.txt).
   - vm-rust/src/director/lingo/decompiler/ (ast.rs, code_writer.rs,
     enums.rs, handler.rs, mod.rs). These files stay under MPL-2.0, and
     each carries the MPL notice.

e) Factual runtime tables
   - vm-rust/src/io/encoding.rs, DIRECTOR_MAC_TO_WIN: Director's Mac Roman
     to Windows byte map, measured from a Director 8.5 projector and kept for
     interoperability. Movies carry the same map in their FXmp font-map
     chunk (one entry differs, Mac 0xDB).
