Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

3DSlibris: Difference between revisions

From GameBrew
2.1.0
2.3.0
Line 6: Line 6:
|lastupdated=2026/04/10
|lastupdated=2026/04/10
|type=Utilities
|type=Utilities
|version=2.1.0
|version=2.3.0
|license=GPL-2.0
|license=GPL-2.0
|download=https://github.com/RigleGit/3dslibris/releases
|download=https://github.com/RigleGit/3dslibris/releases
Line 83: Line 83:
sdmc:/3ds/3dslibris/resources/splash.jpg
sdmc:/3ds/3dslibris/resources/splash.jpg
sdmc:/3ds/3dslibris/resources/ui/icons/png/{back,gear,home,next,prev}.png</pre>
sdmc:/3ds/3dslibris/resources/ui/icons/png/{back,gear,home,next,prev}.png</pre>
== Supported formats ==
== Supported formats ==
=== Strong support ===
=== Strong support ===
* <code>EPUB</code> (EPUB2 + EPUB3 NAV/NCX parsing with robust fallbacks)
* <code>EPUB</code>
** EPUB2 + EPUB3 content parsing with NAV and NCX table-of-contents support, plus fallback chapter labels when source metadata is incomplete
** Persistent page cache keyed by layout inputs, so repeated opens can reuse compatible pagination instead of rebuilding every page
** Configurable serif, sans, and monospace font families; <code>pre</code> / <code>code</code> blocks now reflow and measure with the active monospace face
** Monospace regular, bold, italic, and bold-italic variants are preserved when matching fonts are available
** Inline formatting support includes bold, italic, underline, strikethrough, overline, superscript, subscript, and CSS-driven dotted/dashed/wavy underline markers
** Block formatting covers headings, paragraphs, lists, nested ordered lists, blockquotes, asides, figures, captions, definition lists, and horizontal rules
** Tables are linearized into readable label/value blocks for the 3DS screen instead of trying to preserve wide desktop table layout
** Common hidden accessibility/helper text is ignored when marked with <code>hidden</code>, <code>aria-hidden</code>, <code>display:none</code>, <code>visibility:hidden</code>, or <code>visually-hidden</code>-style classes
** Cosmetic EPUB print-page markers such as hidden <code>epub:type=&quot;pagebreak&quot;</code> / <code>role=&quot;doc-pagebreak&quot;</code> spans are ignored instead of forcing bogus page breaks in the reflowed text
** CSS list marker suppression is honored for reflowed lists, including class-driven rules such as <code>list-style-type: none</code>
** Switching from one already-open book to another from the library no longer reuses stale reader state or leaves the app stuck on the opening screen after a failed open
** Punctuation handling keeps Spanish opening/closing punctuation attached across inline style boundaries in common cases
** Inline SVG image wrappers are detected and resolved when they point to supported raster image assets


=== Good support (text-oriented) ===
=== Good support (text-oriented) ===
Line 170: Line 184:


== Changelog ==
== Changelog ==
'''v2.3.0'''
* Highlights
** '''<code>GENERAL</code> and <code>BOOK</code> settings are now separated cleanly''': global preferences stay in the library settings menu, while book-specific actions appear only when you open settings during reading.
** '''New <code>go to page</code> slider popup''': books now expose a dedicated page-jump control from <code>BOOK</code> settings, with visible page number feedback and both touch and button-based adjustment.
* Included fixes and behavior changes
** '''The in-book settings menu is more coherent''': global options such as <code>clock format</code>, <code>color mode</code>, and <code>library view</code> no longer appear mixed into the per-book menu.
** '''<code>go to page</code> is tuned for 3DS controls''': touch chooses the page directly, <code>Left/Right</code> moves by one page, <code>Up/Down</code> and <code>L/R</code> move in larger jumps, <code>A</code> confirms, and <code>B</code> / <code>Select</code> / <code>Start</code> cancel.
** '''Left-handed orientation remains supported''': the new slider and the updated settings separation continue to use the existing orientation-aware input mapping.
** '''Recent EPUB compatibility fixes remain included''': cosmetic hidden pagebreak spans are ignored, and CSS list marker suppression such as <code>list-style-type: none</code> is still honored.
'''v2.2.2'''
* Highlights
** '''Cosmetic EPUB pagebreak markers no longer disturb pagination''': hidden <code>epub:type=&quot;pagebreak&quot;</code> / <code>role=&quot;doc-pagebreak&quot;</code> spans are now ignored when they are purely decorative, so they no longer create bogus breaks in the reflowed text.
** '''CSS-hidden list markers are now respected''': lists styled with <code>list-style-type: none</code> or <code>list-style: none</code> no longer show bullets or numbers in 3dslibris when those rules come from EPUB CSS.
* Included fixes and behavior changes
** '''EPUB parser hidden-content handling is more robust''': the parser now distinguishes between useful structural content and hidden print-parity markers that should not affect reading flow.
** '''List marker suppression now works from class-based CSS too''': this is no longer limited to inline styles or a few hardcoded class names.
** '''The EPUB rendering fixture was updated''': the test book now includes a non-hardcoded <code>ornamentless</code> list case so the behavior can be validated in both automated tests and on hardware.
'''v2.2.1'''
* Highlights
** '''Optional library list view''': settings now let you switch the browser between the existing cover gallery and a DSLibris-style list view that loads only titles, starts faster, and is easier to navigate on large libraries.
** '''List view is fully integrated''': the new mode is saved in the XML preferences, works even with no book currently open, supports vertical navigation, and keeps the existing browser flow intact.
** '''Long titles are handled better in the list''': list rows now use the dedicated presentation path introduced for this feature, with clearer rendering and spacing for long display names.
** '''Debug and release CIA builds can coexist''': <code>3dslibris-debug.cia</code> now uses its own Title ID/Product Code so it installs separately instead of overwriting the release build.
* Included fixes and behavior changes
** '''Browser presentation is split cleanly by mode''': grid and list rendering now live in separate presentation files while <code>app_browser.cpp</code> remains the coordinator for shared navigation and actions.
** '''Preformatted host wrapping stays correct''': the host-side regression fix for hard wrapping in preformatted text is included in this release train.
** '''Release automation still publishes the full artifact set''': the release workflow continues to generate and attach both CIA variants, both 3DSX variants, the SD package, and the source tarball.
'''v2.1.0'''
'''v2.1.0'''
* Highlights
* Highlights

Revision as of 23:59, 16 April 2026

3DSlibris
General
AuthorRigle
TypeUtilities
Version2.3.0
LicenseGPL-2.0
Last Updated2026/04/10
Links
Download
Website
Source

Nintendo 3DS homebrew ebook reader based on the original Nintendo DS project dslibris.

3dslibris ports the original architecture to libctru, keeps the fast text-first reading model, and adds practical 3DS UX improvements (grid library, cover thumbs, indexed navigation, procedural UI skin, orientation-aware touch, etc.).

The current .cia packaging flow is based on the same makerom/bannertool process used by Universal-Updater, adapted to this project's assets and release layout.

Features

  • Custom fonts.
  • Bookmarks.
  • Table of contents/index support.
  • Left- and right-handed layouts.
  • Three color modes: Daylight, Night, and Book.
  • Strong EPUB support.
  • Good FB2, TXT, RTF and ODT support.
  • Experimental MOBI support.
  • PDF, CBZ, and XPS viewing (MuPDF-backed).

Installation

Recommended install:

  • Download 3dslibris-sdmc.zip from GitHub Releases.
  • Extract that zip into the root of your SD card, so it expands into sdmc:/.
  • Put your books in sdmc:/3ds/3dslibris/book/.
  • Launch sdmc:/3ds/3dslibris/3dslibris.3dsx from Homebrew Launcher.

Alternative install:

  • Install 3dslibris.cia.
  • Launch the installed title once so it creates sdmc:/3ds/3dslibris/ if needed.
  • Put your books in sdmc:/3ds/3dslibris/book/.
  • Launch the installed title.

Important:

  • The .cia bundles the default font/ and resources/ runtime assets inside RomFS, so it can boot without manually extracting 3dslibris-sdmc.zip.
  • Books are discovered from sdmc:/3ds/3dslibris/book/ and romfs:/3ds/3dslibris/book/.
  • If the same filename exists in both places, SD takes priority.
  • 3dslibris-sdmc.zip is still the recommended install for .3dsx, and it remains useful if you want the same runtime files laid out explicitly on SD.
  • 3dslibris-debug.3dsx uses the same SD layout and writes verbose diagnostics to sdmc:/3ds/3dslibris/3dslibris.log.
  • The .cia build uses the Universal-Updater-style packaging flow and now also validates the bundled RomFS path in GitHub Actions.

Generated install package targets:

  • make package-sdmc stages dist/sdmc/... with 3dslibris.3dsx included
  • make zip-sdmc creates dist/3dslibris-sdmc.zip
  • make cia creates 3dslibris.cia
  • make source-release creates dist/3dslibris-source.tar.gz
  • GitHub Releases: pushing a tag like v2.0.4 triggers .github/workflows/release.yml and attaches 3dslibris.cia, 3dslibris.3dsx, 3dslibris-debug.3dsx, dist/3dslibris-sdmc.zip, and dist/3dslibris-source.tar.gz to the release

Bundled runtime files:

  • sdmc/3ds/3dslibris/resources/splash.jpg
  • sdmc/3ds/3dslibris/resources/ui/icons/png/*.png
  • sdmc/3ds/3dslibris/book/README.md
  • sdmc/3ds/3dslibris/font/README.md
  • sdmc/3ds/3dslibris/font/Liberation*.ttf
  • sdmc/3ds/3dslibris/font/OFL-1.1.txt

Notes:

  • Homebrew Launcher path: keep the app at sdmc:/3ds/3dslibris/3dslibris.3dsx
  • Debug build path: keep 3dslibris-debug.3dsx in the same sdmc:/3ds/3dslibris/ folder if you want verbose logs
  • Default Liberation fonts are bundled in the SD package for .3dsx, and inside RomFS for .cia
  • You can replace them with other .ttf, .otf, or .ttc fonts if you want to customize the reading/UI typefaces
  • Runtime files such as 3dslibris.xml, 3dslibris.log, and cache/* are created by the app on first run
sdmc:/3ds/3dslibris/3dslibris.3dsx
sdmc:/3ds/3dslibris/book/*.epub|*.fb2|*.txt|*.rtf|*.odt|*.mobi
sdmc:/3ds/3dslibris/font/*.ttf
sdmc:/3ds/3dslibris/resources/splash.jpg
sdmc:/3ds/3dslibris/resources/ui/icons/png/{back,gear,home,next,prev}.png

Supported formats

Strong support

  • EPUB
    • EPUB2 + EPUB3 content parsing with NAV and NCX table-of-contents support, plus fallback chapter labels when source metadata is incomplete
    • Persistent page cache keyed by layout inputs, so repeated opens can reuse compatible pagination instead of rebuilding every page
    • Configurable serif, sans, and monospace font families; pre / code blocks now reflow and measure with the active monospace face
    • Monospace regular, bold, italic, and bold-italic variants are preserved when matching fonts are available
    • Inline formatting support includes bold, italic, underline, strikethrough, overline, superscript, subscript, and CSS-driven dotted/dashed/wavy underline markers
    • Block formatting covers headings, paragraphs, lists, nested ordered lists, blockquotes, asides, figures, captions, definition lists, and horizontal rules
    • Tables are linearized into readable label/value blocks for the 3DS screen instead of trying to preserve wide desktop table layout
    • Common hidden accessibility/helper text is ignored when marked with hiddenaria-hiddendisplay:nonevisibility:hidden, or visually-hidden-style classes
    • Cosmetic EPUB print-page markers such as hidden epub:type="pagebreak" / role="doc-pagebreak" spans are ignored instead of forcing bogus page breaks in the reflowed text
    • CSS list marker suppression is honored for reflowed lists, including class-driven rules such as list-style-type: none
    • Switching from one already-open book to another from the library no longer reuses stale reader state or leaves the app stuck on the opening screen after a failed open
    • Punctuation handling keeps Spanish opening/closing punctuation attached across inline style boundaries in common cases
    • Inline SVG image wrappers are detected and resolved when they point to supported raster image assets

Good support (text-oriented)

  • FB2
  • TXT
  • RTF
  • ODT

Experimental / best-effort

  • MOBI
    • First open can be slow on large books (decompress + parse + pagination)
    • Subsequent opens are accelerated by persistent page cache
    • TOC quality is heuristic for many files (can be approximate)
    • Inline MOBI images now reuse the same smart inline / band / page layout pipeline used by EPUB/FB2, with better caption flow on mixed photo spreads
    • Includes an optional per-book line wrap fix for badly converted files that hard-wrap prose line by line, while preserving embedded image markers during cleanup
    • Empty or corrupt books are reported with a readable error instead of a raw numeric code
  • PDF
    • Viewer-only path with MuPDF-backed rendering
    • Top screen shows a zoomed page region; bottom screen shows the full-page preview and viewport box
    • Uses the shared fixed-layout reader controls documented below
    • PDF-enabled builds in this branch are distributed with AGPL-driven notice and source-release requirements; see the license section below
  • CBZ
    • Viewer-only path with MuPDF-backed image-page rendering
    • Uses the shared fixed-layout reader controls documented below
  • XPS
    • Viewer-only path with MuPDF-backed rendering
    • Uses the shared fixed-layout reader controls documented below

Known limitations

  • Some EPUB files have malformed anchors; index jumps can be approximate when source metadata is broken.
  • MOBI TOC extraction depends on file structure and may omit or merge entries in some books.
  • MOBI inline images depend on recoverable image references in the source markup, including the zero-padded recindex values commonly found in Kindle-generated books; malformed files can still miss some images.
  • Some malformed MOBI sources still contain encoding or OCR artifacts that cannot be repaired reliably on the reader side.
  • After changing font size, paragraph spacing, orientation, reading fonts, or the per-book MOBI line wrap fix, reopen the current book to apply the new layout.
  • Reading position and existing bookmarks are remapped approximately after that reopen and can shift a few pages from their original location.
  • No DRM support.

Controls

Library controls

D-Pad - Move the current selection around the library grid

A - Open the selected book

L / R - Jump to the previous or next library page

Touch - Tap a book to select it, tap it again to open it

Y / Select - Open settings

Default reading controls

A/B/L/R - Turn pages

D-Pad Left/Right - Jump between bookmarks

Y - Toggle bookmark

X - Change background color

Select - Settings

Start - Return to library

Touch UI for library, settings, index, bookmarks, font menus...

PDF / CBZ / XPS controls

A - Zoom in

B - Zoom out

Left/Right - Previous or next page

Up/Down - Next or previous chapter when the document exposes an outline; otherwise previous or next page

Touch - Move the viewport by tapping or dragging on the page preview

Select - Open settings

Start - Return to library

Screenshots

3dslibris2.png

3dslibris3.png

Changelog

v2.3.0

  • Highlights
    • GENERAL and BOOK settings are now separated cleanly: global preferences stay in the library settings menu, while book-specific actions appear only when you open settings during reading.
    • New go to page slider popup: books now expose a dedicated page-jump control from BOOK settings, with visible page number feedback and both touch and button-based adjustment.
  • Included fixes and behavior changes
    • The in-book settings menu is more coherent: global options such as clock formatcolor mode, and library view no longer appear mixed into the per-book menu.
    • go to page is tuned for 3DS controls: touch chooses the page directly, Left/Right moves by one page, Up/Down and L/R move in larger jumps, A confirms, and B / Select / Start cancel.
    • Left-handed orientation remains supported: the new slider and the updated settings separation continue to use the existing orientation-aware input mapping.
    • Recent EPUB compatibility fixes remain included: cosmetic hidden pagebreak spans are ignored, and CSS list marker suppression such as list-style-type: none is still honored.

v2.2.2

  • Highlights
    • Cosmetic EPUB pagebreak markers no longer disturb pagination: hidden epub:type="pagebreak" / role="doc-pagebreak" spans are now ignored when they are purely decorative, so they no longer create bogus breaks in the reflowed text.
    • CSS-hidden list markers are now respected: lists styled with list-style-type: none or list-style: none no longer show bullets or numbers in 3dslibris when those rules come from EPUB CSS.
  • Included fixes and behavior changes
    • EPUB parser hidden-content handling is more robust: the parser now distinguishes between useful structural content and hidden print-parity markers that should not affect reading flow.
    • List marker suppression now works from class-based CSS too: this is no longer limited to inline styles or a few hardcoded class names.
    • The EPUB rendering fixture was updated: the test book now includes a non-hardcoded ornamentless list case so the behavior can be validated in both automated tests and on hardware.

v2.2.1

  • Highlights
    • Optional library list view: settings now let you switch the browser between the existing cover gallery and a DSLibris-style list view that loads only titles, starts faster, and is easier to navigate on large libraries.
    • List view is fully integrated: the new mode is saved in the XML preferences, works even with no book currently open, supports vertical navigation, and keeps the existing browser flow intact.
    • Long titles are handled better in the list: list rows now use the dedicated presentation path introduced for this feature, with clearer rendering and spacing for long display names.
    • Debug and release CIA builds can coexist3dslibris-debug.cia now uses its own Title ID/Product Code so it installs separately instead of overwriting the release build.
  • Included fixes and behavior changes
    • Browser presentation is split cleanly by mode: grid and list rendering now live in separate presentation files while app_browser.cpp remains the coordinator for shared navigation and actions.
    • Preformatted host wrapping stays correct: the host-side regression fix for hard wrapping in preformatted text is included in this release train.
    • Release automation still publishes the full artifact set: the release workflow continues to generate and attach both CIA variants, both 3DSX variants, the SD package, and the source tarball.

v2.1.0

  • Highlights
    • Configurable EPUB monospace flow restored and expanded: pre / code now reflow with the active monospace font instead of measuring with the serif text face, preserving readable code blocks while keeping the new configurable mono font path.
    • Monospace variants now render correctly: EPUB content can distinguish regular, bold, italic, and bold-italic monospace text instead of collapsing everything to one mono style.
    • More EPUB block semantics are supported: lists, nested ordered lists, blockquoteasidecaptionfiguredl / dd, and basic table linearization now render as readable reflow blocks instead of collapsing into generic paragraph flow.
    • EPUB inline formatting support is broader: underline, strikethrough, overline, superscript, subscript, dotted/dashed/wavy underline styles, and common CSS-driven emphasis patterns are now recognized more consistently.
    • Hidden EPUB accessibility text is ignored: common hidden-text patterns such as visually-hiddenaria-hidden, and equivalent inline CSS are no longer shown as visible body text.
    • Styled punctuation stays attached to the surrounding text: closing ! / ? and opening ¡ / ¿ are handled more safely across inline style boundaries, avoiding the worst split cases in Spanish text.
    • EPUB index labels are cleaner: chapter menus now prefer simpler labels instead of concatenating multiple headings into one noisy entry.
    • EPUB page cache writes are safer: page cache files now save with the actual layout parameters used for pagination instead of stale zeroed values, avoiding invalid cache entries after fresh opens.
    • Bundled quickstart and SD docs are clearer about where books go: the release package now makes the sdmc:/3ds/3dslibris/book/ path more explicit, since this is still the most common user setup question.
    • Book view renderer recovery is more defensive: entering or reopening a book now resets the text renderer state more aggressively, which should reduce rare cases where visible glyphs disappear until the app is restarted.

v2.0.4

  • Highlights
    • Bookmarks and last-read page persistence fixed: prefs XML writing now escapes attribute values correctly and sanitizes invalid control characters, so filenames like ... & ... no longer break 3dslibris.xml parsing on startup.
    • CIA library source handling improved: the app now discovers books from both sdmc:/3ds/3dslibris/book and romfs:/3ds/3dslibris/book, with SD entries taking priority when names overlap.
    • Left-handed page screen order corrected: reflow reading now inverts first and second reading screens correctly in left-handed orientation.
    • Orientation-relative library D-Pad navigation: grid navigation now follows console orientation in both modes so directional input matches visual movement in right-handed and left-handed layouts.
    • Startup diagnostics improved: prefs load failures are now logged with an explicit warning instead of failing silently.
    • EPUB emphasis compatibility improved: the parser now recognizes bold/italic expressed via common style and class CSS patterns, not only semantic tags.
    • Release pipeline stability improved: debug MOBI builds now include the correct reporter definitions so debug-3dsx compiles reliably in CI/release workflows.

v2.0.3

  • Highlights
    • Fixed bundled RomFS for .cia builds — the installable build now actually includes its bundled fonts and UI resources, instead of staging them locally but omitting them from the final CIA package.
    • Fixed the CIA-only startup crash — a null cache entry in the text/font teardown path could trigger an ARM11 data abort during early startup failure; font initialization and cache cleanup are now hardened.
    • Better runtime asset fallback — bundled fonts and resources are resolved safely between SD and RomFS, so .cia installs no longer depend on a manual font/ or resources/ copy to boot.
    • Stable fatal boot screens — missing-book and startup error screens no longer flicker between old and new frames while waiting for Start.
    • Clearer first-run behavior — if no books are present, the app now shows a stable message telling you to copy your EPUB, FB2, TXT, RTF, or ODT files into sdmc:/3ds/3dslibris/book.
    • CIA build validation added to CI — GitHub Actions now builds and verifies the .cia path as well, including checks that the staged RomFS contains the bundled runtime files.
  • Included reader functionality
    • MuPDF-backed PDF, CBZ, and XPS support
    • Progressive fixed-layout rendering
    • Asynchronous/deferred MOBI open on New 3DS
    • Generated library cover thumbnails
    • Bundled runtime assets for .cia installs

v2.0.2

  • Highlights
    • Fixed CIA startup on hardware and Azahar: the packaged NCCH code is now emitted without compression, avoiding the startup crash seen in previous 2.0.1 CIA builds.
    • No change to reader features: this is a packaging-focused release intended to restore a working installable build.
    • Clean CIA build path: the local CIA build also includes the small book_io.cpp declaration fix required for a clean rebuild.

v2.0.1

  • Highlights
    • Full branch catch-up release: v2.0.1 includes the missing commits that were finished after the original v2.0.0 tag, so the public release now matches the maintained main line.
    • Centralized runtime paths: SD, cache, and related filesystem paths now live in a shared path layer instead of being duplicated across subsystems.
    • Cleaner repo structure: shared helpers were reorganized, legacy duplicate files were removed after the move, and bundled expat sources now live under third_party/.
    • MOBI cache code split out cleanly: page-cache serialization and invalidation logic now live in a dedicated MOBI cache module instead of being embedded in the larger common book I/O unit.
    • Improved native test ergonomics: the text-layout and Unicode tests now reuse a shared native build helper instead of each script compiling the same dependency objects manually.
    • Expanded technical documentation: the repository now includes architecture notes plus local NDS/3DS hardware reference material derived from GBATek for future maintenance work.
  • Included reader functionality (from the v2.0.0 line)
    • MuPDF-backed PDF, CBZ, and XPS support
    • Progressive fixed-layout rendering with preview-first display
    • Asynchronous/deferred MOBI open on New 3DS
    • Generated library cover thumbnails for EPUB, FB2, MOBI, PDF, and CBZ
    • Bundled runtime assets for .cia installs

v2.0.0

  • Highlights
    • PDF, CBZ, and XPS reading: open PDF documents, comic books (CBZ), and XPS files with zoom, full-page preview on the bottom screen, and outline navigation when available.
    • Progressive page loading: a preview of the page is shown immediately, then it refines to full quality in the background.
    • Faster on New 3DS: page rendering for PDF and CBZ runs on a separate processor core, keeping the UI responsive. Old 3DS still works with automatic fallback.
    • MOBI books open without freezing the UI on New 3DS thanks to asynchronous processing: you can start reading while the rest of the book finishes loading in the background.
    • Library covers now work for every format: EPUB, FB2, MOBI, PDF, and CBZ all show actual page thumbnails instead of placeholders.
    • All 1.1.x improvements included: inline images in MOBI and EPUB, faster image-heavy books, better text rendering, and more accurate MOBI table of contents.
    • No more manual SD card setup for .cia installs: fonts and UI resources are built in.
    • More stable startup: problematic MOBI files no longer cause crashes, and the app stays on a clear error screen instead of flickering between states when something goes wrong.

v1.1.0

  • Highlights
    • Library navigation: you can now move the selection around the book grid with the D-Pad and press A to open.
    • Images inside EPUB and MOBI books now display correctly: small icons, wide separators, and full-size figures no longer take up the entire screen or disappear.
    • EPUB books with lots of images open noticeably faster thanks to internal optimizations in how images are loaded from the archive.
    • Library cover thumbnails for MOBI books generate faster on subsequent visits since cover data is now remembered between sessions.
    • No more manual SD card setup for .cia installs: the .cia now includes all required fonts and UI resources, so a plain install from the Homebrew Menu is enough.
    • Better text rendering across all formats: improved line breaking, proper handling of special characters, and font sizes that can no longer be set to values that break pagination.
    • Code blocks and <code></code> <pre></pre> sections in EPUBs now wrap properly instead of running off the edge of the screen.
    • MOBI books benefit from multiple fixes: more accurate table of contents, better plain-text wrapping that matches how real books read, and support for HUFF/CDIC compressed files.

v1.0.3

  • Highlights
    • Pressing right on settings rows such as font size and paragraph spacing now increases the value.
    • Pressing left now decreases the value, matching the on-screen arrows and touch layout.
    • Horizontal navigation inside the settings list is aligned with the same left/right direction.
    • The main browser splash now shows the app version centered at the bottom of the left screen.
    • Changing font size, paragraph spacing, orientation, or reading fonts no longer tries to repaginate the book inside the settings menu.
    • When layout-related settings change, the app shows a warning and applies the new layout after reopening the current book.
    • MOBI parsing is more resilient against empty or corrupt files and now shows a readable error instead of a raw numeric failure.
    • MOBI books now have an optional per-book line wrap fix for badly converted files that hard-wrap normal prose into many short blocks.
    • The .cia packaging flow was rebuilt around the same makerom/bannertool process used by Universal-Updater.
    • Previous 1.0.3 test .cia builds could install but fail to boot because the packaged exheader ended up with an invalid main-thread priority.
    • The generated .cia now boots correctly on original hardware and in Azahar.
  • Known bug
    • When a book is reopened after a layout change, or after toggling the per-book MOBI line wrap fix, reading position and existing bookmarks are remapped approximately and may land a few pages away from their original location.
    • Some malformed MOBI files still contain source encoding or OCR artifacts that cannot be repaired fully by the reader.

v1.0.2

  • Highlights
    • Startup now stops with clear install guidance if required runtime files are missing from the SD card.
    • The error message tells users to download and extract 3dslibris-sdmc.zip and shows the expected sdmc:/3ds/3dslibris/ layout.
    • The README now explains installation step by step for the .3dsx + SD package flow.

v1.0.1

  • Highlights
    • EPUB cold opens are now much faster on large books by indexing ZIP entries before spine parsing.
    • In real tests with Don Quijote, cold open time dropped from about 50.5s to about 7.2s, roughly a 7x improvement.
    • Releases now include 3dslibris-debug.3dsx, which enables verbose diagnostic logging in 3dslibris.log.
  • Notes
    • The debug build is intended for troubleshooting and performance investigation.
    • EPUB TOC resolution remains separate from the main open path and was not the main cause of the previous cold-open slowdown.

v1.0.0

  • First release.

Credits

  • Original dslibris: Ray Haleblian
  • 3DS port and maintenance: Rigle

External links

Advertising: