From GameBrew

Revision as of 06:30, 10 November 2021 by HydeWing (talk | contribs)
AuthorMichael "Chishm" Chisholm
Last Updated2008
TypePC Utilities
Version10 Sept 2008

DLDI is the Dynamically Linked Disc Interface for Game Boy Advance and Nintendo DS. It works as a part of libfat to allow homebrew programs to read and write files on the memory card inserted into one of the system's slots. It has also been implemented for GBA_NDS_FAT and DSLinux.

Mostly required for homebrew programs to implement save/load features and record high scores for different flashcarts.

User guide

Supprted cartridges

DLDI support is defined as, at a minimum, the ability to patch a .nds file for a specific cartridge. Virtually all cartridges support DLDI either officially or via third-party intervention. Most cart developers have advanced beyond manual DLDI patching in various ways, such as automatic DLDI patching. Some carts that are compatible with the interface include the following:

EZ-Flash IV
EZ-Flash V
G6-Flash (Lite)
M3 Adapter (CF)
M3 Adapter (SD)
Max Media Dock
GBA Movie Player (CF)
GBA Movie Player (SD)
NEO flash MK2 & MK3
Ninja DS
NinjaPass X9
M3 DS Simply
Supercard (CF)
Supercard (SD)
Supercard Lite
Supercard DS One

DLDI patches for different flashcarts are available from the official site.

DLDI Device patches

DeviceDownloadSourceAuthorRead/WriteTested?ManufacturerLast ModifiedNotes
Default (No device)DLDISRCChishm-/--Chishm2007-01-12
CycloDS Mini/MicroDLDI---Team CyclopsR/WNoCycloDS2007-06-25
Datel Games 'n' MusicDLDI v1SRCChishmR/WYesDatel2007-07-04Slower but more compatible
DLDI v2SRCChishmR/WYes2007-07-05Faster but requires an SDHC card, see this gbadev forum thread
DSLink (microSD Card)DLDI v1SRCRudolph (ported by Lick)R/WFailedDSLink2006-12-26
Moonshell DLDI---MoonLightR/?Yes2006-12-30Moonshell version
DLDI v3SRCDiddlR/WYes2007-03-02This version does not work in DSLINUX because of an swiDelay() call. There is a bug that makes writes unpredictable.
DLDI v4SRCAmadeusR/WYes2007-05-20Fixes the bugs present in version 3
DS-XDLDISRCDS-Xtreme TeamR/WYesDS-X2007-02-12The DS-Xtreme does a form of auto-patching
Ewin2 (SD Card)DLDISRCMoonlightR/WYesEwin flash2006-12-29
EZ Flash 4 (SD Card)DLDISRCRudolph (Original by EZ Team (aladdin))R/WYesEZ Flash2006-12-27
EZ Flash 5DLDISRCCory1942, ps2aichR/WYeshttp://www.ezflash.cn/en/default.asp EZ Flash]2008-09-10Can be used for Wireless MultiBoot, etc.
SDHC DLDISRCCory1942, ps2aichR/WYes2008-09-10Can only be used when booting up via EZ-V+. For usage in EZ-V+, copy both EZ5 drivers into the moonshl folder.
G6 Flash (version 0.19)DLDISRCvirusebR/WYesG6 Flash2007-04-12
G6 RealDLDI---G6 TeamR/WNoG6 Flash2007-07-12Also known as G6DS. This device supports automatic patching.
M3 Adapter (Compact Flash)DLDISRCChishmR/WFailM3 Adapter2007-05-05Fails read alignment test. The built-in M3CF driver works fine so this DLDI may not be needed.
M3 Adapter (SD Card)DLDISRCChishmR/WYesM3 Adapter2006-12-25
Max Media Dock (Compact Flash)DLDISRCChishmR/WYesCode Junkies2007-01-07
GBA Movie Player (Compact Flash)DLDISRCChishmR/WYesMovie Advance2006-12-25
GBA Movie Player (SD Card)DLDISRCps2aich (Original by Movie Advance)R/WNoMovie Advance2007-08-09Driver only works when the patched application is booted via the GBAMP SD itself
NEO Flash MK2 & MK3 (SD Card)DLDISRCNEO Flash TeamR/WYesNEO Flash2006-12-25
NEO Flash MK5 (NAND Flash)DLDISRCNEO Flash TeamR/-NoNEO Flash2007-02-07
NEO2 (SD Card)DLDISRCNEO Flash TeamR/WYesNEO Flash2006-12-28
DLDISRCNEO Flash Team & ChishmR/WYes2006-12-28Faster reads than version 1
Ninja DS (SD Card)DLDISRCNinjaMod teamR/WYesNinjaDS2006-12-25
Ninjapass X9DLDISRCCJ BellR/WYesNinjapass2007-10-23
R4(DS) - Revolution for DS
M3 Simply compatible
DLDI v1SRCR4DSR/WYesR4 (R4DS) - Revolution for DS2006-12-25Does not support ARM7. This device supports automatic patching.
DLDI v2SRCR4DS, modified by ChishmR/WYes2007-12-27Supports ARM7
SuperCard (Compact Flash)DLDISRCChishmR/WYesSuperCard2006-12-26
SuperCard DS (One)DLDI v0SRCSuperCard Team (ported by Lick)R/?YesSuperCard2006-12-25To use these files with the auto dldi patching feature: download the dldi, rename to dldi.bin and place it into the "scshell" folder of your microSD replacing the existing file.
DLDI v1SRCclunyR/WYes2007-05-01
DLDI v2---BarniR/WYes2007-09-14
SuperCard DS (One) SDHCDLDI v0SRCSuperCard TeamR/?FailedSuperCard2007-08-09To use these files with the auto dldi patching feature: download the dldi, rename to dldi.bin and place it into the "scshell" folder of your microSD replacing the existing file.
DLDI v1SRCclunyR/WYes2007-12-07
SuperCard (SD Card)DLDISRCChishmR/WYeshttp://eng.supercard.cn/">SuperCard]2006-12-25
Alt---MoonLightR/WYes2007-02-14Based on code from MoonShell. Works on newer Supercards that may fail with other DLDIs. Must be booted from Supercard firmware.
SuperCard Lite (SD Card)DLDISRCbrisssouR/WYesSuperCard2007-01-19
SuperCard Rumble (SD Card)">DLDI---BarniR/WYesSuperCard2007-08-28May work for other SuperCard devices that use SD cards

Patching Tools

Executable TypeDownloadLast ModifiedVersionCreatorMore Information
SourceGitHub2007-08-021.24Chishm, WinterMute, SmileyDude
Win32 CLIDownload2007-02-051.23Chishm[#dlditool dlditool CLI instructions]
Win32 GUIDownload2007-01-131.23Adam Hodson (bob_fossil) / MaximDetailed instructions
Simplified Chinese Download2007-01-131.22Translation by yeyezai
Win32 Right ClickDLDIrcSetup.exe (Web page)2007-10-170.93PsychoWood[dldirc.html">Detailed information
Linux i686 CLIDownload2007-08-021.24WinterMute[#dlditool">dlditool CLI instructions]
Linux x86_64 CLIDownload2007-08-021.24WinterMute[#dlditool">dlditool CLI instructions]
Linux GUIdeb package or source2008-04-131.0Lucas van Dijk (Sh4wn)[linuxgui.html">Detailed information]
Linux GUI (alternative)Download2007-07-151.0s0l1dsnak3123[#linuxguialt">Linux GUI (alternative) instructions]
Nautilus scriptDownload (Direct)2007-04-241.0[https://code.google.com/archive/p/quirkysoft/">Richard Quirk (Quirky)[#nautilusscript">Nautilus Script]
MacOS X CLIDownload2007-08-021.24WinterMute[#dlditool">dlditool CLI instructions]
MacOS X DLDI DropLocal copy or http://gdgts.de/dldi-drop-dldi-patcher-the-mac-way/">Jan's blog (https://web.archive.org/web/20140627165551/http://gdgts.de/dldi-drop-dldi-patcher-the-mac-way/">Internet Archive copy)
No auto-patch CLIDownload2007-08-12PsychoWood[#no_auto_patch">No auto-patch instructions]
No auto-patch GUIGUI2007-08-12Nphinity[#no_auto_patch">No auto-patch instructions]

How to use

By default, homebrew that utilizes the DLDI framework will probably work on a specific device (the one the author uses) but can be patched to work with any device listed in the devices section.

Some devices will patch the homebrew for you automatically when it is loaded. Just try the ROM to see if it works with your device. If it does, then great. If not, you will need to patch the file before transfering it to your device. In this case, after downloading the DLDI-enabled homebrew, you need to patch the .nds or .ds.gba depending on what device you are using.

First you need to download the DLDI driver patch for your device. Go to the devices section, find your device and download the .dldi file.

Next you need to obtain a patcher that can run on your computer's operating system. Go to the tools list and download your prefered tool and follow the given instructions.

Once you have patched the .nds or .gba file, you can copy it to your memory card and run it from your DS.


Alternatively you can use DLDI Right Click (DLDIrc) written by PsychoWood.

It is an automatic DLDI patching program that adds itself to your right-click menu for .nds and/or .gba files.

The programs installer includes most DLDI driver files for most flash kits, allowing you to click any .nds (and also .gba or .bin, if you wish) file within Windows and patches it with the DLDI file of your choice, without the needs to download the DLDI patch files separately.

External links