TO:R Data Map

Rendering

Source
docs/executable/rendering.md
SHA-256
d6d929dc…abedeac6

Starting 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.

Based on Unpacked executable local/exe/Tactics Ogre Reborn.exe.unpacked.exe, SHA-256 7b0230a11498f40396c9048345e7cfe0ef442cb7ca8faffc6f197920d2669599; shader package; background sample.
Checked 2026-10-15
Method Ghidra 12.1.4 through rea, batch_decompile at the addresses below; inspection of the saved Ghidra decompilations in local/exe/decomp/. No runtime capture or visual comparison.

Focus and blur

The renderer survey locates BladeGraphicsManager. The shader package's layout and inventory remain in ARC.

Finding Confidence Source
Startup creates a FilterDrawable using the name psp_dof. likely 0x140163d10; saved Ghidra analysis resolves the name pointer 0x140cac7b0.
0x14016ce70 searches a filter's parameters for FocusPosY, copies the supplied values into its parameter storage, and queues a batch through 0x14018c7b0 with two input handles. likely Fresh rea decompilation of 0x14016ce70. The supplied values' units and meaning are not established.
0x14016d000 similarly writes vBlurSize, then queues a batch through 0x14018c740. likely Fresh rea decompilation of 0x14016d000.
0x140166720 constructs pairs of buffers named BlurHalf, BlurQuater and BlurOneEight, with dimensions divided by 2, 4 and 8, respectively. The spellings are the game's. likely Fresh rea decompilation of 0x140166720; positive input dimensions, integer division.
0x14016c580 takes two branches that queue 0x14016c8c0 twice, with direction arguments 0 and 1, then calls 0x14016ce70. likely Fresh rea decompilation of 0x14016c580. This is a candidate blur/composite sequence; it does not establish when a battle uses it.

The parameter name FocusPosY does not establish whether focus depends on screen height, world height, camera-space depth or another input. A conventional depth-based effect from another renderer is therefore only an approximation until the shader and its inputs are traced.

Local retained rea records: local/scratch/R41-rendering-rea-20261015.json (ev_42655017d8b968bfc9100eb01cf98aaba1fc9f36e4216b9a32bbc35fa07a057f) and local/scratch/R41-rendering-followup-rea-20261015.json (ev_137f83ed2e1a067851e7f2bca20d54e27cff95cf238efd9c57883ae5965ca34b). These contain decompiled game code and stay local.

Background loading leads

likely: the saved Ghidra analysis of 0x1402dd2f0 selects a path through 0x1402e0930 and bg_file_data, opens and unwraps the file, then calls 0x1402ddda0. A fresh rea decompilation of 0x1402ddda0 shows it taking the first pack entry, checking its u16 at +0x0C is zero, and passing it to 0x14037f4f0 and 0x140382bc0. The resource header's existing observations are in ashg; this does not establish that the background payload is an ashg sprite pack or a world-map BMAR model.

likely: 0x1402ddda0 also finds bg_common.dat entry ID 0xCC, selects a 0xC0-byte row using the background-file row index, and passes settings to graphics virtual calls at vftable offsets +0x2C8 and +0x2D0. This is a lead for scene-specific rendering settings; the fields and the calls' effects remain unresolved. Source: fresh rea decompilation and saved local/exe/decomp/0x1402da390.c.

Leads