Filesystem not working on M3, OK on emus

jotd
Posts: 32
Joined: Sun Dec 13, 2009 9:43 pm
Location: France
Contact:

Filesystem not working on M3, OK on emus

Post by jotd » Sun Dec 13, 2009 9:48 pm

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

User avatar
vuurrobin
Posts: 219
Joined: Fri Jul 11, 2008 8:49 pm
Location: The Netherlands
Contact:

Re: Filesystem not working on M3, OK on emus

Post by vuurrobin » Sun Dec 13, 2009 10:41 pm

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.

RyouArashi
Posts: 29
Joined: Sun Mar 29, 2009 9:23 pm

Re: Filesystem not working on M3, OK on emus

Post by RyouArashi » Mon Dec 14, 2009 9:20 am

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.

jotd
Posts: 32
Joined: Sun Dec 13, 2009 9:43 pm
Location: France
Contact:

Re: Filesystem not working on M3, OK on emus

Post by jotd » Mon Dec 14, 2009 9:23 pm

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.

User avatar
vuurrobin
Posts: 219
Joined: Fri Jul 11, 2008 8:49 pm
Location: The Netherlands
Contact:

Re: Filesystem not working on M3, OK on emus

Post by vuurrobin » Mon Dec 14, 2009 9:56 pm

your cards menu patches the .nds file for commercial games, so it can treat the flashcard as it was a normal card.

jotd
Posts: 32
Joined: Sun Dec 13, 2009 9:43 pm
Location: France
Contact:

Re: Filesystem not working on M3, OK on emus

Post by jotd » Mon Dec 14, 2009 10:06 pm

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?

WinterMute
Site Admin
Posts: 1990
Joined: Tue Aug 09, 2005 3:21 am
Location: UK
Contact:

Re: Filesystem not working on M3, OK on emus

Post by WinterMute » Fri Dec 18, 2009 10:23 pm

No, they're generic patches which need updated when Nintendo update the official SDK.
Help keep devkitPro toolchains free, Donate today

Personal Blog

jotd
Posts: 32
Joined: Sun Dec 13, 2009 9:43 pm
Location: France
Contact:

Re: Filesystem not working on M3, OK on emus

Post by jotd » Fri Dec 18, 2009 10:33 pm

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.

jotd
Posts: 32
Joined: Sun Dec 13, 2009 9:43 pm
Location: France
Contact:

Re: Filesystem not working on M3, OK on emus

Post by jotd » Fri Dec 25, 2009 9:50 pm

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?

User avatar
vuurrobin
Posts: 219
Joined: Fri Jul 11, 2008 8:49 pm
Location: The Netherlands
Contact:

Re: Filesystem not working on M3, OK on emus

Post by vuurrobin » Sat Dec 26, 2009 1:03 pm

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?

Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests