Reply to thread
GBAtemp.net - The Independent Video Game Community
Search
Search titles only
By:
Search titles only
By:
Reply to thread
GBAtemp.net - The Independent Video Game Community
Home
Log in
Terms & Rules
Donate
Forums
New posts
Search forums
Groups
Public Events
New
New posts
New resources
New blog entries
New profile posts
New blog entry comments
New threadmarks
Latest activity
Cheats
Cheat Codes Add and Request group
The Legend of Zelda: Tears of the Kingdom cheat codes
Pokémon Legends: Arceus cheat codes
Xenoblade Chronicles 3 cheat codes
Fire Emblem Engage cheat codes
Request a cheat...
Tutorials
Nintendo Switch tutorials
Nintendo 3DS tutorials
Nintendo Wii U tutorials
Reviews
Overview
Official reviews
User reviews
Downloads
Latest reviews
Search resources
Blogs
New entries
New comments
Blog list
Search blogs
Chat
Top chatters
Search
Search titles only
By:
Search titles only
By:
Log in
Register
New posts
Search forums
Log in
Register
Home
Forums
PC, Console & Handheld Discussions
Nintendo 3DS
3DSxplained: Userland homebrew? ARM11? ARM9?
Menu
Install the app
Install
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Ryccardo" data-source="post: 6713306" data-attributes="member: 361367"><p>Hi fellow Tempers, here is a (hopefully one in a series) guide to understanding the 3DS architecture and the scene.</p><p>They are "popular science" as the details are not always fully explained for the sake of clarity, however these lessons try to never state outright wrong facts, and can hopefully be understood in less than a day each <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite55" alt=":D" title="big grin :D" loading="lazy" data-shortname=":D" /></p><p>These are NOT tutorials; I'll sprinkle them of practical facts, but their purpose is to make you understand (which will hopefully make you more informed of what's happening when you do something or even enable you to figure out the cause of a problem), but will not guide you to a specific goal. That's the job of other tutorials and <a href="http://gbatemp.net/threads/3ds-noob-paradise-ask-questions-here.359035" target="_blank">the questions topic</a>!</p><p>[hr][/hr]</p><p style="text-align: center"><span style="font-size: 26px">Homebrew: Userland vs ARM11 vs ARM9</span></p><p></p><p>Your 3DS, while working as a 3DS (as opposed to being in DS, DSi, or GBA mode) has <strong>two usable processors</strong> (each having different privileges with regards to hardware, and thus not interchangeable):</p><ul> <li data-xf-list-type="ul">ARM9, single core, only runs a part of the operating system, can be said to perform security duties.</li> <li data-xf-list-type="ul">ARM11, multicore, runs the rest of the operating system (including all the user interface) and regular applications.</li> </ul><p></p><p>Applications may be:</p><ul> <li data-xf-list-type="ul">standalone (so-called <strong>titles</strong>: a piece of software in a physical cartridge; a cartridge emulated from a .3ds, .3dz, or .cci file; or a title installed directly from Nintendo server or a .cia package.) These have their own TitleID.</li> <li data-xf-list-type="ul">injected. (this includes health&safety injections, <u>all .3dsx apps</u>, Hans/LayeredFS/etc romhacks.) To be used, these MUST replace, more or less permanently, a standalone app; and not just any standalone app, as the permissions (services, save files, ...) are inherited from the exact one it replaces.</li> </ul><p>With these definitions made, let me <strong>limit this discussion for now to .3dsx software</strong>, which the previous definition shows as inherently less capable than .cia versions:</p><p></p><p></p><p></p><p>It also appears clear that, to run the Homebrew Launcher ("boot.<u>3dsx</u>"), we must somehow replace an existing title.</p><p></p><p>This is a pretty complicated multi-stage process, but it all starts with an <strong>exploit</strong> in some title, for instance Cubic Ninja in the case of Ninjhax(2), the official web browser in browserhax, etc;</p><p>an exploit results in the execution of a <strong>payload</strong>, which may well exploit other vulnerabilities in a chain to gain more access (in fact, .3dsx loading on all 9.0+ systems needs taking over both Home and the Download Play* app).</p><p></p><p>* Its executable is relatively large, therefore allowing comparably sized .3dsx executables, and has a decent selection of available services for general purpose homebrew.</p><p><strong>Some homebrews can choose</strong> (or even let you pick) <strong>a different standalone base app</strong>; this is required for more exotic privileges (DS card save access in TWLSaveTool) or, for Hans or save managers, just picking the appropriate game to work with <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite48" alt=":)" title="smile :)" loading="lazy" data-shortname=":)" /></p><p></p><p>The end result is that we can now run .3dsx apps with the system happily believing we're still running Download Play or another app, with the privileges of said software.</p><p></p><p></p><p></p><p></p><p>What if we want to do more, like replacing the operating system or just installing applications?</p><p></p><p>Well, there are <strong>three commonly agreed on types of homebrew</strong>:</p><ul> <li data-xf-list-type="ul">Userland. I've just described these, and how they're limited to the permissions of some single standalone app. <br /> <ul> <li data-xf-list-type="ul">Examples include:<br /> </li> <li data-xf-list-type="ul">Homebrew original games (including ports)<br /> </li> <li data-xf-list-type="ul">Calculators, etc<br /> </li> <li data-xf-list-type="ul">Emulators without dynarec (keep reading for more details)<br /> </li> <li data-xf-list-type="ul"><strong>Save managers</strong> (JKSV, svdt, save_manager) and <strong>HANS</strong> <em>(note that there are further restrictions on compatibility, especially if you don't use a specific Homebrew Launcher)</em>.<br /> </li> </ul></li> <li data-xf-list-type="ul">ARM11. Technically, as you can see from the initial definitions, all userland homebrews are ARM11. But the term is used to mean <u>software that exploits the arm11 system software</u> to gain further privileges.<br /> <ul> <li data-xf-list-type="ul">Self-modifying code. This includes all Emulators with dynarec <em>(a technology that improves performance, by converting the game's code on the fly).</em> Note that many emulators can automatically check their privilege and behave appropriately as ARM11 or Userland homebrew.<br /> </li> <li data-xf-list-type="ul">Title managers. This includes the installation of "<strong>legit cias</strong>", which in turn (on 10.7 and under) is enough to <strong>downgrade</strong>.<br /> </li> </ul></li> <li data-xf-list-type="ul">ARM9. These applications run completely independently of the operating system (which in fact is stopped as they load). These come in .3dsx format (actually an userland-based exploiter, with a builtin or external payload made of the actual software) and also in .bin or .dat formats, more suitable for directly booting such apps before the operating system.<br /> <ul> <li data-xf-list-type="ul"><strong>Custom firmwares</strong>. These programs are reloading the operating system on their own, usually after patching some things; but they're otherwise no different than other arm9 software.<br /> </li> <li data-xf-list-type="ul">The "9" series of utilities by D0k3, and most homebrews having "9" in the name<br /> </li> <li data-xf-list-type="ul">SafeA9LHInstaller <em>(this having further requirements than just ARM9 access, at least on Old3DS)</em><br /> </li> <li data-xf-list-type="ul">Complete operating system replacements like 3DSLinux!<br /> </li> </ul></li> </ul><p></p><p>Practically speaking, you may notice two points:</p><ul> <li data-xf-list-type="ul">I have ranked these in order of privilege needed. Indeed, at least when working with .3dsx files, running ARM9 software requires Userland access to run a (usually not very reliable) ARM11-based loader that actually does the taking-over of ARM9. <em>Brahma is still the most common of such loaders, and is built directly into the .3dsx file so you don't have to worry about this. The combined fasthax+safehax instead can be seen as a .3dsx forwarder to a .bin homebrew</em>.<br /> </li> <li data-xf-list-type="ul">ARM9 apps run without the operating system. This is both a benefit (nothing to tell it what it can and can't do) and a disadvantage (the app must do everything on its own; <em>this is for instance why there's no way to recover a bricked system by installing clean system cias if it can't boot</em>).</li> </ul><p></p><p></p><p></p><p></p><p>So, finally, let me show the <strong>version compatibility</strong>, updated 2017-1-10:</p><ul> <li data-xf-list-type="ul"><strong>Userland: 4.x to 11.2</strong>; visit <a href="http://3dbrew.org/wiki/Homebrew_Exploits" target="_blank">3DBrew</a> for up to date, authoritative info.</li> <li data-xf-list-type="ul"><strong>ARM11: Up to 11.2</strong>, unless you're already running a CFW which may have, among its features, a patch to re-enable this. <em>(Look around its documentation for mentions of "SVC backdoor" or "SVC patch")</em></li> <li data-xf-list-type="ul"><strong>ARM9: Up to 11.2</strong>, unless you've already installed Arm9LoaderHax which enables you to run ARM9 homebrew in .bin (but not .3dsx) format.</li> </ul><p></p><p>And, a note on the future but very hyped <strong>sighax</strong>: Yes, it will allow ARM9 access on any version, past present or future, or even no version at all (if you have a bricked console). But it will require direct NAND access to be installed, which means already having ARM9 or alternatively doing a hardmod.</p><p></p><p>[hr][/hr]</p><p></p><p>...It's over! Did you (understand or) like this? Got any questions or corrections?</p></blockquote><p></p>
[QUOTE="Ryccardo, post: 6713306, member: 361367"] Hi fellow Tempers, here is a (hopefully one in a series) guide to understanding the 3DS architecture and the scene. They are "popular science" as the details are not always fully explained for the sake of clarity, however these lessons try to never state outright wrong facts, and can hopefully be understood in less than a day each :D These are NOT tutorials; I'll sprinkle them of practical facts, but their purpose is to make you understand (which will hopefully make you more informed of what's happening when you do something or even enable you to figure out the cause of a problem), but will not guide you to a specific goal. That's the job of other tutorials and [url=http://gbatemp.net/threads/3ds-noob-paradise-ask-questions-here.359035]the questions topic[/url]! [hr][/hr] [center][SIZE=8]Homebrew: Userland vs ARM11 vs ARM9[/SIZE][/center] Your 3DS, while working as a 3DS (as opposed to being in DS, DSi, or GBA mode) has [b]two usable processors[/b] (each having different privileges with regards to hardware, and thus not interchangeable): [list] [*]ARM9, single core, only runs a part of the operating system, can be said to perform security duties. [*]ARM11, multicore, runs the rest of the operating system (including all the user interface) and regular applications. [/list] Applications may be: [list] [*]standalone (so-called [b]titles[/b]: a piece of software in a physical cartridge; a cartridge emulated from a .3ds, .3dz, or .cci file; or a title installed directly from Nintendo server or a .cia package.) These have their own TitleID. [*]injected. (this includes health&safety injections, [u]all .3dsx apps[/u], Hans/LayeredFS/etc romhacks.) To be used, these MUST replace, more or less permanently, a standalone app; and not just any standalone app, as the permissions (services, save files, ...) are inherited from the exact one it replaces. [/list] With these definitions made, let me [b]limit this discussion for now to .3dsx software[/b], which the previous definition shows as inherently less capable than .cia versions: It also appears clear that, to run the Homebrew Launcher ("boot.[u]3dsx[/u]"), we must somehow replace an existing title. This is a pretty complicated multi-stage process, but it all starts with an [b]exploit[/b] in some title, for instance Cubic Ninja in the case of Ninjhax(2), the official web browser in browserhax, etc; an exploit results in the execution of a [b]payload[/b], which may well exploit other vulnerabilities in a chain to gain more access (in fact, .3dsx loading on all 9.0+ systems needs taking over both Home and the Download Play* app). * Its executable is relatively large, therefore allowing comparably sized .3dsx executables, and has a decent selection of available services for general purpose homebrew. [b]Some homebrews can choose[/b] (or even let you pick) [b]a different standalone base app[/b]; this is required for more exotic privileges (DS card save access in TWLSaveTool) or, for Hans or save managers, just picking the appropriate game to work with :) The end result is that we can now run .3dsx apps with the system happily believing we're still running Download Play or another app, with the privileges of said software. What if we want to do more, like replacing the operating system or just installing applications? Well, there are [b]three commonly agreed on types of homebrew[/b]: [list] [*]Userland. I've just described these, and how they're limited to the permissions of some single standalone app. [list]Examples include: [*]Homebrew original games (including ports) [*]Calculators, etc [*]Emulators without dynarec (keep reading for more details) [*][b]Save managers[/b] (JKSV, svdt, save_manager) and [b]HANS[/b] [i](note that there are further restrictions on compatibility, especially if you don't use a specific Homebrew Launcher)[/i]. [/list] [*]ARM11. Technically, as you can see from the initial definitions, all userland homebrews are ARM11. But the term is used to mean [u]software that exploits the arm11 system software[/u] to gain further privileges. [list] [*]Self-modifying code. This includes all Emulators with dynarec [i](a technology that improves performance, by converting the game's code on the fly).[/i] Note that many emulators can automatically check their privilege and behave appropriately as ARM11 or Userland homebrew. [*]Title managers. This includes the installation of "[b]legit cias[/b]", which in turn (on 10.7 and under) is enough to [b]downgrade[/b]. [/list] [*]ARM9. These applications run completely independently of the operating system (which in fact is stopped as they load). These come in .3dsx format (actually an userland-based exploiter, with a builtin or external payload made of the actual software) and also in .bin or .dat formats, more suitable for directly booting such apps before the operating system. [list] [*][b]Custom firmwares[/b]. These programs are reloading the operating system on their own, usually after patching some things; but they're otherwise no different than other arm9 software. [*]The "9" series of utilities by D0k3, and most homebrews having "9" in the name [*]SafeA9LHInstaller [i](this having further requirements than just ARM9 access, at least on Old3DS)[/i] [*]Complete operating system replacements like 3DSLinux! [/list] [/list] Practically speaking, you may notice two points: [list] [*]I have ranked these in order of privilege needed. Indeed, at least when working with .3dsx files, running ARM9 software requires Userland access to run a (usually not very reliable) ARM11-based loader that actually does the taking-over of ARM9. [i]Brahma is still the most common of such loaders, and is built directly into the .3dsx file so you don't have to worry about this. The combined fasthax+safehax instead can be seen as a .3dsx forwarder to a .bin homebrew[/i]. [*]ARM9 apps run without the operating system. This is both a benefit (nothing to tell it what it can and can't do) and a disadvantage (the app must do everything on its own; [i]this is for instance why there's no way to recover a bricked system by installing clean system cias if it can't boot[/i]). [/list] So, finally, let me show the [b]version compatibility[/b], updated 2017-1-10: [list] [*][b]Userland: 4.x to 11.2[/b]; visit [url=http://3dbrew.org/wiki/Homebrew_Exploits]3DBrew[/url] for up to date, authoritative info. [*][b]ARM11: Up to 11.2[/b], unless you're already running a CFW which may have, among its features, a patch to re-enable this. [i](Look around its documentation for mentions of "SVC backdoor" or "SVC patch")[/i] [*][b]ARM9: Up to 11.2[/b], unless you've already installed Arm9LoaderHax which enables you to run ARM9 homebrew in .bin (but not .3dsx) format. [/list] And, a note on the future but very hyped [B]sighax[/B]: Yes, it will allow ARM9 access on any version, past present or future, or even no version at all (if you have a bricked console). But it will require direct NAND access to be installed, which means already having ARM9 or alternatively doing a hardmod. [hr][/hr] ...It's over! Did you (understand or) like this? Got any questions or corrections? [/QUOTE]
Insert quotes…
Verification
Post reply
Home
Forums
PC, Console & Handheld Discussions
Nintendo 3DS
3DSxplained: Userland homebrew? ARM11? ARM9?
General chit-chat
Help
Users
Settings
Notifications
Miscellaneous
Inverse message direction
Display editor on top
Enable maximized mode
Display images as links
Hide bot messages
Hide statuses
Hide chatter list
Show messages from ignored users
Temporarily disable chat
Receive mention alerts
Sound notifications
Normal messages
Private messages
Whisper messages
Mention messages
Bot messages
Desktop notifications
Normal messages
Private messages
Whisper messages
Mention messages
Bot messages
Options
Options
View top chatters
No one is chatting at the moment.
@
MysticStarlight
:
wait I got the lyrics mixed up
+1
Today at 5:35 AM
@
BigOnYa
:
And I wonder what you do...Lol
Today at 5:35 AM
@
BigOnYa
:
Its all good, I'm here to talk to you.
Today at 5:37 AM
@
BigOnYa
:
Hello
Today at 5:39 AM
@
MysticStarlight
:
It's me
+1
Today at 5:43 AM
@
BigOnYa
:
I've been playing fallout4 all day, I went into a elevator and it kept going, never stopped, waited 5 minutes, must of been a bug. How bout you, whatcha do today?
+1
Today at 5:43 AM
@
MysticStarlight
:
I'm wondering why a stray tuxedo cat has a cloudy eye
Today at 5:45 AM
@
MysticStarlight
:
I've been playing TOTK all day also
+1
Today at 5:46 AM
@
MysticStarlight
:
Oh you reminded me of those elevator nightmares
Today at 5:47 AM
@
BigOnYa
:
Awesome game, fun how they force you to build, but you can build as you want
Today at 5:47 AM
@
MysticStarlight
:
It is super fun, I actually prefer it over BoTW
+1
Today at 5:48 AM
@
BigOnYa
:
The guy holding the sign always cracked me up, esp when you fail, and it falls
Today at 5:48 AM
@
MysticStarlight
:
Ah yes, that guy lol. I still need to find all his signs. The game has a lot to do though so I don't know what to finish first
Today at 5:50 AM
@
MysticStarlight
:
I'm 120 hours in and am still like 44.4% done
+1
Today at 5:51 AM
@
BigOnYa
:
Good times. Building is starting to get good around now for you. You making me want to make run thru again.
Today at 5:52 AM
@
BigOnYa
:
Ok good chatting, enjoy your gaming, and avoid the lightning, or put your sword away. Good night.
Today at 6:02 AM
@
Veho
:
https://i.imgur.com/E1U7Nlt.mp4
+1
Today at 6:22 AM
@
K3Nv2
:
All I gotta do is not spend $10 in the next 5 days and I'll break even this month lol
Today at 8:45 AM
@
K3Nv2
:
@BigOnYa
, tell your wife not to forget her wallet
+1
Today at 8:47 AM
@
K3Nv2
:
https://youtu.be/YMAa6obDNZs?si=rymChLKeTdyS8nqk
Today at 10:57 AM
@
K3Nv2
:
https://youtube.com/shorts/uc3tthE-mJ8?si=TPR_EM9yWrpcHHy7
Today at 2:00 PM
@
The Real Jdbye
:
bitches
Today at 2:12 PM
@
SylverReZ
:
https://www.youtube.com/watch?v=HYaFp_WnSP8
Today at 2:47 PM
@
K3Nv2
:
https://www.goodrx.com/conditions/l...305176&utm_content=weekly&utm_param2=05-30-24
Today at 3:04 PM
@
SylverReZ
:
https://www.youtube.com/watch?v=AV8dBxGdNxk
Today at 3:08 PM
Submit
@
SylverReZ
:
https://www.youtube.com/watch?v=AV8dBxGdNxk
Today at 3:08 PM
Chat
0