From WikiTemp, the GBAtemp wiki

What is DLDI? (how did it come about?)[edit]

DLDI stands for ‘Dynamically Linked Device Interface’. It is an interface for libfat that homebrew developers attached to their projects.


I’ll break it down to more understandable terms. Let’s say a homebrew developer makes a DS game where you can draw a picture and save the image to your flash cart. To save this image on the flash cart the developer would have to know the specific piece of code that allows you to write things to the cart. And if you wanted to read the image so you can edit it again you’d need access to the read capabilities of the flash cart. This forms the read/write commands which are essentially what libfat is.


There is a big problem however. Every flash cart uses different read/write commands. That would mean to get your game working on four different flashcarts you’d need to code it with all four different read/write methods. This is a big hassle for developers and flash cart owners a like. Under the old system homebrew projects that used read/write commands (FAT access) only worked on the flashcarts they were specifically coded for. As there are so many flash carts on the market many were left out because to keep your homebrew project working on 15 + different kits would be a nightmare!


Along came DLDI. This interface developed by Chishm unifies everything. It is a single interface that homebrew developers attach to their projects. The developers don’t have to worry about making their project compatible with a whole range of different carts. Instead each flashcart has a specific DLDI patch made for it which houses all the read/write commands. You would then simply patch the homebrew game or application with your cart’s DLDI patch and it will work on your cart. So if you have an R4 DS you apply the R4 DS DLDI patch to the homebrew .nds file. The beauty is that once a DLDI patch has been made for your cart it’ll be compatible with every piece of homebrew that has DLDI support.

What carts are supported?[edit]

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:


AceKard+

DSLink

DS-Xtreme

Ewin2

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

NEO2

Ninja DS

NinjaPass X9

R4 DS

M3 DS Simply

Supercard (CF)

Supercard (SD)

Supercard Lite

Supercard DS One


You can download DLDI patches from the official site.

What Homebrew games/apps do I need to patch?[edit]

Any homebrew game or application that uses FAT access and supports DLDI. Homebrew games/apps that do not read or write to your card do not need to be patched.

How do I patch my homebrew games/apps?[edit]

DLDI is either automatically patched by the cartridge software or manual patching is necessary.

Manual DLDI Patching, an Example:

  1. Download a DLDI patcher from the homepage such as a GUI version
  2. Download the appropriate DLDI patch file matching the name of the flash cart
  3. Select the DLDI file
  4. Select .nds homebrew files in the ‘binaries’ section.
  5. Click ‘Patch’

Dldipatcher.gif

Note: EZ-Flash V users will need to use a separate DLDI patcher to make DLDI work. If you have an EZ-Flash V please use this DLDI patcher. No other files are needed, simply drag and drop the homebrew onto the exe file.

External Links[edit]

Official DLDI Website

Linux DLDI Tutorial