Note
Community Handheld Fork Notice: This repository is a community-driven fork maintained by dmillerzx focused on physical Android gaming handhelds — actively maintained and verified on the Retroid Pocket 5 (Qualcomm Snapdragon 865, Adreno 650, Android 13) and generic AArch64 devices.
- Upstream Android port by @AurelioB (originally developed and tested on the AYN Thor dual-screen handheld).
- Desktop releases and core recompilation by N64: Recompiled.
- No Game Assets: This repository and its releases do not contain game assets or ROMs. You must provide an authentic Banjo-Kazooie (USA) v1.0 ROM (
.z64).
- High-framerate and widescreen support from the PC version.
- Faithful audio and original game behavior.
- Modern quality of life features such as note saving.
- Full mod support, including local mod and texture-pack import.
- Primary Test Device: Actively maintained and verified on the Retroid Pocket 5 (RP5) (Qualcomm Snapdragon 865 / Adreno 650, Android 13) at native 1080p, locked 60 FPS in 16:9 widescreen presentation.
- Physical Controls: Tuned controller mapping including modern dual-trigger crouch multi-bind (
ZL+L1). - Adreno 650 / Snapdragon 865 Crash Guard: Null-pipeline SPIR-V guard preventing driver
SIGSEGVfaults on Qualcomm devices. - Turnip GPU Driver Loader: Built-in AdrenoTools driver loader supporting Mesa Turnip drivers (e.g. Turnip v24.3.0 R9v2) for enhanced Vulkan stability.
- Zero-Touch ROM Hydration: Automatically searches
/storage/*/ROMs/n64/and app files on launch, extracting.ziparchives and verifying ROM headers so the game is ready to play immediately. - Header Inspection Dialog: Detects unsupported revisions (e.g. Rev A / v1.1) and displays a clear explanation dialog rather than failing silently.
- (Note: Upstream project was originally developed and tested on the dual-screen AYN Thor).
The Android settings include a Save Management page for importing and exporting the active Banjo-Kazooie save and selecting an Android DocumentsUI folder for synchronized storage. The game keeps an app-private runtime copy for native I/O; when a folder is selected, its banjo-kazooie.bin document is authoritative across launches and the app writes a safe snapshot back when it pauses.
Selecting an empty destination copies the existing save into it. A destination containing a recognized Banjo save or backup is never overwritten automatically; import that file explicitly if it should replace the active save. See Android save storage for backup and failure behavior.
On supported devices, the second screen becomes a live companion display, including:
- Double tap to toggle secondary display on/off.
- Animated icons for game status and collectibles.
- Dynamic backgrounds based on the current game area.
- Live gameplay stats such as health, lives, notes, eggs, feathers, Jiggies, Mumbo tokens, Jinjos, and level context.
- Smooth transitions between areas.
| Label | Primary display | Secondary display |
|---|---|---|
| Main menu | ![]() |
![]() |
| Slot select | ![]() |
![]() |
| Gruntilda's lair | ![]() |
![]() |
| Mumbo's Mountain | ![]() |
![]() |
So far, I've only tried the BK Reloaded texture pack Please report if you find an incompatible mod
For Android setup, build commands, ADB verification, screenshot capture conventions, and artifact hygiene, see docs/android-port.md.
For the experimental dual-screen implementation details, see:
- Android dual-screen companion display API
- Dual-screen ownership boundaries
- Dual-screen transition findings
This Android port is based on Banjo: Recompiled. See README.original.md for the original project overview, desktop feature list, FAQ, and upstream acknowledgements.
Core upstream projects include:







