Repository navigation
Dirk now runs on Android. This release adds an Android app: the same Dirk engine, KimmyScript 4.1 and the Wizard, with a game launcher and on-screen touch controls.
Nothing changes on Windows, Batocera or ArkOS: for those, keep using the files from Dirk 1.0.0.
Games are not included.
Download
| File | For |
|---|---|
dirk-1.1.0-android-arm64.apk |
Android 11 or later, 64-bit ARM (arm64-v8a): phones, tablets and Android handhelds (Retroid, AYN, Anbernic Android models…). |
Tested on a Retroid Pocket 3+ and a Samsung Galaxy Z Fold.
Installing
- Download the APK on the device and open it. Android asks you to allow installing apps from this source the first time.
- Open Dirk and allow All files access when asked. Dirk reads games from shared storage.
- Put each game in its own folder under
Dirk/Games/on the device, exactly as on the PC (for exampleDirk/Games/Timegal/Timegal.zdirkwith itsMovie/folder). Then pick it in the list.
Messages from the engine go to Dirk/dirk.log.
If you installed a test build before, uninstall it once before installing this one: it was signed with a different key. Your games and KimmyScript in Dirk/ stay. Only the app's own settings (touch layout, Touch mode) are reset. From now on, updates install over the previous version.
Using it
- Touch controls. The d-pad and A B X Y are always shown; the other buttons are behind "...".
- SETUP adjusts the size, the height, the distance from the screen edges and the spacing of A B X Y.
- LOCK keeps COIN, START, L1 and R1 on screen, which is handy in the Wizard.
- With the default Touch: Auto, the touch controls hide as soon as a gamepad is used, and come back with a tap.
- Gamepads with Nintendo-style buttons (A on the right, as on Retroid devices): turn on Dirk Options > Swap A/B X/Y.
- Wizard (KimmyScript's create mode): tap the game's folder, then Wizard. The folder must contain a video: in
Movie/, inVideo/, or a Hypseus game. - Lightgun games are not supported yet.
Dirk is not on the Play Store: Google restricts the "All files access" permission it needs.
Verifying the APK
The APK is signed with the Dirk release key. Every future Android release of Dirk will use the same key.
- Certificate:
CN=Karishem, O=Dirk - Certificate SHA-256 fingerprint:
A6:FF:BD:BD:C6:45:5E:B0:2B:BA:78:50:B0:56:7A:B1:A3:48:AE:5B:92:31:2E:30:38:76:FA:EF:74:2E:AA:26 - File SHA-256:
55261525e88781f8a40a87152ecd9e7d6039bd9534cdcc919cac17c0374e51ab dirk-1.1.0-android-arm64.apk
Tools such as Obtainium or AppVerifier can check the certificate fingerprint.
Source code
- The source for this release is the
v1.1.0tag (commit68b027d). The APK was built from that exact tree withtools/build_android.sh(DIRK_UNSIGNED=1), then signed. - Build instructions are in the Android section of the README.
- Everything is linked statically into the engine (
libmain.so):- SDL3 3.4.16, SDL3_image 3.4.6, SDL3_mixer 3.2.4, SDL3_ttf 3.2.2;
- FFmpeg 7.1.5, a minimal decode-only LGPL build of
release/7.1at commit17638a3a3cbd2e3f8098ee091669fa854453ef9e; - Lua 5.1.5 from the repository.
- Android NDK 28.2.13676358.
License
Dirk, the Wizard and the KimmyScript installed with it are free software under the GNU General Public License, version 3 or later. See LICENSE.
Third-party components keep their own licenses. They are listed in THIRD_PARTY_NOTICES.txt, which the app copies to Dirk/ on the device, with the full texts in Dirk/Licenses/ (also in android/ in the source).