Repository navigation
Android 2.0.0 Beta 1: Native ARM64
Android port of Bloodborne (v1.09) for Snapdragon phones (Adreno 6xx/7xx/8xx). Mali GPUs are not supported (the Mali driver is there for testing only).
Beta. 2.0.0 changes how the game runs, and it needs one extra step on a PC before the first start (the guide is below). It was tested on the AYN Thor (Snapdragon 8 Gen 2); other devices are untested with the native code. The in-app update check only offers final releases, so install this beta by hand over 1.2.0 (saves, settings, mods and the game folder are kept).
How to get the native code (Rebuild Tool)
From 2.0.0 the game runs only as native ARM64 code. You build that code once, on a PC, from your own game files, with the free Bloodborne Android Rebuild Tool. It is a translation of the game's own program, so it can never be downloaded: you must build it yourself, and you must never share the files it writes.
Rebuild Tool 1.1.0 is attached below: bb-recomp-windows-x86_64.zip (Windows) and Bloodborne-Android-Rebuild-Tool-x86_64.AppImage (Linux), with their .sha256 files. Newer versions: Rebuild Tool releases. It is free; if you paid for it, you were scammed.
Two ways in, pick the one that matches your files:
| A. From PKG files | B. From an extracted game | |
|---|---|---|
| You have | the base game PKG + the 1.09 update PKG, in one folder with nothing else | a game folder with 1.09 merged in (eboot.bin, sce_module/, sce_sys/ …), e.g. the one Install from PKG made |
| The tool writes | the whole game folder (CUSA03173) with aot/ inside |
only aot/ (your game folder is never changed) |
| You copy to the phone | the game folder (large) | aot/ (about 125 MB), next to eboot.bin |
Updating from 1.2.0 with the game already on the phone? Build from whatever you have on the PC (A or B) and copy only aot/ next to eboot.bin on the phone.
What you need: Bloodborne 1.09 with the original eboot.bin (tested with CUSA03173); a PC with Windows 10 (1903+) / 11 or Linux with glibc 2.35+, a processor with AVX2, 8 GB of free RAM and about 3 GB of free disk space (plus the size of the base game PKG for A).
Steps
- Start the tool:
bb-recomp.exefrom the unzipped folder on Windows (if SmartScreen warns, click More info → Run anyway), or the AppImage on Linux afterchmod +x(if nothing happens, run it from a terminal with--appimage-extract-and-run). - Choose the source: From PKG files → Browse… (the PKG folder), or From an extracted game → Browse… (the folder with
eboot.bin) / eboot.bin… (the file). The other row is grayed out. - Choose an empty Output folder and press Build. A checks every PKG for damage and unpacks the game first; both then compile the game's code to ARM64 (about 1 to 2 minutes on a 12-core PC).
- When it says Done: for A, copy the game folder (
CUSA03173, withaot/inside) to the phone; for B, copyaot/next toeboot.binin the game folder on the phone. USB cable, card reader oradb push. - In the app: Menu → Game folder → choose the game folder. The app finds
aot/libbbaot.so, checks it against your game and imports it by itself. Start the game (the first start takes a few minutes). Menu → Native CPU shows the state.
Command line instead of the window (on Linux pass the same arguments to the AppImage):
bb-recomp --pkgs <PKG folder> --out <output folder> # A
bb-recomp --game <game folder or its eboot.bin> --out <output folder> # B
Troubleshooting
- A PKG is damaged or incomplete: that file was not copied or downloaded completely. Get that one file again and rebuild; nothing was unpacked.
- "This does not look like a Bloodborne game folder": choose the folder that directly holds
eboot.bin,sce_moduleandsce_sys. - "This game is not supported": not 1.09, the update is not merged in, or a patched
eboot.bin. Use the original 1.09 files. - "native code is missing an entry at +0x...": the game stopped at a place the library does not cover. The app wrote
logs/aot-misses.log. Send it with Menu → Report a problem, copy the file to the PC and rebuild once with--extra-entries aot-misses.logadded to the command above. - Out of memory or the PC freezes: close other programs, or use the command line with
--jobs 4 --mem-fraction 0.4.
The native code has to be rebuilt when the app's ABI version changes (the app says so; this release uses ABI version 1, built by Rebuild Tool 1.0.0 or 1.1.0). It also has to be built from the same game build, so rebuild if you change the game files. A new phone does not need a new build.
You must build it yourself. Never share the files (libbbaot.so, the game folder): they are made from your game.
What's new
- Native ARM64 code (required). The game's x86-64 code runs only as ahead-of-time compiled ARM64 code: nothing is translated while you play, so no translation stutter in new areas and less CPU work.
- FEX removed. The x86 emulator is gone from the app: the CPU engine is 123 KB instead of 3.9 MB, and the APK is smaller. There is no emulator fallback.
- "Native code needed" screen. If the native code is missing, was built from another game build, has another ABI version or is damaged, the app shows a full-screen message with the steps, a button to the tool's page, Choose game folder and Import libbbaot.so… instead of starting the game. Menu → Native CPU is now a status and import page.
- New Game cutscene crash fixed. Two crashes at the opening movie are gone: one that happened mid-movie with frame generation on (frame generation now pauses while a movie plays), and one at the end of the movie (the movie player said the movie was over before its last frames were decoded).
- Honest error reports. When the game stops itself after an internal error (a panic), the app says so and shows the game's own message, instead of blaming missing native code.
- Button remapping for gamepads: Menu → Remap buttons.
- Controller vibration from the game (on/off in the Controls menu).
- Game language in Game settings.
- Phone-only installs: Install from PKG still extracts the game, then tells you the native code from the PC tool is still needed: build it from the same files (A or B) and copy
aot/next toeboot.bin. - Rebuild Tool 1.1.0 (attached): also builds from an already extracted game folder or its
eboot.bin(way B), writing onlyaot/.
Install / update
Install the APK by hand over 1.2.0 or older: saves, settings, mods and the game folder are kept, but you need the native code (above) before the game starts. Frame generation still needs Lossless.dll from your own copy of Lossless Scaling. No game files or Lossless Scaling files are included.
Not affiliated with Sony Interactive Entertainment, FromSoftware, Qualcomm, Valve or the developers of Lossless Scaling.