Skip to content

OST版 2026091707

Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 17 Sep 09:56
· 38 commits to feat/vertical-1.6.0based since this release

この版には不具合があります。 商業書籍で挿絵が枠だけになり、本棚の縮小表紙も出ません。OST版 2026091801(20260918) をお使いください。

本家1.6.0ベースの新ツリー、3つ目の配布版です。前版 OST版 2026090909 からの変更は、ページ送りと挿絵の展開の高速化、描画中のボタン操作の取りこぼしの解消、縦書きの約物(括弧・行頭記号)の位置の修正、SVGで包まれた表紙への対応、横書きの日本語で長い段落を開くと落ちる不具合の修正、本家からの修正の取り込みです。

初回オープン時に、各書籍のページ配置と本の情報(表紙を含む)の作り直しが走ります。 ページ配置の保存形式(48→54)と本の情報の保存形式(11→12)を上げているためで、本の量によっては最初の一覧表示と各本の初回オープンに時間がかかります。

フォント配布物について

フォントは前版から変わっていません。OST版 2026090909 の fonts-202609080.zip をそのまま使ってください(fonts-202608240.zip を入れてある microSD もそのままで動きます)。

速くなったもの

  • ページ送り: 本家 SDK の更新(X3 の余計な電源投入を止める)で、階調ありのページ送りが 3.8 秒 → 1.6 秒
  • 遅いページの表示: 字形をその場で読む置き場を 8 → 48 に広げました。階調表示は同じページを短冊ごとに描き直すため、8 では二十数字が毎回押し出し合って SD から読み直していました。遅いページで 15.3 秒 → 4.9 秒
  • 挿絵の初回展開: 保管層(SdFat)が ESP32 で SPI を 1 バイトずつ転送していたのをまとめ転送にしました。挿絵 1 枚 16 秒 → 8 秒。この変更は本家にも取り込まれています(crosspoint-reader#3501)
  • 描画中のボタン: 描画中も別の系でボタンを読み取って保持し、階調の描き分けは押されたら打ち切ります。「効かない時間」が「反応が遅れる時間」に変わります。待ち表示(Indexing)は 1〜3 秒の章の組み立てでも出します
  • 章の境目: 前版の先組み(待機中に次の章を組む)に加え、字形の一時記憶を章ぶんでなくページぶんにしました。目次から章を開いた直後に 19〜21 秒ボタンが効かなかった件の修正です

縦書きの表示の修正

  • 括弧類の二分アキ: 「『【( などの始め括弧・」』】) などの終め括弧を半角幅で詰めます(JLREQ 3.1.1)。括弧の前後が空いて見えていた件の修正です
  • 回された約物の位置: 横倒しにする約物(ー、〜、( )など)を行の箱ではなく字面の中心で列の軸に合わせます。「」が列の中心から外れて見えていた件の修正です
  • 箇条書きの行頭記号: 横組み用の • ではなく全角の・(U+30FB)を使います
  • 列送り: フォント内部の行送りではなく全角の幅×1.5 から求めます。書体を変えると同じ設定でも 1 ページの文字数が変わっていた件(BIZ 11 列/Noto 7 列)の修正です
  • 一番右の列のルビ: 画面端で切れないよう、画面余白で足りない分だけ確保します
  • 外字画像: 幅が列の間隔以内・高さが列の半分以内の画像は前後の字と同じ列の同じ位置に入り、ルビも付きます。それより大きいものは従来どおり独立した列です
  • 章内リンクの飛び先: その要素の行が実際に載ったページを指します(段落の 1 行目が次ページへ送られる場合に 1 つ手前を指していました)
  • 語数の上限で分割された長い段落の続きに、一字下げを再び入れないようにしました

表紙

  • SVG で包まれた表紙(cover-image が <svg><image xlink:href="cover.jpg"/></svg> を指す本)に対応しました。手元の商業書籍 2,256 冊中 56 冊が該当します。本家にも PR crosspoint-reader#3539 として提出中です
  • 本棚の縮小表紙が作れなかったとき、その本を「表紙なし」と永久に記録して二度と試さない作りを改め、次の機会に作り直します。読書から戻った直後は空きメモリが細かく分かれていて表紙の取り出し(32KB の連続領域)に失敗しやすかったためです

直したもの

  • 横書きの日本語で長い段落(2,500 バイト程度)を開くと落ちる: 横書きは空白の無い段落を 1 語として受け、字境を探す前処理が全文字ぶんの記録を一塊で確保していました(本家由来)。1 回の走査に直し、それも置けなければ分割を諦めて落ちない経路へ回します。縦書きは別経路で影響ありません
  • 本棚に戻っても読書中の字形の保持を持ち続けていた: 18pt の日本語書体では 1 ページぶんが約 35KB あり、本棚が空き 20KB で動いていました。本棚に入るとき手放すようにしました(一覧画面と同じ扱い)
  • 配置に使うメモリが足りないときは落とさず、その章の組み立てを失敗させて作り直しに回します
  • 1 行・1 列を作る前に必要な大きさの領域を試しに取り、取れなければそのページを諦めて報告します(従来は確保に失敗すると firmware ごと停止)
  • 字形の先読みの取り分を、一時記憶を保持する床と同じ値にしました。字の大きいフォントに変えると 1 ページ 7.8 秒+中断になっていた件の修正です
  • 小さい外字画像(300 バイト程度)が RAM に載らず毎回 SD から読んでいた件、挿絵のログが診断の記録を潰していた件

本家から取り込んだもの

crosspoint-reader#3439(X3 の階調の安定化)、crosspoint-reader#3463(短い押下の取りこぼし)、crosspoint-reader#3478(階調の判定の統合)、crosspoint-reader#3390(hidden 属性の要素を出さない)、crosspoint-reader#3111・crosspoint-reader#3493・crosspoint-reader#2560・crosspoint-reader#3353・crosspoint-reader#3389、crosspoint-reader#2925(輝度と色を別々の走査に分けた段階表示 JPEG が真っ白になる)、crosspoint-reader#3581(合字表を解放したあとの参照)。SDK は fde240fa。

既知の制限

  • 縦書きの本で、扉・奥付などの横組み部分も縦のまま表示します
  • 縦書きの text-align は列の位置を変えません(縦書きではこれが正しい扱いです)
  • 文中の font-size 指定は無視されます
  • 句読点(、。)は全角のまま置きます(二分アキの対象は括弧類のみ)
  • 挿絵が多い章の初回表示は、その章に入る前に 1.5 秒以上待っていれば先組みで短くなりますが、待たずに入ると 8〜10 秒かかります
  • 横書きで欧文の書体(Literata など)を選ぶと、日本語の本文はその書体に無い字が欠けます。日本語の本は日本語の書体で読んでください
  • 蔵書 4,096 冊の上限(本家 1.6.5rc の蔵書表示)はこの版にはありません。この版の書棚は Browse Files(フォルダ単位)と最近の本(10 冊)です

実機確認

縦書きテスト書 vertical-test-suite.epub、縦書き挿絵テスト書 vertical-image-test.epub、寸法テスト書 image-size-test.epub、新しく作った画像形式テスト書 image-format-test.epub(JPEG 基準・段階表示、PNG、GIF、SVG 包み)、横書き退行テスト書 horizontal-regression-test.epub(禁則・圏点・ルビ・挿絵・箇条書き・約物・異体字選択子・装飾・表組み・和欧混在・長い段落の 13 章)、SVG 表紙テスト書 cover-svg-test.epub、商業書籍で確認しました。テスト書はリポジトリの test/epubs-ja/ にあります。

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026090909 の fonts-202609080.zip の中身を展開して、microSDにfontsフォルダごとコピー(fonts-202608240.zip を入れてある場合はそのままで可)
  3. crosspoint-OST-2026091707.bin を microSDにコピー
  4. 万が一の復旧用に https://crosspointreader.com/unlock から update.bin をダウンロードして microSDにコピー
  5. XTEINK X3をsleep状態にしてからmicroSD交換
  6. X3の左側面のボタンと、上側右の電源ボタンを長押しして、「BOOTING」表示になったら離す
  7. OST~.binを選択して、firmwareを書き換える
  8. 起動後、[Settings]-[Text Settings]にて必要な設定
      [Fonts]は「BIZUDGothic」「BIZUDMincho」「NotoSansJP」のどれかを選択 (私はNotoSansJP)
      [Size]は 見やすいサイズを選択 (私は18pt)
      [Layout]は「Extra Paragraph Spacing」は「ON」
      [Style]は基本は「Embedded Style」と「Text Anti-Aliasing」は両方「ON」
       EPUB読み込みでクラッシュする場合、「Embedded Style」を「OFF」にする
       文字の描画が遅いと思ったら「Text Anti-Aliasing」を「OFF」にする