Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Pin the named-but-unassigned StrokeConfig scalars to byte offsets

Aperta
#71 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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

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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di philips/supernote-typescript

Tutte le issue di philips/supernote-typescript

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.