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) |