You're right, No$GBA must do this, that's the explanation. So you mean that programs from slot 2 can run from ROM (GBA mode) and programs from slot 1 run from RAM + filesystem from cart/SD. Sounds logical.vuurrobin wrote: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?
On my M3 card it's only possible to execute from slot 1 since I don't have the full pack (only the useless "rumble" pack) so I cannot run GBA games or NDS games through slot 2.
So since for example EFS can manage (WarHawk works OK on my M3 and uses EFS), even if I don't like EFS because it's not 100% posix (dir szcan is proprietary for instance), maybe we can hack something to force argv[0] to something correct.
Since main passes **argv, if we replace the pointer of argv[0] by one of our strings it may work for NitroFS right?