Skip to content

Releases: Karishem/Dirk

Dirk 1.1.0

Choose a tag to compare

@Karishem Karishem released this 18 Oct 11:24

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

  1. Download the APK on the device and open it. Android asks you to allow installing apps from this source the first time.
  2. Open Dirk and allow All files access when asked. Dirk reads games from shared storage.
  3. Put each game in its own folder under Dirk/Games/ on the device, exactly as on the PC (for example Dirk/Games/Timegal/Timegal.zdirk with its Movie/ 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/, in Video/, 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.0 tag (commit 68b027d). The APK was built from that exact tree with tools/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.1 at commit 17638a3a3cbd2e3f8098ee091669fa854453ef9e;
    • 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

Choose a tag to compare

@Karishem Karishem released this 18 Oct 11:13

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 .dirk game or a zipped .zdirk game.
  • 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 .dirk or .zdirk file starts the game.
  • The Dirk Downloader (Start menu) can fetch games.
  • Wizard.exe, in the install folder, opens the create mode.

Batocera

  1. With Batocera running, open \\BATOCERA\share from Windows Explorer. On a Steam Deck or a USB stick plugged into a PC, use the SHARE partition.
  2. Open the share folder in the zip and copy everything in it (system and roms) into Batocera's share. Windows merges the folders and deletes nothing.
  3. Put your games in share\roms\dirk\, one folder per game, for example share\roms\dirk\Timegal\Timegal.zdirk.
  4. Restart EmulationStation. A Dirk system appears.
  5. To get game artwork and the Wizard entries, run Ports → Dirk - Update games list. Run it again whenever you add games.

ArkOS

  1. Put the console's SD card in your PC and open the EASYROMS partition.
  2. Open the EASYROMS folder in the zip and copy everything in it (ports and dirk) to the root of EASYROMS.
  3. Put your games in EASYROMS\dirk\, one folder per game.
  4. 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.0 tag (commit e78c660). 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.1 branch, commit 17638a3.

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.