Ok, so I'm wrong, not all of your posts are hugely offensive ...
In my experience not all casts from const to non const are errors. Are you using C++ or just -Werror?
libgba was mostly written a long, long time ago when I was still feeling my way around C and figuring out how my assembly language experience fitted into writing a lot of C code. Many things are awkward and/or just wrong and not many people used libgba - mostly people used their own headers or libtonc or some other random set of headers they found on the internet.
The source pointers should probably be const - I'd have to go through and check the code but I'm pretty sure that none of these functions modify the source. Having a specific pointer size on the destination is a little more awkward, 32bit is as valid as 16bit and using one of those specifically can make it awkward to use the other.
The best way to get this fixed is to submit a patch, I'm more than happy to accept changing the source pointer on these functions to const. Changing the size of the destination needs a bit more thought and a few examples of code which suffers from using a void pointer.
The patch tracker is at http://sourceforge.net/tracker/?atid=66 ... unc=browse
- all patches should be in the form of a unified diff against SVN HEAD.