Before you
pressed play.
The failed builds. The strange fixes. The moment a dead phone game starts doing what it used to do.
A director’s cut of the work behind my Android game bridges, told through the reports, the failed attempts and the moments I remember.
Just upside down
I think lol”
Framebuffer: 240 × 240 Figure unit conversion: 1/64 Cloud finally fits. Next: which way is up?One of the early bridges
Read the story and receipts ↗
Old phone games.
Another chance.
I wanted old phone games running on my Android phone. A bridge gives an original game the runtime, graphics, sound and controls it needs to run there. Omni Player brings those bridges together in one Android app; players supply the original game files.
I bring the ideas and constraints, test on my phone, and tell ChatGPT what still feels wrong. ChatGPT helps investigate failures and implement the next attempt. We put this archive together from the saved reports, checkpoints and my memories of doing it.
These chapters follow particular builds and moments in that work. For current releases and play instructions, head to Omni Player ↗. Here, start with a game you recognize—or with Cloud finally appearing upside down.
The pile becomes LEGION.
One game gives us a model parser. Another helps fix a timer. I picture the bridges stacked together, filling gaps in one another. The checkpoints show where those pieces actually traveled.
Follow the connectionsHow it came back.
52 histories from the surviving workbench record. Some follow long recoveries; others keep a shorter source window. The jokes, dead ends and unfinished parts stay visible.
Cloud was finally visible. Upside down.
The first picture put me inside Cloud’s chest. Once we sorted out the model’s scale, I could finally recognize him. He was upside down.
First came the shadows. Then the rest of Mega Man.
I kept trying to get Rockman’s world into view, then put it aside. Monster Hunter i gave us a way back in: first a mesh, then textures, and eventually a Mega Man who was more than a silhouette.
The first BREW bridge asked: Enable Sound?
Rush Marine was my first BREW game. Getting beyond DoJa meant an original ARM module, a sound prompt, missing sprites and controls that did something different from what their labels promised.
The buttons let go. Ashen didn’t.
I thought I’d got the controls wrong. Ashen kept sliding after release, even with the movement command cleared. The trail eventually led to the clock—and a workaround for a different game.
First came the silence.
We had a Japanese game running in complete silence. Getting the rest back meant building on an English patch, protecting checkpoints, trying different ways to aim, and finding several ways for audio to fail.
The hunter was there. The floor had other plans.
We got the hunter and monsters into view while their floor still refused to make sense. A camera target, material flags and broken terrain led us through black slabs and islands of grass—and gave Rockman a way forward.
It passed on the host. The phone rendered zero frames.
The missing combat sounds were inside the game’s own package. Bringing them back led us into another trap: a phone build that stopped before frame one despite passing its host checks.
DeadShot worked. Then came the polish.
DeadShot was already playing when we started chasing audio, cropping and controls. The harder part became keeping what worked through regressions and lost chat context. Saved baselines let us keep going.
Ghost Gun Leon
I found out this was the Brazilian Zeebo edition after we got it running. Then I got to run around as a gun and knife with no visible Leon. The enemies could still kill me, though.
It runs, dude.
MGS was a harder BREW “can I?” We got from a loading screen to a title, a camera test and eventually Snake’s first room. A file callback and a misleading title-screen detector made us work for it.
The phone was waiting to be opened.
I hoped I could get Chokkan Crash running for Caddicarus to play. First we had to open a phone with no hinge, sort out an array, and find out why the snow was magenta.
The drawing callback was empty on purpose.
My brother likes Sonic, so here we are. This little DoJa game drew outside paint(), stayed busy while waiting for the clock, and could miss a quick touch between updates.
Rapture was real. So was the heat.
Finding BioShock 3D was a surprise. Getting it running gave us a hot phone, a timer bug, a speedup that didn’t hold up, and eventually a clean rebuild with the original world still in charge.
Duke could walk and turn all along.
Duke could walk and turn together. Our four-way touch pad had hidden that, until we checked the original player state.
A file seek broke the garbage collector.
A native garbage-collector crash led us back to a file seek reading the wrong entry. After startup came tap-to-whip, hold-to-fire, and a wait that needed to stop wasting CPU time.
A tap had to last until the game looked.
I picked Brothers in Arms after reading a claim that Melange couldn’t play it. We ended up working through original ARM execution, a key queue that could lose a quick tap, and a sound-conversion wrinkle.
It stopped investigating before it started playing.
I saw somebody on an unrelated Reddit post waiting for an Orcs & Elves port. Our automated investigation stopped after 191 milliseconds. I still wanted the raw files looked at.
The pet sound that would not finish.
My wife likes The Sims, so I tried getting her interested in one of the old games I was recovering. We got a pet room—and a half-second voice that wouldn’t stop playing.
The memory error was a file error.
Rush Marine’s runtime got us started. Genesis added its own contracts, a false memory warning, and Jill’s unexpected use for the 5 key.
The texture patch could stay out.
The original module could load its own textures without the optional patch. The automap, music callbacks and Android system bars then gave us the next details to sort out.
The timer was charged twice.
Contra played well on my phone, but it felt hot. We followed that into a timer being charged twice and an image cache doing work it didn’t need to do.
The first shot found the wrong interface.
The corridor worked. The first pistol shot asked a bitmap for a transform, and our host handed back the wrong interface.
The camera borrowed the wrong height.
Earlier bridges gave us a starting point for Biohazard. Its camera still used the wrong height, and a held key could change identity halfway through a press.
The countdown broke the level.
The tutorial and rolling worked. The timed level wanted one missing circular sector, while the Prince’s charge action stopped us borrowing the wrong input rule.
Select was not the throwing button.
Banjo’s original campaign gave us timing to preserve, a charge-and-throw action to understand, and saved images that needed more than restoring the heap.
The missing byte stopped the movement.
Banjo’s ExEn foundation met packed velocities, an SMS price query and thirteen different minigames. South Park gave us several new parts to carry forward.
The sound was waiting for its own samples.
Crash inherited South Park’s repairs. Its melody data was ready, but our empty Android audio buffer was waiting for samples we never let it receive.
PLAY was beside the SMS detour.
I couldn’t get past the opening screen. We found an optional SMS detour sitting beside PLAY, with controls that weren’t making the choice clear enough.
The text panel lost its own rectangle.
The text spilled out of its panel, mission statistics found a missing formatter, and I didn’t like how driving felt. We needed to follow Driv3r’s own screen bounds and steering options.
Sonic closed before the game could open.
Another Sonic game for my brother. We had its first level running on the host before a later Android shell started returning straight to the launcher.
The kingdom survived the process.
We reached Offline Play, saved through the original menu, and returned to the kingdom with Continue after a complete host restart.
The menu lost the held key.
The original room could save and reload. Opening our utility menu could still clear a physical key hold and swallow its release.
Four racing actions were four original keys.
A countdown and race gave us the original inputs to follow: accelerator, brake, hop and item, alongside a separate native direction pad.
The shaders never made it into the APK.
We had startup and input counters on the phone, but a black viewport. The package was missing a resource directory that included eight renderer shaders.
The first pattern said “Good!”
We brought Bounce’s repaired environment to the original CellWeaver tutorial. Getting the keypad pattern right earned a small but very clear answer: “Good!”
Leon needed the original A and B.
Leon’s aim, fire and reload actions needed the original gaming keys. Our preparation work also had to bring the environment across without erasing saves.
The CRC helper had the wrong name.
The CRC helper file was there. The class and method inside it had different names from the ones the game called.
An empty rectangle stopped the next room.
We borrowed Ratchet’s MIDP layer and hit a room transition that tried to draw an empty rectangle. Doing nothing needed to work—and input couldn’t wait for another repaint.
The filename said EN. The game was Russian.
The filename said EN, but we had Russian resources. Later, keeping the saves working meant preserving an RMS implementation whose Java source was missing.
The log line was also the clock.
We found a loop timestamp that stopped updating. An existing print call gave us a place to pace it; later, the original inventory exposed actions missing from our controls.
The minimap leaked 9,444 magenta pixels.
Magenta leaked into the generated minimap. We needed to follow its palette alpha without breaking transparency in the images loaded from files.
The Settlers brought back wood.
I love RTS games, and this was our first bridge in the genre. A 128×128 Nokia game gave us a practical test: select workers, send them to wood, and watch the counter.
The resources were behind the wrong class loader.
Ratchet asked a bootstrap class for its fonts and sound. Our compatibility loader had to send that request back into the application.
The arrows moved a cursor.
I had this down as a possible magnum opus, for no particular reason I could explain. Then we had to make clear that the arrows moved a cursor, rather than walking the character around.
Three pixels stopped the hidden keypad.
A keypad nobody had opened could stop startup. Its minimum promised 693 pixels; the rounded rows and padding needed 696.
Two fingers met a one-key game.
Several fingers on the phone still had to become one active key in the game. Its dedicated diagonal-jump actions gave us the translation.
The configuration file held the characters.
We threw out a configuration file as old progress. It contained the original starting-character statistics. Zero attributes and a divide-by-zero made the mistake rather obvious.
The scene file was not the engine.
Recognizable scene data wasn’t the missing Swerve engine. Finding the separate original module got us running; absent Wonderland gameplay remained a different problem.
The phone took the texture path the host missed.
We hit a mipmap guard on Android that the old desktop test had missed. Later, we worked on the long wait for the original map to finish loading.
The control screen rejected the second contact.
I sent the first control screen straight back. It was hard to read, and we hadn’t enabled simultaneous-pad input. A separate in-race exit fault still needed work.
Spider-Man brought another 3D module.
Spider-Man brought a Micro3D engine of his own. Five minigames and a stale shared-kit test inventory gave us the next details to work through.
Raw 2 was not Up.
This Spanish Java ME game treated numeric keys differently from directions. Its logo wait also kept our host busy until the clock boundary learned to sleep.
Find a bridge.
52 game histories across DoJa, BREW, J2ME, ExEn, Zeebo and N-Gage. Find a familiar title, or pick something you never knew existed.
Age of Empires II MobileEnglish · V01.00.50ExEnHistory open
Magenta leaked into the generated minimap. We needed to follow its palette alpha without breaking transparency in the images loaded from files.
Read the history- History window
- 0.1.0 checkpoint
The chapter follows the records cited in its source ledger.
Age of Empires IIIEnglish · Nokia 128×128 · v1.0.2J2MEHistory open
I love RTS games, and this was our first bridge in the genre. A 128×128 Nokia game gave us a practical test: select workers, send them to wood, and watch the counter.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Banjo-Kazooie: Grunty’s Revenge MissionsExEnHistory open
Banjo’s original campaign gave us timing to preserve, a charge-and-throw action to understand, and saved images that needed more than restoring the heap.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Biohazard: The EpisodesJapanese · offline editionDoJaHistory open
Earlier bridges gave us a starting point for Biohazard. Its camera still used the wrong height, and a held key could change identity halfway through a press.
Read the history- History window
- 0.1.0 → 0.1.4
The chapter follows the records cited in its source ledger.
BioShock 3DBREWHistory open
Finding BioShock 3D was a surprise. Getting it running gave us a hot phone, a timer bug, a speedup that didn’t hold up, and eventually a clean rebuild with the original world still in charge.
Read the history- History window
- 0.1.5 → 0.2.2
The chapter follows the records cited in its source ledger.
Brothers in ArmsBREWHistory open
I picked Brothers in Arms after reading a claim that Melange couldn’t play it. We ended up working through original ARM execution, a key queue that could lose a quick tap, and a sound-conversion wrinkle.
Read the history- History window
- 0.1.0 → 0.1.3
The chapter follows the records cited in its source ledger.
Chokkan CrashDoJaHistory open
I hoped I could get Chokkan Crash running for Caddicarus to play. First we had to open a phone with no hinge, sort out an array, and find out why the snow was magenta.
Read the history- History window
- 0.0.3 → 0.0.8
The chapter follows the records cited in its source ledger.
Contra 4 ReduxBREWHistory open
Contra played well on my phone, but it felt hot. We followed that into a timer being charged twice and an image cache doing work it didn’t need to do.
Read the history- History window
- 0.1.0 → 0.1.3
The chapter follows the records cited in its source ledger.
Crash BandicootEnglish · original v1.9ExEnHistory open
Crash inherited South Park’s repairs. Its melody data was ready, but our empty Android audio buffer was waiting for samples we never let it receive.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
DeadShotDoJaHistory open
DeadShot was already playing when we started chasing audio, cropping and controls. The harder part became keeping what worked through regressions and lost chat context. Saved baselines let us keep going.
Read the history- History window
- 0.0.1 → 0.1.4
The chapter follows the records cited in its source ledger.
Digital Devil Story: Megami TenseiJ2MEHistory open
The CRC helper file was there. The class and method inside it had different names from the ones the game called.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Dirge of Cerberus: Lost EpisodeEnglish 1.0 patchDoJaHistory open
We had a Japanese game running in complete silence. Getting the rest back meant building on an English patch, protecting checkpoints, trying different ways to aim, and finding several ways for audio to fail.
Read the history- History window
- 0.1.0 → 0.3.1
The chapter follows the records cited in its source ledger.
DOOM II RPGEnglish · LG AX830BREWHistory open
A keypad nobody had opened could stop startup. Its minimum promised 693 pixels; the rounded rows and padding needed 696.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
DOOM RPGBREWHistory open
The original module could load its own textures without the optional patch. The automap, music callbacks and Android system bars then gave us the next details to sort out.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Dragon IslandEnglish · Macrospace v1.0.2 · 240×320BREWHistory open
Several fingers on the phone still had to become one active key in the game. Its dedicated diagonal-jump actions gave us the translation.
Read the history- History window
- 0.1.1 checkpoint
The chapter follows the records cited in its source ledger.
Dragon SwordEnglish · v1.0.0 · 240×320BREWHistory open
We threw out a configuration file as old progress. It contained the original starting-character statistics. Zero attributes and a divide-by-zero made the mistake rather obvious.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Driv3rBREWHistory open
The text spilled out of its panel, mission statistics found a missing formatter, and I didn’t like how driving felt. We needed to follow Driv3r’s own screen bounds and steering options.
Read the history- History window
- 0.1.0 → 0.1.4
The chapter follows the records cited in its source ledger.
Duke Nukem 3DBREWHistory open
Duke could walk and turn together. Our four-way touch pad had hidden that, until we checked the original player state.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
Earthworm Jim: Special EditionBREWHistory open
A native garbage-collector crash led us back to a file seek reading the wrong entry. After startup came tap-to-whip, hold-to-fire, and a wait that needed to stop wasting CPU time.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Final Fantasy VII: SnowboardingEnglish · offline editionDoJaHistory open
The first picture put me inside Cloud’s chest. Once we sorted out the model’s scale, I could finally recognize him. He was upside down.
Read the history- History window
- Early renderer → October 4 feedback
The chapter follows the records cited in its source ledger.
God of War: BetrayalNokia 352×416 · v1.4.58 · six languagesJ2MEHistory open
The missing combat sounds were inside the game’s own package. Bringing them back led us into another trap: a phone build that stopped before frame one despite passing its host checks.
Read the history- History window
- 0.1.1 → 0.1.3
The chapter follows the records cited in its source ledger.
Kingdom Hearts V CASTBREWHistory open
Recognizable scene data wasn’t the missing Swerve engine. Finding the separate original module got us running; absent Wonderland gameplay remained a different problem.
Read the history- History window
- Initial findings → 0.1.1
The chapter follows the records cited in its source ledger.
Mega Man: Rush MarineEnglish · v1.1.11BREWHistory open
Rush Marine was my first BREW game. Getting beyond DoJa meant an original ARM module, a sound prompt, missing sprites and controls that did something different from what their labels promised.
Read the history- History window
- 0.0.1 → 0.0.10
The chapter follows the records cited in its source ledger.
Metal Gear Solid MobileBREWHistory open
MGS was a harder BREW “can I?” We got from a loading screen to a title, a camera test and eventually Snake’s first room. A file callback and a misleading title-screen detector made us work for it.
Read the history- History window
- 0.0.2 → 0.0.18, with a later shell
The chapter follows the records cited in its source ledger.
Monster Hunter iEnglish patch and Japanese · two editionsDoJaHistory open
We got the hunter and monsters into view while their floor still refused to make sense. A camera target, material flags and broken terrain led us through black slabs and islands of grass—and gave Rockman a way forward.
Read the history- History window
- 0.0.4 → 0.1.4
The chapter follows the records cited in its source ledger.
Mutant AlertEnglish · v1.2ExEnHistory open
I couldn’t get past the opening screen. We found an optional SMS detour sitting beside PLAY, with controls that weren’t making the choice clear enough.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
NowhereEnglish · Sony Ericsson K790J2MEHistory open
We borrowed Ratchet’s MIDP layer and hit a room transition that tried to draw an empty rectangle. Doing nothing needed to work—and input couldn’t wait for another repaint.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Orcs & Elves IIBREWHistory open
I saw somebody on an unrelated Reddit post waiting for an Orcs & Elves port. Our automated investigation stopped after 191 milliseconds. I still wanted the raw files looked at.
Read the history- History window
- Raw intake → 0.1.1
The chapter follows the records cited in its source ledger.
Quake IIPortuguese (Brazil)ZeeboHistory open
We hit a mipmap guard on Android that the old desktop test had missed. Later, we worked on the long wait for the original map to finish loading.
Read the history- History window
- 0.1.0 → 0.1.4
The chapter follows the records cited in its source ledger.
Ratchet & Clank: Going MobileJ2MEHistory open
Ratchet asked a bootstrap class for its fonts and sound. Our compatibility loader had to send that request back into the application.
Read the history- History window
- Original intake → 0.1.3
The chapter follows the records cited in its source ledger.
Resident Evil 4Spanish / PortugueseZeebo / BREWHistory open
I found out this was the Brazilian Zeebo edition after we got it running. Then I got to run around as a gun and knife with no visible Leon. The enemies could still kill me, though.
Read the history- History window
- 0.1.2–0.1.9 record + later phone play
The chapter follows the records cited in its source ledger.
Resident Evil: GenesisBREWHistory open
Rush Marine’s runtime got us started. Genesis added its own contracts, a false memory warning, and Jill’s unexpected use for the 5 key.
Read the history- History window
- 0.2.0 → 0.6.2
The chapter follows the records cited in its source ledger.
Rockman: Great Adventure on 5 IslandsEnglish patchDoJaHistory open
I kept trying to get Rockman’s world into view, then put it aside. Monster Hunter i gave us a way back in: first a mesh, then textures, and eventually a Mega Man who was more than a silhouette.
Read the history- History window
- 0.1.7 → 0.3.6
The chapter follows the records cited in its source ledger.
Rolling with KatamariBREWHistory open
The tutorial and rolling worked. The timed level wanted one missing circular sector, while the Prince’s charge action stopped us borrowing the wrong input rule.
Read the history- History window
- 0.1.0 → 0.1.4
The chapter follows the records cited in its source ledger.
Silent Hill: Orphan240×320 · six original languagesJ2MEHistory open
I had this down as a possible magnum opus, for no particular reason I could explain. Then we had to make clear that the arrows moved a cursor, rather than walking the character around.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Sonic JumpEnglish patchDoJaHistory open
My brother likes Sonic, so here we are. This little DoJa game drew outside paint(), stayed busy while waiting for the clock, and could miss a quick touch between updates.
Read the history- History window
- 0.1.0 checkpoint
The chapter follows the records cited in its source ledger.
South ParkEnglish · 13 original minigamesExEnHistory open
Banjo’s ExEn foundation met packed velocities, an SMS price query and thirteen different minigames. South Park gave us several new parts to carry forward.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
Spider-Man 2 3DEnglish · NY RooftopsBREWHistory open
Spider-Man brought a Micro3D engine of his own. Five minigames and a stale shared-kit test inventory gave us the next details to work through.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
Spider-Man: Doc OckSpanish · Spider-Man VS Doc Ock · Sony Pictures · v6.2.20J2MEHistory open
This Spanish Java ME game treated numeric keys differently from directions. Its logo wait also kept our host busy until the clock boundary learned to sleep.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
The Sims 2: Petsv4.4.44J2MEHistory open
My wife likes The Sims, so I tried getting her interested in one of the old games I was recovering. We got a pet room—and a half-second voice that wouldn’t stop playing.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
The Witcher: Crimson TrailRussian · Nokia N73J2MEHistory open
The filename said EN, but we had Russian resources. Later, keeping the saves working meant preserving an RMS implementation whose Java source was missing.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
Resident Evil: UprisingGlu Mobile · v1.0.0J2MEHistory open
We found a loop timestamp that stopped updating. An existing print call gave us a place to pace it; later, the original inventory exposed actions missing from our controls.
Read the history- History window
- 0.1.0 → later preparation report
The chapter follows the records cited in its source ledger.
Wolfenstein RPGEnglish · v7.1.32BREWHistory open
The corridor worked. The first pistol shot asked a bitmap for a transform, and our host handed back the wrong interface.
Read the history- History window
- 0.1.0 → 0.1.4
The chapter follows the records cited in its source ledger.
AshenN-GageHistory open
I thought I’d got the controls wrong. Ashen kept sliding after release, even with the movement command cleared. The trail eventually led to the clock—and a workaround for a different game.
Read the history- History window
- October 19, 2026 · 0.1.3–0.1.5
The chapter follows the records cited in its source ledger.
Sonic NN-GageHistory open
Another Sonic game for my brother. We had its first level running on the host before a later Android shell started returning straight to the launcher.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
Pocket Kingdom: Own the WorldN-GageHistory open
We reached Offline Play, saved through the original menu, and returned to the kingdom with Continue after a complete host restart.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
The Elder Scrolls Travels: ShadowkeyN-GageHistory open
The original room could save and reload. Opening our utility menu could still clear a physical key hold and swallow its release.
Read the history- History window
- 0.1.0 → 0.1.2
The chapter follows the records cited in its source ledger.
Crash Nitro KartN-GageHistory open
A countdown and race gave us the original inputs to follow: accelerator, brake, hop and item, alongside a separate native direction pad.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Bounce: Boing VoyageN-Gage 2.0History open
We had startup and input counters on the phone, but a black viewport. The package was missing a resource directory that included eight renderer shaders.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
Star Wars: The Force UnleashedN-Gage 2.0History open
We brought Bounce’s repaired environment to the original CellWeaver tutorial. Getting the keypad pattern right earned a small but very clear answer: “Good!”
Read the history- History window
- 0.1.0 checkpoint
The chapter follows the records cited in its source ledger.
Resident Evil: DegenerationN-Gage 2.0History open
Leon’s aim, fire and reload actions needed the original gaming keys. Our preparation work also had to bring the environment across without erasing saves.
Read the history- History window
- 0.1.0 checkpoint
The chapter follows the records cited in its source ledger.
Need for Speed: Carbon — Domine a CidadeZeeboHistory open
I sent the first control screen straight back. It was hard to read, and we hadn’t enabled simultaneous-pad input. A separate in-race exit fault still needed work.
Read the history- History window
- 0.1.0 → 0.1.1
The chapter follows the records cited in its source ledger.
No project matches those filters.
Try a shorter name or use Reset to show the full collection.
The rough edges
stay in the story.
This archive follows the original games, the compatibility repairs and my phone testing. We kept the failed approaches, mismatched version labels and gaps in the record alongside the things that worked.
Game code, translations, upstream runtimes and the bridge work each keep their own credit. English Lost Episode patch integration, for example, is credited to TurquoiseHammer / Yuvi.
Phone reports
Observed counters, errors and events from a recorded device session. They establish that session’s behavior, with the report’s limits.
Host and build checks
Useful evidence for code paths, compatibility, packaging and regression checks. Their scope remains separate from physical-phone acceptance.
Owner feedback
A recorded acceptance or observation belongs to the build and behavior actually tested. A later candidate keeps its own open questions.
Published evidence is selected and reviewed. Full private checkpoints and implementation material remain outside this site. This is a history archive; play and release information lives with Omni Player ↗.