Skate 3 Mobile
Skate 3
OriginXbox 360
TechnologyNative C/C++ port (engine reimplementation)
Available forAndroid
View official projectAbout the project
Skate 3 es la tercera entrega de la serie de videojuegos Skate, desarrollado por EA Black Box y distribuido por Electronic Arts. Publicado el 11 de mayo de 2010, es la secuela del juego del 2009, Skate 2.
7 versions of Skate 3
You're viewing: Skate 3 Mobile
Skate 3 Mobilegithub.com/Buku313/Skate3-Mobile
Skate 3github.com/HelmXGaming/Skate-3-Recompiled--Work-in-Progress-
Skate 3 (Skate 3 Rust Engine)github.com/SK8-ENGINE/skate-3-rust-engine
Skate 3 (skate3-ios-setup)github.com/andrewnakas/skate3-ios-setup
Skate 3 androidgithub.com/andrewnakas/skate3-android
Skate 3 Portgithub.com/darchap/Skate3-Port
Skate 3 Recompiledgithub.com/mchughalex/skate3recompOfficial project information
SKATE 3 MOBILE, DEV IN PROGRESS!
<p align="center"> <a href="https://buku313.github.io/Skate3-Mobile/"><strong>OPEN THE SKATE 3 MOBILE WEBSITE</strong></a> · <a href="https://github.com/Buku313/Skate3-Mobile/releases/latest/download/Skate3-Mobile-Android.apk"><strong>DOWNLOAD THE ANDROID APK</strong></a> · <a href="https://buku313.github.io/Skate3-Mobile/updates.html"><strong>UPDATES</strong></a> · <a href="https://github.com/Buku313/Skate3-Mobile/issues/new?template=bug_report.yml"><strong>REPORT A BUG</strong></a> </p> <p align="center"> <img src="docs/skate3-android-cover.png" alt="Android mascot skateboarding in front of the Skate 3 logo" width="100%"> </p>Skate 3 running as native ARM64 code on Android through static recompilation. This is not an Xbox 360 emulator.
The current release is a developer build. The Android port is experimental, but it is playable on the Anbernic RG406V. It uses the native Vulkan renderer from Skate3Recomp with Android input, audio, storage, performance profiles, and handheld tuning added in this fork.
No retail game files are included. You must provide your own legally obtained copy of Skate 3. The phone installer obtains and verifies the supported Title Update 3, with a manual file-selection fallback if its download is unavailable.
Players: start here
You do not need a computer, developer tools, or an ISO extraction app.
- Download the latest signed Android APK.
- Install it and open Skate 3 Mobile.
- Tap Select My Skate 3 ISO and choose an ISO dumped from your own copy.
- Keep the app open while it extracts and verifies the game.
- Tap Play Skate 3.
Requirements: Android 13 or newer, ARM64, Vulkan, and about 8 GiB free after the ISO is already available. A multitouch controller is built in for phones. Physical and built-in gamepads remain supported. The first verified device is the Anbernic RG406V. This is experimental software, so other phones may need testing and tuning.
Starting with v2.0.8, the launcher checks for signed updates automatically. It downloads and verifies the new APK inside the app. Android still asks you to approve the installation, but you do not need to return to GitHub or reinstall your game files.
QA and developer users on older builds: install the matching v2.1 APK once, without uninstalling. From v2.1, each package has its own update channel. QA Build installs separately from the main app.
The original skater is selected by default. Seiyu Paradise Penguin is included in the APK and remains optional. In game, press RB + Start, open Mods, and switch between Original Skater and Seiyu Paradise Penguin instantly. The verified Mod Store remains available for community characters.
How it works and how it was developed
This project is a fork of Alex McHugh's Skate3Recomp, not a new port made from scratch. The upstream Git history and authorship are preserved.
The build uses these methods:
- The user supplies an extracted retail
default.xex, the EAWebKit XEX, and Title Update 3. A local build step prepares the updated executables and patch files. - The rexglue code generator statically translates the configured Xbox 360 PowerPC guest functions into native code. Android Clang then compiles and links that generated code as ARM64 libraries with the rexglue compatibility runtime. The finished game logic runs as native AArch64 rather than through a conventional CPU emulator.
- Runtime hooks observe the game's mesh submissions, textures, shader state, constants, and frame data. The custom native scene renderer reconstructs that work with Vulkan shaders instead of directly running the original Xbox 360 graphics pipeline.
- SDL3 supplies the Android window, physical controller, and audio integration.
A native XInput bridge merges the optional multitouch overlay into player
one, including in the recomp menu. The phone installer reads the user's ISO
through Android's system file picker, extracts it locally, verifies the
supported executables, installs the exact Title Update 3 payload, and stores
the result in private app storage. Older
/sdcard/skate3installations remain supported. - The launcher checks a small manifest hosted by this repository, compares the version code, verifies the downloaded APK with SHA-256, and hands it to Android's package installer. Android also enforces the existing app-signing certificate. Updates never replace the extracted game directory.
- The handheld profile lowers scene resolution and draw distance, simplifies materials, removes grass and costly post effects, reduces selected static rendering work, and uses native occlusion and frame pacing. Physics, player input, the board, menus, and HUD remain full-rate. The quality profile keeps substantially more of the native renderer enabled for faster devices.
Reverse engineering in this project uses executable analysis, function and shader disassembly, runtime logging, graphics captures, targeted hooks, and repeated testing on real hardware. Development and documentation in this fork have also been assisted by OpenAI Codex, with human review and input the whole way through.
The repository does not distribute retail executables, assets, Title Update data, or generated game code. Those inputs and generated outputs stay local to the person building the project. This is experimental research software, and a 60 FPS setting is a target and guest cap, not a performance guarantee.
Current status
- Boots into the game
- Menus and controller input work
- Optional multitouch controller for phones
- Verified in-app APK update checks
- In-app GitHub bug reports with privacy-safe device and crash diagnostics
- Gameplay and tricks work
- Native Vulkan rendering works
- Experimental rootless custom Turnip drivers hidden under Advanced Options
- 4 KB and 16 KB Android memory pages are supported
- Saves and game data load from Android storage
- RG406V performance profile included
- High-end Android quality profile included
- Seiyu Paradise Penguin included, with the original skater selected by default
- Experimental direct-IP free-skate ghost included and disabled by default
This is still early. Expect visual bugs, missing effects, device-specific problems, and performance differences between phones.
Device requirements
- Android 13 or newer
- ARM64
- ARMv8.2 with FP16 and dot-product support
- Vulkan support
- Touchscreen, physical controller, or built-in gamepad
The RG406V with the Unisoc T820 and Mali-G57 is the first verified device. Newer Snapdragon and Adreno devices are good candidates, but they have not all been tested.
Graphics profiles
The same APK includes both profiles.
RG406V / Performance
- 512x288 internal 3D scene
- Full-resolution menus and HUD
- Reduced world and LOD range
- Simplified materials
- Grass and expensive post effects disabled
- 60 FPS guest cap
High-End / Quality
- 1280x720 internal 3D scene
- Original world and LOD range
- Vegetation and full material layers
- 2x MSAA
- Shadows, SSAO, bloom, and volumetric lighting
- 60 FPS guest cap
Open the recomp menu with RB + Start. Go to Video, select Android Device Profile, then use Apply & Restart.
Optional Turnip drivers
Snapdragon / Adreno users can open Advanced Options > GPU driver experiments in the Android launcher and import an AdrenoTools-compatible driver ZIP. The package is checked before it is copied into private app storage. Importing a driver does not enable it. Skate 3 Mobile validates the ADPKG metadata, Android API requirement, archive paths, size limits, and ARM64 shared libraries.
The driver applies only to Skate 3 Mobile and does not require root. No custom driver is bundled or downloaded by this project. System Driver remains the default and is always available as the recovery option. If the game works on the System Driver, do not change this setting. If Turnip makes the game crash, reopen Advanced Options and select System Driver before playing.
Turnip is for Adreno GPUs. Mali devices such as the RG406V remain locked to the System Driver. Driver packages are device-specific and experimental, so a newer package is not automatically a better package for every phone.
Game data
Phone-only setup
No laptop, command line, ISO extractor, or Android file manager is required:
- Install the Skate 3 Mobile APK.
- Open it and choose Select My Skate 3 ISO.
- Pick an ISO dumped from your own supported Xbox 360 copy.
- Keep the app open while it extracts about 6.0 GiB and downloads the verified 1.7 MiB Title Update 3.
- Press Play Skate 3.
The ISO is read directly from Downloads, an SD card, or a USB drive through the Android file picker. It is never modified or uploaded. The extracted game stays inside this app's storage. You can delete the ISO after setup if you do not need it on the phone.
Allow about 8 GiB of free device storage for the installed game. If the ISO is also copied to internal storage, temporary total use can be about 15 GiB until you remove the ISO. Uninstalling the app removes its app-owned game files, so keep your original dump.
The installer accepts the currently supported USA/Europe retail executables and checks them with SHA-256 before launch. If the automatic title-update download is unavailable, it offers a button to select your own Title Update 3 package.
Existing tester installs in /sdcard/skate3 are detected and still work when
the app already has Android's All files access permission.
Full setup, storage, and developer build details are in android/README.md.
Build
You need Android SDK 35, Android NDK r27c, JDK 17 or newer, CMake, Ninja, Clang, your extracted game dump, and Title Update 3.
Personal custom build without Terminal
On an Apple Silicon Mac:
- Install and open Android Studio once.
- Double-click
Setup Build Tools.command. - Double-click
Build Skate 3 Mobile.commandand choose your game files.
The Mac builder is only needed to make a fresh personal APK or modify native code. Normal players can use the phone-only setup above. The builder can create the APK by itself or build, install, and copy the game to a connected Android device. See the complete non-coder build guide.
One-command build
Put the extracted game in game/ and the Title Update 3 package at the
repository root, then run one command:
git clone --recursive https://github.com/Buku313/Skate3-Mobile.git
cd Skate3-Mobile
./build-android.sh
The script detects Android Studio's SDK, NDK, and Java installation, generates the recompiled code, builds the native libraries, and builds the APK. Custom game and title-update locations are also supported:
./build-android.sh \
--game-dir /path/to/extracted-skate3 \
--title-update /path/to/title-update-package
The finished APK is written to out/Skate3-Mobile-Android-debug.apk. Add
--install to install it on a connected Android device, or --stage-game to
install the APK and copy your game data. The complete manual build and device
setup are documented in android/README.md.
SEIYU PARADISE PENGUIN MOD
Seiyu ships inside the Android APK and is restored automatically if its files are missing. The original skater remains the default. The catalog, manual download, and verified source assets are published on the Mod Store website. The files are stored under the active game install:
mods/penguin/base.obj
mods/penguin/texture_diffuse.png
Choose Seiyu from RB + Start > Mods > Playable Character. The mod rigs Seiyu to the live skater skeleton and keeps the skateboard visible.
Creators can submit an original custom character for testing and possible inclusion in the verified Mod Store. Submissions must include redistribution permission and may not contain retail Skate 3 assets.
Credits
Alex McHugh, mchughalex
Alex McHugh created and maintains the upstream Skate3Recomp project and the Skate-specific rexglue runtime. His work is the foundation of this project, including the static recompilation pipeline, native renderer, game integration, settings, tools, and a huge amount of reverse engineering. The original commits and authorship are preserved in this repository.
Andrew Nakas and AlanConstantino
Andrew Nakas and contributors developed the runtime, audio, rendering, and Android lifecycle fixes brought into v2.1. AlanConstantino integrated that work and tested it on the Retroid Pocket 6 in PR #123. Thank you both. Source provenance and test details are in the integration notes.
Buku313 / Antonio Seevers
This fork contains the Android ARM64 port, SDL Android integration, RG406V bring-up and optimization, Android graphics profiles, the Seiyu Paradise Penguin Mod, and the experimental free-skate networking work.
Projects used
See third-party notices for applicable license texts.
Thank you to everyone whose Xbox 360 research, testing, bug reports, and open source work made this possible.
Legal
This is an unofficial fan project. It is not affiliated with Electronic Arts, Black Box, Microsoft, Google, or the Android project.
Skate 3, its characters, names, and related assets belong to their respective owners. Android is a trademark of Google LLC. This repository does not contain the game, title update, DLC, generated game code, or other copyrighted retail data.