Skip to content

OST版 2026093001-diag(X3/X4 Pro)

Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 29 Sep 04:08
· 78 commits to vertical-1.6.5 since this release

本家 1.6.5 をベースに作り直した新しい系統の最初の pre-release です。 X3 向けと X4 Pro 向けの 2 本を添付しています(2026/09/30 に、X4 Pro の時計画面をホームキーで終了できるようにした版へ 2 本とも差し替えました)。 動作確認を続けるため、診断版(DIAG ビルド)のまま公開します。これまでの pre-release(OST版 2026091808、テクニカルプレビュー 2026092204-diag)は本家 1.6.0 ベースの旧系統です。

OST版の特徴について

本家 1.6.5(2026/09/27)をベースに下記の機能を搭載しました。

縦書き(当版の中心)

  • 縦書きの EPUB を縦に組んで表示します。
    -- 文字の向きは Unicode の規則(UAX#50)に従います。
    -- ルビ、傍線、圏点、縦中横、欧文の横倒し、約物の二分詰めに対応しています。
  • 縦書きの本では、ページ送りのボタンが逆になります(左で進み、右で戻る)。
  • 縦書きの中でも次のものが使えます。
    -- 挿絵:列の流れの中に置き、小さい画像は1字大の外字として本文に入れます。
    -- 字間の設定(本家 crosspoint-reader#3528 の字間を、縦の字送りにも効かせています)。
    -- 脚注・リンクの一覧から選んで飛ぶこと。

組版

  • 禁則処理(行頭に「、。」」ー 々」などを置かない、行末に「「」を置かない)
    -- 本家に PR crosspoint-reader#3609 として出していますが、まだ併合されていません。
  • 異体字選択子(IVS)を読み飛ばすので、字の後ろに四角が出ません。
  • CSS の max-width/max-height を挿絵の大きさに効かせます。
  • 本家にある「空きが 48KB 未満なら CSS を無視する」制限を外しています。
    -- 日本語商業EPUBでCSSを無視をされるとレイアウトが壊滅的となるため

書体

  • 選んでいる書体を内蔵 flash に複製し、SD ではなく flash から字を読む設定(Font Copy in Flash)。
  • 16pt の書体を 9/8 倍して 18pt として使う仕組み(flash に 18pt が入りきらないため)。
  • 日本語書体の配布 zip(fonts-YYYYMMDDn.zip)。これは firmware の外で配っています。

画面・操作

  • 時計モード(Home のメニュー「Start clock mode」)
    -- 時計が固まったら 30 秒で自動的に再起動します。
    -- X3ではBackキー、X4 Pro ではホームキーで終了できます。
  • Library を本の読み(file-as)の五十音順に並べ、行ごとに見出しを付けます(本家 PR crosspoint-reader#3651、未併合)。
  • 表紙が SVG の包みになっている本でも、中の画像を表紙として表示します(本家 PR crosspoint-reader#3539、未併合)。

見えにくい改良(速さ・落ちにくさ)

  • 章の組み立て中に挿絵を先に展開しておき、ページを描くときの空き不足で画像が出ない件を防ぎます(JPEG・PNG とも)。
  • このうち画像の大きさを読む部分は、本家に PR crosspoint-reader#3802 として出しています。
  • 字形の置き場を 4KB ずつに分けて確保し、空きが足りないときは置ける字数に縮めます(漢字の多いページが 16 秒かかっていた件の対策)。
  • 章の組み立ての間は、字形の画像を読まずに字の幅だけを読みます(組み立て 20 秒 → 12.6 秒)。
  • その章で使う CSS の規則だけを読み込みます(書式の表 32KB → 2KB)。
    -- 日本語商業EPUBが使う電書協ガイドのCSSでは約32KBあるが、書籍内では利用されない記述が大半である
  • 設定項目の一覧を使うときだけ作ります(約 11KB を空きに戻す)。
  • 組み立て中にメニューを開くと、いったん組み立てを止めて落ちないようにします。
  • 長い段落の字下げや余白、章内の飛び先ページのずれを直しています。

X4 Pro 向けについて

crosspoint-OST-2026093001-x4pro-diag.bin は Xteink X4 Pro 向けです(X3 向けの crosspoint-OST-2026093001-diag.bin とは中身の機能は同じで、作った機種だけが違います。X3 に書き込まないでください)。

  • 時計画面はホームキーで終了します(X4 Pro には Back ボタンが無いため。タップでも長押しでも終了し、ダブルタップの前面ライト切り替えは時計画面のまま使えます)

  • X4 Pro は PSRAM を持ち、内部メモリの空きも読書中に 130KB 以上あるため、X3 で問題になっていたメモリ不足は起きにくい構成です

  • 画面の横の画素が X3 より少ないため、同じ字の大きさでは縦書きの 1 ページの列が 1 つ少なくなります(18pt で X3 は 9 列、X4 Pro は 8 列)

  • Font Copy in Flash は X4 Pro では効果が小さく(SD カードの読み込みが速いため)、On でも Off でも使い勝手はほぼ同じです。On にすると章を開くときが少し速くなり、firmware 書き換え後の最初の起動が約 65 秒長くなります

  • 書き込み手順は下の「使うための手順」と同じく microSD 経由(Settings の SD Firmware Update)で行えます。X4 Pro は USB 接続でも書き込めます

  • 動作確認は起動・本棚・設定・縦書きの本(挿絵入り)のページ送りまで。タッチ操作・前面ライト・USB ファイル転送は当版の画面ではまだ十分に試していません

診断版であることの注意

microSD のルートディレクトリに、動作記録のファイルが自動的に書き出されます。 通常版には無い動きです。

ファイル 内容
input-diag.txt 起動からの動作記録(ボタン読み取り、描画時間、ヒープ、書体の読み元など)。5 秒ごとに書き換わる
input-diag.prev.txt 前回起動時の input-diag.txt
input-diag-log.txt 極端に遅い描画や章の組み立て失敗があったときだけ、その直前のログ
open-heap.txt 本を開く各段階の空きメモリ
image-diag.txt 表紙・挿絵の展開記録
heap-map*.txt、heap-low*.txt 空きメモリの配置と、空きが少なくなった瞬間の記録

いずれも消して構いません(次の起動でまた作られます)。不具合報告に添えていただけると原因の特定に役立ちます。crash_report.txt は通常版でも落ちたときに書かれる本家由来のファイルです。

Font Copy in Flash について

  • ESP32にある内蔵flash領域にフォントを書き込むと早いことを活用しています
  • On にすると、選択中の書体を内蔵 flash の firmware 書き換え用に空けてある側(約 6.5MB)に複製し、そこから読みます。約 2 分かかり、その間は電源を切らないでください
  • firmware を書き換えると複製は消えます。次の起動時に設定が On なら、自動で複製を作り直してから Home 画面に行きます(この版に書き換えた直後の起動も約 2 分かかります)
  • 電池残量が 20% 未満(USB 未接続)のときは複製を始めず、設定を Off に戻します
  • この領域を使うため、firmware を書き換える前の版に戻す手段は失われます。復旧は下の手順 4 の update.bin で行ってください
  • 効いているかは input-diag.txt の font= 行で分かります(src=flash なら flash から読んでいる)
  • フォントサイズによってflashに書き込めない場合があります

旧系統(2026091808 など)から、まだ載せ直していないもの

  • 読書中の待機時間に次の章を先に組み立てる仕組み。この版では章をまたぐと、その場で組み立てが始まります
  • 本の CSS の保存が途中で切れている本(ひな形 CSS が非常に大きい本)で、組み立て時に CSS を読み直す仕組み。そうした本では一部の書式が抜けることがあります

既知の制限

  • 挿絵の多い章を初めて開くときは 9 秒前後かかります(挿絵を表示用の形に変換するため。2 回目からは速い)
  • 挿絵のページでは残像を消すための全面書き換えに約 2.8 秒かかります
  • 縦書きの本で、扉・奥付などの横組み部分も縦のまま表示します
  • 文中の font-size 指定は無視されます
  • 句読点(、。)は全角のまま置きます(二分アキの対象は括弧類のみ)
  • 横書きで欧文の書体を選ぶと、日本語の本文はその書体に無い字が欠けます

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026090909 の fonts-202609080.zip の中身を展開して、microSDにfontsフォルダごとコピー(既に入れてある場合はそのままで可)
  3. crosspoint-OST-2026093001-diag.bin(X3)または crosspoint-OST-2026093001-x4pro-diag.bin(X4 Pro)を microSDにコピー
  4. 万が一の復旧用に https://crosspointreader.com/unlock から update.bin をダウンロードして microSDにコピー
  5. XTEINK X3/X4 ProにmicroSDをさす
  6. X3ではm左側面のボタンと、上側右の電源ボタンを長押しして、「BOOTING」表示になったら離す。X4 Pro では通常どおり起動して [Settings] の SD Firmware Update を選ぶ
  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」にする
       「Font Copy in Flash」を「ON」にすると、X3では字形を内蔵 flash から読むようになり速くなります(X4 Proでは効果が薄い)