What is FatLib

Discussion in 'NDS - ROM Hacking and Translations' started by -KangaRod-, Feb 19, 2007.

  1. -KangaRod-

    -KangaRod- GBAtemp Fan

    Aug 9, 2006
    Winnipeg, Manitoba
    Hey guys,
    I've got a Ezflash V + EzFlash IV. I'm fairly confident in using both these tools and using computers, but I have no experience modifing code or programming or anything of the sort. That said, I'm definitely not afraid to try and learn. I'd just like to ask some questions.

    1) What is FatLib and what are its advantages.
    Near as I can tell its a way of organizing the information on the SD cart. Like Fat32 or NTFS. If that is the case, what are its advantages, and why would I want to turn it on.

    2) How do i turn it on.

    3) What is dldi and why do some homebrew programs require it?

    4) Is there a good walkthrough on here (I searched quickly; but couldn't find anything) that basically starts at square one, and could help me along catching on. It seems as though all the stuff that refrences homebrew assumes you have the basic knowledge of how it works; which I don't.

    Thanks in advance guys!
  2. FAST6191

    FAST6191 Techromancer

    pip Reporter
    Nov 21, 2005
    United Kingdom
    1) The fatlib deals with reading and writing to the memory cards in various devices as well as acessing the file system (normally FAT16 or FAT32) to read stuff making it in some cases nicer than a self contained GBA style file (imagine having something like DSFTP without the ability to write to the card).
    As this is fairly low level programming indivuals or the companies released libraries and/or sources so programmers could delegate reading and writing to them.

    2) They are libraries and a lot are different but they tend to work like any other library in whatever (computer) language you are using.

    3) Dynamically linked device interface is the technique used originally by moonshell and now by Chism's libfat with legacy support for gba_nds_fat.
    Before Christmas every card had a different library meaning they all had to be recompiled for different card and then troubleshooting and it was a mess, DLDI adds 32kb of space which the user then patches with a patch made for their cart to get it to run.
    Read more here
    I highly suggest/endorse use of this over any other fatlib.
    Read this thread for DLDI programming discussion:

    4) If you are new to DS programming I would suggest palib and then moving to libnds/devkitpro for most programming. Knowledge of the hardware is not essential but it sure helps.

    GBADev for libnds, devkitpro and DLDI
    Palib site
    GABTek for GBA and DS hardware: