<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LinkSoraZelda</id>
	<title>3dbrew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.3dbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LinkSoraZelda"/>
	<link rel="alternate" type="text/html" href="https://www.3dbrew.org/wiki/Special:Contributions/LinkSoraZelda"/>
	<updated>2026-04-16T04:38:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=2.1.0-3&amp;diff=21492</id>
		<title>2.1.0-3</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=2.1.0-3&amp;diff=21492"/>
		<updated>2021-03-17T07:53:24Z</updated>

		<summary type="html">&lt;p&gt;LinkSoraZelda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 2.1.0-3 system version released on June 15, 2011 for the original Nintendo 3DS.&lt;br /&gt;
The official patch notes for this firmware notes &amp;quot;Improvement to system stability and convenience.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beginning in early 2016, 2.1.0-3 was installed onto the system&#039;s NAND as a necessary installation step for arm9loaderhax[https://www.3dbrew.org/wiki/3DS_System_Flaws#arm9loader], to retrieve a console-specific OTP dump.&lt;br /&gt;
As this firmware naturally didn&#039;t release for any console aside from the CTR-001 Nintendo 3DS, installation on newer devices nets known issues such as corrupted screen data, softlocks, and potential to software brick on FTR-001/Nintendo 2DS units upon formatting the console.&lt;/div&gt;</summary>
		<author><name>LinkSoraZelda</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=2.1.0-3&amp;diff=21491</id>
		<title>2.1.0-3</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=2.1.0-3&amp;diff=21491"/>
		<updated>2021-03-17T07:50:21Z</updated>

		<summary type="html">&lt;p&gt;LinkSoraZelda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The 2.1.0-3 system version released on June 15, 2011 for the original Nintendo 3DS.&lt;br /&gt;
The official patch notes for this firmware notes &amp;quot;Improvement to system stability and convenience.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Beginning in early 2016, 2.1.0-3 was installed onto the system&#039;s NAND as a necessary installation step for arm9loaderhax, to retrieve a console-specific OTP dump.&lt;br /&gt;
As this firmware naturally didn&#039;t release for any console aside from the CTR-001 Nintendo 3DS, installation on newer devices nets known issues such as corrupted screen data, softlocks, and potential to software brick on FTR-001/Nintendo 2DS units upon formatting the console.&lt;/div&gt;</summary>
		<author><name>LinkSoraZelda</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Setting_up_Development_Environment&amp;diff=20670</id>
		<title>Setting up Development Environment</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Setting_up_Development_Environment&amp;diff=20670"/>
		<updated>2018-04-12T01:16:32Z</updated>

		<summary type="html">&lt;p&gt;LinkSoraZelda: Fixed dead link to latest DKP perl script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setup =&lt;br /&gt;
* Install [https://devkitpro.org/ devkitARM]. If it&#039;s already installed, update it.&lt;br /&gt;
** On Windows, there&#039;s a [https://github.com/devkitPro/installer/releases/latest graphical installer].&lt;br /&gt;
** On Unix-like platforms such as Linux/macOS, there&#039;s a [https://raw.githubusercontent.com/devkitPro/installer/master/perl/devkitARMupdate.pl Perl script]. Make sure you also select libctru and the 3ds examples when installing.&lt;br /&gt;
* Depending on the kind of homebrew you want to develop, you may be interested in installing and using additional libraries and tools which don&#039;t ship alongside devkitARM/libctru. A list of them can be found in [[Homebrew Libraries and Tools]].&lt;br /&gt;
&lt;br /&gt;
==Windows==&lt;br /&gt;
devkitPro provides Win32-native precompiled versions of devkitARM which can be run directly on Windows.&lt;br /&gt;
* [https://github.com/devkitPro/installer/releases/latest download the latest version of the graphical installer] from SourceForge and run it, following the instructions as you go.&lt;br /&gt;
* An Internet connection is required.&lt;br /&gt;
* You will want to make sure devkitARM is selected during the installation process to develop for the 3DS (and also the DS and GBA) - you can also install devkitPPC (for GameCube/Wii development) and devkitPSP (for PlayStation Portable development) if you wish.&lt;br /&gt;
* Once the installer has finished, launch MSYS from:&lt;br /&gt;
** Windows 7 and earlier: Start -&amp;gt; All Programs -&amp;gt; devkitPro -&amp;gt; MSYS&lt;br /&gt;
** Windows 8 and 8.1: Right click on the Start screen and select &#039;All Apps&#039;. You should find MSYS there.&lt;br /&gt;
** Windows 10 (pre-Anniversary Update): Start -&amp;gt; All Apps -&amp;gt; devkitPro -&amp;gt; MSYS&lt;br /&gt;
** Windows 10 (post-Anniversary Update): Start -&amp;gt; devkitPro -&amp;gt; MSYS&lt;br /&gt;
&lt;br /&gt;
Alternatively starting with Windows 10 Anniversary Update (Version 1607), the [https://msdn.microsoft.com/en-us/commandline/wsl/install_guide Windows Subsystem for Linux (WSL)] may also be used to run the Linux version of devkitARM. Unless you have some particular need for WSL it&#039;s recommended that you stick to a more standard environment. &lt;br /&gt;
&lt;br /&gt;
==Unix-like platforms==&lt;br /&gt;
Currently devkitPro provides precompiled versions of devkitARM for the following Unix-like platforms: Linux (x86/x64), macOS (universal binary). Note that Linux x64 binaries are usable under WSL.&lt;br /&gt;
&lt;br /&gt;
* First, you need to install curl so the installer can download the devkitARM packages, and you should also install Git - you&#039;ll need it to update libctru or share your code on GitHub, among many other things. If you are running Linux, you&#039;ll also need wget; it comes preinstalled on most distributions, but not all.&lt;br /&gt;
&lt;br /&gt;
* Find your way into a shell (eg. by opening a Terminal window), and follow the instructions for your OS:&lt;br /&gt;
** Debian/Ubuntu/Linux Mint/Ubuntu on WSL: &amp;lt;code&amp;gt;sudo apt-get install git curl&amp;lt;/code&amp;gt;&lt;br /&gt;
** Fedora/CentOS/RHEL: &amp;lt;code&amp;gt;sudo yum install git curl&amp;lt;/code&amp;gt;&lt;br /&gt;
** openSUSE: &amp;lt;code&amp;gt;sudo zypper install git curl&amp;lt;/code&amp;gt;&lt;br /&gt;
** Arch Linux/ALWSL: &amp;lt;code&amp;gt;sudo pacman -S git curl wget&amp;lt;/code&amp;gt;&lt;br /&gt;
** macOS: Download Git from [http://git-scm.com/download/mac] and install it. Curl is included with the OS.&lt;br /&gt;
&lt;br /&gt;
* Next, we need to download, make executable and run the devkitARM updater (don&#039;t worry, the updater is also the installer.)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -L https://github.com/devkitPro/installer/releases/download/v2.2.1/devkitARMupdate.pl -o devkitARMupdate.pl&lt;br /&gt;
chmod +x ./devkitARMupdate.pl&lt;br /&gt;
sudo ./devkitARMupdate.pl /opt/devkitpro&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Finally, we need to tell your shell where to find the devkitARM binaries.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;export DEVKITPRO=/opt/devkitpro&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;export DEVKITARM=/opt/devkitpro/devkitARM&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Building the examples =&lt;br /&gt;
3DS examples are still being created; however, there are a growing number of examples available from the [https://github.com/devkitPro/3ds-examples devkitPro/3ds-examples GitHub repository].&lt;br /&gt;
There are now too many to list here in detail, so go ahead and browse them.&lt;br /&gt;
&lt;br /&gt;
* To download these, if you installed Git (as you will have if you followed the above instructions), simply type &amp;lt;code&amp;gt;git clone https://github.com/devkitPro/3ds-examples.git&amp;lt;/code&amp;gt; into your shell in the directory you wish to store the 3ds-examples folder in.&lt;br /&gt;
&lt;br /&gt;
These can be built from the command line.&lt;br /&gt;
&lt;br /&gt;
To start a new homebrew project from the &amp;lt;code&amp;gt;bash&amp;lt;/code&amp;gt; shell, simply type the following (replacing &amp;lt;code&amp;gt;&#039;&#039;&#039;~/projects/my3dsproject&#039;&#039;&#039;&amp;lt;/code&amp;gt; with the place you would like your project to be stored, with &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; meaning your HOME directory):&lt;br /&gt;
 cp -r $DEVKITPRO/examples/3ds/templates/application &#039;&#039;&#039;~/projects/my3dsproject&#039;&#039;&#039;&lt;br /&gt;
 cd &#039;&#039;&#039;~/projects/my3dsproject&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The standard Makefile will use the folder as the name of the 3dsx that will be built. You can keep that behaviour or simply change the &amp;lt;code&amp;gt;TARGET := $(notdir $(CURDIR))&amp;lt;/code&amp;gt; line in the Makefile to explicitly name your project.&lt;br /&gt;
&lt;br /&gt;
To compile it, type &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; in the project directory.&lt;br /&gt;
&lt;br /&gt;
==Running your code==&lt;br /&gt;
To run it on your 3DS, start the Homebrew Launcher, press Y to open the network loader, then on your PC type: &amp;lt;code&amp;gt;$DEVKITARM/bin/3dslink  &#039;&#039;&#039;my3dsproject&#039;&#039;&#039;.3dsx&amp;lt;/code&amp;gt;, replacing &#039;&#039;&#039;my3dsproject&#039;&#039;&#039; with the name of the 3dsx file you want to run.)&lt;br /&gt;
&lt;br /&gt;
If all goes well, you&#039;ll soon see your application running on your 3DS.&lt;br /&gt;
&lt;br /&gt;
==Building the examples on Linux with Netbeans==&lt;br /&gt;
* Go to File-&amp;gt;New Project...&lt;br /&gt;
* Select C/C++ Project with existing code&lt;br /&gt;
* Navigate to the examples directory and select the folder for the project you want to build; eg.    /home/vtsingaras/3ds/examples/app_launch&lt;br /&gt;
* Leave Configuration Mode to &#039;Automatic&#039; and click &#039;Finish&#039;.&lt;br /&gt;
* It will fail to build. Now edit Makefile and insert these two lines, adjusting for your devkitpro path, at the top:&lt;br /&gt;
&amp;lt;pre&amp;gt;export DEVKITPRO=/opt/devkitpro&lt;br /&gt;
export DEVKITARM=/opt/devkitpro/devkitARM&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Right-click the project and go to Properties-&amp;gt;Code Assistance and click C Compiler.&lt;br /&gt;
* In include directories enter &lt;br /&gt;
&amp;lt;pre&amp;gt;/opt/devkitpro/devkitARM/include;/opt/devkitpro/libctru/include&amp;lt;/pre&amp;gt;&lt;br /&gt;
adjusting again for your devkitPro path.&lt;br /&gt;
* Do the same for &#039;C++ Compiler&#039;.&lt;br /&gt;
* Go to &#039;Run&#039; and click &#039;Clean and Build Project&#039;.&lt;br /&gt;
* Now right-click on the project and select Code Assistance-&amp;gt;Reparse Project.&lt;br /&gt;
&lt;br /&gt;
Now you can use Netbeans&#039; code completion feature and build your project from the Run menu.&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&#039;&#039;&#039;I get the &amp;quot;Please set DEVKITARM in your environment.&amp;quot; error.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Use the following command before installing [http://askubuntu.com/questions/573070/problem-setting-up-environment-for-make-command-execution]:&lt;br /&gt;
 sudo chown $USER /opt/devkitpro/ -R&lt;br /&gt;
 echo &amp;quot;export DEVKITPRO=\&amp;quot;/opt/devkitpro/\&amp;quot;&amp;quot; &amp;gt;&amp;gt; ~/.profile&lt;br /&gt;
 echo &amp;quot;export DEVKITARM=\&amp;quot;\${DEVKITPRO}/devkitARM/\&amp;quot;&amp;quot; &amp;gt;&amp;gt; ~/.profile&lt;br /&gt;
 source ~/.profile&lt;br /&gt;
&lt;br /&gt;
For WSL users, you need to close the Bash shell, then reopen it for WSL to reload all of the variables from a clean state.&lt;/div&gt;</summary>
		<author><name>LinkSoraZelda</name></author>
	</entry>
	<entry>
		<id>https://www.3dbrew.org/w/index.php?title=Mysteries&amp;diff=20407</id>
		<title>Mysteries</title>
		<link rel="alternate" type="text/html" href="https://www.3dbrew.org/w/index.php?title=Mysteries&amp;diff=20407"/>
		<updated>2017-10-18T19:41:41Z</updated>

		<summary type="html">&lt;p&gt;LinkSoraZelda: /* Is there more than one revision of the bootrom? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is a list of mysteries.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
* What is the CTR abbreviation?&lt;br /&gt;
: C may stand for Chiheisen (&amp;quot;horizon&amp;quot; in Japanese, the O3DS&#039;s codename being &amp;quot;Project Horizon&amp;quot;).&lt;br /&gt;
:: Not true, Horizon refers to the OS.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== Why are there two CTRCARD controllers? ===&lt;br /&gt;
&#039;&#039;&#039;Background:&#039;&#039;&#039; Also [http://problemkaputt.de/twl-core.jpg DSi SoC pinout] shows evidence of dual NTRCARD controllers on the final DSi SoC. (This was a [http://i.imgur.com/0kJlbEw.png planned feature] of the DSi before being axed later in development)&lt;br /&gt;
&lt;br /&gt;
=== Why are there two EMMC controllers? ===&lt;br /&gt;
&#039;&#039;&#039;Theory:&#039;&#039;&#039; At some point during 3DS hardware development there was an idea to split up CTR and TWL nand into two different chips.&lt;br /&gt;
=== Is there a JTAG? ===&lt;br /&gt;
=== Is there more than one revision of the bootrom? ===&lt;br /&gt;
&#039;&#039;&#039;Background:&#039;&#039;&#039; Bootrom visible portion has been dumped on 3DS, 3DSXL, 2DS, New3DS, New 2DS, and even the Tegra-based unit. All matching exactly.&lt;br /&gt;
&lt;br /&gt;
=== What is the EMMC controller @ 0x10100000 doing? ===&lt;br /&gt;
&#039;&#039;&#039;Background:&#039;&#039;&#039; There&#039;s dead code in NWM referencing it.&lt;br /&gt;
=== Why did they put NTRCARD accessible from ARM11? ===&lt;br /&gt;
&#039;&#039;&#039;Theory:&#039;&#039;&#039; At some point during 3DS hardware development there was a concept where ARM11 ran a menu with DS(i) icons while ARM9 was in TWL mode.&lt;br /&gt;
&lt;br /&gt;
=== Is there a secret message embedded in the 3DS keyscrambler constant? ===&lt;br /&gt;
&#039;&#039;&#039;Background:&#039;&#039;&#039; TWL key scrambler constant was &amp;quot;Nintendo Co., Ltd&amp;quot; in Japanese (&amp;quot;任天堂株式会社&amp;quot;), UTF-16LE encoded, with byte order mark.  The 3DS key scrambler constant, by comparison, is random-looking.&lt;br /&gt;
&lt;br /&gt;
=== What is the PDN abbreviation? ===&lt;br /&gt;
: Power distribution network&lt;br /&gt;
&lt;br /&gt;
=== How does Nintendo reflash bricked systems? ===&lt;br /&gt;
&#039;&#039;&#039;Theory:&#039;&#039;&#039; Before trying to boot from NAND, the bootrom checks to see if a key combination (Start + Select + X) is being held, and whether the shell is closed. If so, it tries to boot from an inserted NTR (Nintendo DS) cartridge.&lt;br /&gt;
This allows to execute a FIRM that is probably used by Nintendo to reflash the system.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
=== What was the problem in &amp;quot;initial program loader&amp;quot; that was mentioned in an FCC filing by Nintendo for 2DS? ===&lt;br /&gt;
&#039;&#039;&#039;Background:&#039;&#039;&#039; http://www.neogaf.com/forum/showthread.php?t=814624&amp;amp;page=1&lt;br /&gt;
=== What did SVC 0x74 in the ARM11 kernel do before it got stubbed? ===&lt;br /&gt;
=== What is the PTM abbreviation? ===&lt;br /&gt;
: Power/time management&lt;br /&gt;
&lt;br /&gt;
=== Why is the DTCM not used anywhere except bootrom? ===&lt;br /&gt;
&#039;&#039;&#039;Background:&#039;&#039;&#039; Bootrom is known to use part of DTCM as state, memsetting it to 0 when it&#039;s done. After that, it is never used again.&lt;br /&gt;
=== How is CTRAging launched during factory setup? ===&lt;br /&gt;
&#039;&#039;&#039;Background:&#039;&#039;&#039; No TestMenu version is capable of launching CTRAging directly: O3DS factory TestMenu can only launch DevMenu installed on NAND, the inserted cartridge and the TWL/AGB test apps; N3DS factory TestMenu can only launch DevMenu installed on NAND, the inserted cartridge and System Settings. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Theory:&#039;&#039;&#039; NtrBoot another time &lt;br /&gt;
=== Why are there 4 stubbed syscalls named SendSyncRequest1-4? ===&lt;/div&gt;</summary>
		<author><name>LinkSoraZelda</name></author>
	</entry>
</feed>