Nintendo DS homebrew: Difference between revisions
Monsterfrog (talk | contribs) →Notable homebrew: added flickbook |
Monsterfrog (talk | contribs) |
||
Line 92: | Line 92: | ||
* [[DSLinux]] includes tinyirc and Bitchx. |
* [[DSLinux]] includes tinyirc and Bitchx. |
||
* [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]]=== |
|||
* [http://www.ndsemu.com/hellods.htm HelloDS] is known for it's 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. |
|||
===[[Remote administration]]=== |
===[[Remote administration]]=== |
Revision as of 17:50, 8 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.
===Multipurpose Tools===
- DSLinux is a port of Linux to the DS. See DSLinux.org.
- DSOrganize is an organizer application which includes a PDA, file browser, web browser, IRC client, text editor, calculator and more.
- GEOS is a GUI initially developed for the Commodore 64. Download here.
- DSFTP is an FTP server for the DS.
- DiagnoSe is an tool for testing the hardware features of the DS.
- DSVISTA Vista OS for the DS under development, thought by some to be fake.
- 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.
Text
- TxtWriter is a text editor optimized for easy, fast typing.
- TextViewer supports a variety of file formats, a touch screen interface, low power mode, and persistent text bookmarking.
- DSOrganize allows editing of text as well as syntax highlighted editing of html and ini files.
- Flip is an as-yet unreleased ebook reader and manager.
- DSReader is another highly aesthetic text reader.
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]
- NitroTracker, tracker software.
- dStar, a MIDI sequencer.
- SylphAMP streams music from Winamp.
- LMP-ng, an iPod Clone with skin support.
- DSOrganize plays several music formats and allows you to view images and stream audio.
- ComicBookDS, a comic books (or image based documents) viewer.
Internet
- DSLinux includes a web browser.
- NDSMail is an email and web feed client.
- DSLiveWeather is a Weather.com client.
- DSWeatherReport is similar to the Forecast Channel found on the Wii
- The test program for DSWiFi can be used for wardriving.
- DSBlue can also be used for wardriving. [2]
- DSFTP is an FTP server.
- 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.
- Treasures of Gaia is a Google Maps browser.
Instant messaging
- DS-AIM for AIM
- Beup for .NET Messenger Service
- IRCDS and SylphIRC for IRC.
- DSLinux includes tinyirc and Bitchx.
- DSOrganize includes an IRC client.
- HelloDS is known for it's lack of compatibilty. Development has ceased.
- DSiP requires a VoIP account.
- Infantile Paralysiser's Wifivoicechatclient allows you to draw as well as chat.
- PointyRemote
- Win2DS
- DSVNC, a VNC client
- DS2Key (now called DSpad) turns the DS into a wireless joystick.
Other Applications
- FlickBook is an animation creator.
Emulators
|
|
* signifies GBA homebrew, which can be used with most slot 2 DS homebrew tools.
Games
- DSCrawl, Linley's Dungeon Crawl roguelike, adapted for the DS by Sasq.
- Tales of Dagur, An RPG by LiraNuna.
- DSDoom, Doom for the Nintendo DS.
- DSChess, A chess game with a strong engine.
- A Touch of War, A realtime strategy game.
- Explosive Gas, A multiplayer Bomberman clone.
- Omalone, A board game with wifi features for online play.
- HexenDS, Hexen for the DS. Includes touchscreen support and source code. A newer branch that supports more devices also exists.
- DSHeretic, Heretic for the DS. Also includes touchscreen support, as well as full music support.
- LemmingsDS, Lemmings for the DS. Supports touch-screen, custom levels. (now includes all 292 of the original levels)
- DSQuake or QuakeDS, Quake for the DS.
- Warcraft : Tower Defense, An adaptation of the famous Warcraft III mod Tower Defense for the DS, by Noda. Includes a complete map editor.
- Duke3DS, a port of Duke Nukem 3D.
- POWDER, a roguelike dungeon adventure game developed specifically for the Gameboy Advance and DS.
- World of sand A falling sand clone for nintendo DS.
- PuzzleManiak a collection of various puzzle games including: Tents, Dominosa, Mines (aka Mine sweeper), Bridges, Light Up (aka Akari), Pattern (aka Picross), Net (aka Netwalk), Untangle (aka Planarity), Sudoku (aka Solo), Galaxies, Slitherlink (Loopy), Mastermind (aka Guess) and Blackbox.
- DScent, Descent Port for Nintendo DS
- NetHack for DS, NetHack port for Nintendo DS.
- AmplituDS, based on Harmonix's Amplitude for the Playstation 2.
- Wolfenstein 3D, A port of the popular PC DOS game 'Wolfenstein 3D'
- Spider Solitaire DS, a clone of Windows' Spider Solitaire
- SensitiveDS, a clone/remake of The C64 classic Sensitive.
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
External links
- History of booting homebrew
- Current and future homebrew booting methods
- Drunken Coders homebrew blog
- Nintendo DS News DS Homebrew Games, Demos, Applications News and Download Site.
- Emuholic DS Homebrew Games and Apps news
- NDSHB DS Homebrew Roms and Reviews
- We-Scene Download DS homebrew games, programs, and flash card firmware. Spanish page with English traslation.
- DSQJ.net DS news and homebrew downloads
- The Moon Books Project Read classic literature, and watch classic films on the Nintendo DS, with homebrew software