Author |
Message |
jotd
Joined: Sun Dec 13, 2009 9:43 pm Posts: 32 Location: France
|
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
|
Sun Dec 13, 2009 9:48 pm |
|
 |
vuurrobin
Joined: Fri Jul 11, 2008 8:49 pm Posts: 222 Location: The Netherlands
|
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.
|
Sun Dec 13, 2009 10:41 pm |
|
 |
RyouArashi
Joined: Sun Mar 29, 2009 9:23 pm Posts: 29
|
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.
|
Mon Dec 14, 2009 9:20 am |
|
 |
jotd
Joined: Sun Dec 13, 2009 9:43 pm Posts: 32 Location: France
|
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.
|
Mon Dec 14, 2009 9:23 pm |
|
 |
vuurrobin
Joined: Fri Jul 11, 2008 8:49 pm Posts: 222 Location: The Netherlands
|
your cards menu patches the .nds file for commercial games, so it can treat the flashcard as it was a normal card.
|
Mon Dec 14, 2009 9:56 pm |
|
 |
jotd
Joined: Sun Dec 13, 2009 9:43 pm Posts: 32 Location: France
|
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?
|
Mon Dec 14, 2009 10:06 pm |
|
 |
WinterMute
Site Admin
Joined: Tue Aug 09, 2005 3:21 am Posts: 1219 Location: UK
|
No, they're generic patches which need updated when Nintendo update the official SDK.
_________________Help keep devkitPro toolchains free, Donate todaydevkitPro IRC supportPersonal Blog
|
Fri Dec 18, 2009 10:23 pm |
|
 |
jotd
Joined: Sun Dec 13, 2009 9:43 pm Posts: 32 Location: France
|
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.
|
Fri Dec 18, 2009 10:33 pm |
|
 |
jotd
Joined: Sun Dec 13, 2009 9:43 pm Posts: 32 Location: France
|
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?
|
Fri Dec 25, 2009 9:50 pm |
|
 |
vuurrobin
Joined: Fri Jul 11, 2008 8:49 pm Posts: 222 Location: The Netherlands
|
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?
|
Sat Dec 26, 2009 1:03 pm |
|
 |
|