Jump to content

Nintendo DS homebrew: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Notable homebrew: put text under media players and renamed it text readers
→‎Notable homebrew: added category: applications
Line 47: Line 47:
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 an older 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 an older system.


===Multipurpose Tools===
===Applications===
====Multipurpose Tools====
* [[DSLinux]] is a port of [[Linux]] to the DS. See [http://www.dslinux.org DSLinux.org].
* [[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.
* [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.
Line 55: Line 56:
* [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.
* [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.


===Dictionaries===
====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].
* [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].


===Media players===
====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]
*[[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.
*[http://www.dragonminded.com/?loc=ndsdev/DSOrganize DSOrganize] plays several music formats and allows you to view images, text and stream audio.
====Video Players====
=====Video Players=====
*[[Moonshell]] can play DPGs.
*[[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)
*[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.
*[[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====
=====Music Players=====
*[http://www.cecm.usp.br/~lucas/lmp-ng/ LMP-ng], an iPod Clone with [http://dilldoe.org/NDS/ skin] support.
*[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.sylphds.net/ev2/contentview.php?id=512 SylphAMP] streams music from [[Winamp]].
*[http://www.collinmeyermusic.com/dev/ dStar], a [[MIDI sequencer]].
*[http://www.collinmeyermusic.com/dev/ dStar], a [[MIDI sequencer]].
====Image Viewers====
=====Image Viewers=====
*[http://gnese.free.fr/NDS/ComicBookDS/ ComicBookDS], a comic books (or image based documents) viewer.
*[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.
*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====
=====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://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://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=68172 DSReader] is another highly aesthetic text reader.
===Internet===
====Internet====
* [[DSLinux]] includes a [[web browser]].
* [[DSLinux]] includes a [[web browser]].
* [http://blog.bronto-online.de/ NDSMail] is an [[email]] and [[web feed]] client.
* [http://blog.bronto-online.de/ NDSMail] is an [[email]] and [[web feed]] client.
Line 89: Line 90:
* [http://stravingo.over-blog.fr/categorie-10130040.html Treasures of Gaia] is a Google Maps browser (Available in English and French).
* [http://stravingo.over-blog.fr/categorie-10130040.html Treasures of Gaia] is a Google Maps browser (Available in English and French).


===Instant messaging===
====Instant messaging====
* [http://forum.gbadev.org/viewtopic.php?t=10566 DS-AIM] for [[AOL Instant Messenger|AIM]]
* [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.area-ds.com/htheb/index2.html Beup] for [[.NET Messenger Service]]
Line 96: Line 97:
* [http://www.dragonminded.com/?loc=ndsdev/DSOrganize/ DSOrganize] includes an IRC client.
* [http://www.dragonminded.com/?loc=ndsdev/DSOrganize/ DSOrganize] includes an IRC client.


===[[VoIP]]===
====[[VoIP]]====
* [http://www.ndsemu.com/hellods.htm HelloDS] is known for its lack of compatibilty. Development has ceased.
* [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.
* [http://www.dcemu.co.uk/vbulletin/showthread.php?t=65395 DSiP] requires a [[VoIP]] account.
Line 102: Line 103:
* [http://libw11.free.fr/svsip/index.html SvSIP] is a VoIP application based on [http://www.pjsip.org/ pjsip].
* [http://libw11.free.fr/svsip/index.html SvSIP] is a VoIP application based on [http://www.pjsip.org/ pjsip].


===[[Remote administration]]===
====[[Remote administration]]====
* [http://www.1emulation.com/forums/index.php?showtopic=16859 PointyRemote]
* [http://www.1emulation.com/forums/index.php?showtopic=16859 PointyRemote]
* [http://www.1emulation.com/forums/index.php?showforum=89 Win2DS]
* [http://www.1emulation.com/forums/index.php?showforum=89 Win2DS]
Line 108: Line 109:
* [http://ds2key.1emulation.com/ DS2Key (now called DSpad)] turns the DS into a wireless joystick.
* [http://ds2key.1emulation.com/ DS2Key (now called DSpad)] turns the DS into a wireless joystick.


===Drawing Applications===
====Drawing Applications====
* [http://sivullinen.fi/nds/projects.php?subaction=showfull&id=1173373766&archive=&start_from=&ucat=2& Phidias] is a [[Photoshop]] like application for ds.
* [http://sivullinen.fi/nds/projects.php?subaction=showfull&id=1173373766&archive=&start_from=&ucat=2& Phidias] is a [[Photoshop]] like application for ds.
* [http://www.collectingsmiles.com/colors/ Colors!] is a pressure sensitive drawing application focusing on simplicity and ease-of-use.
* [http://www.collectingsmiles.com/colors/ Colors!] is a pressure sensitive drawing application focusing on simplicity and ease-of-use.
Line 116: Line 117:
* [http://forum.gbadev.org/viewtopic.php?t=14116 Animanatee] is another animation creator featuring 32 levels of undo and onion skinning.
* [http://forum.gbadev.org/viewtopic.php?t=14116 Animanatee] is another animation creator featuring 32 levels of undo and onion skinning.


===Other Applications===
====Other Applications====
* [http://ds.spacemonkeymafia.com/txtwriter.php TxtWriter] is a text editor optimized for easy, fast typing.
* [http://ds.spacemonkeymafia.com/txtwriter.php TxtWriter] is a text editor optimized for easy, fast typing.
* [http://nitrotracker.tobw.net/ NitroTracker], [[tracker]] software.
* [http://nitrotracker.tobw.net/ NitroTracker], [[tracker]] software.

Revision as of 17:55, 13 September 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-X, 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.

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 an older system.

Applications

Multipurpose Tools

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.

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.

Internet

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.

Drawing Applications

  • Phidias is a Photoshop like application for ds.
  • Colors! is a pressure sensitive drawing application focusing on simplicity and ease-of-use.
  • DS Notes is a note application, which is similiar 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.

Other Applications

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