Howdy y'all
If you are using a very large SD card in your DSi, you may have noticed a tendency for first boots of a game to be very slow. This happens because it has to create new files, and in order to do that it needs to find free clusters on the FAT32 file system of your SD card. To find free clusters, the search begins from the very beginning of the file system, checking one cluster after the other, until it hits a free one. The more filled your SD card is, the longer this search will take. FAT32 does provide a way to speed this up by remembering where the last cluster is each time it writes a new file, but it seems this isn't implemented on TWI/ndsbootstrap.
However, there is a solution to this problem! We can simply move all our data to clusters at the end of the SD card, and leave all the room at the start free, so that the DSi can immediately find the clusters it needs. I've written a tool that does just that, and it seems reasonably stable that I feel comfortable sharing it. It's a command line tool and I've only been able to make a Linux build, but if anyone else wants to port it to windows, do feel free!
https://github.com/MerelyMezz/fatplow
! WARNING WARNING WARNING !
Using this tool directly modifies the underlying data of your file system. It is possible that the data on your SD card may be destroyed, so make sure to make a backup first, so that you can restore it later after reformatting.
How to use:
After downloading the binary make sure it has executable permissions. Make sure your SD card is not mounted, then run in the terminal:
./fatplow [Filename of your SD card block device] move-clusters-to-end
If you are using a very large SD card in your DSi, you may have noticed a tendency for first boots of a game to be very slow. This happens because it has to create new files, and in order to do that it needs to find free clusters on the FAT32 file system of your SD card. To find free clusters, the search begins from the very beginning of the file system, checking one cluster after the other, until it hits a free one. The more filled your SD card is, the longer this search will take. FAT32 does provide a way to speed this up by remembering where the last cluster is each time it writes a new file, but it seems this isn't implemented on TWI/ndsbootstrap.
However, there is a solution to this problem! We can simply move all our data to clusters at the end of the SD card, and leave all the room at the start free, so that the DSi can immediately find the clusters it needs. I've written a tool that does just that, and it seems reasonably stable that I feel comfortable sharing it. It's a command line tool and I've only been able to make a Linux build, but if anyone else wants to port it to windows, do feel free!
https://github.com/MerelyMezz/fatplow
! WARNING WARNING WARNING !
Using this tool directly modifies the underlying data of your file system. It is possible that the data on your SD card may be destroyed, so make sure to make a backup first, so that you can restore it later after reformatting.
How to use:
After downloading the binary make sure it has executable permissions. Make sure your SD card is not mounted, then run in the terminal:
./fatplow [Filename of your SD card block device] move-clusters-to-end











