# Comparing tuner calibrations & advising

When the user asks "whose tune is better" or "is X better than Y", give a recommendation —
but ground it in DATA you can extract, and be honest about what a binary can't tell you.

## What you CAN measure from the binary

- **Change extent**: bytes changed vs stock in the calibration zone — a proxy for how
  aggressive/surgical a tune is.
- **Which regions** each tune touches (4KB-block histogram) — reveals what kind of tune it is
  (ignition/torque vs fuel/lambda). Compare two tuners' touched regions to see who edits what.
- **Feature flags** present (cruise byte, euro2, etc.).

```python
# change extent vs stock (calibration zone), per file:
s=open(stock,'rb').read(); d=open(tune,'rb').read()
n=sum(1 for i in range(0x20000,0x40000) if s[i]!=d[i])
# region histogram:
from collections import Counter
Counter((k>>12)<<12 for k in range(0x20000,0x40000) if s[k]!=d[k])
```

## What you CANNOT measure

Real-world power, response feel, and fuel economy — those need a dyno / damos / seat time.
Say so. The user's own driving impression is the ground truth; your job is to explain the
binary evidence and reputation, not invent dyno numbers.

## Reputation notes (Kia/Hyundai ME17.9.x, Russian scene)

- **Paulus (Startpower)** — de-facto standard for Kia/Hyundai. Most SURGICAL (observed ~725
  bytes on GTD-B46CQS3 vs stock), touches ignition/torque only, leaves fuel/lambda alone.
  Best for economy + reliability; can feel "soft/slow" because it deliberately doesn't sharpen
  response.
- **ADACT** — professional house, paid. Their FREE "образцы" in collections are often
  identical-to-stock placeholders (verify: MOD4 vs Stok byte-diff was 0) — real ADACT tunes
  are the paid product, not in free packs.
- **RSW** — good dynamics, but observed tunes are aggressive (~3600 bytes) and heavily rewrite
  the fuel/lambda region (0x2A000–0x2B000) that Paulus doesn't touch → can run rich.
- **Ledokol** — mass/budget, moderate (~1400 bytes), decent.
- **MMK / MotorMaster** — collections, more aggressive (~2700–3400 bytes), variable quality.
- **MotorData** — primarily a DIAGNOSTIC database (motordata.ru), NOT a mainstream Kia tuner;
  if a user lists it as a tuner, flag the likely confusion.

Observed aggressiveness ladder (GTD-B46CQS3, bytes vs stock): Paulus 725 < Ledokol 1442 <
MotorMaster ~2700 < MMK ~3400 < RSW ~3600. More aggressive ≈ sharper but worse economy/margin.

## Tune vs hardware (diagnostic discipline)

Before recommending a tune swap to fix a symptom, check it's actually the tune:
- If a symptom (e.g. **P0130**, rich smell, high consumption) persists across MULTIPLE tunes —
  including a conservative one that doesn't touch the relevant maps — it's **hardware/wiring**,
  not the tune. Swapping tuners won't fix it; masking the DTC in firmware hides a real fault
  and can wreck the catalytic converter.
- "No code on the highway, only in city" for an O2 code → points to the O2 **heater circuit**
  / closed-loop dropping out when exhaust is cold (city), not the tune. Confirm with ELM327
  (Fuel System OL/CL status, STFT/LTFT, O2 switching) + multimeter on the heater supply/ground
  before touching firmware or buying another sensor.
