Repository navigation
Releases: Karishem/Dirk
Release list
Dirk 1.1.0
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).
Dirk 1.0.0
Dirk is a free, open-source engine for interactive movie games in the style of laserdisc arcade games. It runs KimmyScript games without Singe, on Windows, Batocera and ArkOS. Dirk is built on SDL3 and FFmpeg.
This first release includes:
- The Dirk engine. It plays games from a modern video file (MP4, MKV, AVI, MOV), as a
.dirkgame or a zipped.zdirkgame. - KimmyScript 4.1, installed with Dirk: scripts, skins, sounds and controls. This is the KimmyScript made for Dirk; it is not the one shipped with Hypseus.
- The Wizard, KimmyScript's create mode. It plays a game's movie with no game attached, so you can mark its frames with the stick and buttons and write the game sheet.
- Built-in joystick setup (F9), fullscreen (F10), bezels (F11), scanlines (F12) and volume (+/-).
Games are not included.
Downloads
| File | For |
|---|---|
DirkSetup-1.0.0.exe |
Windows 10/11, 64-bit. Installer with Dirk, KimmyScript, the Wizard and the Dirk Downloader. |
dirk-1.0.0-batocera-x86_64.zip |
Batocera on a 64-bit PC or a Steam Deck. |
dirk-1.0.0-batocera-arm64.zip |
Batocera on a Raspberry Pi 4/5 or another 64-bit ARM machine. |
dirk-1.0.0-arkos-arm64.zip |
ArkOS handhelds (RK3326 / RK3566: R36S, RG351, RGB10, RG353, RG503, RGB30…). Needs PortMaster, which ArkOS ships with. |
SHA256SUMS.txt |
Checksums of the four files above. |
The two Batocera packages and the ArkOS package are self-contained: they bring their own libraries. They work on current Batocera releases (including 43.1) and on older ones (glibc 2.29 or later).
Installing
Windows
Run DirkSetup-1.0.0.exe.
The installer is not code-signed, so Windows SmartScreen may warn you. Click More info, then Run anyway.
After installing:
- Double-clicking a
.dirkor.zdirkfile starts the game. - The Dirk Downloader (Start menu) can fetch games.
Wizard.exe, in the install folder, opens the create mode.
Batocera
- With Batocera running, open
\\BATOCERA\sharefrom Windows Explorer. On a Steam Deck or a USB stick plugged into a PC, use the SHARE partition. - Open the
sharefolder in the zip and copy everything in it (systemandroms) into Batocera's share. Windows merges the folders and deletes nothing. - Put your games in
share\roms\dirk\, one folder per game, for exampleshare\roms\dirk\Timegal\Timegal.zdirk. - Restart EmulationStation. A Dirk system appears.
- To get game artwork and the Wizard entries, run Ports → Dirk - Update games list. Run it again whenever you add games.
ArkOS
- Put the console's SD card in your PC and open the EASYROMS partition.
- Open the
EASYROMSfolder in the zip and copy everything in it (portsanddirk) to the root of EASYROMS. - Put your games in
EASYROMS\dirk\, one folder per game. - Put the card back in the console and run Ports → Dirk - Update games list. It adds one entry per game, plus one Wizard entry per game. Run it again whenever you add or remove games.
Each zip also contains a LISEZMOI.txt with more detailed instructions (in French for now).
Updating later: copy a newer zip the same way and accept to replace the files. This also replaces KimmyScript/Cfg/controls.cfg, so keep a copy first if you changed it. Your games, their settings, saves and high scores are never touched.
Source code
- The source for this release is the
v1.0.0tag (commite78c660). GitHub attaches it below as Source code (zip / tar.gz). - Every file above was built from this commit.
- Build instructions are in
README.md. - How each file was built:
- Windows: static MinGW-w64 build.
- Linux packages: built with
tools/build_linux_bundle_zig.sh. - Libraries: SDL3 3.4.16 (with the upstream KMSDRM surface-format fix for Mali GPUs), SDL3_image 3.4.6, SDL3_mixer 3.2.4, SDL3_ttf 3.2.2, and Lua 5.1.5 from the repository.
- FFmpeg: a minimal decode-only LGPL build of the
release/7.1branch, commit17638a3.
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 (SDL3, FFmpeg, Lua, miniz, FreeType, libiconv, DejaVu fonts, megatools) keep their own licenses. They are listed in THIRD_PARTY_NOTICES.txt, which is included in every download, with the full texts in Licenses/.
SHA256
e0fc99f69094b33dfe2c6cf638ab48d198c88217c36dd0b2699be47acf661d9b DirkSetup-1.0.0.exe
039ea86d631ebea3b563bae057ad5232a30fb00d797e2b5494f6c8bb9ea05036 dirk-1.0.0-batocera-x86_64.zip
a14bcc6722d25f3af1c24c625b88f6ef8268b3316de521c8f0c86b2af9dedb94 dirk-1.0.0-batocera-arm64.zip
a8774689e07ffada3e33a417f876b78b60114701e1df8104b9bede68af7f6d3d dirk-1.0.0-arkos-arm64.zip
On Windows: certutil -hashfile <file> SHA256. On Linux: sha256sum -c SHA256SUMS.txt.