XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8

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.