Repository navigation
Road Editor Tool
rns510_gui.py is the actual map-EDITING tool — distinct from the
read-only Map Viewer Tool, which exists purely to
visualize and validate the file-format findings this wiki documents.
This is the tool that writes real changes back into a real ISO.
Location: rns510_gui.py (GUI), rns510_core.py (all format/business
logic, no GUI code), rns510_iso.py (ISO read/write helper, shared
with the viewer — see ISO Container Handling),
test_core.py (non-GUI functional test).
Run with py rns510_gui.py (on this machine, use the py launcher —
plain python/python3 aren't on PATH).
-
Open Map ISO — loads via
rns510_iso.py, extracts justdb/eeu.rd,db/eeu.il,db/eeu.iofto local temp files (never holds the full multi-GB ISO in memory). -
Search roads by name — scans
eeu.il's name index. -
Edit an existing road — change name and/or nudge coordinates;
patches the
eeu.rdrecord in place, preserving all unresolved bytes unchanged. Best-effort keeps.ilin sync. -
Add a new road — form for name + lat/lon; appends a new
.rdrecord (unknown bytes zero-filled), a best-effort.ilentry, and a default.iofentry. Marked EXPERIMENTAL in the UI with a warning and confirmation dialog — it does not touch.rt/.rl, city/ county tables, or the.mg1-.mg4rendering tiles, so a new road may be searchable in-tool but not necessarily visible or routable on real hardware (see "What's solid vs. experimental" below). -
Save As new ISO — never overwrites the original; writes edits
back via
rns510_iso.py, then automatically reopens the new file and verifies the edits read back byte-exact before reporting success.
Tested against the real CD_8555.ISO (not just written and
assumed to work): search returned real matches, an existing road was
renamed and the change verified, a new test road was appended and
verified, and a full save-as + round-trip readback passed, including a
full 1,535-file diff confirming everything untouched matches the
original exactly.
| Capability | Status |
|---|---|
| Open/parse the map ISO | Solid, verified |
| Search roads by name | Solid, verified |
| Rename an existing road / move its coordinates | Solid, verified — preserves all unknown fields |
| Add a brand-new road (data-only) | Works, but experimental — see below |
| New road appears in name search | Works |
| New road renders on the map display |
Not yet tested on real hardware — tile geometry format (per-feature anchor+delta blocks, Tile Geometry and Topology) is readable/writable, and the per-vertex topology/adjacency table's node-id mapping is now also cracked (resolve_topology_adjacency()), so a topology entry consistent with a new road's own vertices can be synthesized in principle — whether real hardware actually needs one, and whether this understanding is complete enough to satisfy it, is unverified; nothing has been write-tested on-device |
| New road is routable |
Unverified — .rt/.rl/city-county wiring not done; .rl/.prl are decoded (Name Search Catalog) but not yet used by this tool, and may back the unit's own address-search UI (unconfirmed) |
| Rebuild a valid ISO | Solid, verified byte-for-byte |
| Prepare SD card from the ISO | Solid — via the separate maps-tool (see ISO Container Handling) |
| Real hardware acceptance |
Not yet tested — recommended next real-world step is a zero-edit round-trip test (rebuild the ISO unmodified, deploy via maps-tool, confirm the unit loads it normally) before trusting any real edits |
Non-GUI functional test: test_core.py.
Road network
- eeu.rd
- eeu.il
- eeu.iof
- eeu.typ
- rt / rl / prl
- eeu.si (segment classification)
- eeu.tmc (TMC traffic data)
Places
- eeu.ctr
- cty / cl / ct
- eeu.cny (counties)
- eeu.stt (states/regions)
- eeu.ti (time-info/DST)
- pmc / pmm (postal-code merge)
- pol / pot / pmp (postal-code, empty)
Language / TTS support
- eeu.abc (alphabet)
- eeu.aff (affix)
- eeu.cal (country names)
- eeu.cat (country bboxes)
- prd (road phonetics)
- pct (city phonetics)
- pcl (phoneme cluster list)
- pca (country phonemes)
Map tiles
Container formats
Cross-cutting
- eeu.mod (schema dictionary)
- Road naming join
- Header trailer fields
- Map viewer tool
- Road editor tool
- Unexamined files
- Disc-root build script & subsystems
Firmware reversing