A new release of PALib is here, it’s a programming library useful for mostly game coders.

Release notes:

PALIB 080203 “Community Release” – BETA

Read this before using Palib!


Each new version of devkitARM had the disadvantage of breaking up PALib’s sound support for some linker.
The main problem with the sound was that the modplayer on the arm7 was difficult to maintain, and Mollusk didn’t have time to maintain this project.

There were some scenarios, resulting from the fact that the latest working PALib version was PAlib070717 + devkitARM r20:

a) Windows XP and Linux users who didn’t need support for new libraries such as Noda’s ASLib or future libraries compiled with devkitARM r21
were continuing to use the old PALib with devkitARM r20.
b) Windows Vista users couldn’t use PAlib compiled as it was, since devkitARM r20 doesn’t support Vista. There is a hack to do that but the authors
of devkitARM discourage it’s use. Using this hack will lead to a working PALib, but with the disadvantages of scenario a.
c) User who wanted PALib with bugfixes, new features, devkitARM r21, Vista, sound working, and new external lib support were waiting for a new PALib release.

For this one.


After months of work we are proud to announce the new development version of PALib,
code named “Community Release”, thanks to the efforts of (in no particular order):
Noda, Tom, Scognito, Michoko and others.

Since this is a new development release it may contain some bugs, but that’s normal since we cannot test every example with every card, so
please help us to improve it by reporting bugs and sending patches!

So what does this release offer?

* DevkitARM r21 compatibilty -> Vista support
* Support for the following libraries:
* ASLib by Noda (sound and mp3 playback)
* Modplayer by hitchhikr
* Liblobby by MightyMax and others (DS<->DS networking) (external download)
* Mikmod by Stonebone (mod, s3m, it, etc. playback) (external download)
* EFSLib by Noda (embedded file system superior to GBFS / PAFS) (external download)
* New examples:
* PAlibExamples/FAT: EFS_Lib, Locate
* PAlibExamples/Sound: ASLib_General, ASLib_using_EFSLib, SoundPlayback, MikMod
* PAlibExamples/Wifi: libLobby
* A new Makefile:
* Ability to choose the arm7 core (see below)
* WIFI icon (which is never shown) no longer included -> .nds files work with no$gba, Supercard SD, etc. The .sc.nds file is no longer needed.
* Other small things (doc compatible with latest doxygen, dsFont tool included, cleanup, etc.)
* Many bugfixes

The changelog covers everything in more detail, but it’s too long to list it here – it is included in the download.

As for the sounds, your old projects will probably not work, since the sound part is completely redone,
featuring Noda’s cool ASLib as the standard way of sound output.


Since this is a beta release, it comes without the installer, so uninstall the old PALib (5 directories) and put there the new ones from the archive.
To add the external libraries (mikmod, liblobby, efs) you can download them from the download section or
directly from the authors to get the latest versions (but you will need a SVN client for liblobby).
Instructions on where to get and where to put the libraries are in install.txt in the PALib folder.


These guidelines help you in porting your projects to the new version.

* Backup your old project 😉
* Do a make clean in the project dir
* Replace your project Makefile by the one in the PALibTemplate directory
* Edit it (instructions are inside)
* Do a make

Why editing Makefiles?

In this release there are various arm7 cores, because a single one cannot support mod + wifi + ds to ds wireles + mp3 + mikmod.
There are many, you can choose which one fits your needs, just select which one you prefer among these:

* mod + dswifi
* mod + liblobby
* mp3 + dswifi
* mp3 + liblobby
* mikmod + dswifi

You can also add support for EFS, just uncomment the USE_EFS line in the Makefile and follow the efs example on how to build it.

As for sounds:

PA_PlaySimpleSound(file, channel) and PA_PlaySoundRepeat(file, channel) are now replaced by
PA_PlaySimpleSound(file) and PA_PlaySoundRepeat(file).

This is because AS_Lib chooses the channel for sound playback itself, you can’t specify it.
You can get the used channel as the return value of PA_PlaySimpleSound, though.
So please check through your sources and make sure that when using functions to set volume, pan, etc. of sounds,
your program doesn’t assume that a sound effect is played on a specific channel, but passes in the channel obtained from PA_PlaySimpleSound / PA_PlaySoundRepeat.

However, these functions are only wrappers for the ASLib sound functions –
if you want to use the full potential of ASLib, you have to call its functions directly.
You can find more information on them in the “Sound and MP3 functions” section in the documentation.


A big thanks to goes to Mollusk as usual, for his great library.
Thanks also to all people who helped us to do this release.

Long life to PALib!