We brought Katamari a clean BioShock execution core, Contra’s timer and bitmap work, and Genesis’s visual layout. The little Prince still had some requests of his own.KT01

Release really means release.

In other bridges, we’d kept a short press alive until a normal update could see it. Katamari counted releases for its triple-tap charge. Each release had to stay immediate and distinct. We could borrow the queue’s ordering, but copying the whole release policy would get this game wrong.KT04KT05

The King’s tutorial supplied another easily misread interaction. The first UP dismissed the instruction and cleared the held state. Letting go and pressing again started rolling. Likewise, modal routing chose the event’s role before delivering it, so one down edge would not both open and accept a dialog.KT02KT03

469 callbacks, then a graphics call.

The 0.1.0 phone run reached the timed stage before stopping at an unsupported IGraphics method. It was not the whole renderer failing. The countdown wanted a clipped quarter-circle and the sector showing elapsed time.KT10KT11

The repair implemented the measured center, radius, start angle and sweep operation, including clipping and outline/fill behavior. A retained profile used only as a host fixture reproduced the old fault and let the repaired runtime continue through another thousand timed callbacks. The Android app did not receive that unlocked fixture as a replacement save.KT11KT12

Katamari in the original timed level after the countdown repair
Historical host capture

The original timed Make a Star 1 scene after the circular-countdown service was implemented. Retained desktop ARM runtime frame; not the phone session that exposed the fault.

Open the image for the full original view.

KT90

Another piece travels.

Reporting borrowed a different bridge’s work: the notes explicitly follow RE4 Zeebo 0.1.9’s cached metadata and independent writer. A report could finish while the original session lock was held, without running another guest instruction to obtain it.KT13KT14

Later original-engine checks confirmed simultaneous roll, turn and shuffle inputs. In Scheme 1, continued rolling after UP release belonged to the original game’s latch; it was not a stuck touch to clear by force.KT15

The last repair in this window was right on the controls: thirty clipped SHUFFLE labels across the tested layouts. We changed the label to SLIDE while keeping its original inputs and target sizes. Sometimes the next fix really was just making the word fit.KT16KT17KT18

About these records

Historical phone evidence exposes the timed-level fault. The repaired countdown and simultaneous-input checks are original-engine host tests with an archived profile used only as a fixture. The displayed frame is retained desktop output. Modal routing is a documented prevention mechanism, not an invented phone failure. The label repair and framework report exporter retain their separate test scopes; later phone feel is not inferred from them.

The receipts

Selected report lines, investigation notes and recorded feedback. Each receipt keeps its original source and scope.

KT01 / The clean BREW family reaches KatamariCheckpoint investigation notes

Source: 18-Katamari_Bridge_v0.1.0_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.0_PRIVATE/TECHNICAL_HANDOFF.txt · selected lines 3–19

The original 137168-byte 2008 ARMv5/Thumb module runs in the Java BREW
compatibility layer. The core comes from the clean BioShock v0.2.0 lineage,
including Contra's native timer deadlines and exact bitmap memory watches;
the UI follows Resident Evil Genesis. It does not reuse the old hot BioShock
v0.1.7 build. No gameplay is reconstructed and no game instructions are patched.

TITLE INTEGRATION
Class ID 0x0106CC3B, native framebuffer 240x320. Selected module/resource.bar
are byte-identical across the unnumbered and screen-capture variants. Clean
MIF/icon comes from the latter. All three exact original ZIPs are retained;
the other 2009 variant has different native maps and archived player progress.

Existing runtime gzip sources, original BMP decode/palettes and native file
services cover this resource.bar. Katamari adds the display/font measurement
services, original SoundPlayer memory-source handling, the optional original
0x01005000 query, and graphics circle/ellipse rendering. Circle/ellipse
outlines honor no-fill mode; border thresholds are calculated once per draw.
KT04 / Three queued taps keep three separate releasesHistorical host controller regression

Source: 18-Katamari_Bridge_v0.1.0_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.0_PRIVATE/evidence/controller/input-regression.log · selected lines 1–4

PASS: 43 actual production Katamari controller checks.
Original native evidence: triple queued taps = 3 separate key presses + 3 immediate key releases; all handlers execute original ARM instructions; input pumps 0 native timers; one due worker runs exactly 1 original registered timer.
Covered: original startup pause/resume; distinct queued taps and immediate physical release; duplicate/held key behavior; one due worker; no early timer or input-driven timer; pause hold-release and tick cancellation; paused input suppression.
Scope: host queue/clocks are deterministic fixtures; Android media consumption and filesystem writes are not tested; this does not prove physical phone heat, sound, or touch feel. No guest module, guest memory, callback code, or game state is patched.
KT05 / Original control schemes and triple-tap chargeCheckpoint investigation notes

Source: 18-Katamari_Bridge_v0.1.0_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.0_PRIVATE/evidence/native-analysis/NATIVE_FINDINGS.txt · selected lines 17–23

CONTROL HIERARCHY (original BAR controls.txt + native tutorial):
Scheme1: Up/2 starts rolling;Down/8 stops, then reverses;Left/4 turns left;
Right/6 turns right;OK/5 jumps180 degrees;1 shuffles left;3 shuffles right.
Triple Up taps charge roll. Scheme2: cardinal movement;any move tapped3x
charges;OK/5 and1/3 retain the same functions. No bespoke diagonal buttons
are supported by these help texts.0 toggles vibration;9 cycles audio.
Native executable overrides one obsolete tutorial[#] vibration hint to[0].
KT02 / One down edge must not accept the dialog it just openedCheckpoint investigation notes

Source: 18-Katamari_Bridge_v0.1.0_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.0_PRIVATE/TECHNICAL_HANDOFF.txt · selected lines 21–28

INPUT PROTOCOL
Original modal dialogs consume EVT_KEY (0x100); ordinary scenes consume
EVT_KEY_PRESS (0x101), then EVT_KEY_RELEASE (0x102). The runtime snapshots
the original modal flag before a down edge and sends exactly one appropriate
event. This prevents one down edge from both opening and accepting a new
dialog. The original release handler counts triple-tap charges, so releases
are immediate and never coalesced. All guest actions still run on one worker.
The host adds no input-triggered timer slices or synthetic diagonal buttons.
KT03 / The first UP dismisses the instructionCheckpoint investigation notes

Source: 18-Katamari_Bridge_v0.1.0_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.0_PRIVATE/evidence/native-analysis/NATIVE_FINDINGS.txt · selected lines 48–55

NATIVE TUTORIAL MOVEMENT GATE:
The first Up press consumes the King's "start rolling" instruction. Native
text advance 0x0010D428 clears held input (game + 0x2E3C) at 0x0010D52C,
and clears the instruction/pause gates at 0x0010D514/0x0010D518. Release
Up, then press and hold Up again to roll. Original physics 0x0010CA20
updates position at game + 0x2CFC (x) and + 0x2D00 (y). Acceptance confirmed
that the second hold changes both guest position and rendered pixels.
This is original tutorial behavior and does not require a runtime patch.
KT10 / The phone reaches the timed countdown and faultsOriginal phone runtime report

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/evidence/phone-v010/Katamari-Bridge-v0.1.0-report-20261015-220143.txt · selected lines 8–17

Host failure: none
Save error: none
Module loaded: true; applet created: true; start accepted: true
Original ARM steps: 58165290; timer callbacks: 469; key events: 34
Display updates: 465; blits: 20269; framebuffer: 240x320
Images: 25; images decoded: 0; decode failures: 0; unknown interfaces: 1
CPU error: null; live error: timer -> RuntimeException: Unsupported BREW interface cls=01002001 off=0x64 r0=0100E588 r1=03EFFF64 r2=F0001064 r3=00000054 lr=0x00108460
Original audio play/stop requests: 4/15
Android audio starts/stops/errors: 4/2/0; Track completed 0; muted=false
Timer policy: original SetTimer registration deadlines; only due callbacks execute; one queued worker tick; no input-driven timer pumping
KT11 / The countdown needed a clipped circular sectorCheckpoint investigation notes

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/TECHNICAL_HANDOFF.txt · selected lines 162–178

UPDATE FROM THE PHONE REPORT (v0.1.1)
The owner's SM-S938U / Android 17 report reached 469 original callbacks before
IGraphics cls 0x01002001 method 0x64 failed at native LR 0x108460. Android audio
had 4 starts and 0 errors, battery 29.0 C, thermal status 0 during the short run.
Those measurements establish this run only; no extrapolation to long play.

The native caller supplies five signed shorts: center(x,y),radius,startAngle,
sweepAngle. The countdown draws a clipped quarter-circle at(screenWidth,0),
radius 30,start 270,sweep -90, then overlays the elapsed-time sector. The new
backend supports signed/wrapping/full/zero sweeps, fill/outline and clipping;
it writes through the existing DIB coherence path. No game instructions patched.
Per-draw trigonometry sets the two rays; the pixel loop uses cross-products.

Regression uses the supplied archived config from the other original ZIP only
as a host fixture to unlock Make a Star 1. It reproduces exactly the same error
with v0.1.0; the new runtime executes the native sector and 1000 further timed
callbacks. This fixture is never preloaded by the Android app.
KT12 / A thousand further timed-level callbacksHistorical host original-engine regression

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/evidence/timed-level-regression.log · selected lines 1–10

PASS timed stage reaches original gameplay beyond previous drawing fault
Native timed-stage position 503040,104704 -> 503040,67584
PASS Katamari really moves in Make a Star 1
PASS original countdown invokes implemented sector operation (494 draws)
PASS original turn, shuffle and U-turn handlers remain live in timed level
PASS native timed-level pause/resume returns to game
PASS 1000 actual timed-level callbacks pass beyond previous fault
PASS no missing BREW interfaces on tested timed-level path
PASS countdown keeps rendering through endurance
PASS 8 timed-level checks
KT90 / Historical image / Katamari in the original timed level after the countdown repairHistorical host capture

Source: Katamari_Bridge_v0.1.4_PRIVATE/evidence/timed-level/02_original_timed_gameplay.png

Original game pixels retained from the stated historical host check. No physical-phone capture is implied.

Unchanged historical image.
Source member: Katamari_Bridge_v0.1.4_PRIVATE/evidence/timed-level/02_original_timed_gameplay.png
SHA-256: 0fee50e0906f07438a7393dfca4d7ef4f07691ad99066439edb0580d69fa0d9d

The original timed Make a Star 1 scene after the circular-countdown service was implemented. Retained desktop ARM runtime frame; not the phone session that exposed the fault.

Scope: Historical original-ARM desktop framebuffer; unchanged source pixels, visually inspected, game only and zeroEXIF.
KT13 / Katamari borrows RE4 Zeebo’s independent report designCheckpoint investigation notes

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/TECHNICAL_HANDOFF.txt · selected lines 180–186

Reporting follows RE4 Zeebo v0.1.9 ReportStore: immutable cached native metadata
at most once per 5 foreground seconds, plus faults; no framebuffer clone for
sampling. Manual export reads the volatile cache and queues an independent
writer; it never posts to or locks the guest. File saving uses MediaStore
Downloads on Android 10+, with private-external Documents fallback on 8/9.
Detected faults automatically export a FAULT TXT. Heavy instructions traces
remain off during play. See tests/report for busy-worker/session-lock coverage.
KT14 / Reports complete while the original session lock is heldHistorical host report regression

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/evidence/report-independence.log · selected lines 1–10

PASS report export finishes while original session lock is held
PASS report export leaves guest worker queue untouched
PASS file export uses independent report writer
PASS export retains cached state and explicit sample age
PASS manual TXT also retains a private diagnostic copy
PASS completion reports direct game-named Downloads location
PASS cached report retrieval also avoids session lock
PASS manual export does not pause original execution
PASS report operations execute no guest instructions or callbacks
PASS 9 report independence checks. Storage fixture verifies dispatch; Android MediaStore itself needs a device run.
KT15 / Rolling and turning together, with the original rolling latchHistorical original-ARM combined-input checks

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/evidence/native-combined-input.log · selected lines 1–23

PASS original timed level starts stopped with no control mask
PASS UP + e033 retains both original cardinal bits
Original native position 503040,104704 -> 495951,102162; mask=5
PASS simultaneous roll/turn changes both native position axes
PASS native directional vector changes while rolling
PASS left/right combination steers to its original side
PASS UP release preserves native Scheme1 rolling latch and held turn
PASS both release orders reach native handlers; rolling latch is game-owned
PASS original combined-input path stays live without missing interfaces
PASS original timed level starts stopped with no control mask
PASS UP + e034 retains both original cardinal bits
Original native position 503040,104704 -> 509864,101782; mask=9
PASS simultaneous roll/turn changes both native position axes
PASS native directional vector changes while rolling
PASS left/right combination steers to its original side
PASS turn release retains original rolling state
PASS both release orders reach native handlers; rolling latch is game-owned
PASS original combined-input path stays live without missing interfaces
PASS original timed level starts stopped with no control mask
PASS roll + turn + shuffle are three independent original inputs
PASS releasing shuffle leaves roll and turn intact
PASS three-key release leaves original rolling latch, no held turn/shuffle
PASS 20 original combined-input checks. No guest code, memory or physics patched; archived profile is host fixture only.
KT16 / Thirty clipped labels, no smaller typeCheckpoint investigation notes

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/TECHNICAL_HANDOFF.txt · selected lines 3–21

The current supplied kit is still v1.1.2 and v0.1.3 already embeds it exactly.
A real Android text-layout audit found 30 clipped shuffle button instances
across 72 profiles (both modes, 320/360/412/480dp widths, 640/740/915dp heights,
font scales1.0/1.3/1.5). Only the keypad-mode SHUFFLE labels failed; default
font layouts were already satisfactory. The original failing evidence is
retained in evidence/v0.1.3-large-font-clipping.txt.

KatamariControls now displays SLIDE / direction + digit for original AVK_1
and AVK_3. All input codes, emphasis weights, pad configuration, controls,
keypad, targets, viewport, renderer and game behavior match v0.1.3. No fonts
were reduced and no shared-kit source was changed. Apart from version strings,
MainActivity, BridgeController and ReportStore are byte-identical to v0.1.3.
Original BrewRuntime remains byte-identical. The manifest updates versionCode
4->5 with the same package and signing owner for installation over v0.1.3.

The Activity runner includes the new independent text-fit audit. Packaging
now verifies and fsyncs a temporary signed APK, then commits the final path
atomically. The final complete checkpoint also verifies every ZIP entry and
SHA256SUMS before upload. See VERIFICATION.txt for current check outcomes.
KT17 / The earlier large-font text fit failureHistorical Android framework layout audit

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/evidence/v0.1.3-large-font-clipping.txt · selected lines 3–8, 33

.320x640 font=1.3 keypad=true clipped SHUFFLE ◀/1 text=179 content=144 width=216
320x640 font=1.3 keypad=true clipped SHUFFLE ▶/3 text=179 content=144 width=216
320x740 font=1.3 keypad=true clipped SHUFFLE ◀/1 text=179 content=144 width=216
320x740 font=1.3 keypad=true clipped SHUFFLE ▶/3 text=179 content=144 width=216
320x915 font=1.3 keypad=true clipped SHUFFLE ◀/1 text=179 content=144 width=216
320x915 font=1.3 keypad=true clipped SHUFFLE ▶/3 text=179 content=144 width=216

[... selected excerpt ...]

TEXT/FIT AUDIT cases=72 clipped=30
KT18 / The later text fit audit records zero clipped layoutsHistorical Android framework test result

Source: Katamari_Bridge_v0.1.4_PRIVATE_CHECKPOINT.zip / Katamari_Bridge_v0.1.4_PRIVATE/evidence/v0.1.4-activity-launch-test.txt · selected lines 3–7

......TEXT/FIT AUDIT cases=72 clipped=0

Time: 12.137

OK (6 tests)