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 homebrew announcements > DSBrowser - Dual Slot

#146601 - cornaljoe - Thu Dec 06, 2007 7:07 pm

Version 0.9 is out! This is a complete rewrite due to an "uninstall" of original source (curse you uninst.exe). Alot of changes and improvements were made so take a look. I've tried to implement as many request features as possible. Thanks and hope you enjoy the update!

CHANGES
-------
Version 0.9 - 08/20/2008
-Updated GUI: Can now load backgrounds and settings from FAT
-Removed DLDS files: Can now read DLDI from FAT
-Added support for AKRPG NAND: If you have an AKRPG just boot from the SD and you will have access to both
-Added option to boot into GBA mode
-Changed/Added some controls
-Added support for MP3 playback
-Added file size display
-Added multiple copy/delete support
-Added display of copy speed
-Added display of current date and time
-The file list is now sorted alphabetically
-Renaming works now by copying file and deleting source
-Booting now works on the extra FAT systems
-Fixed pause when lid closed
-Fixed compatibility with M3/G6 Real
-Various other bug fixes

DualSlot Browser lets you copy and boot files to and from the filesystems available. That means if you have two FAT based flashcarts inserted, you will have access to both! With this boot feature you can boot into GBA mode or boot NDS homebrew files. The boot function Auto-DLDI patches for whatever filesystem its on. So if you boot a homebrew on the Slot-2 it will have access to the Slot-2 FAT. Also with the new MP3 Player feature you can build your own playlist or have DSBrowser search the available FAT for MP3s. All MP3s found will be added to a new playlist. MP3s can be played while exploring the apps features!

Suggestions and comments are welcome. Thanks to all that helped!

DSBrowser v0.9
DSBrowser v0.8
DSBrowser v0.2
DSBrowser v0.1


Last edited by cornaljoe on Wed Aug 20, 2008 3:47 pm; edited 4 times in total

#146619 - DragonMinded - Thu Dec 06, 2007 9:51 pm

Any reason why you are hosting on megaupload?
_________________
Enter the mind of the dragon.

http://dragonminded.blogspot.com

Seriously guys, how hard is it to simply TRY something yourself?

#146624 - MechaBouncer - Thu Dec 06, 2007 10:35 pm

So is this actually two different DLDI devices, or is it like calcprogrammer1's where it used one DLDI device and then the built-in Slot-2 support for older carts. If it is two DLDI devices, how do you patch it and how does that work? Did you have to make a custom DLDI library or something? In any case, it sounds interesting.
_________________
Cobalt/Black NDSL
CycloDS Evolution (firmware 1.55 BETA 3) and EZFlash 3-in-1
Kingston SD-C02G JAPAN 2GB MicroSD
MoonShell 1.71, DSOrganize 3.1129, QuakeDS Pre3, ScummVM DS 0.11.1, Pocket Physics 0.6, OpenTyrian DS 0.3

#146640 - cornaljoe - Fri Dec 07, 2007 4:40 am

DragonMinded wrote:
Any reason why you are hosting on megaupload?


I'm a noob when it comes to hosting downloads. This is actually my first time. Megaupload was one of the first sites that came up when I googled for "free file upload". Any suggestions on a better site? Also thanks for getting me started DM. Hopefully this can become as popular as DSO!

MechaBouncer:

This works because there is two DLDI sections: DLDI/DLDS. The DLDS was created by cybermind on this very forum! The original thread can be found here: DLDI topic. I probably wouldn't have been able to do this without his work. So a big thanks goes to him. Chishm said he is working on implementing this officially into libfat. That way more developers can use this feature.

#146647 - MechaBouncer - Fri Dec 07, 2007 5:43 am

Oh cool. I hadn't kept up to date on that subject. Glad to hear dual patching will be added for nifty apps like these.
_________________
Cobalt/Black NDSL
CycloDS Evolution (firmware 1.55 BETA 3) and EZFlash 3-in-1
Kingston SD-C02G JAPAN 2GB MicroSD
MoonShell 1.71, DSOrganize 3.1129, QuakeDS Pre3, ScummVM DS 0.11.1, Pocket Physics 0.6, OpenTyrian DS 0.3

#146649 - DragonMinded - Fri Dec 07, 2007 7:54 am

cornaljoe wrote:
DragonMinded wrote:
Any reason why you are hosting on megaupload?


I'm a noob when it comes to hosting downloads. This is actually my first time. Megaupload was one of the first sites that came up when I googled for "free file upload". Any suggestions on a better site?


If you need space, I am trying to give space away.
_________________
Enter the mind of the dragon.

http://dragonminded.blogspot.com

Seriously guys, how hard is it to simply TRY something yourself?

#146658 - chishm - Fri Dec 07, 2007 11:37 am

You might wanna try the preview version of libfat. It contains dual-DLDI support by loading the driver for the second disc of the disc that the NDS is patched for. See the release post for more information.
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com

#146679 - MaHe - Fri Dec 07, 2007 3:24 pm

Just to confirm: CycloDS Evolution and EZ-Flash IV both work wonderfully.
Thank you and don't give up! :)
_________________
[ Crimson and Black Nintendo DS Lite | CycloDS Evolution | EZ-Flash 3-in-1 | 1 GB Transcend microSD ]

#146685 - cornaljoe - Fri Dec 07, 2007 4:50 pm

Dragonminded:

Sure, thnaks I'll take the space! What do I have to do? Thanks again!

chishm:

Wow, you work fast. I didn't know you already formed a test release. Just one question? Fatinitdefault() sets the cache size to 128kb right? Do I just call fatLoadExtraInterfaces(128,1) instead of fatinitdefault()? Then have the two DLDI files as disc0.dldi and disc1.dldi in the 'DS/CONFIG/DLDI' folder? Thanks for the help!

#146692 - DragonMinded - Fri Dec 07, 2007 7:47 pm

Just let me know what subdomain you want and I'll set it up.
_________________
Enter the mind of the dragon.

http://dragonminded.blogspot.com

Seriously guys, how hard is it to simply TRY something yourself?

#146714 - tondopie - Fri Dec 07, 2007 11:23 pm

just don't go over the 9 TB bandwidth limit and xxxGB - xTB space limit.

BTW< I tried to copy a file from my Games n' Music to my SuperCard miniSD, and it completely destroyed it... it might just be corrupt.
_________________
Development Blog: http://teendev.org
Homebrew Podcast: http://homebrewcast.net
Web Design: http://xtendesign.net

#146787 - chishm - Sun Dec 09, 2007 3:09 am

cornaljoe wrote:
Fatinitdefault() sets the cache size to 128kb right? Do I just call fatLoadExtraInterfaces(128,1) instead of fatinitdefault()? Then have the two DLDI files as disc0.dldi and disc1.dldi in the 'DS/CONFIG/DLDI' folder? Thanks for the help!

Call fatInitDefault() as usual. To then load the extra drivers, call fatLoadExtraInterfaces (FAT_DEFAULT_CACHE_PAGES, FAT_MAXIMUM_PARTITIONS-1).

FAT_MAXIMUM_PARTITIONS is currently set to 4, you may use less if you prefer (eg, 1 (for 2 partitions), as you suggested) .

The cache size is measured in 512B pages. I suggest you stick with the default unless you do many random read/writes or you are short on memory. In the first case, increase it, in the second case, decrease it (but not below 2).
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com

#146911 - cornaljoe - Tue Dec 11, 2007 5:06 am

Update available in first post! Thanks DM for hosting my files.

chishm:

Thanks, I'll tinker with it to see how it works out. I couldn't get it working on my previous try. If disc0.dldi is not available will overwriting it be skipped? Also after each disk is loaded how do I access them. Do I have to mount each one manually?

#146918 - chishm - Tue Dec 11, 2007 10:11 am

Correct, fat0:/ will only have a new driver loaded for it when disc0.dldi is there. After calling fatLoadExtraInterfaces the discs will be available at the same number as the dldi file, so fat1:/ will be accessible if disc1.dldi exists.
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com

#147365 - cornaljoe - Wed Dec 19, 2007 7:32 am

It seems this demo libfat isn't completely compatible with PALib. When fatInitDefault is called like normal it works fine. Once fatLoadExtraInterface is called the program freezes while accessing FAT. I tested this using the PALib example 'FATListDirectory'.

Maybe I'm missing something? When I call fatLoadExtraInterfaces do I have to specify what to do for the returned value or can it just be called like fatInitDefault? Thanks for the help!

#147368 - chishm - Wed Dec 19, 2007 8:23 am

fatLoadExtraInterfaces returns the number of drivers loaded from disc and initialized. If this is 0, then no extra drivers were loaded. I can't help you with your PAlib problem, since I don't use it.
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com

#147562 - asianavatar - Sun Dec 23, 2007 9:52 am

The app doesn't work from r4 to sc lite with the application loaded on the r4. I however got it to work reading between the two on the sc lite, awesome program which will be very useful.

#147750 - chishm - Thu Dec 27, 2007 7:16 am

cornaljoe wrote:
It seems this demo libfat isn't completely compatible with PALib. When fatInitDefault is called like normal it works fine. Once fatLoadExtraInterface is called the program freezes while accessing FAT. I tested this using the PALib example 'FATListDirectory'.

I just thought of the reason this could be happening. In all the places that you are allocating space for filenames, replace 256 with 768. Filenames can be up to three times as big now, and you'll get stack corruption if you don't have enough space.
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com

#147787 - tepples - Thu Dec 27, 2007 11:09 pm

So which is correct for the buffer size?
  1. PATH_MAX characters (where character is longer than char)
  2. PATH_MAX bytes
  3. PATH_MAX + 1 characters
  4. PATH_MAX + 1 bytes

_________________
-- Where is he?
-- Who?
-- You know, the human.
-- I think he moved to Tilwick.

#147795 - chishm - Fri Dec 28, 2007 2:04 am

tepples wrote:
So which is correct for the buffer size?
  1. PATH_MAX characters (where character is longer than char)
  2. PATH_MAX bytes
  3. PATH_MAX + 1 characters
  4. PATH_MAX + 1 bytes

You'll be safe with MAXPATHLEN. chdir and getcwd both use buffers of size MAXPATHLEN. libfat uses 768 char buffers, which is less than MAXPATHLEN's 1024. In this case, all buffers have type char*, since they are using UTF-8 and not UTF-32.
_________________
http://chishm.drunkencoders.com
http://dldi.drunkencoders.com

#148073 - cornaljoe - Tue Jan 01, 2008 11:02 pm

Sorry for the lack of updates. I've recently moved and haven't had internet access for a few weeks. But I have alot more free time now so expect a huge improvement in the next update! Thanks for that chishm I'll give it a try. Happy New Years! Also chishm, any luck on getting renaming working?

#148177 - OSW - Thu Jan 03, 2008 10:31 am

thanks it worked really great transferring some small dpgs from ez4 to acekard rpg.

#149076 - cornaljoe - Mon Jan 14, 2008 9:03 pm

A new version is available. Updated first post.

chishm: Its still not working in PALib. I guess someday I'll remove PALib but I don't have the skills for that right now. Thanks anyway for the help.

#149238 - Sweater Fish Deluxe - Thu Jan 17, 2008 2:23 am

After a nightmarish time trying to get the DLDS patcher batch file to work using Windows 98, I gave up and patched it manually using a hex editor. I hope someone comes up with a better way of patching a second DLDI file before long.

Anyway, this is really nice. A big improvement over the previous release.

I hope you have plans to keep developing this as it could certainly be one of the most indispensible apps for the DS, at least for people who have two flash carts.

Have you considered incorporating a "load to slot-2 RAM" option? I'd love to see that.


...word is bondage...

#149242 - OSW - Thu Jan 17, 2008 3:28 am

edit: yes, i was just thinking of bootlib.

Last edited by OSW on Thu Jan 17, 2008 3:45 am; edited 2 times in total

#149243 - tondopie - Thu Jan 17, 2008 3:32 am

he is trying to incorperate bootlib into it which uses M3,G6,EZ4,and SC loaders to load binaries into RAM.

#149279 - cornaljoe - Thu Jan 17, 2008 8:18 pm

Bootlib 1.3b is compiled into the current version (v0.8), but it only boots from the FAT that is DLDI patched. A way to overcome this is to store apps on the DLDS FAT then copy them over to the DLDI FAT when you want to boot them.

#149288 - tondopie - Thu Jan 17, 2008 10:49 pm

cornaljoe wrote:
Bootlib 1.3b is compiled into the current version (v0.8), but it only boots from the FAT that is DLDI patched. A way to overcome this is to store apps on the DLDS FAT then copy them over to the DLDI FAT when you want to boot them.



I figured out what is wrong. If your card uses the Chishm loader because it is not an EZ4,M3,SC, or GBAMP, the chishm loader reads DLDI data but not DLDS because the DLDI string says cybermind instead of chishm. I will make a fix for this today.

#150010 - cybermind - Mon Jan 28, 2008 8:38 pm

asianavatar wrote:
The app doesn't work from r4 to sc lite with the application loaded on the r4. I however got it to work reading between the two on the sc lite, awesome program which will be very useful.
Remember the R4 auto-DLDI patches, so either use DLDI for the R4 and DLDS for the SC, or patch DLDI for SC (and DLDS for R4) and then use NoAutoPatch on it so that the R4 won't overwrite it.

cornaljoe: just noticed your latest version, works nicely :)

#150033 - LocalToast - Tue Jan 29, 2008 1:40 am

So if I understand correctly... (I've tried this several times, I think it might just be my Max Media Dock xP)

1) I DLDI patch the .nds file for my Slot-1 card (CycloDS Evo, no patching, skipped this step)
2) I rename the .dlds file that is named as my Slot-2 card to "dldspatch.dlds", in this case, rename "Max Media Dock CF.dlds" to "dldspatch.dlds"
3) Then, I drag the .nds file for my Cyclo onto the .bat file.
4) Finally, I copy it onto my CycloDS and run it with my MMD plugged in.

That's what I did, and my MMD doesn't show up using the Slot-1 .nds file. Is it just because the MMD isn't supported or am I doing something wrong? :S

#150048 - OSW - Tue Jan 29, 2008 10:19 am

latest version is working well, and it's very useful thanks!

3 things

1. renaming doesn't seem working properly? (i thought i remember you saying you knew this, but i couldn't find the post so maybe i'm mistaken)

2. if you the filelist extends past the bottom screen, and you are using left/right on the control pad to scroll faster, the cursor will stall when it hits the bottom. To browse to the rest of the files, you must press down button again to bring up the next page of the list.

3. i was a bit confused with the control system at first (Pressing start to access commands), but i'm getting used to it now. it works good.

#150092 - cybermind - Tue Jan 29, 2008 9:15 pm

Renaming doesn't work, this has been an issue with libfat for a while now. DSFTP solved this by copying to the new name and then deleting the old file. It takes a while for large files though.

#150118 - tondopie - Wed Jan 30, 2008 4:53 am

you could try updating an old GBA_NDS_FAT version of the rename function

#150142 - SqAWK - Wed Jan 30, 2008 2:21 pm

Has anybody got this working on a Supercard DS One HCSD? All I get is whitescreens when the SCDS1 is the main card, and no access to it when it's the secondary card. I'm using the dldi from the firmware.
_________________
"Against the average user, anything works; there's no need for complex security software. Against the skilled attacker, on the other hand, nothing works."
-Bruce Schneier

#150243 - cornaljoe - Thu Jan 31, 2008 11:32 pm

SqAWK and LocalToast:

It seems to be a problem with the way some autopatch systems work. The way to work around this is to boot the homebrew from your Slot-2. It will work the same booted from either cart.

Tonopie:

Thanks, I'll look into GBA_NDS_FAT. That idea came across me for a split second some time ago, but I never tried it. I thought LIBFAT and GBA_NDS_FAT couldn't be compiled together.

Also I've manage to get Bootlib to boot from a DLDS cart, but it only works if the DLDI patch isn't present. Now I just have to figure out how to get it to know which one to choose. Right now it tries to boot from the DLDI first and if it fails it freezes. Will it be possible to get it to try the other cart if one fails?

OSW:

I have two of those problems fixed for the next release. I want to try the things mentioned above before I release it though.

#150248 - Rocky5 - Fri Feb 01, 2008 12:55 am

Would it be possible for you to add skinning to the app just a background, Icons and the option to change the colour of the text.
_________________
My Pocket Physics Stuff
Black NDSL.
CycloDS Evolution (firmware 1.3) + EZ-Flash 3-in-1 + Removed Rumble Was To Loud.
SanDisk 2GB MicroSD.
Best Game So Far Pocket Physics 0.6.

#152820 - cornaljoe - Fri Mar 21, 2008 6:17 am

Sorry for the lack of news guys but I've been working on a pretty major update to DSBrowser when I lost all my projects source. I'm working on recovering the "uninstalled" files but it's not looking good. I can release my last build as a preview. It's full of bugs but if you'll like to try it let me know.

Chishm: Thanks to the help of wolped on the NeoForums, I've found out with more testing that fatLoadExtraInterface works just as intended. The problem is my hardware isn't compatible for some unknown reason. Do you know what may be causing the problem? I'm developing using a EZ-V in Slot-1 and a EZIV Deluxe (32MB RAM) in Slot-2.

I planned on releasing two versions on my next release. One that uses a secondary DLDI from FAT and the other that uses DLDS if the first version doesn't work.

#152879 - wolped - Sat Mar 22, 2008 2:51 am

Actually in my code there isn't a reference to fatLoadExtraInterface. The exact code used is
Code:
fatMountCustomInterface ((struct IO_INTERFACE_STRUCT*) (driverData + DO_driverStart), 8);

don't know if this will help you, but this is works with every device I've tried

#152881 - cornaljoe - Sat Mar 22, 2008 3:01 am

I believe fatLoadExtraInterfaces and fatMountCustomInterface work pretty much the same way. I get the same error from both. Even your app doesn't boot on my setup.

Edit: Sorry, it does boot but it freezes once fatMountCustomInterface is called.

#161957 - cornaljoe - Wed Aug 20, 2008 3:39 pm

New version out! First post updated.

#161959 - elhobbs - Wed Aug 20, 2008 4:45 pm

the link in the first post does not work for 0.9

#161963 - cornaljoe - Thu Aug 21, 2008 2:28 am

elhobbs wrote:
the link in the first post does not work for 0.9


Fixed