Original galactic zones: coordinates, names and display
The GZM is geographic data, independent of stellar catalogue completeness. No galaxy points are generated from it. This work only reads installed resources and the pinned old client image; it never invokes the game.
Sources
Resource d30f11c57448cff8ec3dd0c5c80d9868482ccadb, installed signed-file
SHA-256 ba4e049fd4eae066e72f29898a25d52692422e5905fc7a4a65105e44eb631ade.
The decoded FRES is 27,830,485 bytes; its deflate at 1620 produces 82,232,836
bytes with SHA-256 49a18ad1f339169391abe2a76475eea6731028b9809d7120fb32d57309196f22.
It contains 3227 pools, 24 roots and 814013 relocations. Pool data starts at
13127884. The GZM root has name/type hashes (2854198236,193493299), pool2075
offset4040. Its fields are coefficients83/83, dimensions2048/2048, quadtree
pointer+16, name-array pointer+24 and 43 names+32.
The separate galaxy root (1765098201,2090718614) supplies raw origin
(1599520,1311520,771360), at 1/32 ly, hence (49985,40985,24105).
All three axes independently match the authored Core Sys Sector sphere in
the original GRX. They are not inferred solely from the density texture.
Actual consumer
All function addresses here refer to the pinned 6891f70a... image. These
functions are only static evidence; the tool's GZM display needs no live RVA.
Main map constructor3A05660 binds registered type5F5932C at+1F0. Registration 3C430C0 places that interface at the galaxy manager+268; its vtable is5539DE8. The type ID is its first slot. Interface+20 points to3C412A0, which queries the GZM using3897C10. Interface+28/3C42820 returns the original name at an actual region index; +30/3C427E0 uses3897B80 to resolve names.
3897C10 takes raw 1/32-ly X and Z, not relative ly or texture UV. For a nonnegative input it computes:
pixel = (((ulong)(uint)(raw << 7) * coefficient) >> 24) & 0xfffff
It rejects pixel indices outside the resource dimensions. Thus a pixel's continuous world extent is4096/83 ly. The whole raster spans approximately 101067 ly: substituting the density map's100000 ly extent is incorrect.
3897CA0 traverses a40-byte node: value+0, child pointers+8/+16/+24/+32.
Child index is (x >= xMid ? 1 : 0) | (z >= zMid ? 2 : 0). A missing child
returns the parent's value. The recovered tree contains42187 nodes. The
resulting4,194,304-byte raster has SHA-256
4f29773d81898c1889a7c7e766e09bff13df52f18d8eda57e17d6de72241272a.
Original name rows map0 toEmptyRegion and1..42 to the matching decimal string.
Original map label3A2DCB0 formats Codex_RegionName_%s. The installed original
text resource provides all42 matching names; for example1=Galactic Centre,
18=Inner Orion Spur and42=The Void. These names are separate from the470
authored named regions and485 spheres in the GRX.
Implementation and limits
Extract-GalaxyZoneMap.py produces a31,156-byte gzip of the exact ID raster
and a small source/hash/name manifest. GalaxyOriginalZones validates the
embedded raster hash, reproduces the original fixed-point point lookup and
keeps the data separate from GalacticSystem records.
The display renders geographic boundaries on the tool's Y=0 annotation plane. It derives coverage mips from actual ID boundaries and uses a ray/plane intersection with the same orbit-camera projection as the star map. It does not fill regions with invented stars. The original GZM GPU material has not been recovered; the boundary shader, its alpha/LOD and label centroids are explicitly tool display choices, not claimed pixel-equivalent original code. Name and plane switches are independent and do not alter stellar filtering.
Static decompilation and reference files are under
artifacts/galaxy-query-research/zone-consumers/. Shader-only WARP evidence is
under artifacts/galaxy-zone-shader-validation/. Full-page and composite
background captures are evaluated separately; a shader compilation or a
successful screenshot does not establish original-game visual parity.