========================================================================
 Jedi Knight Level

 P52.GOB

 Six lightsaber duels in six arenas, one after another: Yun in a marble
 court under the stars, Sariss in a frozen cathedral, Gorc AND Pic
 together in a foundry pit, Maw flying in a volcanic shaft that throws
 rock at you, a Jerec over the glowing core of the Valley of the Jedi
 -- and then the SITH TEMPLE, where the real Jerec (the first was a
 clone) meditates untouchable on his throne and summons the others down
 from their council niches: Yun; then Sariss and Maw together; then,
 waking himself, Gorc and Pic beside him. Every boss has his stock
 force powers; every floor carries a computed fractal; every level has
 its own ancient, mythic battle music.

 [cogfactory / p52-dark-jedi-gauntlet]

 BUILD 1  --  2026-09-05
 sha256 2e015ec683431f6774dbe5486b8165c2

 This level is not made or distributed by LucasArts
 Entertainment Co.
========================================================================

THIS PACKAGE
------------------------------------------------------------------------
  P52.GOB          the level
  readme.txt       this file
  screenshot.jpg   what it looks like

INSTALLATION
------------------------------------------------------------------------
Drop P52.GOB into the `episode` folder of a Jedi Knight install (the one
that already has JK1.GOB in it) and pick it from the episode list.
Nothing else needs to change: the GOB carries its own level, cogs,
materials and sounds, and reads the stock resource/ for everything else.

On a libretro frontend, point the core at the GOB itself. It needs a
folder beside it holding `resource/` from a real install -- that is
where the retail data lives and none of it is in here.

CONTROLS
------------------------------------------------------------------------
  PLAY IT: New Game, and pick COG Factory p52 Dark Jedi Gauntlet.
  You start with fists and a LIGHTSABER already drawn. Fire swings it.
  Each arena starts asleep. THE DUEL BEGINS WHEN YOU STEP ONTO THE ARENA FLOOR;
    step back out into a bay or the corridor and the Dark Jedi holds his ground.
  Health, shields and bacta are in the side bays of every level.
  LEVEL 3 has TWO bosses: Gorc (the big blade) and Pic (small, and he vanishes).
  LEVEL 4: Maw flies. Watch the ledges -- rock comes down from them.
  LEVEL 6, THE SITH TEMPLE: hurt Jerec and he retreats to his throne, untouchable,
    and summons the others. Kill what he summons and he wakes. The last stand is
    Jerec, Gorc and Pic at once; kill all three to win.
  MUSIC: the tracks live in MUSIC/ beside the GOB; keep that folder with it.

NOTES
------------------------------------------------------------------------
  FIVE LEVELS FROM ONE PLAN FILE. Every arena is a table of boxes with
  a per-sector floor, plus four things the garrison levels never had:
  chamfered corners (the arenas are octagons), sky ceilings, a fractal
  floor grid with a 256-texel medallion placed exactly 1:1 in its
  centre cell, and a light bake modulated by the same fractal
  arithmetic that drew the medallion.

  A FORCE POWER IS A TEMPLATE NOBODY PLACES. The editor writes the
  closure of what is placed -- the boss, his puppet, his sounds. Force
  lightning, force repel, the smoke of deadly sight, five kinds of
  thrown rock and eight weapon powerups for force pull are reached
  only through a cog's template symbols, and creating one the level
  does not carry fails with no log line. So the generator reads every
  template, sound and material symbol out of every shipped cog and
  walks the editor's master template file from those roots, parents
  first.

  TWO BOSSES IN ONE ARENA ARE TWO COGS AND TWO ROWS, as the original
  game does it; the win cog counts kills BY SENDER. A one-boss level
  links the same thing through both symbols, and a thing linked twice
  delivers `killed` twice: the first build ended the level twice and
  skipped the cathedral. Measured, guarded.

  THE VERTEX BUDGET IS A PLAN NUMBER. An engine surface holds 24
  vertices and every cut on a wall spends the floor's: two per
  chamfer, two per carved opening, two per trim band. The plan
  predicts each floor's count and refuses one over 22 before the
  editor is even opened.

  THE FINALE IS A STAGE MACHINE OVER SIX PRE-PLACED BOSSES. A
  lightsaber hangs on a slot the engine hands out only at level load,
  so a Dark Jedi created mid-fight would hold nothing; the five
  council niches hold them from the start, held asleep, and a summons
  is a teleport to an anchor plus a GO message to that boss's own
  script. Jerec's meditation is his own damage handler returning zero
  -- measured: a 500-point strike moved his health by nothing.

  THE MUSIC IS PLAYED BY THE LEVEL SCRIPT. PlaySong(track, track,
  track) loops one Ogg Vorbis file from MUSIC/ under the game folder;
  the six tracks were generated as instrumental, ancient, mythic boss
  themes and converted to Ogg, which is what this engine's music
  loader opens.

  THE FRACTALS ARE FREE. Seven of the thirty-seven textures are
  computed: Koch, two Julia sets, a Sierpinski carpet, a Mandelbrot
  set, and two tileable fractional-Brownian-motion fields whose
  octaves divide the panel so they wrap exactly. The other thirty came
  off five generated texture sheets.

WHAT IS IN THE GOB
------------------------------------------------------------------------
       289  episode.jk
     87268  jkl\p52gorpc.jkl
      3028  jkl\p52gorpc.manifest.json
     98081  jkl\p52jerec.jkl
      2045  jkl\p52jerec.manifest.json
     78726  jkl\p52maw.jkl
      1946  jkl\p52maw.manifest.json
    112892  jkl\p52sarss.jkl
      2566  jkl\p52sarss.manifest.json
     90145  jkl\p52sith.jkl
      2258  jkl\p52sith.manifest.json
     75800  jkl\p52yun.jkl
      2048  jkl\p52yun.manifest.json
      3504  cog\p52done.cog
      6591  cog\p52final.cog
      5793  cog\p52gorc.cog
      7768  cog\p52jerec.cog
      8024  cog\p52maw.cog
      4945  cog\p52pic.cog
      9178  cog\p52sarss.cog
      7489  cog\p52yun.cog
      3788  3do\p52gpil.3do
      3804  3do\p52jpil.3do
      3807  3do\p52mpil.3do
      3791  3do\p52spil.3do
      3791  3do\p52tpil.3do
      3791  3do\p52ypil.3do
     32908  mat\p52galt.mat
     32908  mat\p52gceil.mat
     32908  mat\p52gflor.mat
     32908  mat\p52gfrac.mat
    131212  mat\p52ggate.mat
     32908  mat\p52gpil.mat
     32908  mat\p52gtrim.mat
     32908  mat\p52gwall.mat
     32908  mat\p52jalt.mat
     32908  mat\p52jceil.mat
     32908  mat\p52jfbm.mat
     32908  mat\p52jflor.mat
    131212  mat\p52jfrac.mat
    131212  mat\p52jgate.mat
     32908  mat\p52jpil.mat
     32908  mat\p52jtrim.mat
     32908  mat\p52jwall.mat
     32908  mat\p52malt.mat
     32908  mat\p52mceil.mat
     32908  mat\p52mflor.mat
    131212  mat\p52mfrac.mat
    131212  mat\p52mgate.mat
     32908  mat\p52mpil.mat
     32908  mat\p52mtrim.mat
     32908  mat\p52mwall.mat
     32908  mat\p52salt.mat
     32908  mat\p52sceil.mat
     32908  mat\p52sfbm.mat
     32908  mat\p52sflor.mat
    131212  mat\p52sfrac.mat
    131212  mat\p52sgate.mat
     32908  mat\p52spil.mat
     32908  mat\p52strim.mat
     32908  mat\p52swall.mat
     32908  mat\p52talt.mat
     32908  mat\p52tceil.mat
     32908  mat\p52tflor.mat
    131212  mat\p52tfrac.mat
     32908  mat\p52tgate.mat
     32908  mat\p52tpil.mat
     32908  mat\p52ttrim.mat
     32908  mat\p52twall.mat
     32908  mat\p52yalt.mat
     32908  mat\p52yceil.mat
     32908  mat\p52yflor.mat
    131212  mat\p52yfrac.mat
    131212  mat\p52ygate.mat
     32908  mat\p52ypil.mat
     32908  mat\p52ytrim.mat
     32908  mat\p52ywall.mat

   3261596  bytes in 77 entries

CREDITS
------------------------------------------------------------------------
  Generated by tools/cogfactory in the openjkdf2_libretro tree.
  Geometry authored through SED (github.com/smlu/SED) over the
  cogfactory bridge.
  LucasArts did not make this. Jedi Knight is theirs; this is a fan-
  made episode.

  The readme format is styled after SM Sith Lord's cog headers,
  because his are the ones everybody read.

========================================================================
