Skip to content

Track: Distribute the libretro core via RetroArch Online Updater > Core Downloader #13

Description

@AloysHF

Goal

Make the DingooEmu libretro core installable directly from RetroArch via Online Updater > Core Downloader, following the libretro "Add your core to Libretro infrastructure" guide.

Status: 🎉 Complete

All steps have been completed! The DingooEmu core is now available via RetroArch Online Updater > Core Downloader.

Checklist

  • Step 1 — Core info file merged into libretro-super dist/info (PR #2042 — merged)
  • Step 2a — Buildbot recipe present in this repo, using the official Rust CI templates (commit f301177)
  • Step 2b — Buildbot registration by the Libretro team (Issue #2043 — closed)
  • Step 4 — Documentation merged into libretro/docs (PR #1172 — merged)
  • Verification — Core downloads and loads successfully via Online Updater > Core Downloader

Pull requests

Step Repository PR Status
Core info file libretro/libretro-super #2042 ✅ Merged
Buildbot recipe jiangxincode/DingooEmu f301177 ✅ Merged
Buildbot registration libretro/libretro-super #2043 ✅ Closed
Core documentation libretro/docs #1172 ✅ Merged

Buildbot recipe (current approach)

DingooEmu is written in Rust, so the recipe uses the official Rust CI templates from libretro-infrastructure/ci-templates. These run cargo build --release --target <triple> and rename the produced cdylib to dingooemu_libretro.<ext> themselves.

Key points of the current .gitlab-ci.yml:

  • Uses rust-windows-x64, rust-linux-x64, rust-apple, rust-android-jni, and rust-webos templates with CORENAME: dingooemu.
  • The cdylib lib target is named dingooemu (not dingooemu_libretro), because the templates append the _libretro suffix themselves.
  • The workspace default-members is set to the libretro core so a bare cargo build only builds the core, not the standalone GUI binary (which needs X11/ALSA and would break on cross-compile images).

Build matrix covered by the recipe

Platform Rust target
Windows x64 x86_64-pc-windows-gnu
Linux x64 x86_64-unknown-linux-gnu
macOS x64 x86_64-apple-darwin
macOS arm64 aarch64-apple-darwin
Android arm64-v8a / armeabi-v7a / x86 / x86_64
iOS aarch64-apple-ios
tvOS aarch64-apple-tvos
webOS armv7a

Core info file (current values)

dist/info/dingooemu_libretro.info (repo and upstream in sync):

  • corename = "dingooemu", display_name = "Dingoo A320 (DingooEmu)"
  • categories = "Emulator"
  • supported_extensions = "app"
  • manufacturer = "Ingenic", systemname = "Dingoo A320", systemid = "dingoo-a320"
  • needs_fullpath = "true"
  • core_options = "true" (implemented)
  • savestate/cheats = "true" (implemented)
  • is_experimental = "false" (core shows in Core Downloader without enabling "Show experimental cores")

Documentation

Documentation PR #1172 includes:

  • Core documentation page: docs/library/dingooemu.md with background, extensions, features table, core options, joypad mappings, memory regions, and external links
  • mkdocs.yml: Added "Dingoo Emulation" navigation entry (alphabetically after DOS Emulation, before Emerson)
  • Core list: Added DingooEmu row in docs/guides/core-list.md
  • Licenses: Added BSD-3-Clause entry in docs/development/licenses.md

Buildbot recipe history

  • Added .gitlab-ci.yml with official Rust CI templates for cross-platform builds
  • Updated crates/dingooemu-libretro/Cargo.toml — Changed lib target name from dingooemu_libretro to dingooemu to match CORENAME (CI templates automatically append _libretro suffix)
  • Updated crates/dingooemu-libretro/dingooemu_libretro.info — Set is_experimental = "false"

Build verification

The core has been verified to:

  • Download via RetroArch Online Updater > Core Downloader
  • Appear as "Dingoo A320 (DingooEmu)" in the core list
  • Load .app game files correctly
  • Support save states, cheats, and core options

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions