Repository navigation
PaperReality 1.0.3
PaperReality 1.0.3
This release brings the native iOS settings interface, controller navigation,
AirPlay improvements, updated editor artwork, and PaperBoat upstream fixes
together in one release. These notes cover changes since PaperReality 1.0.0.
Download: PaperReality-v1.0.3-unsigned.ipa below. Sign and install it with
AltStore, Sideloadly, or your own signing certificate. Requires iOS 16.3 or later.
The game and HD texture packs are supplied by the user.
Native iOS settings
- Replaced the iOS settings menu with UIKit pages, rounded cards, and a landscape
sidebar. Settings, Enhancements, Shaders, and Dev Tools expand to show their
pages. Narrow layouts and larger accessibility text use a category browser. - Added system light/dark appearance, Dynamic Type, and readable theme accents.
Menu Theme changes the settings accent color and touch-stick cursor color. - Made UIKit the settings interface on iOS and removed the switch to the original
menu. Existing preferences remain in use. - Added native Console, Controller Bindings, Event Debugger, and Value Viewer
settings, plus native Save Editor and Blueprint Editor pages. Console commands
use the existing command registry; enterhelpto list available commands. - Added expandable Event Debugger cards for registered events and listeners.
Call-site counts remain available only in builds with upstream instrumentation. - Added the original Pixel Count Presets, including Custom and presets from 240p
to 4K, under Settings → Graphics. Enable advanced settings and Fixed Vertical
Resolution to use them. - Fixed outgoing pages showing through subscreens, content overlapping titles,
sidebar strips, and empty scrolling section bars. Descriptions stay inline
without opening duplicate text alerts. - Made sidebar labels fit consistently on one line and replaced the header's
paper plane with a transparent red origami boat based on the app icon. - Set the Home Screen name to PaperReality while retaining the existing
com.damien.paperrealitybundle identifier for app updates. - Fresh launches start with Settings closed while preserving preferences and the
selected page. Returning to an app that is still running retains its open page.
Controller and touch controls
- Added controller navigation throughout the native menus, including settings,
editor pages, app dialogs, import/export buttons, text entry, and color editing.
D-pad/left stick moves focus, A selects, B goes back, Left/Right adjusts values,
L/R changes panes, X opens supported search/command entry, and right stick scrolls. - Added native button/axis binding capture, stick response controls, device and
port controls, and supported controller rumble, gyro, and LED configuration.
Configuring a gyro does not assign it a gameplay function. - Kept file and destination selection in the standard iOS Files picker. Those
system picker selections use touch; the app buttons that open them support
controller navigation. - Added controller support to touch-layout editing: L/R selects a control,
D-pad moves it, A/B finishes, and X resets the layout. - Updated the default touch layout with mirrored L/R placement, an evenly spaced
C-button diamond, and a revised joystick resting position. Saved custom
positions are preserved; Reset applies the new defaults. - Made A, B, C, and Start use smooth round outlines. The touch D-pad now defaults
to hidden, with a setting to enable it. Hide With Controller reacts to actual
game controllers rather than unrelated joystick devices.
AirPlay, frame pacing, and startup
- Added game-only output on an AirPlay or external display while keeping touch
controls and menus on the phone. Supports connecting before or after launch. - Fixed external drawable sizing and position, including the MSAA-related image
offset, and kept the interactive startup window on the phone when an external
display is already connected. - Limited the game's effective frame target to the external display's reported
refresh rate while connected. Disconnecting restores the phone's normal target
without changing the saved setting. - Improved iOS frame deadlines and presentation pacing. Settings requests the
phone's refresh rate independently, and the frame limiter services UIKit during
its existing waits to improve scrolling responsiveness. - Improved first-run Files presentation and retry handling. A loading message is
displayed before game setup, and first-run prompts temporarily bypass gameplay
present pacing before restoring it. - Flushes Paperboat.log every second. Temporary AirPlay and first-run tracing was
removed after investigation. The Settings timing HUD is excluded from this
release; separate development builds can enable it.
Editors, artwork, and files
- Added runtime portraits for characters, companions, badges, and items, using
imported game resources. Missing resources retain a blank placeholder. - Made portraits use enabled HD texture replacements, including palette-specific
variants and aliases, with original artwork as the fallback. Mixed-resolution
sprite parts retain their alignment and higher-resolution detail. - Added model thumbnails for Fake Bowser, Toy Tank, and Light Bulb. These use
imported model geometry and the currently selected original or HD materials. - Grouped eight unobtainable badges and two battle items under Unused in the
native Save Editor. Their existing editing behavior is retained. - Added an on-device Sprite Texture Report covering UI icons, Blueprint portraits,
and model material selection. It exports metadata rather than game artwork. - Fixed iOS file-picker routes for imports, exports, numeric Blueprint presets,
N64 saves, and opening the app's Files folder. Picker requests are serialized
and cancelled or dismissed requests are cleaned up.
PaperBoat upstream updates
Merged HarbourMasters/PaperBoat through 781d164cf, including:
- Show Hidden Blocks — additional visibility choices for hidden blocks (#264).
- Mute ISpy Sound — silences I Spy's notification sound while keeping its
visual notification (#270). - Always Chuck Quizmo — removes the random appearance requirement in eligible
locations while retaining story-progress and unanswered-question checks (#272).
Re-enter the area after enabling it. - A Munchlesia animator buffer lifetime fix (#269) and an uninitialized popup-text
offset fix (#263). - Upstream platform build fixes (#262) and web build/runtime/deployment fixes
(#266). Desktop builds remain paused in the PaperReality repository.
The two newest gameplay switches are available under Enhancements → Gameplay,
default to off, and respect the existing settings lock.
Validation and remaining testing
The merged source passed a full local build and checks across 1,021 native pages
and 6,149 rows, including gameplay event hooks, settings locks, file routing,
controller capture, portraits, and resolution persistence. The release workflow
also checks the UIKit sources with the iOS SDK before building the IPA.
Device reports confirmed smoother settings scrolling, working touch controls,
and resolution of the reported sidebar seams. The automatic refresh-rate switch
between the phone and AirPlay display and broad physical-controller behavior
still need further device testing. The earlier intermittent Jr. Troopa black
screen could not be reproduced; its cause was not confirmed and this release
does not claim a specific fix for it.
The source audit is in docs/source-changes-v1.0.3.md.
The complete release comparison is v1.0.0…v1.0.3.
Thanks to the Harbour Masters PaperBoat team, libultraship contributors, the Paper
Mario decomp and DX teams, texture-pack creators, and everyone testing PaperReality.