Editing DLDI

From Bibliotheca Anonoma

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
DLDI stands for dynamically linked device interface and is a method by which developers can make programs for carts with mutually incompatible drivers whereas before there would have been several builds required, the basic theory is that the code is compiled with a blank space and then the '''user''' patches this blank space for use with their cart. The EZ4 and EZ5 both have DLDI patches and their use is wholly supported by sosuke.com in place of individual libraries.
DLDI stands for dynamically linked device interface and is a method by which developers can make programs for carts with mutually incompatible drivers whereas before there would have been several builds required, the basic theory is that the code is compiled with a blank space and then the '''user''' patches this blank space for use with their cart. The EZ4 and EZ5 both have DLDI patches and their use is wholly supported by sosuke.com in place of individual libraries.


For a basic tutorial, see [[DLDI#DLDI Tutorial]].
For a basic tutorial, see [[DLDI Tutorial]].


=History=
=History=
Line 56: Line 56:


See also [[developers_page]] on this wiki.
See also [[developers_page]] on this wiki.
= DLDI Tutorial =
'''NOTE:'''This FAQ is slightly antiquated by the release of kernel 1.7, which DLDI patches for the user. Auto-DLDI patching is not perfect, some users may use kernels older than 1.7, and some users may not use the EZ-Flash V as their flash cart. This FAQ exists for that purpose.
This tutorial will teach you about [[DLDI]] patching. While all of the terminology may seem confusing at first, it isn't really that hard. This will teach users how to correctly DLDI patch. While the steps will vary for users of other operating systems, DLDI patching consists of the following:
-Obtaining a DLDI patcher.
-Obtaining DLDI compatible homebrew.
-Patching the file with the DLDI tool of choice.
-Copying the file to your SD card.
=Questions and Answers=
'''What the heck is DLDI?!?!?'''
A great explanation is on the [[DLDI]] article.
In a nutshell, many homebrew apps and emulators require access to your memory card to run properly. However, since each flash cart writes to the memory card differently, the program has to be modified to work with a specific cart. DLDI patching inserts this necessary code inside the app/emu so it can work with whatever flash cart.
'''Why does this FAQ matter? I put ''(homebrew name)'' on my cart and it worked just fine!'''
There are a couple of reasons for this.
First, not all homebrew requires DLDI. These programs do not require patching.
The second is that this FAQ was written before EZ-Flash V kernel 1.7, which added auto-DLDI patching by the card.
'''If Auto-DLDI is now a feature of the EZ-Flash V, why does this article exist?'''
There are a few reasons.
Firstly, not every EZ-Flash V user will want or bother to upgrade to the latest and greatest kernel, for whatever reason. This FAQ can help them.
Secondly, Auto-DLDI is not always perfect. Some programs may have issues and require on-computer patching, possibly with an alternate DLDI patch. This is rare, but it can happen with certain homebrew.
Thirdly, some users may be EZ-Flash users, but also want to know how to patch for flash carts that lack this relatively new feature. This FAQ can still help them.
'''Why can't the program author/hosting site/Mommy do it for me?'''
There are several reasons.
First, program authors and hosting sites do a lot of work as it is; making homebrew and hosting it requires a lot of effort.
The primary reason is the wide variety of flash carts. By putting one, ready to be patched file online, users can use the program on whatever card they want with a little effort.
Finally, some flash carts get updated DLDI files for compatibility. By putting an unpatched file for download the user can use the latest availible DLDI file for their flash cart.
'''Should I DLDI patch every ROM?'''
NO!. You should only patch files that specifically ask for DLDI patching. Patching a file that does not require DLDI will likely corrupt it.
'''I tried patching ''(insert app name here)'' and it didn't work, now what?'''
First of all, try the authors readme; many programs require accompanying files, and must be put on the flash cart in a particular way.
Rarely, it is a problem with the DLDI driver or the app itself; you can contact the author to see if it is such.
Sometimes, an app will come with Appname.nds and Appname.sc.nds; you should patch the nds file, NOT the sc.nds file, unless you are using a SuperCard flash cart. If you patch the .sc.nds file and you aren't using a SuperCard, it won't work.
'''Hey, a new DLDI driver is out for my card, should I repatch everything?'''
Generally, no.
The exceptions to this are when you have a program that would not work correctly with a previous DLDI driver, in which case you can attempt it with the new one, or for any apps from that point forward; updates are to fix compatibility, and it makes sense to use the newest possible driver.
=How to=
==Step 1: Get a tool==
Your tool will depend on your operating system. For '''Windows users''', many are availible, but the best (in the authors opinion, especially for the EZ Flash V) is DLDIrc (DLDI right click) by PsychoWood. It is extremely easy to install (to the point where it will let you know if the installer is out of date), and once installed, it is extremely easy to patch homebrew.
Also, using a fix by Cory1492, homebrew gamecodes will automatically be changed to "PASS" for EZ Flash V users. This is required for homebrew to run correctly, and using DLDIrc will save you time (you won't have to run another tool). This is no longer relevant in kernel 1.5 and above, which will take the standard homebrew gamecode of "####".
A changelist between versions can be found at the DrunkenCoders wiki [http://dldi.drunkencoders.com/index.php?title=DLDI_Right_Click#Downloads here]. You can download the latest version [http://psychowood.altervista.org/getDLDIrc.html here].
Other DLDI patchers may be used, but they may require additional steps to work.
Installation is not difficult; follow the prompts, select your flashcart, and go.
'''Mac users''' can use [http://www.blogadresse.de/2007/01/29/dldi-drop-dldi-patcher-the-mac-way/ DLDI Drop], and '''Linux users''' may use [http://sourceforge.net/projects/dldigui/ DLDIGui].
==Step 2: Find some homebrew==
This is probably the easiest step, and this is probably why you're reading this wiki! There are many sites that host homebrew for the DS, and any that mentions "DLDI" is a candidate for patching. You should always read the readme, however, so you patch the right thing (usually, it is AppName.nds that needs patching).
==Step 3: DLDI patch==
After finding the homebrew, you should right click it and select "DLDIrc ''SD card name'' Patch".
A window will appear; directions on screen are simple: close the window to cancel, or press any key to patch.
Some offsets (technical information) will appear onscreen; if the ROM is patched successfully, it will say so explicitly. If not, it will also say so explicitly.
==Step 4: Put the file on your flash cart==
Copy the file to your flash cart like any other game/app.
Please note that all contributions to Bibliotheca Anonoma are considered to be released under the Creative Commons Attribution-ShareAlike (see Bibliotheca Anonoma:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)