Files

4.7 KiB
Raw Permalink Blame History

Reference: game files and engine

Everything we know about the data of The Emperor's New Groove (PC, 2000; German: Ein Königreich für ein Lama), found by reverse engineering groove.exe and checking every claim against the level files on the CD and in the running game. The game runs on Argonaut's Croc 2 engine (a PC port of a PlayStation design), which explains most of its quirks.

Confidence is marked where it matters: certain = verified in code and data (byte-exact round trip or seen in game), likely = consistent with the data, unknown = open question.

Page What it covers
Game files CD and HD folders, level naming scheme, worlds and chapters, loading pictures (COR), movies, demos, save games (KSV)
WAD container the chunk list of a level file and which chunk does what
Geometry and collision TRAK tile models, the MAP tile grid, coordinate spaces, collision polygons and materials, vertex colours, visibility regions
Objects, waypoints, zones MAP strat records, parameters, waypoints, environment zones (fog, music, teleports), lights, the player start, checkpoints and the exit
Textures TEXT chunk: pages, pixel format, texture rectangles, texture animations
Music and sound ASF music, the level sound bank, speech, what is still unknown
TestLevel (world 9) the hidden world all custom levels live in, and which chapters are safe
Engine facts and limits scale, jump distances, draw distance, memory budget, things that crash the game

How objects behave (the strat bytecode) has its own section: Strats.

Where the details live

These pages are the readable summary. The full lab notes – with every address in groove.exe, open questions and the history of each finding – are in notes/:

Topic Lab notes
geometry, collision, coordinate spaces notes/geometry.md
MAP layout, strat records, other chunks notes/objects.md
textures notes/textures.md
every object type in every level notes/strat_types_table.md
object parameters notes/editor-object-schemas.md
world 9 chapters notes/testlevel-chapters.md
level building, physics measurements, the exit notes/levelbau.md
fog, lights, regions notes/editor-tools-environment.md, notes/mod-fog.md
importing objects across levels notes/editor-cross-import.md

Code that reads and writes these formats

Every parser rebuilds all original files byte for byte, so the code is a reliable executable specification.

Format Java (LlamaMod) Python (kit)
WAD container format/Wad.java tools/wadtool.py
TRAK / STPC models, collision format/Trak.java, Model.java, Collision.java, Stpc.java tools/geomlib.py
MAP format/MapChunk.java tools/mapchunk.py
TEXT format/TextChunk.java tools/textchunk.py
whole level format/Level.java –
strat code format/strat/, format/stpcmerge/ tools/strats.py, tools/stpcwalk.py
COR pictures format/CorImage.java, CorEncoder.java tools/cor2png.py, tools/png2cor.py
KSV saves save/Ksv.java –
ASF music – tools/asf2wav.py (decode only)