Skip to content

About

Bachata S4 releases, compatibility reports, and public community portal

Topics

Resources

Contributing

Security policy

Stars

274 stars

Watchers

17 watching

Forks

Latest commit

 

History

17 Commits

Folders and files

Repository files navigation

Bachata S4 logo

Bachata S4

Experimental PlayStation 4 emulation for ARM64 Android devices.
Powered by shadPS4, FEX, a managed Linux runtime, and Vulkan.

Important

This is the Bachata S4 release repository. It hosts releases, compatibility information, documentation, and community coordination; it is not the maintained emulator core source repository.

The maintained emulator core fork has moved to zenithblue-oss/shadps4-arm64. Core source development and contributions belong in that repository.

Bachata S4 Google Play version Latest GitHub release GitHub release downloads Join Bachata S4 on Telegram

Live compatibility database Android 12 or newer ARM64 GPL-2.0-or-later

Compatibility · Game compatibility discussions · App issues · Releases · Build guide · Compatibility data · Support / Donate

Important

Bachata S4 is experimental software.

Compatibility and performance can vary significantly by game, emulator release, device, Android version, thermal state, and selected graphics driver. A game reaching gameplay on one configuration does not guarantee that it will work on another.

Bachata S4 does not distribute games, firmware, decryption keys, licenses, or other copyrighted console files. You must provide and use only software and content that you legally own or are otherwise legally entitled to use.


What is Bachata S4?

Bachata S4 adapts the shadPS4 emulator for modern ARM64 Android devices. It combines:

  • the shadPS4 emulator core;
  • FEX-based x86-64 guest execution on ARM64 hardware;
  • a reproducibly built, managed Debian/glibc runtime;
  • Android display, audio, input, and lifecycle integration;
  • Vulkan rendering through a compatible system driver, Mesa Turnip, or another explicitly selected custom driver;
  • a mobile game library, per-game settings, touch controls, and physical-controller support.

The Android frontend is located in android/BachataS4. Runtime inputs and pinned upstream revisions are maintained under runtime/locks.


🎮 Game compatibility

Compatibility is evidence-based and specific to the exact emulator release, device, GPU, Android version, guest backend, and graphics driver used by the tester.

The live source of truth is the Bachata S4 compatibility website. Structured report data, screenshots, and compressed logs are maintained separately in JICA98/Bachata-S4-Compatibility.

Current snapshot: 9 tested games — 6 In-game · 1 Menus · 2 Boots

Screenshot Game Serial Status Latest recorded result Compatibility / discussion
Bloodborne screenshot Bloodborne CUSA00900 🟢 In-game Reaches controllable gameplay in Hunter's Dream. Recorded Turnip test averaged 21.03 FPS, with 17–30 FPS observed during gameplay. Live report · Issue #100
Dark Souls Remastered screenshot Dark Souls: Remastered CUSA08692 🟢 In-game Reaches controllable gameplay in Undead Asylum at roughly 24–30 FPS on the recorded Turnip configuration. Live report · Issue #101
Sonic Mania screenshot Sonic Mania CUSA07023 🟢 In-game Reaches Green Hill Zone Act 1 at ~60 FPS in the recorded Vortek test. Live report · Issue #102
Sekiro screenshot Sekiro: Shadows Die Twice CUSA13801 🟢 In-game Reaches controllable gameplay in the opening Ashina Reservoir area; recorded gameplay runs roughly 19–30 FPS with heavier dips. Live report · Issue #103
Dragon's Crown Pro screenshot Dragon's Crown Pro CUSA10454 🟢 In-game Reaches controllable dungeon gameplay at about 60 FPS in the recorded OnePlus 13 / Turnip gen8 v3 test. Live report · Issue #106
TMNT Mutants in Manhattan screenshot Teenage Mutant Ninja Turtles: Mutants in Manhattan CUSA01843 🟢 In-game Reaches controllable stage gameplay at a locked 30 FPS in the recorded OnePlus 13 / Turnip gen8 v3 test. Live report · Issue #107
Crash Bandicoot N. Sane Trilogy screenshot Crash Bandicoot N. Sane Trilogy CUSA07399 🟡 Menus Reaches the title screen at about 30 FPS, but the recorded test could not advance to the main menu or gameplay. Live report · Issue #104
Galak-Z screenshot Galak-Z CUSA03146 🟠 Boots Boots and renders frames, but remains on a dark boot frame and does not reach the title screen. Live report · Issue #105
SnowRunner screenshot SnowRunner CUSA17425 🟠 Boots Reaches a rendered title screen at roughly 15–20 FPS, but the screen is static and does not respond to input; menus were not reached. Live report · Issue #108

Note

In-game does not mean fully playable. It means controllable gameplay was reached in at least one recorded configuration. Completion, long-session stability, correct rendering, audio, input, and performance may still have major problems. FPS values above describe specific recorded tests and are not performance guarantees for other devices.

Click any thumbnail or Live report link to open the underlying compatibility page.

Status Confirmed titles
playable 0
ingame 6
menus 1
boots 2
nothing 0

Status meanings

Status Meaning
Playable Suitable for normal play in the tested configuration, with no major blocker found.
In-game Reaches controllable gameplay, but completion and full stability are not verified.
Menus Reaches menus or title screens but not controllable gameplay.
Boots Starts and produces meaningful output before an early blocker.
Nothing Crashes, hangs, or fails to produce useful output in the tested configuration.

How the Android runtime works

flowchart LR
    A["User-owned PS4 homebrew or legal dump"] --> B["Bachata S4 Android frontend"]
    B --> C["shadPS4 emulator core"]
    C --> D["FEX x86-64 → ARM64 guest execution"]
    C --> E["Managed Debian / glibc runtime"]
    C --> F["Vulkan rendering"]
    F --> G["Android system Vulkan driver"]
    F --> H["Selected Mesa Turnip or custom driver"]
    F --> K["Vortek transport over the system Vulkan driver"]
    B --> I["Touch controls / physical controller"]
    B --> J["Android display, audio and lifecycle integration"]
Loading

Every compatibility report records the active backend and driver. Performance from one phone or driver must not be generalized to every Android device.


Features

  • PS4 emulation frontend designed for ARM64 Android
  • shadPS4 core integrated with an Android-focused runtime
  • FEX guest execution for x86-64 workloads
  • Vulkan rendering through system, Turnip, or selected custom drivers
  • Vortek-based Vulkan integration paths
  • Game library with cover artwork and metadata
  • Per-game settings and graphics-driver selection
  • Configurable touch controls
  • Physical-controller mapping
  • Session logs and diagnostic export
  • Release-, device-, and driver-specific compatibility reports
  • Screenshot- and log-backed public testing workflow
  • Google Play and source-built distribution paths
  • Open-source code under GPL-2.0-or-later

Requirements

Item Requirement
Operating system Android 12 or newer — API 31+
CPU architecture arm64-v8a
Graphics Vulkan-capable GPU and compatible driver
Recommended hardware Recent high-end Snapdragon/Adreno device
Storage Sufficient space for the app, runtime, shaders, and user-provided content
Content User-owned homebrew or legally dumped software only

Compatibility can differ substantially between devices that appear similar. Check reports from the same SoC, GPU generation, Android version, and driver family whenever possible.


Download

Google Play — recommended

The supported Google Play build is the easiest installation path and directly supports continued development, device testing, and compatibility work.

Install Bachata S4 from Google Play

GitHub

Source-linked project builds, release notes, checksums, and downloadable artifacts are available under GitHub Releases.

Note

The GitHub download badge counts GitHub release assets only. It does not include Google Play installations.


Quick start

  1. Install Bachata S4 from Google Play or a trusted project release.
  2. Open the app and complete the initial runtime setup.
  3. Select the graphics driver appropriate for the device.
  4. Import user-owned homebrew or a legally dumped title.
  5. Launch the title and allow initial shader or pipeline compilation to complete.
  6. Compare the result with the live compatibility database.
  7. When reporting a problem, include the Bachata S4 release, phone, Android version, selected driver, reproduction steps, and sanitized session log.

Bachata S4 does not provide PS4 games, firmware, licenses, decryption keys, or copyrighted system files.


Graphics-driver policy

Turnip drivers are not bundled inside the APK. They are installed after application setup from the project’s trusted driver feed or imported from a local compatible ZIP.

The exact driver name, version, build, and source must be recorded in compatibility reports. A filename, Vulkan API version, Android version, or GPU model is not a substitute for the actual Turnip version.

See documents/android-building.md for the maintained runtime and packaging rules.


Compatibility data architecture

The website frontend remains in this repository, while compatibility evidence is stored in the dedicated data repository:

JICA98/Bachata-S4
├── compatibility-site/                  # Static frontend
├── scripts/compatibility/               # Capture helper
├── .agents/skills/bachata-compatibility/
└── .github/workflows/compatibility-pages.yml

JICA98/Bachata-S4-Compatibility
├── games/
│   └── CUSAxxxxx/
│       ├── game.json                    # Stable title metadata
│       └── reports/
│           └── <immutable-report>.json  # One file per test
├── assets/
│   └── CUSAxxxxx/<report-id>/
│       ├── screenshots/
│       └── logs/
└── scripts/
    ├── validate.py
    └── build_site_data.py

The homepage loads a compact generated index grouped by CUSA ID. Full history is loaded only when a user opens a title, preventing duplicate cards and keeping the site responsive as reports grow.


Submit a compatibility report

Use .agents/skills/bachata-compatibility/SKILL.md for the complete agent workflow.

The workflow:

  1. Searches for or creates one canonical game issue in JICA98/Bachata-S4.
  2. Creates a dedicated branch and Git worktree for Bachata-S4-Compatibility.
  3. Selects the exact ADB device, Bachata release, and graphics driver.
  4. Launches the title and captures screenshots, logs, device data, and performance evidence.
  5. Adds a new immutable report without overwriting previous results.
  6. Shows the proposed report and screenshots to the tester.
  7. Publishes the compatibility pull request only after explicit tester confirmation.
  8. Updates the canonical main-repository issue and embeds representative screenshots in the issue conversation.

A useful report includes:

  • official Bachata S4 release tag and exact commit;
  • CUSA serial and game/update version;
  • exact phone model, SoC, GPU, RAM, and Android version;
  • guest backend;
  • graphics-driver type, exact version, build, and source;
  • the furthest status actually observed;
  • clear reproduction notes and known problems;
  • representative screenshots;
  • sanitized compressed session logs;
  • FPS measurements only when the sampling method is recorded.

Build from source

The open-source emulator client and ARM64 core are available from the ARM64 client source. The high-level requirements and build flow below describe the Android build.

Current high-level requirements include:

  • Linux or WSL2 x86-64
  • JDK 17+ and Node.js 20+
  • Android SDK platform/build-tools 37
  • Android NDK 30.0.14904198
  • CMake 3.22.1
  • Ninja
  • Debian/Ubuntu runtime build dependencies

High-level build flow:

git submodule update --init --recursive --jobs 8
runtime/scripts/build-runtime-debian.sh
node runtime/tests/verify-runtime.mjs runtime/locks/components.lock.json
node runtime/tests/verify-no-bundled-turnip.mjs runtime/build/rootfs

cd android/BachataS4
./gradlew clean test lintDebug assemblePlaystoreDebug

Do not copy commands from old releases or third-party guides without checking the maintained Android build document.


Project status

Bachata S4 is not a finished or universal PS4 emulator. A title may:

  • fail before rendering;
  • reach only menus or partial gameplay;
  • have missing graphics, audio, or input;
  • run slowly on current mobile hardware;
  • behave differently across Android versions or drivers;
  • regress or improve between emulator releases;
  • require game-specific emulator work.

Public compatibility testing helps determine whether a blocker belongs to guest execution, kernel/HLE behavior, graphics, audio, input, runtime packaging, or Android integration.


Issues and contributions

Before opening a new game discussion, search for its exact CUSA ID. One canonical issue is used per game so that reports from different releases, phones, and drivers remain in one conversation.


FAQ

Does Bachata S4 include PS4 games?

No. Bachata S4 includes no games or copyrighted console content. Users must provide software they legally own or open-source homebrew.

Does “In-game” mean a title is fully playable?

No. It means controllable gameplay was reached in a specific recorded environment. Check the report’s notes, screenshots, device, driver, and emulator release.

Why can the same title behave differently on two phones?

CPU generation, GPU, Android version, available memory, graphics driver, thermal limits, and emulator release can all affect behavior.

Which devices are recommended?

Recent flagship Snapdragon devices with Adreno GPUs are currently the most practical testing targets, but no device guarantees compatibility.

Where should Bachata S4 be downloaded?

Google Play is the recommended supported installation. GitHub Releases provide source-linked project builds and checksums.


Legal

Bachata S4 is an independent open-source project and is not affiliated with, endorsed by, or sponsored by Sony Interactive Entertainment.

“PlayStation” and related marks are trademarks of their respective owners. Bachata S4 does not distribute games, firmware, keys, licenses, or copyrighted system components.

Use only software and content you have the legal right to run.


Credits

  • shadPS4 developers and contributors — emulator core
  • FEX-Emu developers and contributors — x86-64 guest execution
  • Winlator, Vortek, Box64, Mesa, Vulkan, GNU, and other runtime projects listed in NOTICE.android-runtime.md
  • Everyone submitting reproducible reports, screenshots, logs, fixes, and testing feedback

License

Bachata S4 is licensed under GPL-2.0-or-later. Third-party runtime components retain their respective licenses; see NOTICE.android-runtime.md.


Support / Donate

If you find Bachata S4 useful and would like to support ongoing development, donations are welcome:

Donate Bitcoin

Method Address / Identifier
Bitcoin (BTC) bc1q9zc0nxypk0lugjrst7hrqmlarvvk848rpxjepy
Tether (USDT) jicaetzc81@tether.me

Help push PlayStation 4 emulation on Android forward.
Install responsibly. Test carefully. Share evidence. Improve compatibility.

About

Bachata S4 releases, compatibility reports, and public community portal

Topics

Resources

Contributing

Security policy

Stars

274 stars

Watchers

17 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors