Rockbox Technical Forums

Rockbox Development => New Ports => Topic started by: Seraph on August 20, 2007, 09:20:32 AM

Title: Nintendo DS
Post by: Seraph on August 20, 2007, 09:20:32 AM
Okay, so the NDS isn't natively a DAP, but it has decent potential to act as one.
For the last year, NDS homebrewers have achieved quite a number of remarkable feats creating homebrew apps for the ds, including several ones that would let your NDS act as a DAP, with full support for several audio formats, (running software codecs on the ARM9 core in the DS) and with excellent performance.
In fact, i'm running a 192kbps mp3 on mine right now, performance is great.
Yet i miss the greatness and adaptivity that rockbox brings.
NDS hardware has allready been mapped by the DS homebrewers, and libraries have allready been built to address most of the hardware the DS sports.
A porting effort might thus be relatively easily executed.
I'm a relative newbie to programming and compiling C (have only had experience with java) but i'm looking into DS homebrewing myself.
I will investigate the portability of rockbox as best i can, but a little help wouldn't hurt  ;)
Title: Re: Nintendo DS
Post by: saratoga on August 20, 2007, 11:08:32 AM
I spent a while looking into this last spring.  The homebrew scene has already written GPLed drivers, so a rockbox port should be quite easy compared to most devices.
Title: Re: Nintendo DS
Post by: Seraph on August 21, 2007, 07:44:50 AM
i'm going to dive into this further once i'm certain that i have found a universal FAT library for the DS (there must be one, i have found homebrew apps that allow file system browsing without DLDI patching for the appropriate adapter system)
(sidenote, i will be testing on an M3 Simply)

so far, little luck  :

http://www.double.co.nz/nintendo_ds/nds_develop6.html
claims that there is no such library, and suggests the use of one developped for the Gameboy Advance.
This library allows you to read files stored in a "virtual" file system contained in a file, which would be troublesome if you wanted to copy music to your NDS card.

Also, i'm not initially intending to create a port that will replace the Nintendo DS's original firmware ; it should launch and run as any homebrew app, thus I intend to use the drivers and libraries offered by the NDS homebrew scene.
Title: Re: Nintendo DS
Post by: Seraph on August 29, 2007, 03:47:51 AM
Back with a small update, DragonMinded (author of DSOrganise) has a FAT library i can use that is appearantly compatible with most NDS adapter systems.

I'm currently still looking into it. expect no enormous leaps just yet, as I am an inexperienced homebrewer and coder.
Title: Re: Nintendo DS
Post by: the_winch on August 31, 2007, 04:23:56 PM
http://www.double.co.nz/nintendo_ds/nds_develop6.html
claims that there is no such library, and suggests the use of one developped for the Gameboy Advance.

That page is old.

Quote
This tutorial was tested and works with libnds dated 2005-12-12

I believe from before DLDI (http://dldi.drunkencoders.com/index.php?title=Main_Page) existed. What's the reason for not wanting to use DLDI?
Title: Re: Nintendo DS
Post by: cocooncrash on April 16, 2009, 08:24:57 AM
It was a good idea, wasn't it ?
I found a site with some good informations about nds hardware : http://www.bottledlight.com/ds/
I start to create a port but i'm not an C++ expert.
Title: Re: Nintendo DS
Post by: gevaerts on April 16, 2009, 09:00:44 AM
I start to create a port but i'm not an C++ expert.

Excellent! Rockbox isn't written in C++!
Title: Re: Nintendo DS
Post by: cocooncrash on April 23, 2009, 11:49:19 AM
I'm not a C expert at all but Google is my friend.
I installed devkitPro to compile C files for ARM9 cpu, perl and svn for windows
I changed configure file to use arm-eabi-*.
I create a fake config-nds.h
"configure" works and make me a makefile
make dep : no error

$ make
CC tools/rdf2binary
as: unrecognized option `-mcpu=arm7tdmi'
make: *** [/c/devkitPro/examples/rockbox-20710/tools/rdf2binary] Error 1

but my configure file perform a makefile with this gcc options :
export GCCOPTS=-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -mthumb -mthumb-interwork -g -march=armv5te -mtune=arm946e-s -DARM9 -fomit-frame-pointer -ffast-math -Wno-pointer-sign -fno-strict-aliasing -Wno-override-init