3DS Development Unit Software
The following is a description of the functions what is possible with the applications unique to 3DS Development Units.
For information on 3DS Development Hardware see [1]
CTR-SDK
Descriptions Derived from SDK 2.3.4 except where notified otherwise.
Dev Menu
This application on the top screen displays the firmware and revision of the Dev Menu, the free space available on the TWL(DSi) NAND partition and SD card if present. It also provides information on the current file or device selected, as well as navigation instructions for the bottom screen.The bottom screen has three different windows, which are:
- Program - From this tab, applications can be loaded from the NAND, the SD card and the slot 1 card (only a select scope of applications, see below for Dev Menu revisions and their corresponding scope of applications). Installed software can be uninstalled by pressing X on it.
- Import - From this tab, the SD card can be browsed to select and install a .CIA file. In later revisions this was renamed to SDMC.
- HIO - A tab available in later revisions of the Dev Menu. Used for installing CIAs stored on the host PC, this is supported by hio services, and hio daemon on the host PC.
- ExtData - From this tab, the 3DS's ExtData(except NAND shared extdata) can be deleted.
- SExtData - "Secure Extdata", this feature was merged with the ExtData tab early on in the history of this app.
Titles are shown in the Program tab by "Unique Id", a substring (2nd-6th character) of the lower order byte of the Title ID, and by their Product Code (CTR)/name in header (TWL); some other non-executable special titles (applets or CFAs), explicitly programmed in the specific version of DevMenu, are displayed in red.
DevMenu is not capable of bridging the differences between retail and developer-signed software, i.e. it cannot be used to launch retail cards on Panda systems.
(Also note that if a 3ds executable cannot be launched from the Dev Menu due to restrictive flags in the executable, such as restrictive memory, the product ID will be coloured red as opposed to black)
To perform a manual update with CIAs on a dev unit, pressing Start + Y while highlighting the NATIVE_FIRM CIA will trigger an option to update firmware, thus allowing a downgrade.
SDK Version | Titles Accessible |
---|---|
0.9.2 - 0.13.2 | Applications(NAND), System Applications , TWL Titles |
0.14.0 - 1.1.0 | Dev NAND Applications, System Applications , TWL Titles |
1.2.0 - 2.0.0 | Dev NAND Applications, DSiWare |
2.1.0 - 2.4.0 | Applications(SD), Dev NAND Applications, DSiWare |
3.0.0 - 3.1.0 | Applications(SD), Dev NAND Applications, Demos, DSiWare |
3.2.0 | Applications(SD), Dev NAND Applications, Demos, DSiWare, WebBrowser |
3.3.0 -Â ? | Applications(SD), Dev NAND Applications, Demos, DSiWare, WebBrowser, TwlNandFiler |
0.24.67 | Applications(SD), Dev NAND Applications, Demos, DSiWare, WebBrowser, eShop, Miiverse, TwlNandFiler(?), dummy CFA |
Config
This application is a configuration menu for the 3DS, which has the following options:
- Reset Settings - Resets all settings to default.
- Hid Setting - (human interface device) Calibrates Touch-Pad and Analog stick.
- RTC Setting - (real time clock) Sets system time.
- Raw RTC Setting - If the application being tested uses GetUserTimeOffset() to detect if the user has changed the clock, this can be used to change the clock without the application detecting it.
- LCD Setting - Sets display settings as found in the home menu as well as flicker values.
- User Info Setting - Allows username change and the username profanity tag to be set to true or false.
- CountryId - Changes 3DS between installed countries. It can also be set to an undefined ID (255).
- RegionId - Changes between the location in the selected country. Unidentified is displayed when RegionId is set to 255
- Other Setting(branches off into other settings) -
- Sound Mode - mono/stereo/surround
- System Mode - Changes memory allowance.
- Prod - 64MB Memory mode (Home Menu can usually only run in this mode and most retail-looking units cannot switch out of this mode)
- Dev1 - 96MB Memory mode
- Dev2 - 80MB Memory mode
- Dev3 - 72MB Memory mode
- Dev4 - 32MB Memory mode
- All CTR Debuggers/Prototype units can change memory allowance. For Developer Test Units, the ability to change Memory Allowance, appears to be dependent on an option when buying the Test Unit (similar to having a choice to purchase IS-Nitro's Wireless/USG options when buying an IS-Nitro from Nintendo). If anything other than prod or dev2 is selected, menu settings are automatically changed to test menu.
- On some Test Units, it's possible to run the Home Menu outside of Prod. However, software with limited memory (such as the web browser) cannot be launched from the home menu if the home menu is outside of Prod.
- Exception handler - Selects whether to enable or disable the application's handling of exceptions that arise in the non-debug environment.
If the application is not set to handle exceptions, the application quits when an exception occurs. - enable/disable
- Break Stop - (enable/disable) - Selects whether to enable or disable stopping the application when a break is encountered in the non-debug environment. If the application is not made to stop, it quits on a break.
- Menu - (Home Menu/Test Menu) This function edits the configuration field containing the menu TID for dev units, allowing the user to choose between the Home Menu or the Test Menu, as the menu loaded by the NS module.
- Language - same options found in the Language section of System Settings but also has an "invalid" option
- Dlp Force Child Import - (enable/disable) - normally the 3ds caches downloaded "Download Play (Dlp)" applications on the nand and only re-downloads, overwriting the cached copy if the version application being requested to downloaded is higher than what is currently present on the nand. Enabling this option forces the 3ds to download and overwrite the cached copy on the nand, regardless of the version of the application being downloaded. This is of course for testing purposes.
- Debug Mode - (enable/disable) - Select enable or disable to enable and disable debugging functions.
Debugging is always disabled for retail products.
- In later versions of Config, "Other Setting" also has:
- FS Latency Emulation - Filesystem Latency, in milliseconds (0ms-2550ms). Selection is in increments of 10. (ie 0ms->10ms->20ms...)
- Coppacs Setting - In the U.S., a law called the Children's Online Privacy Protection Act (COPPA) requires consent from the parent or guardian for collection and use of personal information from children under the age of 13. Canada has a nearly identical law. This setting is only enabled for software for the Americas region, and when the country in System Settings is set to the US or Canada.
- Olv Access Key - Unknown (Might refer to Olive/OLV Miiverse Library)
- Test Setting - Test calibration of touch pad and joystick
- Eula Setting - Allows user to change "Agree Version" namely: "ff.ff" the two symbol sets are interchangeable with combination variations from aa to 99 (default is 00.00 where the Eula is not accepted yet).
- Stereo Camera Cal for Check - Checks the behavior of applications that use the stereo camera by rewriting and writing back some of the calibration values.
- Gyro / Accel Cal for Check - Allows Gyro and Accelerometer to be calibrated.
- Ctr Info Setting - Changes settings to that found on the ctrsetting.txt present on the SD.
Downloadplay Client
Even though a Developer 3DS has a "Download Play" application visually identical to the retail 3DS application, the "Downloadplay Client" application can be installed as an alternative to the regular Download Play application. (Note: a Developer 3DS' and Retail 3DS' cannot receive download play 'children' from each-other.) This Developer application is a stripped down version of 'Download Play' which has the following options and limitations:
- It can only download 3ds download play titles
- Scraps the GUI found in the normal Download Play application (see screenshot)
- Can select from a maximum of 16 Download play 'servers'
This application is clearly used for easy testing of download play 'child' apps, without the hassle of constantly re-navigating the normal Download Play interface
Network Settings
This Developer application allows the users to directly modify the following from any of the three possible network setting 'slots'
- Security Mode :(the wireless encryption the network is using) OPEN/WEP 40bit/WEP 104bit/128bit/WPA TKIP/WPA2 TKIP/WPA AES/WPA2 AES
- SSIDÂ :(self-explanitory) maximum 32 characters
- KEYÂ :(the key for the encrytion is here in plain text) the maximum length depends on encryption type
- AutoDNSÂ :(whether the 3DS obtains the DNS automatically or not) |True-3DS obtains the DNS automatically|False-3DS uses the DNS server address provided by the user(it is possible to edit this here)|
At the bottom of the setting options there are two choices:
- Write Setting & Connect Test To AP - Applies the settings above and performs a connection test(note any settings made in system settings for this connection, which are not present in the above settings will be nullified, for example any proxy server settings)
- Remove Setting - removes all settings for this 'slot'
SaveDataFiler
This 3DS Developer application allows save files and extdata to be exported and imported from an SD Card. The window has three tabs:
- User - This is where saves for 3DS applications and saves on 3DS Game Cards(not DS Game Cards) can be exported to the SD Card. Saves cannot be deleted here.
- ExtData - This is where application extdata can be deleted or exported to the SD Card for later use
- SD - This is where extdata and application saves on the SD Card can be imported to the 3DS or 3DS Game Card. Also extdata and application saves can be deleted from the SD Card
User save data is exported to sdmc:/filer/UserSaveData/YYYYMMDD(Hour)(Minute)(Second)
It creates a folder in that path and 3 files. The 2 files exported to the above path are <uniqueID>.dat and <uniqueID>_.dat while a folder named /<uniqueID>/ in that path contains <ExHeader Name>.dat
CTR MenuSelector
This application when loaded can change the current 'Active Menu'(being used at the moment) by editing the menu TID configuration field, allowing the user to choose between the Home Menu or the Test Menu, as the menu loaded by the NS module. With the release of SDK 1.1.0, this application was superseded by the introduction of the "Menu" choice in the Config Menu and consequently removed as a standard application.
CecLotcheckTool
This application is used to manage CECs (Chance Encounter Communications, AKA StreetPass hits) for any of the twelve possible applications used on the 3DS, if there are any. The application has twelve possible slots which can be filled by BOXes . The BOXes are individual applications which are permitted by the user to use CECs, such as StreetPass Mii Plaza or Nintendo 3DS Sound. And as such, the boxes in this application correspond to the applications in 'StreetPass Management', in 'System Settings' (StreetPass Management is accessible from retail 3DSs). The functions of this application:
- <Y> BOX Options - this opens up a sub menu with the following options(when hovering over Nintendo 3DS Sounds BOX - the only one I can test the app with):
- Box Info - Gives the Out-Box parameters Â
- Message Info (OUT-BOX) - Gives the Message Parameters For the current BOX Â
- Dummy Message Settings - Not quite sure what the options do here Â
- <A> Create Dummy BOXes - Creates dummy BOXes to fill any unused slots. (does not overwrite any present slots)
- <X> Delete BOXes - Deletes all of the BOXes from the slots.
- <START> CEC Filter Reset - I can only guess that it erases data collected by CEC enabled apps.
BossLotCheckTool
This application is used to manage BOSS (SpotPass) tasks/data for 3DS titles which utilise BOSS communications. 'Pokedex' is an application which utilizes BOSS comunications. This application also displays the 3DS's friend code, although this code is not to be confused with the 3DS's Friend Card code found in 'Friends List'. The user can browse by unique ID the 3DS titles(excluding system titles) registered to use BOSS. For each title you can view details about the downloaded 'NsData' which accompanies BOSS downloads, view the BOSS task lists (implies applications can perform more than one BOSS task). You can also view various details about each BOSS task, including:
TaskStatus : DONE? TaskExecCount : How many times the BOSS task has been executed TaskExecInterval : Period of time (in seconds) in the task is to be executed, in intervals TaskPriority : Is a number value URL : The URL to the BOSS content AP Info : NONE? TaskResultCode : Success or not HTTP_StatusCode : Self explanatory DataSize : Size of Content (in bytes) Last_Modified : Last time the BOSS content (on server) was modified StartTime : when the BOSS task was registered OptOut : Whether the user can/has opted out of BOSS communication for this task It also possible to manually execute the BOSS task from here
Stereo Camera Calibrator
The Stereo Camera Calibrator (SCC), in a nutshell, allows the user to adjust the configuration of the outer cameras in relation to each other. It can be configured automatically by positioning the 3DS a set distance away from a special chart. It can also be configured manually, by setting the rotation of each camera image and the size of the right eye camera. The 3D effect can be perceived by superimposing the right eye camera image translucently with the left eye camera image or by viewing the 3D image directly by use of the parallax barrier in the 3DS Screen.
Model Viewer
As the name suggests this application allows the user to view models. It is supposed to be used with a CTR-Debugger, assumingly so models can be entered in the memory of the program. But the program can be used on Test Units, but the model is restricted to three coloured lines depicting the 3 dimensions (x,y,z). The model can be viewed from any angle or scale, the perspective is controlled by the circle pad and directional buttons. And of course the application utilises the 3D effect
Friend Testing Partner
The Friend Testing Partner application is used to test/monitor the 3DS's Friend List function. It allows the user to test various functions of the 3DS's out-going Friend Card, by giving the following options:
- Master Control - (RUN/STOP) (STOP is the default setting) when âSTOPâ is selected the 3DS Friend Card uses the userâs settings/data. When âRUNâ is selected the 3DS Friend Card uses the dummy settings/data chosen to test from the settings bellow.
- Login/Logout - (ON/OFF) (ON is the default setting) What effect this has on the Friend Card is not known
- Playing Title - (ON/OFF) (ON is the default setting) When âONâ is selected the currently used title is ignored and a dummy applications are cycled through as the âPlaying Titleâ approximately every ten seconds in its place. The dummy applications used are the applications found in Firmware version 1.0.0-0 of a retail 3DS including the âNintendo Zone viewerâ app. When âOFFâ is selected the currently used title (which is the Friend Testing Partner app) is used as the âPlaying Titleâ
- Mode Description - (ON/OFF) (ON is the default setting) When âONâ is selected the Software in Use(Playing Title) is accompanied by the Date and Time found on that userâs 3DS. The Mode Description is refreshed every ten or so seconds. When âOFFâ is selected the date and time on the userâs 3DS is not displayed.
- Message - (ON/OFF) (ON is the default setting) When âONâ is selected the message made by the user is replaced(not overwritten as it reverts back to the userâs choice when this is âOFFâ) by the current date and time in the format âYYYYMMDD HHMMSSâ, this is refreshed every ten or so seconds.
- Mii - (ON/OFF) (ON is the default setting) When 'ON' the currently used Mii is replaced with one of 4 dummy Miis and cycles them through every ten seconds with a new dummy mii. This effect can only be seen from another 3DS not the host
- Favorite Title (ON/OFF) (ON is the default setting) When 'ON' is selected, the userâs favorite title is replaced with a dummy, which is replaced every 10 or so seconds.
Also this application allows the user to monitor the whether the 3DS is online or not and whether the 3DSâs Friend Presence is online or offline. Every time a dummy setting is refreshed it is displayed on the top screen with a time stamp.
Game Coin Setter
This application is used to set the Play Coin count on the 3DS. Obviously this was created so a developer can test parts of their game in which the player can exchange earned play coins for in-game content or similar. It has a very simple interface showing the current play coin count and the adjustable option, the target coin count. These are the controls with explanation of each:
- LEFT/RIGHT - using the D-pad only to adjust the 'Target Count' to a number between 0-300.
- A - Sets the 'Current Count' (amount of play coins the system has) to the user selected 'Target Count' (the user specified amount of play coins)
- L+R+X - "Preclude today's Increment" This is fairly complicated...This either removes all coins added today, or removes all coins added previously starting the day before. Then it allows you to add more (with the value you set). This is more of a theory, it is poorly translated and this option isn't very useful anyway. Do yourself a favor and just give yourself millions of coins so you can buy all the fun stuff. :)
Dummy Nintendo eShop
This application exists to debug API(JumPToEshop( ) ) on the 3DS. This was created so a developer can test parts of their game in which the player can preview or purchase titles within a game. It is mainly used in conjunction with Downloadable content. It has a very simple interface showing the reason for its existence and controls for exiting to the home menu or finalizing the Dummy Shop. The Dummy Nintendo eShop also shares the same Title ID and Unique ID as the Retail Nintendo E-Shop.
FangateFwUpdater
This is a tool for updating or destroying NFC reader/writer firmware. This tool cannot be used with SNAKE development devices or SNAKE development tools. It operates only with CTR development devices and CTR development tools.
TWL Development Tools
These are DSi/DS mode development tools repackaged into a CIA, for installing to the TWL NAND.
NINTENDO DS - WMtest
This application is a TWL(DSi) application compiled for use on the 3DS. It is an wireless test tool with its uses explained below:
- Scan Test - Scans Wireless channels 1-13(can be focused on one specific channel) for broadcasting stations. It can detect two types of broadcasting stations:
Wifi Access Points - Giving the Mac Address, Broadcasting Channel, 'c', and the SSID
DS Stations such as DS Download stations and Pokemon distributors - Giving the Mac Address, Brodcasting Channel, TGID and GGID
- ScanEx Test - and has two Scan Types. Passive which lets you individually scan channels 1-13 (only one at at time) and the DS distribution channels (1,7,13 all at once). And Active which scans all 13 channels at once. when it finds a channel it prints on the bottom screen next to 'Found' 'bssDescCount='
- MeasureChannel Test - not quite sure what this does but it for a given channel it gives a ratio(in percentage form), which it finds in its allocated test time ranging from 10ms to 1000ms. And for every interval of time which is specified, it tests and gives a ratio.
- Noise Mode - Seeks wireless channels in which to make wireless noise (This is not made very clear on the app). You can specify the:
Channel where the scanner will seek to make noise
Noise Rate, ranging from 0% to 100%
Frequency, ranging from 10ms to 50ms
Seek Mode, ranging from 1000ms to 1500ms
When the settings are chosen the top screen has two counters which display 'Noise ON count' and 'Noise OFF count' the counters are affected by the noise rate. Starting at 0% the 'Noise ON count' does not change but as the Noise rate gets closer to 100% the count moves and gets faster as Noise rate reaches 100%. For 'Noise OFF count' it is the exact opposite to the ' Noise ON count' in regards to counting.
NW4C
NintendoWare for CTR is comprised of tools that deal with creating effects, fonts, models, layouts, sound, and text. There are CTR versions of some of the viewers.
H3D Model Viewer
Used for viewing Binary CTR Models (.bcmdl). Models need to be loaded into memory via CTR-PARTNER. There is also a PC equivalent program with the same layout.
Layout Viewer
Used for viewing Binary CTR Layouts (.bclyt). It is used with CTR-PARTNER to load layouts into RAM.
Effect Viewer
System Updaters
There are two kinds of system updaters for dev (panda) units, CTR System Updater (CSU) and SNAKE System Updater. As the names imply, the former is for original 3DS and the latter is for New 3DS. They are used to update the panda unit's 'firmware'/SDK Version. The romfs of the CSU contains the contents that will be installed to NAND. They contain all system titles as well as Devmenu and Config.