FoxCouncil / FoxCouncil/NAPLPS
Billboard mode: numerically sequenced NAPLPS file sets
- Dominant language
- C#
- Stars
- 4
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
A billboard is a set of NAPLPS frames stored under numerically sequenced file names and presented in order. Personality Plus III (Microstar 2.17) implements it and ships one: `NAPLPS.000` through `NAPLPS.011`.
From the PP3 documentation:
> The 'Billboard' mode is prompted if the source file name ends in digits. A rotating billboard is a set of numerically sequenced file names.
> If the file does end in numerics, the repeat sequences are Ctrl-PgUp and PgUp. Ctrl-PgUp will decrement the file name then repeat the display request. PgUp will increment the file name then repeat the display request.
The user gives the first file, the last sequence number, and a pause interval; frames advance automatically until an open fails. Manual navigation steps the trailing digits in either direction. Capture works the same way in reverse, incrementing trailing digits per frame.
Two details worth pinning down. The trigger is trailing digits in the name, not a fixed extension — `NAPLPS.000` qualifies because the extension happens to be numeric. And numbering starts at zero.
Each part is a self-contained frame, not a slice of one stream. Every file in the PP3 set opens with its own presentation-mode switch and reset (`1B 31 18 1B 22 46 ...`) and ends with `1A`. Decode each independently and present in order; do not concatenate and decode once.
SHOWPLP 2.05 (Microstar) expresses the same intent as an explicit ordered playlist rather than a numeric scan: `SHOWPLP T0 Pn In Ffile1 Ffile2 Ffile3 K Pa`, plus a directory browse mode and a script file of commands.
We load exactly one file. `NaplpsFormat.FromFile` takes a single path and everything above it assumes one file per drawing.
`Telidraw/ViewModels/MainWindowViewModel.cs:647` — the open picker filters `*.nap`/`*.naplps`, so a `.000` only opens through "All Files".
`Telidraw/Program.cs:513` — batch export hard-codes `Directory.EnumerateFiles(inputDir, "*.nap", SearchOption.AllDirectories)` and skips everything else.
Wanted: hand it any member of a set, discover the siblings by trailing digits, order them numerically, and present them as one navigable show with optional timed advance. This is not the View → Sequence pane, which is the per-command list inside a single file (#42).
Open questions. Does a gap in the numbering end the set or get skipped? PP3 runs until an open fails, which argues for stopping. Do `info`, `export` and `decompile` operate on the whole set when handed one member? Does export grow a billboard mode that reuses the existing APNG frame path for timed advance?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with NaplpsFormat.FromFile, then inspect Telidraw/ViewModels/MainWindowViewModel.cs:647 and Telidraw/Program.cs:513 to trace file opening and batch discovery. Define the set boundary and gap behavior before implementing sibling discovery, numeric ordering, independent frame decoding, navigation, and optional timed advance; done includes deciding how info, export, and decompile treat a set.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- cli, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100