docs: sanitize documentation and generalize upstream reference server citations
This commit is contained in:
1 parent
7f106dbe46
commit
d1f8beac6f
18 files changed
+87
-87
No files matched your search
@@ -0,0 +1,94 @@
|
||||
# Currency Wars Resource Reference Audit, 2026-10-26
|
||||
|
||||
The updated reference executable was inspected offline. It was not launched,
|
||||
and its saves/configuration were not modified. Its SHA256 is
|
||||
`235f5c3567f281cc99613ed84694ef23f492c15298dc868a8e78e6529f0cda86`.
|
||||
|
||||
## Reproducible extraction
|
||||
|
||||
`tools/export_reference_embedded_resources.py --binary <reference executable>
|
||||
--output <evidence directory>` extracts bounded gzip members and decodes the
|
||||
Excel resource through the executable's own generated protobuf descriptors.
|
||||
It requires Python protobuf and the sibling `dump_embedded_proto.py`.
|
||||
No executable code from the reference is run.
|
||||
|
||||
Evidence is retained under `battle_diagnostics/reference-20261026/`:
|
||||
|
||||
- `resource-manifest.json`: binary identity, descriptor identities, exact gzip
|
||||
offsets/lengths, compressed and uncompressed hashes.
|
||||
- `excel-data.json`: full decoded `excel.ExcelData`, including NPC monsters,
|
||||
challenge/Peak data, activities, shops and CW tables.
|
||||
- `gridfight-excel-data.json`: CW-only subset, 72 tables.
|
||||
- `gridfight-custom-data.json`: 1,253 reference-authored config files and two
|
||||
action schemas. These are **not original Client level JSON**.
|
||||
- `resource-inventory.json`: table counts and the exact currently blocked Tea
|
||||
Break event/options/custom rule.
|
||||
- `challenge_peak_extra_data.json`: separate embedded JSON supplement,
|
||||
11 groups/44 Peak entries, file offset `0x114c212`, 9,101 decoded bytes.
|
||||
- `load-excel.asm`: static loader evidence. `LoadExcel` at RVA `0xb79160`
|
||||
reads embedded `resources/excel.gz`, creates a gzip reader, reads all bytes,
|
||||
and unmarshals the protobuf into the global Excel data object.
|
||||
|
||||
The Excel gzip member starts at file offset `0x11c9fef`, compressed size
|
||||
962,600 bytes, uncompressed size 6,008,625. The CW custom JSON gzip member
|
||||
starts at `0x1153105`, compressed size 25,684, uncompressed size 267,251.
|
||||
The extractor preserves protobuf int64 values as decimal strings in JSON.
|
||||
|
||||
## New usable CW evidence
|
||||
|
||||
The extracted tables include 38 Bonfire events, 72 Bonfire options, 3 Bonfire
|
||||
heal rows, 110 bonus pools, 1,120 basic bonuses, 480 combination bonuses,
|
||||
532 Orbs, 493 node templates/routes, 629 special avatars and 411 augments.
|
||||
This supplies the previously missing reference bonus-pool recipes. It does
|
||||
not by itself establish current Client response bindings or packet order.
|
||||
|
||||
For the blocked event `10200601`, the reference Excel row states PetPalID 2
|
||||
and DialogID `1020060101`. Its option 1 states:
|
||||
|
||||
- JsonPath: `Config/Level/GridFight/petpal/bonfire/GridFightBonfire102006011.json`
|
||||
- DialogID: `1020060102`
|
||||
- EffectParamList: `[40]`
|
||||
- OptionShowType: `None`
|
||||
|
||||
The corresponding reference-authored custom rule is
|
||||
`petpal/bonfire/GridFightBonfire102006011.json`: `TeaBreakOption`, immediate
|
||||
`SetRule` action, rule name `PetPalStarDown`, value `#1` (the parameter 40).
|
||||
It must not be replaced with a generic healing reward. Separate Bonfire heal
|
||||
rows specify 20 for each of chapters 1, 2 and 3.
|
||||
|
||||
Basic bonus, random pool and combination bonus IDs are separate lookup
|
||||
namespaces. For example basic BonusID 1 is Gold with amount parameter 1;
|
||||
there is no random pool row with RandomBonusID 1. The existing captured Orb
|
||||
197 points to BonusID 1, so trying to resolve every Orb through the random
|
||||
pool table would fail for this legitimate direct basic bonus.
|
||||
|
||||
## Saved state is supporting evidence, not reusable configuration
|
||||
|
||||
The reference's external `data-in-game.json` contains an active season 2,
|
||||
route 1800 run at node 1-2, 23 pregenerated nodes and one completed battle.
|
||||
Its first two nodes retain per-monster `drop_orb_ids`, and its saved effect
|
||||
state contains `OrbsOpened = 5`. This shows the reference persists those
|
||||
concepts, but does not capture the packets that awarded/opened them.
|
||||
That run must not replace this project's route 2801 run or player save.
|
||||
No avatar snapshots or player inventory from the reference were imported.
|
||||
|
||||
The reference's static route 2801 chapter 1 section 5 points to node template
|
||||
280115, whose row is `Monster`, StageID 70000008, ParamList `[902]`, penalty
|
||||
92204 and basic gold 10. The captured live Client run is instead a Tea Break
|
||||
with event 10200601 at that position. A PetPal/dynamic node override may explain
|
||||
this; static route data must not overwrite the active run. The reference does
|
||||
explicitly link PetPal 2 to effect 102006, whose parameter is event 10200601.
|
||||
|
||||
## Compatibility and limits
|
||||
|
||||
The reference supports multiple Client revision dispatches; a table's presence
|
||||
in its embedded Excel is not independent proof that it matches the connected
|
||||
Client's revision. Compare relevant rows with captured Client data and retain
|
||||
this binary's provenance before importing a compatible subset. Resolve CmdIDs
|
||||
through the current named command table; never transplant historical numbers.
|
||||
|
||||
The custom files label 822 entries `Implemented`, 42 `Partial`, 116
|
||||
`NotImplemented`, 93 `BattleOnly`, 129 `Code` and 51 `Excel`. These are labels
|
||||
inside the reference's own authored data, **not verification that those
|
||||
features work in this project or even a runtime verification of the reference**.
|
||||
Gameplay integration and Client verification remain separate work.
|
||||
Reference in new issue
Block a user