Page 1 of 1

devkitARM and PALib versions compatibility

Posted: Fri Aug 12, 2011 6:08 pm
by shinysup
hi all,

i've installed devkitpro using devkitProUpdater 1.5.0 and
PALib 100707.
I have linked them with Visual Express 2008,
but when I compile, it gives me a following error.


1>------ Build started: Project: newtest, Configuration: Release Win32 ------
1>Performing Makefile project actions
1>Linking...
1>c:/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.6.1/../../../../arm-eabi/lib/ds_arm9_crt0.o: In function `CIDLoop':
1>(.init+0x1c0): undefined reference to `__libnds_mpu_setup'
1>c:/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.6.1/../../../../arm-eabi/lib/ds_arm9_crt0.o: In function `CIDLoop':
1>(.init+0x210): undefined reference to `initSystem'
1>c:/devkitpro/devkitarm/bin/../lib/gcc/arm-eabi/4.6.1/../../../../arm-eabi/lib/ds_arm9_crt0.o: In function `CIDLoop':
1>(.init+0x21c): undefined reference to `__libnds_exit'
1>main.o: In function `main':
1>c:/DSProjects/newtest/newtest/source/main.cpp(11): undefined reference to `PA_InitText'
1>c:/devkitPro/PAlib/lib\libpa9.a(PA.o): In function `PA_CheckLid':
1>c:/devkitPro/PAlib/source/arm9/source/PA.c(50): undefined reference to `fifoSendValue32'
1>c:/devkitPro/PAlib/source/arm9/source/PA.c(69): undefined reference to `keysCurrent'
1>c:/devkitPro/PAlib/lib\libpa9.a(PA_Inits.o): In function `PA_Init2D':
1>c:/devkitPro/PAlib/source/arm9/source/PA_Inits.c(49): undefined reference to `powerOn'
1>c:/devkitPro/PAlib/lib\libpa9.a(PA_Keys.o): In function `PA_UpdateStylus':
1>c:/devkitPro/PAlib/source/arm9/source/PA_Keys.c(41): undefined reference to `touchRead'
1>c:/devkitPro/PAlib/lib\libpa9.a(PA_Fifo.o): In function `PA_FifoMsgHandler':
1>c:/devkitPro/PAlib/source/arm9/source/PA_Fifo.c(11): undefined reference to `fifoGetDatamsg'
1>c:/devkitPro/PAlib/lib\libpa9.a(PA_Fifo.o): In function `PA_InitFifo':
1>c:/devkitPro/PAlib/source/arm9/source/PA_Fifo.c(6): undefined reference to `fifoSetDatamsgHandler'
1>collect2: ld returned 1 exit status
1>make[1]: *** [/c/DSProjects/newtest/newtest/Release/newtest.elf] Error 1
1>make: *** [build] Error 2
1>Build log was saved at "file://c:\DSProjects\newtest\newtest\Release\BuildLog.htm"
1>newtest - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========



After some research, I'm suspecting that this is due to compatibility issue between devkitARM and PALib, and found out that I may need to downgrade devkitARM.
But it's hard to get older versions, and it's hard to try every possible devkitARM-PALib combination to see which versions work together..., which I've been trying for two days..

It seems like it has happened to quite some people, but I can't find a definitive answer... :(
If anyone could help me resolve the issue, that person will be my savior and hero...

Re: devkitARM and PALib versions compatibility

Posted: Fri Aug 12, 2011 6:39 pm
by WinterMute
Uninstall your broken toolchain and reinstall without PAlib.

PAlib is NOT supported.

http://devkitpro.org/wiki/PAlib

Old versions of devkitARM are NOT supported.

Re: devkitARM and PALib versions compatibility

Posted: Fri Aug 12, 2011 6:58 pm
by shinysup
really?
PALib is not supported anymore?

Then, is there any new library that works, and works well with devkitARM?
That's pretty discouraging since most of the past homebrew resources are based on PALib...

Re: devkitARM and PALib versions compatibility

Posted: Sat Aug 13, 2011 11:10 am
by WinterMute
PALib was never supported, it's an abomination that nobody should ever be subjected to. If working and working well with devkitARM are your criteria then PALib was always a bad choice. Any resource which uses PAlib as the basis for it's tutorials should be ignored, it's wrong and will probably teach you some very bad habits.

The libraries we provide work and work well with devkitARM, they always will - we guarantee that. If you're just starting out we can only recommend that you don't use 3rd party libraries until you get a bit more experience. Quite often these things break in various odd ways when the tools and libraries we supply are updated.

At this point in time we have a serious lack of good resources for learning ds homebrew programming - Tonc is a good document for GBA programming and most of the GBA hardware exists on the DS. Patater's manual may still be helpful but I'm not sure if we've broken any of his source examples recently.

There are many little samples of various things you can do with the DS in the examples you hopefully installed when you reinstalled the tools without PAlib.

If IRC is your thing then there are a bunch of friendly people in #dsdev who are generally quite happy to help - http://devkitpro.org/wiki/IRC

What would probably help us to help you is to give us some idea of where you are now and where you intend to go. For instance, what programming experience do you have already and do you have a DS project in mind?

Re: devkitARM and PALib versions compatibility

Posted: Sat Aug 13, 2011 4:39 pm
by shinysup
thanx for the reply.

I have years of experience with C and C++ but pretty much zero with ds programming.
I'm trying to make a pet-raising simulation game, which utilizes both image files and sounds, and I'm already stuck.. my unfamiliarity with Programmer's Notepad and how Makefile works is another factor...

Any suggestion?
Thanx again in advance.

Re: devkitARM and PALib versions compatibility

Posted: Mon Aug 15, 2011 12:18 am
by elhobbs
in windows you can use Microsoft Visual Studio C++ Express (or Professional if you have it). there are other threads that describe the setup - you can find them if you search the forum. Essentially, you create a makefile project and copy one of the ds samples to the directory. there are a couple things that you need to change in the project to get visual studio intellllisense to work correctly, but even without those changes it is pretty easy to get something to compile - essentially set the build command to "make" without the quotes.

Re: devkitARM and PALib versions compatibility

Posted: Mon Aug 15, 2011 10:16 am
by WinterMute
You don't really need to know how Makefiles work just yet, the template projects and all the examples contain Makefiles which automatically collect source files and various data files. PN2 is a nice basic programmer's editor, really all you have to do is copy one of the examples we provide to your own projects directory (no spaces in the path!), double click the .pmproj file then use Tools->make (or ALT+1) to build the project or Tools->clean(or ALT+2) to clean it.

If you prefer VS then there's a VS Wizard available at http://pern.drunkencoders.com/screensho ... tures-wiz/ which is something that's on the TODO list to get tidied up and included in the installer. Again you need to create your projects in paths with no spaces.

When you want to add new source files then just create .c/.cpp files in the source folder, the Makefile will pick them up and compile.