Page 1 of 3

Filesystem not working on M3, OK on emus

Posted: Sun Dec 13, 2009 9:48 pm
by jotd
Hi,

I've been trying to embed my files in the .nds file, and it works 100% with NitroFS included in devkitpro 1.5 (libfilesystem) when I use No$GBA. All files work OK. Dirscan also works like a charm.

But when I put the file on my M3 real card on my DS, the nitrofsinit call fails => impossible to open files.

When I use libfat with fatDefaultInit() it works on my M3 real card, but I'd like an embedded solution.

I have tried to patch with dldi, but there's lack of documentation, that mixed with various versions of NitroFS which require an argument, or not... I'm lost!!

thanks

Re: Filesystem not working on M3, OK on emus

Posted: Sun Dec 13, 2009 10:41 pm
by vuurrobin
check to see if your card passes the path to your main arguments and/or try to run the nds file with devkitPro's homebrewmenu. for libfilesystem to work, it needs the path to the nds file. no$gba and the homebrewmenu passes this path to main, but most cards don't.

Re: Filesystem not working on M3, OK on emus

Posted: Mon Dec 14, 2009 9:20 am
by RyouArashi
M3 Real doesn't pass ArgV, which libfilesystem needs.
Use HomebrewMenu to load your file.

libfilesystem works on Emulators, because they emulate some kind of "Slot 2"
boot, so the lib can access the whole nds file. If you have the GBA module
from the Perfect bundle or some other Slot 2 RAM, you could try booting
your program from slot 2.

Re: Filesystem not working on M3, OK on emus

Posted: Mon Dec 14, 2009 9:23 pm
by jotd
I'm curious: how commercial games do to read "files" out of .nds? I saw that the executable is mapped in RAM so it's obviously not ROM.

Re: Filesystem not working on M3, OK on emus

Posted: Mon Dec 14, 2009 9:56 pm
by vuurrobin
your cards menu patches the .nds file for commercial games, so it can treat the flashcard as it was a normal card.

Re: Filesystem not working on M3, OK on emus

Posted: Mon Dec 14, 2009 10:06 pm
by jotd
vuurrobin wrote:your cards menu patches the .nds file for commercial games, so it can treat the flashcard as it was a normal card.
I believe the card software knows exactly which game it is running. I mean those are not generic patches, but the game is identified and the loads are redirected right?

Re: Filesystem not working on M3, OK on emus

Posted: Fri Dec 18, 2009 10:23 pm
by WinterMute
No, they're generic patches which need updated when Nintendo update the official SDK.

Re: Filesystem not working on M3, OK on emus

Posted: Fri Dec 18, 2009 10:33 pm
by jotd
WinterMute wrote:No, they're generic patches which need updated when Nintendo update the official SDK.
official SDK never leaked right ? :) I guess they're looking for some hex strings and replace them by some others.

Re: Filesystem not working on M3, OK on emus

Posted: Fri Dec 25, 2009 9:50 pm
by jotd
int main(int argv, const char **argv)
{
consoleDemoInit();
printf("ARGV %s\n",argv[0]);
}

I've tried to printf(argv[0]) and it's a NULL pointer even on No$GBA. I was expecting some value like the name of my .nds file.

So since NitroFS works from No$GBA, how NitroFS handles this?

Re: Filesystem not working on M3, OK on emus

Posted: Sat Dec 26, 2009 1:03 pm
by vuurrobin
I get the same result here.

but IIRC, no$gba executes the nds file from slot 2, and slot 2 works differently than slot 1 (slot 2 is memory mapped). maybe that is how libfilesystem gets the nds file, because there is only 1 nds file loaded at the memory of slot 2.


is there a way to figure out if an nds file is executed from slot 1 or 2?