Skip to content

About

A unofficial Kristal Engine launcher for Android.

Topics

Resources

Stars

10 stars

Watchers

2 watching

Forks

Latest commit

 

History

28 Commits

Folders and files

Repository files navigation

Kristal Launcher icon Kristal Launcher

Play Kristal Engine games and mods on Android device.

Android 7.0+ Kotlin 1.9.23 Material 3 Latest GitHub release

Features · Installation · Patches · Building · Support · Credits


About

Kristal Launcher is a wrapper that embeds the LÖVE2D engine to run Kristal Engine games on Android.

The launcher never rewrites the package selected by the user. Every compatibility change is made to a staged copy inside the app's private storage, so a failed patch cannot damage the original .love, .zip, or fused executable.

This was originally a study project to learn Gradle and Kotlin.

Support the project

If Kristal Launcher is useful to you, you can support its continued development:

GitHub Sponsors   Support Kristal Launcher on Ko-fi   Donate to Kristal Launcher with PayPal

Tested Games

Features

  • Material 3 based design.
  • Patches to correct the compatibility of games designed for PC.
  • Download community translations matched to each game's project ID and version, or create and export your own.
  • Browse games in list or grid layouts, with search, favorites, and recent games.
  • Launch .love, .zip, and compatible fused Windows executables (.exe). Unzip is optional.
  • External patches compatible (i guess, i don't test it).
  • Portuguese, English and Spanish localization.

Known Issues

  • Virtual Gamepad settings are not universal. The gamepad is added directly to the game.
  • Some patches do not respect the settings.
  • METADATA information may not be returned.
  • Zips and patches management somewhat slow. (May takes a LOT of time to load the games, sorry)

Note

it's my first app like that, gimme a break-.

Future improvements

  • Add Kristal Runtime to non-excellable mods.

Installation

Download the newest APK from GitHub Releases and install it on a device running Android 7.0 or newer.

Note

Android may ask permission to install apps from your browser or file manager. Only install APKs downloaded from this repository's official Releases page.

After opening the launcher, select the folder that contains your Kristal games. Android grants access only to that folder, and the permission can be cleared from the app settings.

Patches

Built-in patches cover common Android differences in fullscreen behavior, GLSL ES shaders, image formats, virtual filesystems, borders, text rendering, and input. Each fix can be enabled for every game or overridden for a specific title.

See the patch authoring guide for the package format, supported operations, limits, and publishing workflow.

Note

Can I keep all patches enabled?

Yes, technically you can, patches will only act when needed (supposedly), but I wouldn't do that—I'd only enable them when necessary.

Updates

Kristal Launcher can check this repository for new releases when the app starts. Automatic checks are optional, and a manual check is available from Settings → About.

Versions follow X.Y.Z: X changes for large stable updates, Y for smaller feature updates, and Z for corrections. Every APK update must advance the appropriate number and use a greater Android versionCode. A release is offered only when its version is newer than the app's current versionName, and the launcher prefers a non-debug APK whose name contains KristalLauncher.

Building

Requirements

  • JDK 17
  • Android SDK Platform 34
  • Android SDK Build Tools 34.0.0
  • Git

Clone the repository:

git clone https://github.com/kazwtto/KristalLauncher.git
cd KristalLauncher

On Windows, create the project signing key once and build both variants:

.\create_keystore.bat
.\build_apks.bat

Finished APKs are written to the ignored artifacts/apk/ directory with versioned names:

KristalLauncher-vX.Y.Z-debug.apk
KristalLauncher-vX.Y.Z-release.apk

The keystore and credentials remain under the ignored .signing/ directory. Back them up securely; Android will only accept future updates signed with the same key.

gradlew.bat assembleDebug compiles and checks the Android layer. Distribution APKs must use the repository build scripts because they merge runtime/love2d/classes.dex, align the APK, and sign the final package.

Tech stack

Area Technology
Language Kotlin 1.9.23 and Lua
Android UI Material 3, AppCompat, XML layouts, RecyclerView
Async work Kotlin coroutines and Android lifecycle scopes
File access Storage Access Framework and DocumentFile
Runtime Embedded LÖVE2D native libraries and Java DEX
Build Gradle Kotlin DSL and PowerShell packaging scripts

Project structure

Path Purpose
app/ Android source, resources, native libraries, and Lua runtime assets
runtime/love2d/ Java DEX paired with the checked-in LÖVE2D native libraries
patches/ Patch catalog, schemas, published packages, and editable sources

Patch authors should read the patch authoring guide before creating or publishing a .klpatch package.

Project status

Kristal Launcher is under active development. Game packages and save data are important, so keep an untouched copy and report reproducible problems through GitHub Issues.

Was Generative AI used?

Yes. ChatGPT (free-tier) was used for optimization, formatting of .md files, localizations for English and Spanish, and translation of README.md and code comments from Portuguese to English.

Credits

  • Kristal Engine — the engine and mod ecosystem targeted by the launcher
  • LÖVE — the runtime used to execute games on Android
  • Pixelarticons — icons used in the DELTARUNE theme
  • kristal_rus by neofarsh — source of the Russian Kristal translation adapted as an optional patch
  • LazyDesman — translated sprites and textures used by the kristal_rus patch

Disclaimer

Kristal Launcher is an independent community project. It is not affiliated with or endorsed by the Kristal Engine team, LÖVE, Toby Fox, or the creators of games launched through it. Games, mods, names, and assets belong to their respective owners.

About

A unofficial Kristal Engine launcher for Android.

Topics

Resources

Stars

10 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages