This thread is about rev-engineering other people's open-source code, doing that is a bit foolish, isn't it? More so when doing it on a PC that doesn't support open-source.
---
Things I never could make sense of:
DLDI
As far as I understand that's some sort of driver for using different flashcarts with homebrew NDS titles, and it's extremely popular in most of the homebrew scene, and there's no technical documentation about how it's working. There's some open source code available, including a "template" for the driver structure, but it's all very abstract, not really providing info on which bytes are to be stored at which address for which purpose. Or does anybody know how to make sense of it?
For DSi (and unlaunch), it might be useful to supply a DLDI driver that allows old NDS homebrews to read from the DSi's SD/MMC slot instead from flashcart. Is there already such a DLDI driver?
The two possible problems would be: A few titles might want to access both flashcart (via DLDI) and SD/MMC slot (via 40048xxh), and might get confused if DLDI redirects to 40048xxh, too. And, NDS can access flashcarts via both ARM9 or ARM7, whilst DSi can access SD/MMC via ARM7 only (or would need a way to forward data from ARM7 to ARM9).
Not so much, the page itself doesn't answer anything, and the links on the page only bring up more questions. The only tech specification I could find is the part about "32KiB are allocated for DLDI patches", and, well, I already knew that (it's the standard answer when asking anybody "What the heck is that DLDI thing that you are talking about?").tepples wrote:Does "Writing a DLDI Driver" at Chishm's page answer any of your questions?
Looking through some driver source files...
default.zip contains a DLDI header, and some nonfunctional dummy functions. And some comments like ".byte 0x0F @32KiB @ Log [base-2] of the size of this driver in bytes." - I am reading that "use your floating point maths to compute logarithm of value base minus 2 then publish your result on @socialmedia!!!" - or it might try to say "8000h = 32Kbytes = 1 SHL 15".
dlms.zip I can see it containing two files with program code, but can't see any DLDI header in there.
gmtf.zip Contains a DLDI header, and also actual code, that's potentially useful for further research.
Some of the files contain something called "dldi.ld" is it safe to ignore that, or is it important?
The files on the chism webpage are quite old. A while ago I have also seen newer (?) files with Rumble support aside from the sector reading/writing. I don't remember where I have seen that. And, when writing DLDI specs, should that include features like Rumble, too?
Then for the patching tools, there's https://github.com/devkitPro/dstools/tr ... c/dlditool on github - which doesn't allow me to download that source code file(s). Could somebody upload a copy of that package here?