PALib Survival Guide
Now that that’s out of the way. This is my guide to surviving a PALib installation. If you’re been directed here, it’s because you’ve installed PALib over the NDS parts of the devkitPro toolchain. Currently, PALib installs itself over a vanilla libnds install in order to maintain compatibility by avoiding to fix problems in its own library. This does more harm than good as it leads to more problems down the line. A lot of the things which PALib depends on in order to function have either changed drastically or been removed altogether in the current version of libnds.
Now, if you’ve read this far and want to remove this little piece of malware from your development environment, there is hope. In the path where the devkitPro Installer/Updater unpacked everything (for example, “c:\devkitPro”), there should be a file named “devkitProUpdate.ini”. Open this in your favorite text editor. You are looking for sections called “libnds”, “libndsfat” & “dswifi”. In those sections, there will be an entry named “Version”. In each of those, change the version number to something lower than what is currently there. The sections look a little like this:
[libnds]
Version=20071023
[libndsfat]
Version=20070127
[dswifi]
Version=0.3.4
In the example, you would change the “libnds” version to something like “20071022″, “libndsfat” to “20070126″ and so on. Only do this for the section names I listed. After that, there should be another file in the same path named “devkitProUpdater-X.X.X.exe” (where “X.X.X” is the current updater version number). Run that program and it will prompt you to update said libraries to the current & clean versions rather than the old ones that PALib installed.
Please note that after doing this, PALib-developed projects will not build as intended due to the updated versions of the libraries being used. You will more than likely need to update your project to remove all PALib references and functions. This is a huge undertaking if your project has been very dependent on PALib. However, don’t fret. Learning libnds and its related libraries may seem like a daunting task but in the end, it allows you to have a better grasp on how the platform works as well as knowing that your project isn’t being limited by a poorly-maintained & non-functional codebase.
If you need any other assistance in removing PALib from your system and projects, feel free to stop by #dsdev on irc.blitzed.org. Someone there should be willing to aid you.