Skip to content

Releases: osakanataro/crosspoint-reader-mod

OST版 2026101308-diag(X3/X4 Pro)

Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 13 Oct 13:35

本家 1.6.5 ベースの系統の 2 本目の pre-release です。 X3 向けと X4 Pro 向けの 2 本を添付しています。動作確認を続けるため、診断版(DIAG ビルド)のまま公開します。前回の pre-release は OST版 2026093001-diag です。

前回(2026093001-diag)からの主な変更

落ちにくさ・メモリ

  • 読書中に SD 書体の作業用の保存が空きメモリを細切れにしないようにしました(本家 crosspoint-reader#3831)。X3 で長編を読み進めたとき、章の組み立て直後の空きの底が 11.9KB → 19.7KB、そのときに一続きで取れる最大の空きが 3KB → 14KB に増えました。
  • ツールバーを開くときのページの写し(X3 で約 52KB)が解放されずに残り、設定画面を開くところで落ちる件を直しました。写したあとの空きが足りなければ写しを取らないようにもしています。
  • CSS を解析し直すときも画面用の記憶を借りるようにし、本を開く途中の空きの落ち込みをなくしました(抹茶版 crosspoint-reader#336 にならったもの)。
  • 閉じた本が記憶を手放さない件(本家 crosspoint-reader#3830)、章が数千ある本で索引づくりが止まる件(本家 crosspoint-reader#3733)を直しました。
  • 空きが少ないときにツールバーを開いても、本の終わりで目次・進み具合を引いても落ちないようにしました(抹茶版・Yomuka版から)。

microSD への書き込みの安全性

  • ファイルを消す・短くする・伸ばすときの書き込みの順番を直しました。途中で電源が落ちても、ファイルシステムが壊れて別のファイルと中身を共有することがなくなります(X3 は眠ると電源が切れるため重要です)。

Web のファイル送受信(File Transfer)

  • X3 で File Manager の一覧がたびたび読み込めなかった件を直しました(アップロード用の作業領域をアップロードの最中だけ確保)。
  • 保存した Wi-Fi の暗証や OPDS・KOReader の認証情報のファイルを、同じ網のパソコンから取り出せないようにしました(本家 crosspoint-reader#3824 の判定を移植)。
  • WebDAV で取り出すと 1 バイトしか返らない件(本家 crosspoint-reader#3410)、アップロード中に Back で抜けられない件(本家 crosspoint-reader#3732)を直しました。

表示・組版

  • 縦書きの本で、区切り線(hr)と表の罫線がページ上端を横切る横線になっていた件を直しました。
  • SD の書体で字詰め(カーニング)と合字が途中で抜ける件を直しました(本家 crosspoint-reader#3838)。
  • 横書きで、くの字点(〳〵)の上下の半分が行の境目で分かれる件を直しました。
  • 本の中のリンクで飛んだあと、眠りや閉じ直しをまたいでも見ていたページで開くようにしました(本家 crosspoint-reader#3764)。
  • 起動画面・眠り画面のロゴを本としおりの形にし、名前を「CrossPoint OST」にしました。
  • 章の保存の版を上げたため、この版で初めて開く本は章を組み立て直します(自動)。

そのほか本家から

X4 Pro 向けについて

crosspoint-OST-2026101308-x4pro-diag.bin は Xteink X4 Pro 向けです(X3 向けの crosspoint-OST-2026101308-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 空きメモリの配置と、空きが少なくなった瞬間の記録
heap-web*.txt File Transfer 中の空きメモリの記録

いずれも消して構いません(次の起動でまた作られます)。不具合報告に添えていただけると原因の特定に役立ちます。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に書き込めない場合があります

既知の制限

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

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026090909 の fonts-202609080.zip の中身を展開して、microSDにfontsフォルダごとコピー(既に入れてある場合はそのままで可)
  3. crosspoint-OST-2026101308-diag.bin(X3)または crosspoint-OST-2026101308-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では効果が薄い)

OST版 2026093001-diag(X3/X4 Pro)

Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 29 Sep 04:08

本家 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では効果が薄い)

OST版 テクニカルプレビュー 2026092204-diag

Choose a tag to compare

@osakanataro osakanataro released this 22 Sep 15:13

テクニカルプレビューです。 これまでの pre-release(最新は OST版 2026091808)とは別系統で、新しい仕組みの動作確認を目的に、診断版(DIAG ビルド)のまま公開します。普段使いには 2026091808 を、この仕組みを試したい方はこちらをお使いください。

診断版であることの注意

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

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

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

新しい仕組み: SD 書体を本体の flash に複製して読む

日本語書体はサイズが大きく、これまでは字形を毎回 microSD から読んでいました。18pt では章によって 1 ページ分の字形がメモリに収まらず、ページ表示に数秒かかることがありました(既知の制限として掲げていたもの)。

この版では、X3 の内蔵 flash のうち firmware の書き換え用に空けてある側の領域(約 6.5MB)に、選択中の書体ファイルを複製して、そこから読むようにしました(crossmux版 PR crosspoint-reader#57 の方式が元です)。microSD より 1 回の読み出しがおよそ 20 分の 1 の時間で済みます。

  • Text Settings → Style → 「Font Copy in Flash」 を On にすると複製が始まります(進捗画面が出ます。約 2 分かかり、その間は電源を切らないでください)
  • On のまま書体や大きさを変えると、変えた直後に複製を作り直します
  • 18pt は 16pt の書体を 9/8 倍に拡大して表示します(NotoSansJP の 18pt は 6.5MB に入らないため。実機で見比べて本物の 18pt と区別がつかないと判断したもの)。BIZUDGothic/BIZUDMincho の 18pt は本物が入ります
  • 太字(Bold)の字形は複製に入りきらないので、従来どおり microSD から読みます
  • firmware を書き換えると複製は消えます(書き換え先が同じ領域のため)。次の起動時に設定が On なら、自動で複製を作り直してから Home 画面に行きます
  • 電池残量が 20% 未満(USB 未接続)のときは複製を始めず、設定を Off に戻します。残量を回復してから改めて On にしてください
  • 複製に失敗したときも設定を Off に戻し、理由を表示します。その場合は従来どおり microSD から読みます
  • この領域を使うため、firmware を書き換える前の版に戻す手段は失われます。復旧は下の手順 4 の update.bin で行ってください

効いているかは input-diag.txt の font= 行で分かります。src=flash なら flash から、src=sd なら microSD から読んでいます。

20260918-2 からのその他の変更

firmware の動作に関わる変更はこの仕組みだけです(それ以外は README の更新のみ)。

既知の制限

  • 縦書きの本で、扉・奥付などの横組み部分も縦のまま表示します
  • 縦書きの text-align は列の位置を変えません
  • 文中の font-size 指定は無視されます
  • 句読点(、。)は全角のまま置きます(二分アキの対象は括弧類のみ)
  • 横書きで欧文の書体を選ぶと、日本語の本文はその書体に無い字が欠けます
  • 章の組み立て中にメモリが尽きると「Index failed」になるか、まれに再起動します。開き直すと通ることが多いです

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026090909 の fonts-202609080.zip の中身を展開して、microSDにfontsフォルダごとコピー(既に入れてある場合はそのままで可)
  3. crosspoint-OST-2026092204-diag.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」にする
       [Style]の「Font Copy in Flash」を「ON」にすると、この版の新しい仕組みが有効になります

OST版 2026091808

OST版 2026091808 Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 18 Sep 06:50

OST版 2026091801(20260918) の差し替えです。 同日中の2回目の差し替えになります。前版で、商業書籍を15分ほど読んだあと章の境目で再起動する不具合が見つかったため、その修正と、横書きの禁則処理の拡充を入れました。前版をお使いの方はこちらへ更新してください。

初回オープン時に、各書籍のページ配置の作り直しが走ります。 横書きの行分割が変わったためページ配置の保存形式を上げています(54→55)。本の量によっては各本の初回オープンに時間がかかります。

フォント

前版から変わっていません。OST版 2026090909 の fonts-202609080.zip をそのまま使ってください。

直したもの(2026091801 からの差分)

  • 長く読んだあと、章の境目で再起動する
    章を組み立てるときに1字ずつ押し込む入れ物が、メモリ不足で伸ばせなくなると firmware ごと止まっていました。押し込む前に空きを確かめ、足りなければその章の組み立てを「Index failed」として失敗させ、次に開いたときに組み直します(落ちるより先に諦める)
  • 章の組み立て中の無駄なメモリ消費
    字数の多い章では送り幅の表(768字)が満杯になり、それ以降の字の幅を測るためだけに字形の本体を読み込んで約17KBを占めていました。幅だけを読む経路を作り、組み立て中はそちらを使います。実測で、組み立て中に確保できる最大の連続領域が 2KB → 13KB に増えました
  • 横書きの禁則処理
    横書きの行分割は括弧と句読点しか知らず、ー・々・‐・…・%などが行頭に、¥・№が行末に来ていました。JLREQ(W3C「日本語組版処理の要件」)3.1.7/3.1.8 の各類——ハイフン類・区切り約物・中点類・分離禁止文字・繰返し記号・長音記号・小書きの仮名・前置/後置省略記号——を付属書 A の文字表どおりに足しました。……――は同じ字が続く間は切りません。小書きの仮名は JLREQ 3.1.7 の本則どおり行頭禁則です
  • 縦書きで『「 のように始め括弧が続くと、外側の括弧が列末に残ることがあった件(戻しを1回から複数回に)

横書きの禁則処理は本家にも Pull Request として提出予定です。

20260909 からの変更(20260917/20260918 の内容、再掲)

既知の制限

  • 縦書きの本で、扉・奥付などの横組み部分も縦のまま表示します
  • 縦書きの text-align は列の位置を変えません
  • 文中の font-size 指定は無視されます
  • 句読点(、。)は全角のまま置きます(二分アキの対象は括弧類のみ)
  • 18pt の日本語書体では、章によって1ページ分の字形がメモリに収まらず、ページ表示に数秒かかることがあります(16pt 以下ではほぼ起きません)
  • 横書きで欧文の書体を選ぶと、日本語の本文はその書体に無い字が欠けます
  • <code> などの行内要素の前後で語が貼り合わされ、行が極端に広がることがあります(本家と同じ挙動)

実機確認

商業書籍(挿絵つき)で章の組み立てと15分以上の読書、horizontal-regression-test.epub 第1章で禁則処理、縦書きの本で退行の無いことを確認しました。テスト書はリポジトリの test/epubs-ja/ にあります。

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026090909 の fonts-202609080.zip の中身を展開して、microSDにfontsフォルダごとコピー(既に入れてある場合はそのままで可)
  3. crosspoint-OST-2026091808.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」にする

OST版 2026091801

OST版 2026091801 Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 17 Sep 15:19

この版には不具合があります。 商業書籍を長く読んだあと章の境目で再起動することがあります。OST版 2026091808(20260918-2) をお使いください。

OST版 2026091707(前日公開)の差し替えです。 商業書籍で挿絵が枠だけになる/本棚の縮小表紙が出ない不具合を直しました。前版をお使いの方はこちらへ更新してください。前版からの変更はこの3件だけで、他は同じです。

初回オープン時に、各書籍のページ配置と本の情報(表紙を含む)の作り直しが走ります。 20260909 から更新する場合のみです(20260917 から更新する場合は作り直しは起きません)。

フォント

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

直したもの(20260917 からの差分)

3件とも原因は同じで、空きメモリは足りているのに、まとまった領域が取れない状態でした。X3 は読書中にメモリが細かく分かれていき、空きが 50KB あっても連続した最大の空きは 20KB という状態が常態です。

  • 商業書籍の挿絵が枠だけで表示される
    挿絵を本から取り出すのに 8KB の連続領域が2つ必要でしたが、章を組み立てている最中の連続した最大の空きは 5KB でした。取り出せる大きさまで自動的に刻むようにしています。取り出しはSDカードの速度で決まるため、速度への影響はありません
  • 本棚(Continue Reading)の縮小表紙が出ない
    表紙を取り出すのに 32KB の連続領域が必要で、読書のあとの本棚では取れませんでした。画面描画用に確保してある領域を一時的に借りるようにしています
  • 表紙が一度出なかった本は、再起動しても二度と出ない
    作成に失敗すると「表紙なし」と記録していました。本当に表紙を持たない本だけを記録するようにし、メモリ不足で失敗した本は次に本棚を開いたときに作り直します

表紙の縮小処理そのものも、必要な領域を過大に見積もって断っていたのを実際の必要量に合わせました。

20260909 からの変更(20260917 の内容、再掲)

既知の制限

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

実機確認

商業書籍(挿絵つき・1440×2048 の口絵を含む)で、挿絵の表示と本棚の縮小表紙の生成を確認しました。連続した最大の空きが 19KB しかない状態でも表紙が作られています。テスト書は vertical-test-suite.epub、vertical-image-test.epub、image-size-test.epub、image-format-test.epub、horizontal-regression-test.epub、cover-svg-test.epub(リポジトリの test/epubs-ja/)。

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026090909 の fonts-202609080.zip の中身を展開して、microSDにfontsフォルダごとコピー(既に入れてある場合はそのままで可)
  3. crosspoint-OST-2026091801.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」にする

OST版 2026091707

OST版 2026091707 Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 17 Sep 09:56

この版には不具合があります。 商業書籍で挿絵が枠だけになり、本棚の縮小表紙も出ません。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」にする

OST版 2026090909

OST版 2026090909 Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 09 Sep 05:57

本家1.6.0ベースの新ツリー、2つ目の配布版です。前版 OST版 2026090611 からの変更は、縦書きの書式対応の拡充、章の境目の待ち時間の短縮、章を開いた直後にボタンが効かなくなる不具合の修正、フォント配布物への出典・ライセンス文書の同梱です。

初回オープン時に各書籍のページ配置の作り直しが走ります。 スタイルシートの保存形式を上げている(文字の向き指定を保存するため)ためで、本の量によっては最初の一覧表示と各本の初回オープンに時間がかかります。

フォント配布物について(fonts-202609080.zip)

今回から fonts-202609080.zip を添付します。フォント本体(.cpfont)は前版までの fonts-202608240.zip と1バイトも変わりません。追加したのは fonts/NOTICE.txt(元フォントの取得元・版・著作権表示・ライセンス・変換内容)と fonts/OFL-1.1.txt(SIL Open Font License 1.1 の本文)で、元フォント(BIZ UDGothic/UDMincho、Noto Sans CJK JP、後詰めの Noto Sans Math と Noto Sans)がすべて OFL 1.1 のため、変換物を配るときの表示義務に沿ったものです。すでに fonts-202608240.zip を入れてある microSD はそのままで動きます(入れ替え不要)。

縦書きの書式対応の拡充(2026-09-06)

商業EPUB 878冊(リフロー型)の書式の使われ方を数え直し、使用冊数の多いものから対応しました。

  • 禁則表の拡充: 二重引用符「〝〟」「“”」「‘’」、ハイフン類「‐」「〜」、中点「・」、「‥」「…」、繰返し記号「々」「ゝ」「ヽ」などを行頭・行末禁則に追加。〝が列末に、〟が列頭に残らなくなります
  • 文字の向きの明示指定: 電書協テンプレートの upright/sideways クラス(text-orientation、-epub-/-webkit- 接頭辞つき)と縦中横(text-combine-upright、-webkit-text-combine)に対応。指定された欧文字は正立して1マスに収まり、指定された全角記号は横倒し、3桁の数字や「EU」などは1マスに詰めます(1.5マスを超えるものは横倒しのまま)
  • 縦書きの字下げと天アキ: text-indent(正負。負の値は列の上端の余白でぶら下げ)、margin-top/padding-top を縦書きで効かせるようにしました。電書協テンプレートの字下げクラス(.vrtl .h-indent-1em のような二段の指定子)が読めるようになり、それに伴い二段の子孫指定子を持つスタイルシート全般が効くようになっています
  • 異体字選択子(IVS、U+E0100〜E01EF)を読み飛ばす: 「葛󠄀」のように IVS 付きの字の直後に四角が出なくなりました(VS1〜VS16 も同様)
  • 文中の font-size 指定(span)は今回も未対応です(同じ大きさで出ます。列やルビは乱れません)

章の境目の待ち時間の短縮(2026-09-09)

章をまたぐとき、次の章の配置を組み立ててから最初のページを出すため、商業書籍では7秒前後の待ちが出ていました。今回から、ページを表示して1.5秒以上何も押さないでいると、次の章の配置を少しずつ先に組み立てて保存します。章を進めたときは保存を読むだけになり、1秒前後で最初のページが出ます(待たずに連打で章をまたいだ場合は従来どおりの待ちです)。

先組みは、ボタンの読み取りを止めないよう1回の作業を25ms以内に区切り、ボタンが押されている間は休みます。空きメモリが少ないときは動きません。待っている間に画面が変わることはありません。

直したもの

  • 章を開いた直後、1ページ目が出たあと19〜21秒ボタンが効かない(目次から章を開いたとき、キャッシュ削除後の最初の開きなど)。章の組み立て直後のページ描画で、字形の一時記憶が章ぶんの大きさに膨らんで直後に捨てられ、淡い階調の描き分けが字形を1個ずつ SD から読み直していました。ページ分だけを作るようにし、キャッシュ削除後の最初の開きは6秒前後(うち組み立て1.2秒)になっています
  • 展開に失敗した挿絵が、その本を閉じるまで白い枠のままになる(本家 crosspoint-reader#3412 から該当部分を取り込み)。失敗の記録をそのページの描画の間だけにし、次にそのページを開いたとき読み解きをやり直します。1ページ戻って進めば絵が戻ります
  • 縦書きの text-align: center の段落で最初の列の末尾に空きが見える件は、列の最後のマスの余りで、不具合ではないことを確認しました

既知の制限

  • 縦書きの本で、扉・奥付などの横組み部分も縦のまま表示します
  • 縦書きの text-align は列の位置を変えません(縦書きではこれが正しい扱いです)
  • 文中の font-size 指定は無視されます
  • 挿絵が多い章の初回表示は、その章に入る前に1.5秒以上待っていれば先組みで短くなりますが、待たずに入ると従来どおり10〜17秒かかり、その間ボタンを受け付けません。挿絵1枚のページの表示は3秒前後です
  • 外字画像(1文字大の画像)は独立した1列を占めます。外字にルビは付きません
  • 読書のあとの一覧画面の描画が数秒かかることがあります

実機確認

縦書きテスト書 vertical-test-suite.epub は46章(テスト1〜22。18: 文字の向き、19: 字下げ・ぶら下げ、20: 文字の大きさ、21: 使用頻度の高い記号の向き・禁則・収録、22: 章の切り替えと先組み)、縦書き挿絵テスト書 vertical-image-test.epub は13章(13: 挿絵が多い章の展開の失敗と再挑戦)、寸法テスト書14サイズ、商業書籍1冊で、期待どおりの表示と、章の境目・ボタン応答の改善を確認しました。テスト書はリポジトリの test/epubs-ja/ にあります。

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. このリリースの fonts-202609080.zip の中身を展開して、microSDにfontsフォルダごとコピー(fonts-202608240.zip を入れてある場合はそのままで可)
  3. crosspoint-OST-2026090909.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」にする

OST版 2026090611

OST版 2026090611 Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 06 Sep 07:02

本家1.6.0(2026/09/05 正式リリース)をベースに作り直した最初の配布版です。前版2026090504までは本家1.6.0rc(8月18日)に、本家developの縦書き・描画に関わる修正だけを選んで足したものでしたが、今回は本家の正式版1.6.0から新しくブランチを切り、当版の機能(診断基盤・時計モード・フォントのメモリ管理・縦書き・挿絵)を段階ごとに移し直しました。移植は旧ツリーの完成形と1行ずつ照合して、抜けがないことを確認しています。

初回オープン時に各書籍のページ配置の作り直しが走ります。 章の保存形式とCSSの保存形式を上げているためで、本の量によっては最初の一覧表示と各本の初回オープンに時間がかかります。フォントは前版と同じ OST版 2026082405 の fonts-202608240.zip をそのまま使えます(SDフォントの定義は変えていません)。

本家1.6.0で入った主な変更(X3で関係するもの)

  • 言語別フォント(本の言語に応じてフォントを選べる。設定の[Fonts]まわりに項目が増えています)
  • 表を列として描く(横書きの本の表が、これまでの1セル1行の積み上げではなく格子で出ます。縦書きの本では従来どおり積み上げにしています。本家の格子描画が横書き専用のためです)
  • スリープ時にSDカードの電源を確実に切る/電源ボタン1回押しでの起動
  • 電源を入れ直した直後の電源ボタンの誤判定の修正(起動直後に勝手にスリープへ戻る症状)
  • 脚注リンクの上付き表示の復帰、段落間隔OFF時の組版の不具合修正、ルビ内での区切り誤りの修正、Zip読み込みエラー時の異常終了の修正、実体参照 &apos; への対応
  • UI文字の太さが Regular に戻りました。 前版までは本家の試験的な変更(Medium)を採用していましたが、本家がその変更を取り消したため、当版も同じくRegularにしています

本家1.6.0の全変更は 本家のリリースノート を参照してください。タッチ操作関係は X3 には関係しません。

当版の機能はすべて引き継いでいます

縦書き(ルビ・圏点・約物の詰め・縦中横の自動処理・傍線・打ち消し線・UAX#50による記号の向き)、右開きのページ送り(左が進む、側面ボタンも同じ)、挿絵(章内画像の寸法指定 max-width/max-height、svgで包んだ挿絵、構築時の画像キャッシュ生成、ストリーミングPNG)、SDフォントのメモリ管理(4KB刻みの字形領域、一覧画面でのキャッシュ解放)、時計モード(Homeメニューの「Start clock mode」、日本時間は[Clock UTC Offset]を「UTC+9:00」)、時計モードで固まったときの30秒での自動再起動、クラッシュ報告 crash_report.txt 先頭のビルド番号。

実機確認: 縦書きテスト書16章、縦書き挿絵テスト書9章、寸法テスト書13サイズ、商業書籍1冊、横書きテスト書、時計モードでの故意ハングからの再起動(主処理・描画処理の両方)を、旧版と同じ結果になることまで確認しました。

今回直したもの

  • 横書きの圏点が、強調範囲の全文字分の点を先頭の1文字に集めて乗せていたため、行が引き伸ばされていました。各文字の真上に1つずつ乗るようにしました(旧版からあった不具合です)
  • 挿絵の寸法が開くたびに変わることがありました(容器いっぱいだったり小さかったり)。大きなスタイルシートを本家の新しい方式で保存すると途中で打ち切られることがあり、それを完全なものとして使っていたためです。打ち切られた保存を読んだ章は、その章が使う分だけを改めて読み直すようにしました

既知の制限(前版から変わらず)

  • 縦書きの本で、扉・奥付などの横組み部分も縦のまま表示します
  • 縦書きの text-align / text-indent は未対応。「Extra Paragraph Spacing」ONのときは自動の字下げをしません
  • 挿絵が多い章の初回表示は10〜17秒かかり、その間ボタンを受け付けません
  • 外字画像(1文字大の画像)は独立した1列を占めます。外字にルビは付きません
  • 読書のあとの一覧画面の描画が数秒かかることがあります

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026082405 にある fonts-202608240.zip の中身を展開して、microSDにfontsフォルダごとコピー
  3. crosspoint-OST-2026090611.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」にする

OST版 2026090504

OST版 2026090504 Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 05 Sep 12:55

本家1.6.0rcをベースにしたもの。今回は1.6.0リリース直前、最終まとめ 的な位置づけとして、時計モード復活させました。

※2026090501を公開した直後に時計モードをメニューに戻した02へ差し替え、さらに時計モード限定の監視を入れた2026090504へ差し替えました。01→02は時計モードの有無、02→04は下記の監視の有無だけの違いです。文字の表示や組版には手を入れていないため、各書籍のページ配置の作り直しは走りません(前版2026090210からの入れ替えなら初回オープンも通常どおりです)。

時計モードで端末が固まる原因を特定し、修正しました

前版で「原因未特定」としていた件です。CPUの速さを切り替える処理に、2つの処理系統が同時に入ると互いの完了を待ち合って永久に止まる経路がArduino基盤の中にありました。切り替えの前後で画面用の通信路の使用権を取ったり返したりしており、片方が「速さ変更中」で通信路の使用権を握ったまま、もう片方が「通信路の使用権」を待ちながら速さ変更の権利を握る、という組み合わせになると両方が止まります。

当版の電源管理では、待機時にCPUを落とす処理(50msごと)と、描画のために上げる処理が別々の系統から同時に走りうる瞬間があり、時計モードは毎分その瞬間を通っていました。数十〜数百マイクロ秒の窓なので、12時間持つこともあれば1分で止まることもあった、という頻度にも合います。

修正は、CPUの速さを変える処理全体をひとつの順番待ちの中に入れ、2系統が同時に入れないようにしたものです。読書中を含む全画面に効きます。

検証: 調査用のビルドで、故意にタスクを止めて30秒後に自動再起動することを主処理・描画処理の両方で確認したうえで、給電なしの時計表示を8時間6分連続で走らせ、固まり・再起動なし、メモリ使用量も一定(空き44KBのまま)でした。電池の減りは残量表示で−2%でした。

時計モードがHomeメニューに戻りました

前版2026090210で外していた「Start clock mode」を復帰させました。上の修正で原因を塞いだこと、固まっても30秒で自動再起動する経路を実機で実証したこと、給電なし8時間の走行が通ったことが根拠です。使い方は従来どおり、[Settings]-[Reader]-[Customize Status Bar]の[Clock UTC Offset]を「UTC+9:00」にすると日本時間になります。

時計モードで固まっても30秒で自動再起動するようになりました

時計画面にいる間だけ、ボタンを受け付ける処理と画面を描く処理の両方を30秒の監視下に置きます。どちらかが30秒応答を返さなければ端末を再起動し、SDカードの crash_report.txt に止まっていた処理の名前と直前の記録を残します。リセットボタンが画面の下にあるこの機種で、固まりの代償を「電池切れまで1〜2日」から「30秒」にするためのものです。

監視は時計画面だけです。読書中の初回描画や無線でのファイル転送は正当に30秒以上かかることがあるため、そちらには広げていません。時計画面でBack以外のボタンを押しても何も起きません(開発用の故意ハングの仕掛けは配布版には入っていません)。

検証: 配布版と同じ監視経路を持つ試験ビルドで、主処理・描画処理をそれぞれ故意に止め、どちらも30秒で再起動して報告に処理名が残ることを実機で確認しました。誤って再起動しないことは、同じ範囲・同じ30秒で監視していた調査用ビルドの8時間走行(再起動なし)で確認しています。

万一時計モードで再起動が起きた場合は、crash_report.txt を報告いただければ原因を追えます。

クラッシュ報告にビルド番号が入るようになりました

端末が異常終了したときにSDカードへ書かれる crash_report.txt の先頭に、OST build: 2026090504 のようにこのファームウェアの番号が入ります。これまでの版名(コミット)では試験ビルド同士の区別がつかず、別のビルドの報告を読んで原因を追ってしまうことがあったためです。報告を送っていただく際はこの行も含めてください。

調査のみ(ファームウェアの変更なし)

  • ブックウォーカー社の「KADOKAWA-EPUB 再現指標」30項目と当版の実装を照合し、【高】【中】の各項目が商業EPUB 1,883冊で実際にどれだけ使われているかを数えました。結果はリポジトリのREADMEにあります。主な発見は、縦書き本の7割が扉・奥付・前付に横組みの部分を持ち、当版はそれを縦のまま表示していること。次に着手する候補にしています
  • 縦中横は現状の自動処理で実使用の99.98%を賄えていることが分かり、専用実装は見送ります
  • 明朝/ゴシックの混植(フォント切り替え)は実施しない方針にしました。9割の本に指定がありますが1冊あたり数十箇所で、2書体を常駐させるメモリの代償に見合いません
  • 挿絵の寸法を実測から再現したテスト用EPUB(test/epubs-ja/image-size-test.epub)を追加しました

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026082405 にある fonts-202608240.zip の中身を展開して、microSDにfontsフォルダごとコピー
  3. crosspoint-OST-2026090504.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 Paragrash Spacing」は「ON」
      [Style]は基本は「Embedded Style」と「Text Anti-Aliasing」は両方「ON」
       EPUB読み込みでクラッシュする場合、「Embedded Style」を「OFF」にする
       文字の描画が遅いと思ったら「Text Anti-Aliasing」を「OFF」にする

OST版 2026090210

OST版 2026090210 Pre-release
Pre-release

Choose a tag to compare

@osakanataro osakanataro released this 02 Sep 09:37

本家1.6.0rcをベースにしたもの。今回は文字の装飾(太字・下線・取り消し線)と記号の縦書きの向きの修正です。

※2026090209を公開後、時計モードで端末が固まる不具合が見つかったため、時計モードをメニューから外した2026090210に差し替えました(詳細は下記)。2026090209を書き込んだ方は入れ替えをお願いします。

太字や傍点が、同じ本の中で効いたり効かなかったりする問題を解消しました

クラス指定(CSSのclass属性)による文字の装飾が、同じ本の同じ章でも、前半の段落では効いて後半では効かない、開き直すと結果が変わるという状態になっていました。

原因は、装飾を引き当てる処理に「空きメモリが48KB未満なら装飾なしとして扱う」判定が残っていたことです。この処理自体はメモリを一切消費しないため判定は不要でしたが、48KBという値がこの機種の読書中の空き(47〜63KB)のちょうど真ん中にあり、普通のページで何度も跨いでいました。判定を削除しています。

市販書籍の多くは太字も傍点もクラス指定で書かれているため、本文中の強調が安定して出るようになります。

縦書きで下線・取り消し線が引かれるようになりました

これまで縦書きでは下線も取り消し線も一切表示されていませんでした(横書きでは出ていました)。スタイルの解釈も文字への伝達も正常で、線を引く処理だけが横書き用にしかありませんでした。

  • 下線(傍線)は文字の右脇、列と列の隙間に縦の線
  • 取り消し線は文字の中央を縦に貫く線

ルビのある段落では、ルビが文字の右半分を使うため下線を左側に引いて重なりを避けています。

記号の縦書きの向きを規格どおりにしました

どの記号を立てるかを、Unicodeの規格(UAX crosspoint-reader#50)の定義表から機械的に取り込む方式に変えました。こちらの判断で選んでいません。

横倒しになっていたものが直りました: ①②③などの丸数字(日本語書籍で頻出)、ローマ数字ⅠⅡⅢ、℃ ℓ №、⭐⬛⬜ ⌒ ⌘ ♥ ☆ ♪ ‼ ⁇⁈⁉ ● ○ ※ † ‰、§ © ® ± ¼¾ × ÷、アイヌ語の小書きカナ ㇰㇱㇲㇳㇷ。

マスの中で左に寄っていたものが直りました: © ® ¼ ¾ は文字の幅が全角の半分しかなく、マスの左端から描いていたため半マス左にずれていました。

前版までの記載の訂正

未対応一覧に「矢印が横倒しになる(実害あり)」と書いていましたが、これは誤りで、規格上は矢印は回転するのが正しい動作です。縦組みでは読み進む向きが変わるため、横組みで右を指す矢印が縦組みで下を指すのは、意味が変わったのではなく同じ意味が反映された結果です。当版の動作は最初から正しく、実際に困っていたのは丸数字のほうでした。ギリシャ文字・キリル文字・Å・℘も同様に回転が正しい動作です。

時計表示機能(clock mode)をHomeメニューから外しました

時計モードで端末が固まる事象が2回起きたため(2026-08-27に約19分、2026-09-02に約1分)、原因が分かるまで配布版では表示しないことにしました。画面が止まったままBackも効かなくなり、リセットボタンは貼り付けの画面の下にあるので、復帰は電池を空にする(1〜2日)かSDカードのエラーを起こすかしかありません。

原因は特定できていません。 分かっているのは「画面の描き替え待ちで止まっているのではない」ことまでで(描き替え待ちには30秒の打ち切りがあり、それだけなら次の分に復帰するはずです)、疑っているのはCPU周波数の切り替えです。時計モードは、描画がボタン操作に先行されない唯一の画面で、CPUを下げる処理と上げる処理が別々のところから同時に走りうる唯一の画面でもあります。

読書機能への影響はありません。時計のコードは開発ツリーには残してあり、調査用のビルドでは引き続き使えます。

使うための手順

  1. microSDをFAT32フォーマットしたものを用意
  2. OST版 2026082405 にある fonts-202608240.zip の中身を展開して、microSDにfontsフォルダごとコピー
  3. crosspoint-OST-2026090210.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 Paragrash Spacing」は「ON」
      [Style]は基本は「Embedded Style」と「Text Anti-Aliasing」は両方「ON」
       EPUB読み込みでクラッシュする場合、「Embedded Style」を「OFF」にする
       文字の描画が遅いと思ったら「Text Anti-Aliasing」を「OFF」にする

※このバージョンから、各書籍の初回オープンでページ配置の作り直しが走ります(読書位置は保持されます)。上の2件はどちらもページ配置を作る時点で結果が決まるため、作り直さないと修正が既存の本に届きません