Homebrew Not a programmer, want to contribute to the community anyway

Kapikyo

Member
OP
Newcomer
Joined
Apr 8, 2016
Messages
6
Trophies
0
Age
27
XP
69
Country
United States
I'm not a programmer, but I'm always up for a challenging art form. Explain like I'm five how homebrew works so I can understand a lick of what you guys are saying. Once I'm caught up I think I could help improve this community. Homebrew is fascinating to me and I think it's a great way for people to independently train for game development. Fan communities like this are always so close-knit and I want to be a part of that.

tl;dr tired of being the ideas guy, you guys are cool, help me join in on your shtick
 
  • Like
Reactions: qi_synergist

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
United States
I may want to take a stab at this. Warning, please wait for verification or corrections before implementing anything I'm about to post. I feel I can learn from this as well.

3DS Homebrew: Developed using the devkitARM toolkit, is software that is not officially signed with a Nintendo signature and can run on a 3DS via exploits that can load either the Homebrew Launcher (developed by smealum) or run via the Home Menu on custom firmware enabled 3DS's with disabled signature checking. Some homebrew requires additional libraries beyond devkitARM such as libctru. Homebrew is compiled as an ELF file and additionally can also be further converted to either a 3DSX (run from Homebrew Launcher) or CIA (installed and run from Home Menu) file.

Exploits: The common ones are used to load a BOOT.3DSX from your memory card which either loads the Homebrew Launcher for selecting further 3DSX homebrew or can also lead to the launching of a custom firmware which disabled signature checks so that homebrew can be launched straight from the Home Menu. These exploits include MenuHax (the exploiting of 3DS themes), BrowserHax (exploiting web browser via specially crafted websites), and cartridge based hacks involving modified saves or loading manipulated data (NinjHax, oot3Dhax, SmashBrosHax).

Custom Firmware: These are specially crafted pieces of homebrew that load patched firmware files into memory allowing for extra features or disabling of security features, allowing us to install our own digital content straight to the Home Menu like legitimate eShop titles so that we have convenient access and elevated permissions beyond what 3DSX homebrew may have.

3DS Homebrew extended: Most 3DS homebrew runs on the ARM11 processor in the 3DS, meaning most homebrew can be run right from the latest firmware (10.7 at the time of this post) as it only has access to ARM11. Some hombrew needs access to ARM9, the other processor in the 3DS in order to access some more basic and low level functions. These homebrews are either loaded via an earlier firmware (9.2) or from a custom firmware which has the 9.x firmware loaded into memory. Examples of such homebrew would be emuNAND9 (the tool that creates emuNANDs for use with Custom Firmware) and Decrypt9 (tool that can extract XORpads for decrypting and encrypting data from the 3DS as well as dump and restore backups of your NAND).

Exploits extended: One of the most recent exploits to be discovered is svchax which allows downgrading of all firmware versions so that all consoles are now currently able to run Homebrew or downgrade for CFW support. Finally, we also have ARM9LoaderHax. This is the most versatile hack developed, allowing us to hijack the ARM9 boot process and redirect it to a payload we have on the SD card. This allows for immediate patching giving us CFW for system NAND without needing emuNAND anymore as well as being able to launch the ARM9-only homebrew straight at boot without a need for 9.x firmware.

If you would like to start on learning Homebrew for 3DS, try following the setup guide for your OS here: https://www.3dbrew.org/wiki/Setting_up_Development_Environment

It's important to then update everything as most is not updated on a fresh install. This includes some 3DS samples or you can test your setup by picking a popular homebrew and downloading the source code from the GitHub page and trying to compile it without any errors.
 
Last edited by DocKlokMan,
  • Like
Reactions: Blundermann

duffmmann

Well-Known Member
Member
Joined
Mar 11, 2009
Messages
3,966
Trophies
2
XP
2,305
Country
United States
You should look into making custom themes and badges, its easy, fun, and you'd be contributing to the scene. Or, perhaps look into making A9LH animated boot screens, this seems a little more complex, but they really make our hacked out 3DS' look all the more awesome.
 
  • Like
Reactions: androgynus

androgynus

Well-Known Member
Newcomer
Joined
Sep 13, 2014
Messages
86
Trophies
0
Age
34
XP
124
Country
Canada
If you want an idea of what you can do with Custom theme, there is 3dsthem.es which is really great. You can search for A.G.Genius to see what i did. Thats my contribution to the scene.
 

Kapikyo

Member
OP
Newcomer
Joined
Apr 8, 2016
Messages
6
Trophies
0
Age
27
XP
69
Country
United States
If you want an idea of what you can do with Custom theme, there is 3dsthem.es which is really great. You can search for A.G.Genius to see what i did. Thats my contribution to the scene.

Yeah, I have an account there under the same name as my account here. I have three themes and a single group of badges uploaded so far.
> KAPIKYO
I wanna contribute mainly to the game development scene, though. I wanna bring games to the 3DS that aren't there yet.

(In response to the summation of your post)

I remember reading up on DS Lite processors, Arm(x) and Arm(y) controlled different screens, right? Is that the case here as well? If so, what if downgrading for Arm9 support isn't an option? Am I boned or what?
Also, what language should I start brushing up on if I want to develope for the 3DS? Or is there some sort of GameMaker drag-and-drop program available. I'm assuming Unity doesn't work with 3DS Homebrew, and that its only good for making licensed games.

And I apologize if at any point i sound daft, the way I learn is basically just asking questions and confirming or deny assumptions until I understand what I'm looking at well enough to add onto it through reading (or something).
 

MichiS97

"Leftist snowflake milennial"
Member
Joined
Jun 14, 2011
Messages
1,815
Trophies
2
Age
26
Location
Munich
XP
3,597
Country
Germany
Yeah, I have an account there under the same name as my account here. I have three themes and a single group of badges uploaded so far.
> KAPIKYO
I wanna contribute mainly to the game development scene, though. I wanna bring games to the 3DS that aren't there yet.



I remember reading up on DS Lite processors, Arm(x) and Arm(y) controlled different screens, right? Is that the case here as well? If so, what if downgrading for Arm9 support isn't an option? Am I boned or what?
Also, what language should I start brushing up on if I want to develope for the 3DS? Or is there some sort of GameMaker drag-and-drop program available. I'm assuming Unity doesn't work with 3DS Homebrew, and that its only good for making licensed games.

And I apologize if at any point i sound daft, the way I learn is basically just asking questions and confirming or deny assumptions until I understand what I'm looking at well enough to add onto it through reading (or something).
You should teach yourself C or C++ if you want to code games for the 3DS ;)
 

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
United States
I remember reading up on DS Lite processors, Arm(x) and Arm(y) controlled different screens, right? Is that the case here as well? If so, what if downgrading for Arm9 support isn't an option? Am I boned or what?
Also, what language should I start brushing up on if I want to develope for the 3DS? Or is there some sort of GameMaker drag-and-drop program available. I'm assuming Unity doesn't work with 3DS Homebrew, and that its only good for making licensed games.

And I apologize if at any point i sound daft, the way I learn is basically just asking questions and confirming or deny assumptions until I understand what I'm looking at well enough to add onto it through reading (or something).
On the DS Lite, ARM9 was the main processor for all the DS stuff, while the ARM7 was used for sound and GBA compatibility.

On the 3DS, ARM11 is for User level services and ARM9 is for Kernel level services. Homebrew made for ARM11 is more common unless you wish to modify system files or how they are loaded.

Most homebrew is made in C but there's a few interpreters that allow RPGmaker like game design. You would be correct about Unity.
 

Kapikyo

Member
OP
Newcomer
Joined
Apr 8, 2016
Messages
6
Trophies
0
Age
27
XP
69
Country
United States
Most homebrew is made in C but there's a few interpreters that allow RPGmaker like game design.

Could you tell me more about the interpreters or point me in a direction to learn more about them? Seems like a good way to ease into programming.
Also I tried googling C programming for 3DS, I'm not sure how C works to begin with let alone how one would use it for 3DS homebrew, got any tips for that as well?
 

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
United States
Could you tell me more about the interpreters or point me in a direction to learn more about them? Seems like a good way to ease into programming.
Also I tried googling C programming for 3DS, I'm not sure how C works to begin with let alone how one would use it for 3DS homebrew, got any tips for that as well?
There this which is literally an RPGMaker player, you make the game on PC and can then run it on 3DS. RPGMaker uses Ruby as it's coding language although you never need to touch any of the Ruby parts if you don't want to.

Coding can also be done on a 3DS emulator to an extent. As for the actual coding with C, I do not know how to code in C, but if you setup the development environment, there's a few sample projects you can look at, edit, compile and run to see how things work. I know using Citrus allows you to code in C++
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: They really wanna get the head