OpenRemap Docs

diff-maps

When a tuner modifies a file, they do not change bytes randomly — they change maps (the tuning tables). diff-maps compares a stock (original) file with a tuned file and answers the tuner's question: which maps changed, and by how much?

It is the map-level cousin of cook: cook diffs at the raw byte level and builds a recipe; diff-maps finds the actual tables and reports each one's change — max +23, avg +1.9, +18.3% — so you can audit a tune without a manufacturer database.

Think of cook as "what bytes are different?" and diff-maps as "which tables were touched, and how hard?".

When do I need it?

  • Auditing a tune you did not make. See exactly which maps a "stage 1" file touched, and how aggressively.
  • Checking a recipe explains everything. With --recipe, diff-maps tells you which changed cells the recipe covers — and which changes are untracked (extra edits the recipe does not explain).
  • Reviewing your own work before flashing.

Try it (2 minutes)

openremap diff-maps stock.bin stage1.bin
  stock.bin vs stage1.bin

  1,985 tables found in stock · 1,990 in tuned · 342 matched pairs

  Map 0x000376F2   32×16   max +23   avg +1.9   +18.3%   Group A
  Map 0x002214D4   32×6    max  +8   avg +0.4   +12.1%   Group A
  ...

(Output shortened — by default the top 50 matched maps are shown.)

Understanding the answer

The output says… In plain words
matched pairs How many tables were found in both files and paired up
Map + offset Where the table lives (offset shown for cross-referencing)
max / avg The biggest single-cell change and the average change per cell
+18.3% How much the table changed overall
Group A / B… Maps sharing the same RPM/load scale are grouped together — so fuel/timing/boost families appear side by side
↺ axes changed The tuner moved the breakpoints of this map — matched by correlation, not exact values
⚠ suspicious Near-total cell change without correlation — probably two different tables sharing the same scale

Every changed byte is accounted for somewhere: a matched map, a promoted changed block, or a "changed but not identified" region (flags, VIN, checksum stores — the kind of thing cook catches at byte level).

For developers

The same diff is one method of openremap.api — note the method name uses an underscore (diff_maps):

Way of using it Where to look Example
Terminal (CLI) diff-maps — CLI openremap diff-maps stock.bin stage1.bin
Python code diff-maps — API api.call("diff_maps", {"stock_path": "stock.bin", "tuned_path": "stage1.bin"})
Any language (JSON-RPC) diff-maps — API a request with "method": "diff_maps"

Where to go next

You want to… Go to
See every flag (threshold, grouping, recipe cross-reference, exports) diff-maps — CLI
Call diff_maps from your own code diff-maps — API
The byte-level diff and recipe cook
How tables are found in the first place scan-maps