Skip to content

Casper v0.1.9

Pre-release
Pre-release

Choose a tag to compare

@tweakerinc tweakerinc released this 22 Aug 06:22

Casper 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>/package tree. 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 s of 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 of abort().
  • 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

  1. Flash Casper-v0.1.9.bin (or the matching OTA asset for tag v0.1.9).
  2. X4: after flashing, use Reset → Power so the new image actually boots (unplug/replug alone is often not enough).
  3. First boot may migrate font family (Lexend → Literata) and slim built-in font settings.
  4. 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)

  1. Download Casper-v0.1.9.bin from the release.
  2. Connect your X3 or X4 via USB-C and wake/unlock it.
  3. Open https://crosspointreader.com/#flash-tools (Chrome / Edge / Firefox on desktop).
  4. Select Xteink X3 or Xteink X4.
  5. Click Custom .bin and choose Casper-v0.1.9.bin.
  6. 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.