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
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
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
dist/info(PR #2042 — merged)Pull requests
Buildbot recipe (current approach)
DingooEmu is written in Rust, so the recipe uses the official Rust CI templates from
libretro-infrastructure/ci-templates. These runcargo build --release --target <triple>and rename the produced cdylib todingooemu_libretro.<ext>themselves.Key points of the current
.gitlab-ci.yml:rust-windows-x64,rust-linux-x64,rust-apple,rust-android-jni, andrust-webostemplates withCORENAME: dingooemu.dingooemu(notdingooemu_libretro), because the templates append the_libretrosuffix themselves.default-membersis set to the libretro core so a barecargo buildonly 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
x86_64-pc-windows-gnux86_64-unknown-linux-gnux86_64-apple-darwinaarch64-apple-darwinaarch64-apple-iosaarch64-apple-tvosarmv7aCore 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:
docs/library/dingooemu.mdwith background, extensions, features table, core options, joypad mappings, memory regions, and external linksdocs/guides/core-list.mddocs/development/licenses.mdBuildbot recipe history
.gitlab-ci.ymlwith official Rust CI templates for cross-platform buildscrates/dingooemu-libretro/Cargo.toml— Changed lib target name fromdingooemu_libretrotodingooemuto match CORENAME (CI templates automatically append_libretrosuffix)crates/dingooemu-libretro/dingooemu_libretro.info— Setis_experimental = "false"Build verification
The core has been verified to:
.appgame files correctly