Casper v0.1.9
Pre-releaseCasper v0.1.9
Product: Casper
Based on: CrossPoint Reader 1.5 & CrossInk
Devices: Xteink X3 & X4 (one binary for both)
Highlights
v0.1.8 shipped Rivulet. v0.1.9 is the reading-feel release on top of it: pages look the way the book intended.
What’s new at a glance:
- Literata replaces Lexend Deca as the built-in reader face (Sourcerer stays the UI / alternate serif) This is the closest to Bookerly I could get.
- Mild ink weight when Text Anti-Aliasing is off — closer to print, without fake-bold capitals
- More of the page is reading: tighter reader chrome (~1–2 extra lines)
- Reader Controls in one place: per-side long-press, Menu long/double-press, Flip Orientation
- Dark Mode (whole UI or reader-only)
- CJK line breaking, real tables, super/sub/underline/strike, scene breaks as rules (not
~) - Page Back across chapters, Quick Resume that keeps your place, Manage Fonts that no longer dumps you at page 1
- Snappier Home: first paint is FAST, clock greys wait until you sit still, light menus no longer pay a full scrub
- Faster warm book open (no leftover folder-migration probe)
What’s New
Fonts
- Literata — default reader face (replaces Lexend / Bitter)
- Sourcerer — UI chrome and the alternate reader serif (the same Source Serif 4 family; the on-device name is now Sourcerer)
- Mild BW glyph weight when Text Anti-Aliasing is Off — slightly heavier body ink so AA-off pages do not look spindly. Capitals are not forced bold.
- Manage Fonts preview uses that same Mild raster for built-in faces. SD fonts stay Normal. Bold / Italic are not shown as a fake “style preview.”
- Text Anti-Aliasing remains a simple on/off in Manage Fonts → Style. There is still no Font Darkness slider.
Existing size settings migrate as before. Changing family or size still invalidates section.bin — expect one rebuild per spine after a font swap.
More text on the page
- Adaptive reader bottom reserve and a tighter hint / chrome clearance — typically ~1.7 extra lines of body vs v0.1.8, depending on orientation and chrome slots.
- Sleep moon gives immediate feedback when you power-sleep, so the page does not sit there looking dead while the device goes down.
Reader Controls
Shortcuts that used to live under Controls / Long-Press Power now sit together under Settings → Reader → Reader Controls
| Control | What it does |
|---|---|
| Long-Press Left / Right (X3) or Up / Down (X4) | Own shortcut each — Dictionary, Bookmark, Clipping Tool, Chapter Skip, Change / Flip Orientation, Dark Mode, Sleep, … |
| Side Button Layout | Prev/Next, Next/Prev, or Disabled. Does not remap the front page-turn keys. |
| Long-Press Menu | Confirm hold. Fires on hold, not on release. |
| Double-Press Menu | Two quick Confirm taps. |
| Flip Orientation | Opt-in long-press action (not a default). Pairs with a “flip with” orientation picker. |
Dark Mode
- Settings → Display → Dark Mode — inverts the whole UI by default.
- Nested Reader Only (shown when Dark Mode is On) Dark Mode when reading books but leaves Home / menus light.
- Also available as a Reader Controls long-press action.
Page turns & place
v0.1.8 could lose the chapter, reset to the start after Manage Fonts, or wake from Quick Resume on chapter page 1. v0.1.9:
- Page Back at the start of a chapter lands on the previous chapter’s last page (and keeps working on a partially laid-out chapter).
- In-chapter paging no longer hops spines by accident.
- TOC / chapter skip moves one chapter, not an extra step.
- If Anti-Aliasing cannot allocate, the turn still goes through (BW). The page is not swallowed.
- RAM ahead-warm for nearby pages is back; idle page-map is throttled (at most ~1 page/sec) and never runs before first ink.
Typography (Rivulet)
Rivulet is the only EPUB reader in this tree.
- CJK books wrap properly (they were effectively unreadable).
- Tables render as cells, not run-on prose.
- Superscript, subscript, underline, strikethrough work again.
- Scene / thematic breaks draw as rules, not a permanent
~. - Wrap spaces no longer create mid-line indents or last-line justify gaps.
- Bold / italic survive deep nesting and SD fonts.
- Publisher CSS is still optional (Book’s Style vs a forced alignment).
Images
Settings → Reader → Images (unchanged options, now honored reliably on the Rivulet path):
| Mode | Result |
|---|---|
| Display | Draw the image |
| Placeholder | Keep the hole / alt, skip decode |
| Suppress | Omit the image entirely |
Anti-Aliasing is text-only — it does not re-decode images under the BW snapshot.
Opening a book
- Corner Opening status while the book comes up.
- Warm opens no longer probe an abandoned
book_<id>/packagetree. Cache stays the CrossPoint / CrossInk layout:/.crosspoint/epub_<hash>/. On a cache hit, directory creates are skipped. - First-ink work (page-map, next-chapter prefix) waits until the page is on glass, so open no longer freezes behind a silent indexer.
- Measured waste on v0.1.8-era warm opens (
import≈2.5 s+openBook≈0.4 sof mkdir) is gone. Panel time still dominates after that.
Home (especially Penumbra / X3)
- Cold / first Home: FAST so the shell appears over splash (~1 s), then an idle HALF. Previous frame is splash, not a book page — that is the one case FAST-then-HALF is safe.
- Back from a book: still a HALF first. FAST-then-HALF after a dense page ghosts; that path was not brought back.
- Back from a light UI child (book action sheet, settings, menus): FAST only — no 3 s HALF + clock AA.
- Back from the long-press book menu no longer re-stats every recent from SD.
- Clock AA (X3 hero clock) is a full-frame grey pass. It now waits ~400 ms of idle so Read can cancel it. Minute ticks are a small BW update; digits that did not change keep the last AA raster.
- Opening a book no longer races that clock pass (that race could hang the panel ~30 s and leave the first page ghosted black).
- Penumbra stats pages sit clear of the page dots on X3.
Stability
- Book-open and image-decode allocations fail soft (
nothrow) instead ofabort(). - A corrupt cache file no longer reboots the device.
- The serial command reader no longer stalls the input loop.
- Progress / stats files are not rewritten when nothing changed.
Performance / UX Summary
| Action | v0.1.8 (typical) | v0.1.9 | Notes |
|---|---|---|---|
| Warm book open | ~1.5–1.7 s, plus ~3 s of leftover folder probe on some units | Probe gone; mkdir skipped on cache hit | First ink still limited by the X3 panel |
| Warm forward turn | ~580 ms | Same order | ~430 ms is the X3 FAST floor |
| Cold / first Home | 3–4 s HALF while splash sat on glass | FAST first (~1 s), HALF after you sit | Clock AA only if you stay idle |
| Back from a book | ~1–4 s HALF | HALF still first (intentional) | Needed to lift a dense page |
| Back from Settings / book menu | Full HALF + clock AA (~3–6 s) | FAST shell; clock AA deferred | SD recents not reloaded |
| Minute on Penumbra clock | Full-frame grey (~0.9–1.4 s) | BW window | Unchanged digits stay AA’d |
The panel may still be settling after the image looks finished (Wait complete: X3_DRF).
How to Install
- Flash
Casper-v0.1.9.bin(or the matching OTA asset for tagv0.1.9). - X4: after flashing, use Reset → Power so the new image actually boots (unplug/replug alone is often not enough).
- First boot may migrate font family (Lexend → Literata) and slim built-in font settings.
- After changing fonts or sizes, existing section caches are invalidated — expect a one-time rebuild the first time you open each section.
CrossPoint web flasher (recommended)
- Download Casper-v0.1.9.bin from the release.
- Connect your X3 or X4 via USB-C and wake/unlock it.
- Open https://crosspointreader.com/#flash-tools (Chrome / Edge / Firefox on desktop).
- Select Xteink X3 or Xteink X4.
- Click Custom .bin and choose
Casper-v0.1.9.bin. - Flash, then reset/wake the device if prompted.
SD card contents are left alone. Book cache stays under /.crosspoint/epub_<hash>/ — there is no migration to a book_<id> layout.
SD firmware update
Copy Casper-v0.1.9.bin to the root of the SD card → Settings → System → SD Firmware Update.