gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > makefile: Adding automatic EFS and ds.gba (solved)

#166538 - Emmanuel - Mon Feb 09, 2009 4:02 pm

Which lines and where do I add them to embed EFS and generate a ds.gba along with the .nds at compilation?

I'm using the Combined template...

(or embedding with NitroFS... even better)

BTW, Why should I use NitroFS over EFS?

Where can I get NitroFS if it's better than EFS? How is it used?


Last edited by Emmanuel on Tue Feb 10, 2009 2:53 pm; edited 1 time in total

#166545 - kusma - Mon Feb 09, 2009 5:21 pm

NitroFS isn't really "better" than EFS, it's a bit more light-weight and focused IMO. While EFS supports writing files, NitroFS does not. There might also be some performance differences, but that'd be outside of my knowledge.

#166567 - Echo49 - Mon Feb 09, 2009 9:33 pm

I don't know much about makefiles, but I use the following setup (I associate .nds with no$gba):
Makefile (added to the end):
Code:
emu:
   ndstool   -c $(TARGET).nds -7 $(TARGET).arm7 -9 $(TARGET).arm9 -d nitro

Batch file:
Code:
make
make emu
start [name].nds

#166568 - cory1492 - Mon Feb 09, 2009 9:42 pm

In the combined makefile (the root one, not one of the ones in the arm dirs) look for a bit like this:
Code:
#---------------------------------------------------------------------------------
$(TARGET).nds   :   $(TARGET).arm7 $(TARGET).arm9
   ndstool   -c $(TARGET).nds -7 $(TARGET).arm7 -9 $(TARGET).arm9

Which is what you'd modify. As Echo49 mentions above, if your files are going to be used by NitroFS you can just add the "-d dirname" bit to the end of the ndstool line. For EFS I'm not so sure, though it appears it uses exactly the same method for appending (ndstool's -d option) so something along these lines:
Code:
#---------------------------------------------------------------------------------
$(TARGET).nds   :   $(TARGET).arm7 $(TARGET).arm9
   ndstool   -c $(TARGET).nds -7 $(TARGET).arm7 -9 $(TARGET).arm9 -d dirname
   efs $(TARGET).nds

though efs.exe itself will need to be somewhere on the paths that the makefile is aware of.

#166577 - Echo49 - Tue Feb 10, 2009 6:32 am

Btw, the reason I use a separate command for adding the directory is because it allows me to use just the "make" command to compile for DS, since I only use NitroFS when testing on an emulator, whereas I read straight from fat when testing on hardware.

#166582 - Emmanuel - Tue Feb 10, 2009 2:53 pm

Thanks, it works all right