Ana içeriğe geç

Harita düzenleme

Her harita, açıldığında alt satırdaki sekmelerle dört görünümde incelenebilir: Text (hücre tablosu), 2D (eğri), 3D (yüzey) ve 3D Sim. Hepsi aynı veriye bağlıdır; birinde yaptığınız değişiklik diğerinde anında görünür. ROM'un tamamı ise proje penceresinin 2d sekmesinde dalga formu olarak görünür (bkz. Arayüz).

Her görünümde karşılaştırma modları vardır: Mod (mevcut değerler), Ori (orijinal), Δ (mutlak fark) ve % (yüzdesel fark). Böylece tunun neyi değiştirdiğini ham sayı okumadan, renk ve eğri üzerinden görürsünüz.

Text (hex) görünümü

  • Sol sütunda ofset, ardından baytlar, en sağda ASCII veya çubuk gösterimi.
  • Görünüm ▸ Veri Genişliği ile 8/16/32-bit hücre boyutunu, Bayt Sırası ile big/little endian ayrımını, İşaret ile işaretli/imzasız yorumunu değiştirirsiniz.
  • Değer doğrudan hücre üzerinde yazılabilir; Enter onaylar, Esc iptal eder.
  • Otomatik bulunan aday haritalar, sınıf rengine göre ince çerçeve + etiket ile çizilir (amber = Possible, mor = Recognized); sağ üstte küçük bir Possible/Recognized lejantı bulunur. Bir çerçeveye sağ tıklayınca Haritayı listeye ekle (Add map to list) ile aday kalıcı haritaya dönüştürülür; Oto haritaları göster (Show auto maps) ile tüm aday katmanı gösterilip gizlenir.

2d dalga görünümü (ROM geneli)

ROM'un tamamının bayt dalga formu; harita blokları renkli kutular olarak üzerinde görünür. Çok sayıda harita arasında hızlı gezinmek ve genel eğilimleri görmek için kullanılır. Görünüm ▸ Yükseklik Renkleri ile renk bandını değiştirebilirsiniz.

  • Üst araç çubuğundaki 8/16/32/F bit ve bayt sırası düğmeleri bu görünümü doğrudan yönetir (kendi içinde ayrı bir seçici yoktur).
  • Tek tıklama yalnız imleci koyar; görünüm değiştirmez.
  • Bir harita bölgesine çift tıklamak o haritanın editörünü açar ve haritayı soldaki listede seçer.
  • Mouse ile bir aralık seçmek, aynı baytları Text (hex) görünümünde de seçer; hex'te seçim yaparsanız 2D'de aynı aralık vurgulanır.
  • Text sekmesine geçtiğinizde Hex görünümü aynı konuma kaydırılır.
  • 2D sembol çubuğundaki Column guides düğmesi, Text görünümüyle paylaşılan sütun kılavuz çizgilerini (line-break) 2D'de gösterir/gizler; tercih oturumlar arasında korunur.

Sütun düzeni ve line-break çizgileri

Text ve 2D görünümleri aynı sütun düzenini paylaşır: birinde değiştirdiğiniz sütun sayısı ve origin diğerinde anında geçerli olur.

  • M sütunu genişletir, W daraltır (WinOLS "more/less columns").
  • Ctrl+← / Ctrl+→ origin'i bir bayt sola/sağa kaydırır; ızgara haritanın başlangıcına böyle hizalanır.
  • 2D görünümde her sütun sınırı dikey bir line-break çizgisiyle işaretlenir; her 4. sınır daha belirgin major çizgidir. Bir çizgiyi fareyle sürükleyerek sütun sayısını doğrudan değiştirebilirsiniz.
  • 2D'de aralık seçimi line-break'lere snap eder: seçim her zaman bir sütun sınırında başlar ve biter.
  • Sütunlar 3 pikselden daha dar olduğunda çizgiler okunabilirlik için gizlenir.

Harita düzenleyici sekmeleri

Bir haritayı açtığınızda (harita listesinden veya 2D'de çift tıklayarak) alt satırda dört sekme bulunur:

Sekme İçerik
Text Hücre tablosu — asıl düzenleme burada yapılır
2D Haritanın eğrisi; seçili moda göre orijinal ile üst üste
3D Yüzey grafiği; Δ/Ori modunda fark ısı haritası
3D Sim Dilimli/kesitli 3D benzetim

2D sekmesinde orijinal ROM kesikli gri, değiştirilmiş ROM parlak çizgi olarak aynı eksende çizilir; aradaki fark alanı artışlarda kırmızı, düşüşlerde mavi yarı saydam dolguyla taranır. Δ / % modlarında eğri doğrudan farkı (sıfır çizgisi etrafında) gösterir. X ekseni, A2L/OLS'den eksen değerleri varsa onları (rpm, % …), yoksa sütun indeksini etiketler.

  • Slices kutusu, her satırı kendi bandında çizer (WinOLS 5 "Slices"): çok satırlı haritalarda şekiller üst üste binmeden karşılaştırılır. Seçim kalıcıdır — uygulamayı kapatıp açınca korunur.
  • Style seçicisi 2D eğrinin çizim stilini belirler: Classic (varsayılan, düz eğri), Columns (her sütun için ayraç) veya WinOLS (ince değer ızgarası + kare nokta işaretçileri). Seçim kalıcıdır.
  • Araç çubuğunda seçili hücreler için bir istatistik satırı görünür: Sel: N · min · max · ort (varsa orijinale göre Δort). Yanındaki ısı lejantı, aktif paleti ve o anki değer aralığını gösterir.
  • Tune (drag curve): Mod modunda 2D eğri üzerinde fareyle dikey sürükleme yapmak, seçili satırın hücrelerini doğrudan yazar (drag-to-tune). Yazımlar ölçekleme/doğrulama içeren güvenli hücre yazma yolundan geçer ve sürükleme başına tek bir geri-alma adımı üretilir. Ori, Δ ve % gibi salt-okunur görünümlerde yazım kapalıdır.
  • Fareyi gezdirince artı işareti + değer okuması çıkar; o sütundaki satır değerleri (ve varsa orijinal değerleri) görünür.
  • Fare ile bir sütun aralığı seçmek, Text sekmesindeki hücreleri de seçer; tersi de geçerlidir — 2D ile tablo seçimi senkrondur.
  • Seçili kolon, 3D yüzeyde ve 3D Sim görünümünde vurgulanır.

Üst araç çubuğundaki 8/16/32/F ve bayt sırası düğmeleri yalnız ROM geneli Text ve 2D görünümlerini yönetir; bir harita kendi hücre tipini harita özelliklerinden alır.

3d yüzey görünümü

İki boyutlu haritaları yüzey grafiği olarak gösterir; renk/yükseklik eşlemesi ile eğimi gözle görmek için kullanılır. Düzenleme Text sekmesinde yapılır.

Δ veya Ori moduna geçtiğinizde yüzey, orijinal ile değiştirilmiş veri arasındaki işaretli farkı renklendirir: artışlar kırmızı, düşüşler mavi; renk yoğunluğu farkın büyüklüğüyle ölçeklenir. Böylece 3D'de "nerede ne kadar değişti" sorusu tek bakışta görülür. Mod modunda normal yükseklik ısı haritasına dönersiniz.

Yüzen 3D Preview

Görünüm ▸ 3D Preview ile seçili haritanın serbest taşınabilen ayrı bir 3D önizleme penceresi açılır; harita listesinde gezinirken pencere güncel haritayı takip eder. Görünüm ▸ 3D Preview Theme altından dört render teması seçilir: Dark, Blue Mesh, Green ve White. Seçim kalıcıdır.

Karşılaştırma modları (Mod / Ori / Δ / %)

Harita düzenleyicinin araç çubuğunda dört mod düğmesi vardır:

Düğme Kısayol Ne gösterir
Mod M Değiştirilmiş/mevcut değerler (düzenlenebilir)
Ori O Orijinal ROM değerleri (salt okunur)
Δ D Hücre bazında mutlak fark: Mod − Ori
% P Hücre bazında yüzdesel fark
  • Orijinaline göre artışlar sıcak (kırmızı/turuncu), düşüşler soğuk (mavi) tonda boyanır; değişen hücrelerin köşesine üçgen delta bayrağı eklenir.
  • Ori, Δ ve % modları salt okunurdur — yanlışlıkla yazma yapılmaz; düzenlemek için Mod moduna dönün.
  • Δ / % modundayken üst araç çubuğunda bir delta özeti satırı görünür: değişen hücre / toplam, yüzde, min/ort/max fark.
  • Physical / Raw Hex / Raw Dec seçicisi, değerlerin fiziksel birimde mi yoksa ham saklama bitleri olarak mı gösterileceğini belirler.

Düzenleme araçları

Düzenle menüsündeki işlemler seçili hücrelere veya tüm haritaya uygulanır:

İşlem Ne yapar
Değer +1 / −1 Seçili hücreleri birer artırır/azaltır
Mutlak değiştir Tek bir değer yazar
Göreli değiştir Yüzde veya mutlak fark ekler
Kaydırıcı sınırı Hücreleri bir aralığa kilitler
Yuvarlama Değerleri adıma yuvarlar
Orijinale dön Seçili hücreleri orijinal değerine döndürür
İnterpolasyon İki nokta arasında doğrusal/eksponentel geçiş üretir
Yumuşatma Komşu değerleri yumuşatır
Düzleştirme Değerleri düzleştirir
Son işlemi tekrarla Aynı düzenlemeyi tekrar uygular

Tüm düzenlemeler geri alınabilir: Ctrl+Z / Ctrl+Y.

Sık kullanılan işlemlerin kısayolları da vardır: + / - değer +1/−1, = mutlak değer, % göreli değiştirme, F4 son işlemi tekrarla (Again), F11 orijinal değere dön. Düzenle ▸ Insert New Hexdump yeni bir hex penceresi açar.

Düzenle ▸ Düzenleme Geçmişi… bütün işlemleri (açıklama ve bayt aralığıyla) listeler. Bir adıma çift tıklamak ROM'u doğrudan o noktaya sarar — hex, 2D ve 3D görünümler anında güncellenir.

Klavye ile hızlı düzenleme

Harita tablosunda hücre seçiliyken doğrudan tuşa basarak matematik uygularsınız; istenen değer küçük bir pencerede sorulur:

Tuş İşlem
% veya * Seçili hücreleri yüzde oranında ölçekler (105 → %5 artış)
/ Bölme oranı uygular
= Seçili tüm hücrelere mutlak değer atar
+ / - İnce adımlarla artırır / azaltır
I Seçim uçları arasında enterpolasyon (ara değer doldurma)
S 3×3 ağırlıklı yumuşatma filtresi
Enter / F2 Hücre içi düzenleyiciyi açar; Enter onaylayıp bir alt satıra geçer
Esc Düzenlemeyi iptal eder
Ok tuşları Hücreler arasında gezinir; Shift ile aralık seçer

Seçim menüsü

Seçim menüsü hem Text hem 2D görünümünde çalışır:

Komut Ne yapar
Select Cell / Column / Row / Screen / Nothing Hücre / sütun / satır / ekran seçer veya seçimi temizler
Invert Selection Mevcut seçimi ters çevirir
Restore Last Selection Son seçimi geri getirir
Selection to Start / End Seçimi ROM'un başına / sonuna taşır
Save / Load Selection… Seçimi .sel dosyasına kaydeder / yükler
Selection → Map… (K) Seçili bayt aralığını yeni bir haritaya çevirir
Support map selection Seçili aralık için sütun sayısı + origin tahmin eder

Support map selection, seçtiğiniz bayt bloğunu WinOLS tarzı bir ızgaraya oturtmaya çalışır: en olası sütun sayısını ve origin'i bulup uygular.

Bölge (row/col) düzenlemeleri

Haritanın yalnız bir kısmını değiştirmek için hücre aralığı seçin. Yama ve paket dosyalarında da row_start, row_end, col_start, col_end alanlarıyla bölgesel düzenleme tanımlanır; tüm harita yerine yalnız o bölge yazılır.

Ölçekleme ile çalışmak

Değerleri fiziksel alanda (bar, °C …) görürsünüz; uygulama bunları ölçekleme kuralıyla ham bayta çevirip yazar. Elle çarpmak yerine ölçeklemeyi Harita Özellikleri penceresinden değiştirin:

  • Çarpan (factor) ve sapma (offset)
  • Bayt sırası (bazı A2L dosyalarında baytlar tersten sıralıdır)
  • Birim etiketi

Ölçekleme yanlışsa tüm düzenlemeler yanlış yazılır. A2L'den içe aktarma bu nedenle tercih edilir.

Harita özellikleri

Çift tıklayarak açılan pencereden haritanın adını, açıklamasını, birimini, başlangıç adresini, tipini (MAP / CURVE / VALUE), boyutlarını ve ölçeklemesini görüp düzenleyebilirsiniz. Adres alanının yanındaki From hexdump cursor düğmesi, hex görünümünde bulunduğunuz adresi doğrudan haritaya atar.

Bul ve değiştir

Bul menüsü:

  • Adres — belirli bir ofset,
  • Değer — belirli bir sayısal değeri içeren hücreler,
  • Harita — ada göre arama ve filtreleme,
  • Benzer dosyalar — benzer ROM'ları bulma,
  • Find bytes… (Ctrl+Shift+F) — aktif ROM'da hex bayt dizisi arar; ?? joker baytları destekler. Eşleşmeler bir sonuç listesinde gösterilir; bir sonuca tıklayınca hex görünümü o adrese atlar.
  • Replace bytes… — bulunan tüm eşleşmeleri yeni diziyle değiştirir; tüm değişiklikler tek bir geri-alma adımıdır.
  • Next comment / Previous comment — projedeki yorumlar arasında sırayla gezinir.
  • Yorumlar ve işaretçiler — not ekleme ve gezinme.

Orijinalle farklar, yazdırma ve eksen profili

  • Görünüm ▸ Differences to Original… değişen hücreleri listeleyen bir diyalog açar; satıra tıklayınca ilgili adrese gidilir.
  • Görünüm ▸ Next Difference / Previous Difference (F7 / Shift+F7) farklar arasında gezinir.
  • Proje ▸ Print… tune raporunu yazıcıya veya PDF'e gönderir.
  • Proje ▸ Export tune report as PDF… aynı tune raporunu doğrudan bir .pdf dosyasına yazar.
  • Proje ▸ Export A2L (DAMOS)… projedeki haritaları ASAP2/DAMOS .a2l tanım dosyası olarak dışa aktarır (Import A2L'nin karşılığı).
  • Görünüm ▸ Compare two maps… iki haritayı yan yana, hücre bazında fark renkleriyle karşılaştıran bir diyalog açar.
  • Proje ▸ Save axis profile… / Load axis profile… aktif haritanın X/Y eksen tanımlarını (ad, birim, değerler) dosyaya kaydeder ve geri yükler.

Excel ve CSV dışa aktarımı

Proje menüsünden iki tablo-dışı aktarma yapılır:

  • Export map list as Excel… — harita listesini (ad, adres, boyut, ölçekleme …) tek bir .xls dosyası olarak yazar.
  • Export map values… — bir klasör seçmenizi ister ve projedeki tüm haritaların hücre değerlerini o klasöre harita başına bir CSV dosyası olarak yazar. Haritaları elektronik tabloda incelemek veya harici araçlarla işlemek için kullanılır.

Örnek tune paketleri

data/tuningpacks/ klasöründe EDC16/EDC17 tuning rehberlerinden türetilmiş örnek .mtrpack şablonları bulunur. Bu paketler yalnızca harita tanımlarını taşır (adres 0x000000 placeholder, ölçek/boyut tahmini) ve hiçbir ROM baytı içermez.

⚠️ Adresler, boyutlar ve ölçekler doğrulanmamıştır. Her haritayı kendi ECU/yazılım sürümünüze ve A2L/DAMOS dosyanıza göre doğrulamadan kullanmayın; yanlış uygulama ECU'yu brick edebilir.

İçe aktarma: Proje ▸ Import Map Pack… → dosyayı seçin → dahil edilecek haritaları işaretleyin. Tanım-only olduğu için düğme Add selected to project olarak görünür; yalnızca tanımlar eklenir, ROM'a bayt yazılmaz.

ECU ön ayarları (presetler)

Proje ▸ Apply ECU preset…, data/ecupresets/ altındaki JSON preset'leri listeler (uygulama bunları diskten okur; yeni preset eklemek için yeniden derleme gerekmez).

  • Bir preset seçildiğinde checksum ipucu gösterilir; settings alanları yalnızca boş proje alanlarına yazılır (ör. ecuType, ecuProducer).
  • mapPack tanımlıysa normal Import Map Pack diyaloğu açılır; haritaları yine siz seçip uygularsınız.
  • verified: false olan presetler listede (unverified) etiketiyle görünür ve diyalogda uyarı verir.

⚠️ Bu presetler doğrulanmamış iskeletlerdir; içlerinde gerçek ROM verisi, doğrulanmış adres, boyut veya ölçekleme yoktur. Her değeri kendi ECU/yazılım sürümünüze ve A2L/DAMOS dosyanıza göre doğrulayın.

Auto-map (database) — katalog tabanlı harita çıkarımı

Diğer ▸ Auto-map (database)…, harita tanımlarını taşıyan bir katalog (data/ecukb/mapdefs.db, tools/dataset/build_mapdefs.py ile üretilir) ile ROM'un kör (blind) yapısal taramasını birleştirir.

  • Aileye göre çıkarım: katalog, HW/SW numarası ve ECU ailesine göre o yazılım sürümüne ait haritaları getirir. Projede aile boşsa SW numarasından çözülmeye çalışılır.
  • Offset/sektör kayması hizalaması: hedef ROM farklı bir okuma yönteminden veya yazılım revizyonundan geldiğinde, her kaydın adresi parmak izi + değer imzası ile yeniden doğrulanır ve gerçek konumuna kaydırılır (Relocation).
  • Kör algılamayla harman: katalog dışında kalan bölgeler kör otomatik taramayla doldurulur; çakışan/örtüşen kayıtlar güveni yükseltir.
  • Gözden geçir → projeye ekle: sonuçlar ad, tip, adres, boyut, güven ve kaynak (Database / Auto-detect / ikisi) sütunlarıyla sıralanabilir bir tabloda gösterilir; tümü baştan seçilidir. İstemediklerinizi kaldırıp Add selected to project dersiniz. Eklenenler Auto-inferred klasöründe toplanır.
  • ROM değişmez: harita ekleme yalnız projenin harita listesini büyütür; hiçbir ROM baytı yazılmaz ve geri-alma adımı oluşmaz.

Katalog yoksa (mapdefs.db bulunamaz) araç yalnız kör otomatik algılama sonuçlarını gösterir. Katalog verisi DATASET_SETUP.md'de anlatıldığı gibi tools/dataset/build_mapdefs.py ile yerelde üretilir.

Maintenance mode (veri-driven bakım operasyonları)

Proje ▸ Maintenance mode…, data/tuningops/*.json altındaki katalogdan DPF / EGR / AdBlue / Lambda / TVA / Flaps gibi bakım operasyonlarını listeler. Katalog diskten okunur; yeni bir JSON eklemek için yeniden derleme gerekmez. Liste önce aktif projenin ECU ailesine göre süzülür; Show all ECU families kutusuyla tüm katalog görülebilir.

  • Her operasyon; marka, aile, kaç yama içerdiği, confidence değeri ve (varsa) [UNVERIFIED] etiketiyle listelenir. Satır ipucunda kaynak dosya, SW referansı ve okuma yöntemi bulunur.
  • Bir veya daha fazla operasyonu işaretleyince Preview alanı çalışır: Relocation (offset/sektör kayması) raporu — matched, shifted, ambiguous, not found sayıları ve güven yüzdesi — ile etkilenen haritalar gösterilir. Relocation önce yamanın kaydedildiği ofseti dener; bulamazsa çevresindeki sınırlı bir pencerede bayt/çapa desenini arar. Böylece farklı bir yazılım sürümünde adres kaysa bile yama taşınabilir.
  • Apply, seçili operasyonların çözülen yamalarını ROM'a tek bir geri-alma adımı olarak uygular. Doğrulanmamış bir operasyon seçiliyse onay diyaloğu bunu ayrıca vurgular.
  • Uygulamadan sonra uygulama checksum'ı otomatik kontrol eder: geçerliyse bilgi verir, geçersizse Proje ▸ Correct Checksum… önerir; aile tanımı yoksa doğrulanamadı uyarısı çıkar (bkz. Doğrulama).

⚠️ Operasyon kataloğu doğrulanmamış olabilir (verified: false). Her operasyonu kendi ECU/yazılım sürümünüze ve A2L/DAMOS dosyanıza göre doğrulamadan uygulamayın.

Change Recorder paneli

Görünüm ▸ Change Recorder (varsayılan kapalı) ROM düzenlemelerini canlı olarak kaydeden bir panel açar:

  • Start recording / Stop recording kaydı başlatır/durdurur; durum satırı kaç değişikliğin yakalandığını gösterir.
  • Liste her düzenlemeyi ofset, uzunluk ve önce → sonra baytlarıyla gösterir; satır ipucunda tam bayt dizisi bulunur.
  • Copy kaydı Lua betiği olarak panoya kopyalar; Create script… aynı içeriği Lua veya .mtrpatch metni olarak dosyaya yazar (Proje menüsündeki Create script from changes… ile aynı işlem).
  • Clear kaydı temizler.

Güvenli düzenleme alışkanlığı

  1. Değişiklikten önce Proje ▸ Sürüm Anlık Görüntüsü alın.
  2. Küçük bir bölgeyle başlayın, sonucu ölçümle doğrulayın.
  3. İşi bitirdiğinizde .mtrpatch olarak paketleyin — sonradan "hangi ROM'a uygulanmıştı" sorusu kendiliğinden cevaplanır.