TO:R Data Map

Reference

The research behind the data: how each file format is laid out, what the executable does with it, the terms the docs use, and how every fact says how sure we are.

File formats · 16
ARC: the engine's named archive (bl::archive)The Blade engine's archive: a header, an offset table, a list of named, typed records, and the data blocks they point to. It holds the menu layouts and their textures (menu/), the text presets and the font set, every …docs/formats/arc.md
ashg: compressed sprites and texturesAn ashg is a 16-byte header and an LZ77-style stream that unpacks to one resource: a btx texture (portraits, class faces, shop pictures) or a sprite pack, a pakd of a sprite sheet and two btx layers. The sheet is an …docs/formats/ashg.md
btx: texturesA texture: a 0x34-byte header, the texture's name, then its pixel data, ready to hand to Direct3D 11. Every texture in the game is one: the gallery and ending pictures, backgrounds, map names, Warren Report portraits, …docs/formats/btx.md
Containers: how a game file is put togetherHow a game file is built, from the .dat on disk down to its entries, and how it is rebuilt. A .dat is obfuscated with RotXor; inside is a ZIP holding one member, usually a pakd archive of numbered entries. What's inside …docs/formats/containers.md
EFX0011: Libra effect filesAn effect: the textures, sound banks and other resources it uses, and its sets of chunks with their data, as a list of chunks after a 16-byte header. Every .efz file under effect/ is one, wrapped in MLZ0 (LZ4); …docs/formats/efx.md
event_script: event script modulesA compiled event script: one or more scripts of stack-machine bytecode, each with its functions and jump targets, plus the module's integer and float constants, variables and the lists of functions its opcodes start on …docs/formats/event_script.md
FileTable.bin: the game's file tableThe index of every game file, at the root of Data/. The game looks a file up here by group and file ID (or by a hash of its name), and gets back its path under Data/ and its size; it then reads exactly that many bytes …docs/formats/filetable.md
font: font packagesThe game's fonts, one package per language in Font/<lang>.dat: FreeType fonts (TrueType .ttf and .ttc files, drawn with FreeType) and bitmap fonts (a btx texture plus glyph and kerning tables, the shape of AngelCode …docs/formats/font.md
invk: story conditionsConditions that start story scenes: sections by kind of moment (a battle turn starting or ending, damage, a unit dying, arriving at a world-map location, a story condition), each a list of children, and each child an ID …docs/formats/invk.md
pmf: obfuscated Ogg Theora moviesThe game's full-motion movies, in movie/: the opening, the chapter movies, the trailer and one title movie per language. A .pmf is an ordinary Ogg file (one Theora video stream and one Ogg Skeleton stream, no audio) …docs/formats/pmf.md
sabf: sead sound banksA sound bank of Square Enix's sead sound engine (SQEX::Sd), which the game links: a 16-byte header with the bank's name and number, a table of four chunks (snd , seq , trk , mtrl), then the materials, which hold the …docs/formats/sabf.md
SAS3: sprite animationsA set of 2D animations for one sprite sheet. The sprites list rectangles (quads) of the sheet. Each animation is a timed list of frames that show a sprite, move it, play a sound or jump. Each animation has up to four …docs/formats/sas3.md
scnf: sead's config, sound/sead.configThe settings of Square Enix's sead sound engine: its sound categories, buses, effect presets, events and the like. One file, sound/sead.config (3,008 bytes), with no wrapping (no RotXor or ZIP). It is built like a sound …docs/formats/scnf.md
task: task listsLists of task instructions keyed by a u16 ID: each task list sets game variables and game flags, changes the party, the goth, the day, loyalty, the shop level and the like, when the story reaches a step that names it …docs/formats/task.md
txte: localized text tablesThe game's text format. Each txte text table is a 16-byte header, then 32-byte rows, then a pool of strings. A row pairs a text key, such as ARMSTEXT_LC_ARMS_001_NAME, with its text in one language. The keys are the …docs/formats/txte.md
xlce: fixed-row data tablesThe game's data-table format: a 16-byte header, then fixed-size rows, then an optional string pool. The first four bytes, the magic, read xlce; Gibbed reads byte 3 (0x65, the e) as a version, 101, but no code reads it. …docs/formats/xlce.md
Executable research · 7
Debug and test switchesWhat is left in the executable of the developers' debug and test switches, and whether any of it can be reached in the shipped game: the auto_test switch, the shop's debug sequence, the @debug font and the debug memory …docs/executable/debug-switches.md
VfxHow the game picks, loads and plays a vfx (a visual effect, the game's effect/ files): which file a vfx ID opens, the two small files beside them (indices.bin and EffectMaterialData.bin), and what a modder has to keep …docs/executable/effects.md
Elemental resistance in HP damageHow equipment's elemental defense enters the HP damage formula: its opposing-element lookup, target-affinity conditions and limits. This covers the elemental part of R42-I10 (../issues/R42-I10-elemental-resistance.md); …docs/executable/elemental-resistance.md
Event scriptsHow the executable runs the event script modules: the script VM, its opcodes, and the natives (game commands) that scripts call. The two tables it runs from are exported to data/exe/ as views exe.script_opcodes and …docs/executable/event-scripts.md
Ghidra and rea: static analysis of the game's executableHow we read the game's own code, Tactics Ogre Reborn.exe, to learn what its files and fields mean: the tools, how they're set up on the owner's Mac, how the executable is unpacked, how to run our scripts and indexes, and …docs/executable/ghidra-rea.md
The executable: what it is and where its code livesWhat we know about Tactics Ogre Reborn.exe as a whole: how it's packed and built, how its code is organized, and which code opens which game file. How the game reads each format is in that format's doc, like …docs/executable/overview.md
RenderingStarting points for tracing how the game produces its image, researched for R41 (../plan/R41-rendering-lab.md). This is a bounded static investigation, not a recovered battle rendering pipeline.docs/executable/rendering.md
Glossary · 1
GlossaryEvery term the docs, data and code use for the game's data, once: what it means, and where its name comes from (Names). Other names are the game's other word for the same thing, where it has two, and what the reference …docs/glossary.md
Evidence and confidence · 1
How docs are writtenEvery doc and schema about the game's data or code (format docs, table and file schemas, executable docs, issue reports) follows these conventions. A new format doc or issue report starts from its template here, keeping …docs/templates/README.md