Pin the named-but-unassigned StrokeConfig scalars to byte offsets
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- cpp, typescript
- Ambito
- reverse-engineering
Direzione di ricerca
Start with Part 1.4 of plans/vector-format-spec.md and use its extraction recipe to inspect the flutter_note_lib.dll binary. Trace logTrails field accesses in a disassembler, using the named log strings as anchors, and compare them with the StrokeConfig parse path in SnProcess/SnFileProcess/sndatafile.cpp. Done means the six named scalars are mapped to offsets in the StrokeConfig table.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Split out from #69 (Part 1.4 of plans/vector-format-spec.md).
logTrails in flutter_note_lib.dll gives Ratta's own name for every field in the stroke record, but it prints the fixed-size scalars in an order that is not the struct order (they appear reversed in .rdata, and the log function is free to print in any order anyway). So we gained the names without gaining the offsets.
Named but unplaced
flagSpecial, preNum, fontWidth, flagPenUp, trailNum, walcomEmrType
Slots they have to fill
From the StrokeConfig table, the offsets that read constant across every fixture and are still labelled unk_*:
| Offset | Current label | Observed |
|---|---|---|
| 16 | unk_1 |
0 everywhere |
| 24 | unk_2 |
always u32::MAX |
| 32 | unk_3 |
0 everywhere |
| 36 | unk_4 |
0 everywhere |
| 40 | unk_5 |
always 5000 |
| 124 | unk_6 |
26 everywhere |
One placement is already strongly suggested: fontWidth at 16, sitting immediately before the confirmed font_height at 20.
Why it matters
Mostly as an enabler for #70 (erase-vs-select discriminator) and #72 (m_trailStatus codes) — these scalars are the main remaining candidates for carrying the erase/select distinction. On their own they're low-stakes; nothing in the current renderer needs them.
Approach
Values are constant across our whole fixture set, so differential fixtures alone won't separate them — this likely needs the binary. logTrails reads the struct in memory, so following its field accesses in a disassembler gives the offsets directly, and the log strings are ready-made anchors. SnProcess/SnFileProcess/sndatafile.cpp is the parse side.
Extraction recipe is in Part 1.4 of the spec (Inno Setup installer, plain LZMA1 payload, works on Linux).
- Lingua principale
- TypeScript
- Stelle
- 40
- Fork
- 9
- Merge medio
- 8g 1h
- PR unite (30g)
- 2
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di philips/supernote-typescript
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
philips/supernote-typescript#122 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
philips/supernote-typescript#105 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
philips/supernote-typescript#100 ·
-
Add automated visual diff for vectorInk PDF outputForse già presa @philips-clanker l’ha presa 51 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
Characterize the stroke-record tail (unk_17, unk_22, Section3/Section4) and its four length variantsAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Tutte le issue di philips/supernote-typescript
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
MystenLabs/MemWal#1163 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Mondriaan
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
knaw-huc/textannoviz#709 ·
I maintainer di solito rispondono entro 1 giorno
-
billion-context-pi
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
ranxianglei/billion-context#2521 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Add: YRF Music NepalApertastreams:add
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100