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

 P19.GOB

 It's TETRIS, and it is running inside ONE LEVEL COG. No mod, no DLL,
 no extended verbs, and not one thing on the board -- the well is 200
 wall surfaces and the game is 200 slots of the cog heap.

 [cogfactory / p19-tetris]

 BUILD 1  --  2026-09-05
 sha256 ad89b3b6e1ec0f6aca964c522d3add36

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

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

INSTALLATION
------------------------------------------------------------------------
Drop P19.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
------------------------------------------------------------------------
  Walk into the orange arcade button until you are TOUCHING it,
  then press SPACE. The camera cuts to the cabinet next door.

    A / D        move left / right   (tap for one cell, hold to repeat)
    W            rotate clockwise
    LEFT/RIGHT   rotate anticlockwise / clockwise
    S            soft drop      -- locks the moment it touches down
    C            HARD DROP      -- and RESTART after a game over
    G or 1-0     switch weapon: quits
    SPACE        quits (you are still standing at the button)

NOTES
------------------------------------------------------------------------
  A piece that lands on its own rests for one fall tick before it
  locks, so you can still slide it sideways under an overhang. Hold S
  or press C and it locks immediately. That is deliberate and it took
  two goes to get right.

  There are NO WALL KICKS. A rotation that does not fit simply does
  not happen. SRS kicks are five candidate offsets per rotation and a
  table per piece; this is one collision test, and the whole point of
  the exercise was how little a game needs.

  THE PIECE ORDER IS FIXED, not random. It is a real 7-bag -- every
  piece once per seven, which is what makes Tetris fair -- but the
  order is baked in at 70 pieces long, because Jedi Knight's Rand() is
  never seeded from the level and a random game cannot be tested. Play
  it twice and you will notice at piece 71.

  No hold piece and no next-piece preview.

  Single player. The board lives in the cog heap, which is per
  instance and never replicated, while SetWallCel DOES sync -- so two
  people in one level would be two separate games fighting over one
  screen. The cog is marked NOSYNC, which makes it a single-player
  cabinet rather than multiplayer Tetris.

WHAT IS IN THE GOB
------------------------------------------------------------------------
        88  episode.jk
     52931  jkl\well.jkl
     33646  cog\p19tetris.cog
     43660  mat\p19aceil.mat
     43660  mat\p19afloor.mat
     43660  mat\p19awall.mat
      2188  mat\p19ceil.mat
     16972  mat\p19cell.mat
      2188  mat\p19floor.mat
     43660  mat\p19frame.mat
     43660  mat\p19switch.mat
     43660  mat\p19wall.mat
     19888  sound\p19drop.wav
     33118  sound\p19line.wav
     13274  sound\p19lock.wav
      4894  sound\p19move.wav
     48554  sound\p19over.wav
      4894  sound\p19rot.wav
     26504  sound\p19start.wav
     59578  sound\p19tetris.wav

    580677  bytes in 20 entries

CREDITS
------------------------------------------------------------------------
  Generated end to end by tools/cogfactory in the openjkdf2_libretro
  tree -- level, cog, materials and sounds.
  Sound effects generated with ElevenLabs and converted to 22050 Hz
  mono 16-bit with tools/cogfactory/sfxlib.py.
  Room textures generated with the jk-texture-sheet skill, shipped as
  16-bit MATs so they carry their own colour and need no colormap.
  It stands on p17 (the cog heap as an array that survives), p18
  (every input channel a level cog can read), p16, p14, p12, p08 and
  p06.

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

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