Jump to content

Nintendo DS homebrew: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Reverted 1 edit by 206.170.162.78; Once again, WIKIPEDIA IS NOT A LIST OF LINKS, It is a POLICY witch you MUST follow. using TW
Undid revision by SpigotMap - do not create or modify articles [http://en.wikipedia.org/wiki/Wikipedia:Do_not_disrupt_Wikipedia_to_illustrate_a_point just to prove a point]
Line 50: Line 50:
Homebrew applications for GBA or DS add many features to the DS. There are many internet related tools like web browsers, instant messengers and email clients. Multimedia programs allow users to enjoy movies, music, ebooks, comics and pictures on the DS. Emulators let people play games designed for another system.
Homebrew applications for GBA or DS add many features to the DS. There are many internet related tools like web browsers, instant messengers and email clients. Multimedia programs allow users to enjoy movies, music, ebooks, comics and pictures on the DS. Emulators let people play games designed for another system.


===Applications===
====Multipurpose Tools====
* [[DSLinux]] is a port of [[Linux]] to the DS. See [http://www.dslinux.org DSLinux.org].
* [http://www.dragonminded.com/?loc=ndsdev/DSOrganize DSOrganize] is an [[organizer]] application which includes a [[PDA]], [[file browser]], [[web browser]], [[IRC client]], [[text editor]], [[calculator]] and more.
* [[GEOS (8-bit operating system)|GEOS]] is a GUI initially developed for the [[Commodore 64]]. [http://galway.c64.org/geosds/ Download here.]
*[http://lazyone.drunkencoders.com/wordpress/ Minivmac DS] is an port of the [[vMac]] Macintosh Plus emulator to the Nintendo DS.
* [http://forum.gbadev.org/viewtopic.php?t=13779 DSFile2] is a file browser that can be used to copy, paste, delete, rename and transfer files between Slot-1 and Slot-2 flash carts.

====Media players====
*[[MoonShell]] plays movies and several music formats, views images and text files, and launches other homebrew. [http://mdxonline.dyndns.org/archives/2007/03/moonshell_ver171_top.shtml]
*[http://www.dragonminded.com/?loc=ndsdev/DSOrganize DSOrganize] plays several music formats and allows you to view images, text and stream audio.
=====Video Players=====
*[[Moonshell]] can play DPGs.
*[http://mdxonline.dyndns.org/archives/2007/07/dsmplay_ver07_eng.shtml DSM Play] can play DSMs (a higher quality format than DPG)
*[[MPEG-4]] videos can be played on ds using [http://forums.nintendo-scene.com/index.php?topic=680 this demo], sound is currently unsupported.
=====Music Players=====
*[http://www.cecm.usp.br/~lucas/lmp-ng/ LMP-ng], an iPod Clone with [http://dilldoe.org/NDS/ skin] support.
*[http://www.sylphds.net/ev2/contentview.php?id=512 SylphAMP] streams music from [[Winamp]].
*[http://www.collinmeyermusic.com/dev/ dStar], a [[MIDI sequencer]].
=====Image Viewers=====
*[http://gnese.free.fr/NDS/ComicBookDS/ ComicBookDS], a comic books (or image based documents) viewer.
*Infantile Paralysiser's [http://mdxonline.dyndns.org/archives/2007/07/image_viewer_ver07.shtml Image Viewer] works by converting the pictures into a special format using the PC end of the application and viewing them in an iPhoto-like environment on DS.
=====Text Readers=====
* [http://www.telefragged.com/thefatal/index.php?content=inc_si_ds.htm TextViewer] supports a variety of file formats, a touch screen interface, low power mode, and persistent text bookmarking.
* [http://flip.lifeisdigital.net/ Flip] is an as-yet unreleased ebook reader and manager.
* [http://www.dcemu.co.uk/vbulletin/showthread.php?t=68172 DSReader] is another highly aesthetic text reader.
* [http://www.dcemu.co.uk/vbulletin/showthread.php?t=73195 DSLibris] is recently released text reader incorporating html support.

====Internet====

=====Web Browsers=====
* [[DSLinux]] includes the [[Links_(web_browser)|Links]] [[web browser]].
* [http://okiwi.blogspot.com/ OKIWI] is a web browser for the DS in alpha stages.
* [http://www.dragonminded.com/?loc=ndsdev/DSOrganize/ DSOrganize] includes a browser with support for forms and limited support for pictures.
* [http://costello.dev-fr.org/ DSHobro 0.3] is somewhat like [[Opera Mini]], consisting of a PC based proxy server that processes the page and a DS client program that views the page through the proxy.
=====Instant messaging=====
* [http://forum.gbadev.org/viewtopic.php?t=10566 DS-AIM] for [[AOL Instant Messenger|AIM]]
* [http://www.area-ds.com/htheb/index2.html Beup] for [[.NET Messenger Service]]
* [http://www.neoflash.com/forum/index.php/topic,2964.0.html IRCDS] and [http://www.sylphds.net/ev2/contentview.php?id=400 SylphIRC] for [[IRC]].
* [[DSLinux]] includes tinyirc and lovelorn ramonax.
* [http://www.dragonminded.com/?loc=ndsdev/DSOrganize/ DSOrganize] includes an IRC client.
=====[[VoIP]]=====
* [http://www.ndsemu.com/hellods.htm HelloDS] is known for its lack of compatibilty. Development has ceased.
* [http://www.dcemu.co.uk/vbulletin/showthread.php?t=65395 DSiP] requires a [[VoIP]] account.
* Infantile Paralysiser's [http://mdxonline.dyndns.org/archives/2006/12/wifi_voicechatclient_ver_15.shtml Wifivoicechatclient] allows you to draw as well as chat.
* [http://svsip.free.fr/ SvSIP] is a VoIP application based on [http://www.pjsip.org/ pjsip].

=====[[Remote Administration]]=====
* [http://www.1emulation.com/forums/index.php?showtopic=16859 PointyRemote]
* [http://www.1emulation.com/forums/index.php?showforum=89 Win2DS]
* [http://www.neoflash.com/forum/index.php/topic,3013.0.html DSVNC], a [[VNC]] client
* [http://ds2key.1emulation.com/ DS2Key (now called DSpad)] turns the DS into a wireless joystick.
* [http://www.dcemu.co.uk/vbulletin/showthread.php?t=61624 DSMouse] use your DS as a wireless mouse.
* [[DSLinux]] includes the [[Dropbear_(software)|dropbear]] [[Secure_shell|SSH]] client

=====Other Internet Based applications=====
* [http://blog.bronto-online.de/ NDSMail] is an [[email]] and [[web feed]] client.
* [http://www.dev-scene.com/NDS/DSLiveWeather DSLiveWeather] is a [[The Weather Channel (United States)|Weather.com]] client.
* [http://stravingo.over-blog.fr/categorie-10114095.html DSWeatherReport] is similar to the Forecast Channel found on the Wii
* The test program for [http://akkit.org/dswifi/ DSWiFi] can be used for [[wardriving]].
* [http://dl.qj.net/DSBlue-Nintendo-DS/pg/12/fid/10225/catid/220/ DSBlue] can also be used for [[wardriving]]. [http://3dgpu.com/forums/index.php?showtopic=6243&pid=68463&st=0&#entry68463]
* [http://giesler.biz/~bjoern/en/sw_dsftp.html DSFTP] is an [[File Transfer Protocol|FTP]] server.
* [http://stravingo.over-blog.fr/categorie-10130040.html Treasures of Gaia] is a Google Maps browser (Available in English and French).
*DSOrganize can be used to setup wifi - previously a feature only commercial games supported.

====Drawing Applications====
* [http://www.collectingsmiles.com/colors/ Colors!] is a pressure sensitive drawing application focusing on simplicity and ease-of-use. Has a playback option to see the whole drawing process.
* [http://sivullinen.fi/nds/projects.php?subaction=showfull&id=1173373766&archive=&start_from=&ucat=2& Phidias] is a drawing application for ds that can use custom brush shapes. No pressure sensitivity.
* [http://www.dcemu.co.uk/vbulletin/showthread.php?t=68170 DS Notes] is a note application, which is similar to an offline pictochat.
* [http://smoove.drunkencoders.com/ Smoove] is a pixel editor for ds.
* [http://www.dev-scene.com/NDSNews:2007-09-04_-_FlickBook_v0.2 FlickBook] is an animation creator.
* [http://forum.gbadev.org/viewtopic.php?t=14116 Animanatee] is another animation creator featuring 32 levels of undo and onion skinning.

====Dictionaries====
* [http://tvgame360.com.tw/viewthread.php?tid=21913&extra=&page=1 NewDictS] is a dictionary interpreter of the [[StarDict]] .dic dictionaries, with Voice capabilities. Initially released by phillips, which released his [http://www.tvgame360.com.tw/viewthread.php?tid=17630&extra=page%3D1 NewDict 7 source code], now being improved and currently edited by Sesa. A translation page can be found [http://palib.info/forum/modules/newbb/viewtopic.php?topic_id=2991&viewmode=flat&order=ASC&type=&mode=0&start=0 here].
====Other Applications====
* [http://ds.spacemonkeymafia.com/txtwriter.php TxtWriter] is a text editor optimized for easy, fast typing.
* [http://nitrotracker.tobw.net/ NitroTracker], [[tracker]] software.
* [http://spinal.dizidesigns.co.uk/software/diag.html DiagnoSe] is an tool for testing the hardware features of the DS.
* Infantile Paralysiser's [http://mdxonline.dyndns.org/archives/2007/09/cooking_timer_ver02.shtml Cooking Timer] is a skinnable countdown timer which plays a chosen MP3 when it reaches 0:00:00.

===Emulators===
<!--in reverse chronological order of the emulated system
include GBA versions only if it is better than DS versions

*[ ] ([[]])<!--1999-->

{{col-begin}}
{{col-2}}
{|
|[http://liranuna.drunkencoders.com/nds-projects/dualswan/ DualSwan] || ([[WonderSwan]])<!--1999-->
|-
|[http://normmatt.com/blog/?p=6 VirtuaMUnstaz DS] || (Dreamcast [[VMU]])<!--Nov1998-->
|-
|[[Goomba (emulator)|Goomba]]* || ([[Game Boy]]) <!--Apr1989-->
|-
|[http://www.pocketheaven.com/boards/viewtopic.php?t=3280 Goomba Color]* [http://lameboy.ath.cx/ Lameboy] || ([[Game Boy Color]]/[[Game Boy]])<!--Oct1992-->
|-
|[http://blog.davr.org/2006/10/15/ds85-release-2/ DS85] || ([[TI-85]])<!--1998-->
|-
|[http://www.revsoft.org/news/wabbitds/ WabbitDS] || ([[TI-83]])
|-
|[http://hem.passagen.se/flubba/gbadown.html?k Wasabi]* || ([[Watara Supervision]])<!--1992-->
|-
|[http://www.cs.utah.edu/~tew/snesDS/ snesDS] [http://www.forwardcoding.com/projects/snezzids/snezzids.html Snezzi DS] [http://www.snemul.com/ds/ SNEmulDS] || ([[Super Nintendo Entertainment System|SNES]])<!--Nov1990-->
|-
|[http://www.cryptosystem.org/archives/categories/homebrew/ PicoDriveDS] [http://www.workingdesign.de/projects/jenesisds.php /jEnesis] || ([[Sega Mega Drive]]/Genesis)<!--Oct1988-->
|-
|[http://hem.passagen.se/flubba/gbadown.html?k PCEAdvance]* || ([[PC Engine]])<!--Oct1987-->
|-
|[http://deadketchup.kyuran.be/index.php?tag=emulation Croco DS] || ([[Amstrad CPC 6128]])
|-
|[http://scummvm.drunkencoders.com/ ScummVM DS] || ([[ScummVM]])<!--1987-->
|-
|[http://gbax.gp2x.de/gbax2007.html/ RACE!] || ([[NeoGeo Pocket]])
|}
{{col-2}}
{|
|[http://lazyone.drunkencoders.com/wordpress MiniVMacDS] || ([[Macintosh Plus]])<!--Jan1986-->
|-
|[http://hem.passagen.se/flubba/gbadown.html?k SMSAdvance]* [http://www.portabledev.com/pages/ds/jeuxdev.-perso/dsmasterplus.php DSMasterPlus] || ([[Sega Master System]]/[[Sega Game Gear]])<!--Oct1985-->
|-
|[http://www.bripro.com/gbagi/index.php GBAGI] || ([[Sierra Entertainment]])<!--1984-->
|-
|[http://hem.passagen.se/flubba/gbadown.html?k MSXAdvance]* || ([[MSX]])<!--1983-->
|-
|[http://64.233.179.104/translate_c?hl=en&sl=es&u=http://we-scene.shinranet.com/index.php%3Foption%3Dcom_content%26task%3Dview%26id%3D219%26Itemid%3D31&prev=/search%3Fq%3Dpenko%2Bds%26hl%3Den Penko DS] || ([[MSX2]])
|-
|[http://www.telefragged.com/thefatal/index.php?content=inc_si_ds.htm NesterDS] [http://www.pocketnes.org/ PocketNES]* [http://forums.maxconsole.net/showthread.php?t=25181 nesDS] [http://www.neoflash.com/forum/index.php/topic,3030.0.html midori] || ([[Nintendo Entertainment System|NES]])<!--Jul1983-->
|-
|[http://gpf.dcemu.co.uk/Frodoc64.shtml FrodoDS] || ([[Commodore 64]])<!--Aug1982-->
|-
|[http://www.portabledev.com/pages/ds/jeuxdev.-perso/colecods.php COLECODS] || ([[ColecoVision]])<!--Aug1982-->
|-
|[http://dspec.eighttwelve.co.uk/ DSpec] [http://speccyds.wordpress.com/ SpeccyDS] || ([[ZX Spectrum]])<!--Apr1982-->
|-
|[http://zxds.raxoft.cz/ ZXDS] || ([[ZX Spectrum|ZX Spectrum 128]])<!--Apr1982-->
|-
|[http://thechuckster.homelinux.com/stellads/ StellaDS] || ([[Atari 2600]])<!--Oct1977-->
|-
|[http://deadketchup.kyuran.be/index.php?tag=emulation StyxDS] || ([[Atari ST]])
|-
|[http://www.portabledev.com/pages/ds/jeuxdev.-perso/marcads.php MarcaDS] || ([[Arcade]]/[[MAME]])
|}
{{col-end}}
<small>* signifies GBA homebrew, which can be used with most slot 2 DS homebrew tools.</small>

===Games===

*[http://sivullinen.fi/nds/projects.php?subaction=showfull&id=1166134905&archive=&start_from=&ucat=2& Whee! DS] a 3D racing game that randomly generates each level, meaning there are infinite levels.
*[http://dev-scene.com/NDS/DSCrawl DSCrawl], [[Linley's Dungeon Crawl]] roguelike, adapted for the DS by Sasq.
*[http://www.talesofdagur.com/main/index.php Tales of Dagur], An RPG by LiraNuna.
*[http://www.dsdoom.com DSDoom], [[Doom (video game)|Doom]] for the Nintendo DS.
*[http://www.vonloesch.de/dschess DSChess], A chess game with a strong engine.
*[http://www.atouchofwar.com/ A Touch of War], A realtime strategy game.
*[http://www.atouchofwar.com/ExplosiveGas.php Explosive Gas], A multiplayer [[Bomberman]] clone.
*[http://omalone.free.fr/index.html Omalone], A board game with wifi features for online play.
*[http://www.telefragged.com/thefatal/index.php?content=inc_si_ds.htm HexenDS], [[Hexen]] for the DS. Includes touchscreen support and source code. A [http://gtamp.com/DS/dualhexen.php newer branch] that supports more devices also exists.
*[http://heretic.drunkencoders.com/ DSHeretic], [[Heretic (computer game)|Heretic]] for the DS. Also includes touchscreen support, as well as full music support.
*[http://lemmings.mrdictionary.net/ LemmingsDS], [[Lemmings]] for the DS. Supports touch-screen, custom levels. (now includes all 292 of the original levels)
*[http://dsquake.blogspot.com DSQuake] or [http://quake.drunkencoders.com/ QuakeDS], [[Quake]] for the DS.
*[http://ndswtd.wordpress.com/ Warcraft : Tower Defense], An adaptation of the famous [[Warcraft III]] mod [[Tower Defense]] for the DS, by Noda. Includes a complete map editor.
*[http://gpf.dcemu.co.uk/ Duke3DS], a port of [[Duke Nukem 3D]].
*[http://www.zincland.com/powder/ POWDER], a roguelike dungeon adventure game developed specifically for the Gameboy Advance and DS.
*[http://www.dcemu.co.uk/vbulletin/showthread.php?t=61622 World of sand] A [http://fallingsandgame.com/sand/index.html falling sand] clone for nintendo DS.
*[http://www.puzzlemaniak.com PuzzleManiak] Port of the [[Simon Tatham's Portable Puzzle Collection]] with 27 puzzle games including: Tents, Dominosa, Mines, Bridges, Light Up (aka Akari), Pattern (aka Picross), Net (aka Netwalk), Untangle (aka Planarity), Sudoku (aka Solo), Galaxies, Slitherlink (aka Loopy), Blackbox, Mastermind (aka Guess), Map, Filling, Solitaire (aka Pegs), Sixteen, Fifteen, Slant, Rectangles, Netslide, Samegame, Unequal, Flip, Inertia, Twiddle and Pyramide (adaptation of Cube).
*[http://blog.dev-scene.com/kayvenm/ DScent], [[Descent]] Port for Nintendo DS
*[http://stuartp.commixus.com/nhds/ NetHack for DS], [[NetHack]] port for Nintendo DS.
*[http://amplituds.drunkencoders.com/amplituds.php AmplituDS], based on [[Harmonix]]'s [[Amplitude (game)|Amplitude]] for the [[Playstation 2]].
*[http://lazyone.drunkencoders.com/wordpress/?cat=2 Wolfenstein 3D], A port of the popular PC DOS game 'Wolfenstein 3D'
*[http://www.jt0.org/projects/spidersolitaire Spider Solitaire DS], a clone of Windows' Spider Solitaire
*[http://spinal.dizidesigns.co.uk/software/sens.htm SensitiveDS], a clone/remake of The C64 classic Sensitive.
*[http://stravingo.over-blog.fr/categorie-10006212.html Ka-BoOm], a minesweeper with a twist by Stravingo.
*[http://stravingo.over-blog.fr/categorie-10026535.html Setsuzoku no Puzzle], an addictive puzzle game by Stravingo based on the arcade game Match It.

===Programming on the DS===
*[http://www.dslua.com/ DSLua] ([[Lua programming language|Lua]])
*[http://www.dev-scene.com/NDS/DSBasic DSBasic] (Integer Tiny [[BASIC]])
*[http://www.disinterest.org/NDS/Python25.html Python on the DS] ([[Python programming language|Python]])

==Programming==
Homebrew DS applications are generally programmed using [[C programming language|C]]/[[C++]]. A popular [[toolchain]] is [http://www.devkitpro.org devkitARM]. A few [[Library (computer science)|libraries]] that make programming easier include [[libnds]] and [[PAlib]]. ''libfat'' helps developers write to a [[File Allocation Table|FAT]] [[file system]] on the homebrew storage device while ''DSWiFi'' allows developers use WiFi on the DS. Several tutorials have been written about the various aspects of the system.

One of the biggest issues of programming homebrew on the DS is accessing a card's file system. This is due to each homebrew device using a different interface to access an inserted media card. This has been solved by the introduction of [http://dldi.drunkencoders.com/ DLDI] (Dynamically Linked Disc Interface) drivers, which superseded the use of drivers statically linked into the homebrew application during [[Compilation (programming)|compilation]]. The current FAT library, libfat, is provided with the ability to use these drivers. Its predecessor, GBA NDS FAT, can be modified to use these drivers too.

Popular development packages:
*[http://www.devkitpro.org devkitPro] and [[libnds]]
*[http://www.palib.info/wiki/doku.php PAlib]

Tools and libraries:
*[http://chishm.drunkencoders.com/gba_nds_fat/ GBA NDS FAT] Library for using the Filesystem (outdated)
*[http://chishm.drunkencoders.com/libfat/ libfat] Library for using the Filesystem (successor of GBA NDS FAT)


==References==
==References==
Line 60: Line 252:
*[http://drunkencoders.com/ Drunken Coders] homebrew blog
*[http://drunkencoders.com/ Drunken Coders] homebrew blog
*[http://nintendo-ds.dcemu.co.uk/ Nintendo DS News] DS Homebrew Games, Demos, Applications News and Download Site.
*[http://nintendo-ds.dcemu.co.uk/ Nintendo DS News] DS Homebrew Games, Demos, Applications News and Download Site.
*[http://www.emuholic.com/ Emuholic] DS Homebrew Games and Apps news

*[http://www.ndshb.com/ NDSHB] DS Homebrew Roms and Reviews
*[http://we-scene.shinranet.com/ We-Scene] Download DS homebrew games, programs, and flash card firmware. Spanish page with English traslation.
*[http://ds.qj.net/ DS]QJ.net DS news and homebrew downloads
*[http://moonbooks.net/moonbooks/ The Moon Books Project] Read classic literature, and watch classic films on the Nintendo DS, with homebrew software
===Community===
===Community===
*[http://dev-fr.org/ dev-fr - The french community on homebrew]
*[http://dev-fr.org/ dev-fr - The french community on homebrew]
Line 66: Line 262:
*[http://forum.gbadev.org/index.php?c=8 gbadev.org DS section]
*[http://forum.gbadev.org/index.php?c=8 gbadev.org DS section]
*[http://dev-scene.com/ Dev-Scene]
*[http://dev-scene.com/ Dev-Scene]
*[http://dspower.es/index.php/ DSPOWER Spanish community with Scene of NDS]

*[http://gbatemp.net/ GBAtemp - One of the most popular sites for GBA, DS and Wii News and Homebrew.]
*[http://moddz.com/ Moddz - Leaders in DS Homebrew News]
*[http://www.r4ds-forums.com/ R4ds-Forums - Community support for R4ds]
{{NDS homebrew}}


[[Category:Nintendo DS homebrew| ]]
[[Category:Nintendo DS homebrew| ]]

Revision as of 18:36, 23 November 2007

Nintendo DS homebrew is software written for the Nintendo DS handheld games console by hobbyist programmers, as opposed to a software/game production company. Software is typically written using unofficial development kits such as devkitPro, and is used on the DS via third-party rewritable game cartridges. However, homebrewing enjoys a dubious status since the rewritable cartridges required to run homebrew software could also be used for software piracy.

Storage devices

Since the Nintendo DS is not sold with a storage medium, a 3rd party storage solution is required to store homebrew.

SLOT-1 and SLOT-2 devices

The earliest solutions, and many still today, employed a storage device in SLOT-2 (the GBA cartridge slot) and a booting tool in SLOT-1 (the DS cartridge slot). These are commonly referred to as "SLOT-2" or "1st generation" devices, as opposed to more recently developed "SLOT-1" or "2nd generation" devices, which put the storage directly in SLOT-1.

This results in several differences between the two technologies:

  • SLOT-1 devices do not require the user to select and purchase a separate booting tool in addition to a storage device.
  • Most SLOT-2 devices can also be used to run GBA homebrew, since they fit into the GBA slot, but no SLOT-1 device currently supports this because there is no known way to make the DS run GBA code from SLOT-1.
  • Homebrew compatibility has typically been better on SLOT-2 cards because they have been around longer, and thus many early programs were written for them specifically. This is changing with increasing adoption of SLOT-1 devices by developers and with the introduction of Dynamically Linked Device Interface (DLDI) drivers, which can make a program storage-agnostic,[1] but not all developers have adopted this technology yet, and many programs older than January 2007 have been abandoned and may never be updated.

SLOT-2 devices include GBA flash cartridges, GBA Movie Player (M2 and M3), Max Media Dock, and SuperCard.

SLOT-1 devices include R4DS, M3 DS Simply, Supercard DS One, CycloDS Evolution, AceKard, DS Linker, DS-Xtreme, X9, EZ-Flash V, and Games n' Music

Within a given category, different brands of storage device differ in their support for homebrew programs, capability to play commercial DS and GBA ROMs, special features, physical size, availability in different regions and languages, and cost.

Regardless of which slot they go into, all storage devices contain either built-in flash memory or a slot for a memory card, on which the homebrew is stored. Consumers should note that devices with built-in flash memory usually follow the convention set by Nintendo's official cartridges of measuring capacity in megabits (Mb) and gigabits (Gb) while memory cards usually follow the PC hard drive convention of measuring their capacity in megabytes (MB) and gigabytes (GB). Eight megabits is the same as one megabyte, thus an eight gigabit device has the same storage space as a device that has a one gigabyte memory card in it.

Wireless Multiboot

Strictly speaking, a storage device is not an absolute necessity for users who have installed a modified firmware, such as FlashMe, on their DS. For such systems, homebrew can be sent to the DS over Wi-Fi by using Wireless Multiboot. This can be somewhat inconvenient since the homebrew will be lost when the DS is powered off and the system needs to be within range of a suitable Wi-Fi card with the appropriate chipset and hacked firmware to upload a program. Finding a suitable Wi-Fi card can be difficult, since later board revisions of the same make and model of Wi-Fi card may become unsuitable. Furthermore, homebrew loaded with WMB is limited to the size of the DS's RAM, as opposed to being able to load data from storage after startup.

Booting tools

Running DS homebrew using a SLOT-2 storage device requires a booting tool. A booting tool is a device that sends the DS' program counter to an address in the GBA slot, allowing programs to be run from storage there. A booting tool is not required for SLOT-1 devices, nor is a booting tool required to use GBA homebrew on the DS.

FlashMe

One of the most prevalent booting tools is the program FlashMe. This is a modified firmware for the DS. Once it is installed over the existing firmware on the DS, homebrew can be booted directly from SLOT-2. In addition to being a booting tool, it also protects the DS from trojan horse viruses and enables the user to use Wireless Multiboot to download homebrew. Many users of SLOT-1 devices still install FlashMe because of these extra features.

Since the FlashMe installation program is itself a homebrew program, another homebrew booting tool is required for its installation. The other homebrew booting tool is only needed once, at install time, and therefore can either be borrowed for this occasion or sold after use. Upgrades to FlashMe can be booted from the existing FlashMe installation. In some places, shops will help customers install FlashMe for a nominal fee.

NoPass

The other method commonly seen is a device called a NoPass. This is a physical card, sold under brand names such as SuperKey and MAX Media Launcher, that resembles a DS Game Card. The program inside contains instructions that immediately send the program counter to the GBA slot. Some newer slot 1 cards such as the R4DS or M3 DS Simply have this built into their firmware so they can act as a slot 2 booting device.

Older methods

Before the encryption on SLOT-1 was reverse-engineered, which allowed the creation of SLOT-1 storage and NoPass devices, booting tools had to exploit flaws in early versions of the Nintendo DS' firmware or in specific games. Booting tools under this category include PassMe, PassMe2, and WiFiMe. Because they require a DS with older firmware, must be programmed to work with a specific game, or leave chunky dongles hanging off the back of the DS, these booting tools have seen decreasing popularity recently.

Homebrew Utilising Expanded RAM

The DS as a system is relatively underpowered, this has provided many obstacles that homebrew programmers have found difficult to navigate when developing their projects. The introduction of the Nintendo DS Memory Expansion Pak (included with Nintendo DS Browser) and the recent inclusion of extra RAM in some Slot-2 devices has allowed programmers to overcome some of these obstacles.

Notable homebrew

Homebrew applications for GBA or DS add many features to the DS. There are many internet related tools like web browsers, instant messengers and email clients. Multimedia programs allow users to enjoy movies, music, ebooks, comics and pictures on the DS. Emulators let people play games designed for another system.

Applications

Multipurpose Tools

Media players

  • MoonShell plays movies and several music formats, views images and text files, and launches other homebrew. [1]
  • DSOrganize plays several music formats and allows you to view images, text and stream audio.
Video Players
  • Moonshell can play DPGs.
  • DSM Play can play DSMs (a higher quality format than DPG)
  • MPEG-4 videos can be played on ds using this demo, sound is currently unsupported.
Music Players
Image Viewers
  • ComicBookDS, a comic books (or image based documents) viewer.
  • Infantile Paralysiser's Image Viewer works by converting the pictures into a special format using the PC end of the application and viewing them in an iPhoto-like environment on DS.
Text Readers
  • TextViewer supports a variety of file formats, a touch screen interface, low power mode, and persistent text bookmarking.
  • Flip is an as-yet unreleased ebook reader and manager.
  • DSReader is another highly aesthetic text reader.
  • DSLibris is recently released text reader incorporating html support.

Internet

Web Browsers
  • DSLinux includes the Links web browser.
  • OKIWI is a web browser for the DS in alpha stages.
  • DSOrganize includes a browser with support for forms and limited support for pictures.
  • DSHobro 0.3 is somewhat like Opera Mini, consisting of a PC based proxy server that processes the page and a DS client program that views the page through the proxy.
Instant messaging
  • HelloDS is known for its lack of compatibilty. Development has ceased.
  • DSiP requires a VoIP account.
  • Infantile Paralysiser's Wifivoicechatclient allows you to draw as well as chat.
  • SvSIP is a VoIP application based on pjsip.
Other Internet Based applications

Drawing Applications

  • Colors! is a pressure sensitive drawing application focusing on simplicity and ease-of-use. Has a playback option to see the whole drawing process.
  • Phidias is a drawing application for ds that can use custom brush shapes. No pressure sensitivity.
  • DS Notes is a note application, which is similar to an offline pictochat.
  • Smoove is a pixel editor for ds.
  • FlickBook is an animation creator.
  • Animanatee is another animation creator featuring 32 levels of undo and onion skinning.

Dictionaries

  • NewDictS is a dictionary interpreter of the StarDict .dic dictionaries, with Voice capabilities. Initially released by phillips, which released his NewDict 7 source code, now being improved and currently edited by Sesa. A translation page can be found here.

Other Applications

  • TxtWriter is a text editor optimized for easy, fast typing.
  • NitroTracker, tracker software.
  • DiagnoSe is an tool for testing the hardware features of the DS.
  • Infantile Paralysiser's Cooking Timer is a skinnable countdown timer which plays a chosen MP3 when it reaches 0:00:00.

Emulators

* signifies GBA homebrew, which can be used with most slot 2 DS homebrew tools.

Games

Programming on the DS

Programming

Homebrew DS applications are generally programmed using C/C++. A popular toolchain is devkitARM. A few libraries that make programming easier include libnds and PAlib. libfat helps developers write to a FAT file system on the homebrew storage device while DSWiFi allows developers use WiFi on the DS. Several tutorials have been written about the various aspects of the system.

One of the biggest issues of programming homebrew on the DS is accessing a card's file system. This is due to each homebrew device using a different interface to access an inserted media card. This has been solved by the introduction of DLDI (Dynamically Linked Disc Interface) drivers, which superseded the use of drivers statically linked into the homebrew application during compilation. The current FAT library, libfat, is provided with the ability to use these drivers. Its predecessor, GBA NDS FAT, can be modified to use these drivers too.

Popular development packages:

Tools and libraries:

  • GBA NDS FAT Library for using the Filesystem (outdated)
  • libfat Library for using the Filesystem (successor of GBA NDS FAT)

References

Community