- 2List
Installing[edit]
Skip Into 0:51Go Here to checkout some Legit cia's if you are having issuesLike:How To Extract & Rebuild 3DS Games, Also Le. 9) Run the 3DS to CIA exe program once again. Click 'Convert 3DS ROM to CIA' and select your 3DS ROM, the.game id.Main.exheader.xorpad file, and the output CIA file. 10) Click 'OK' at the final prompt. 11) Wait for the conversion to finish. This would take anywhere from 5 seconds to 5 minutes. 12) Click 'OK' to the messagebox that says.
Applications are installed by copying the necessary files directly to the 3ds/
folder in the root of the SD card (preferred for new designs), or in a subdirectory of 3ds/
, in which case said subfolder must be named identically to its executable. Most applications come with two files:
[appname].3dsx
: The executable.[appname].smdh
: The icon/metadata. (Not required in any case, and may be integrated into the.3dsx
)[appname].xml
: The list of supported targets (i.e. installed titles which the app supports replacing in memory at runtime, thus inheriting its permissions), and of any arguments to be passed to the .3dsx. (Optional)
A standalone .xml file can point to a differently-named .3dsx, launching it with potentially different arguments so that a single application can run in different modes.
The Homebrew Launcher will scan the SD card for all .3dsx
files, but will only display an icon for those who have one according to the format described above. Recent enough versions can freely navigate the filesystem to select an application.
List[edit]
Launchers[edit]
Name | Description | Author | Download | Open-Source |
---|---|---|---|---|
Homebrew Launcher | Run homebrew on your 3DS! Compatible with Rosalina and all prior 3dsx loading solutions | devkitPro | Here | Yes |
Homebrew Starter Pack | Everything to get you started. | smea | Here | Yes |
Homebrew Launcher (v1.x) | The old version of the 3DS Homebrew Launcher, originally created for ninjhax 1.x (Discontinued) | smea | Here | Yes |
[ Mashers' HBL] | Homebrew Launcher with grid and folder support. (Discontinued) | Mashers | Here | Lost in masher's retirement |
Applications[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
3dsfetch | Small 3DS version of a popular Linux ricing script called screenfetch. | VideahGams | Here | Yes | 2015-09-17 |
3DS-PluginsFolder | Simple program that creates folders with TitleID and copy plugins on them | Klairm | Here | Yes | 2020-09-06 |
TSI9 | A simple program for detecting touch screen input. | Johnodon | Here | Yes | 2020-1-18 |
3DSident | Identity tool for the Nintendo 3DS heavily inspired by PSPident. | Joel16 | Here | Yes | 2018-8-2 |
Clear MAC Filter | Reset 8-hour per-console StreetPass rate limiting | tastymeatball | Here | Yes | 2018-8-24 |
CtrRGBPATTY | Generate patches that edit LED notifications | CPunch | Here | Yes | 2017-11-3 |
ctrrpc | A small and easily extensible RPC server/client written in C/Python. Allows you to quickly poke service-commands and syscall s over Wi-Fi from a Python shell on your PC. Useful during reverse-engineering. No longer under (active) development? | plutoo | Build from repo | Yes | 2014-11-10 |
ctr-streaming-server | A 3DS homebrew audio/video playback server. It can also send HID state to the client (see the README) when enabled. The included parse_hidstream tool can be used to parse that HID data to simulate keyboard/mouse input events, via Linux uinput . No longer under (active) development? | yellows8 | Build from repo | Yes | 2014-11-20 |
DownloadMii | A WIP repo-based online marketplace for homebrew applications & games. | filfat | Build from repo | Yes | 2015-11-24 |
fb43ds | A simple 3DS Facebook chat client | linoma | Build from repo | Yes | 2015-04-07 |
for-anyone-who-walks-a-lot | Tool to get past the 10 coin per day limit on earning Play Coins by walking. | iamevn | Here | Yes | 2016-03-26 |
Homebrew Browser | Download homebrew from the internet! | cromo, zeta0134 | Here | Yes | 2015-10-07 |
NFCReader | Allows you to use your 3DS as a NFC/RFID UID Scanner. | Jasper Peters | Here | Yes | 2017-01-21 |
ScreenInfo | Identify whether New 3DS LCD panels are TN or IPS. | SciresM | Here | Yes | 2016-09-04 |
Game Engines[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
Löve Potion | LOVE2D for 3DS Homebrew. | TurtleP | Here | Yes | 2018-08-27 |
ctrµLua | A Lua interpreter for 3DS, brought to life by the remnants of the µLua community. | Firew0lf, Reuh, Negi | Here | Yes | 2016-06-27 |
EasyRPG Player | RPG Maker 2000/2003 interpreter | Rinnegatamante & EasyRPG Team | Here | Yes | 2019-03-03 |
LuaPlayer+ 3DS | First Lua interpreter 3DS homebrew, under Lua 5.3.1 | Rinnegatamante | Here | Yes | 2016-09-21 |
MegaZeux 3DS | A port of the MegaZeux GCS to the 3DS. | MegaZeux developers | Here | Yes | 2018-03-04 |
Games[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
2048-3D | A port of the popular game 2048 for the 3DS. | Jasper Peters | Here | Yes | 2016-02-12 |
3DSCraft | A Minecraft port for the 3DS. No longer under (active) development? | smea | Build from repo (alt. here) | Yes | 2014-11-20 |
3DS Nyan Cat | A port of Nyan Cat for the 3DS, using LIBSF2D . | markwinap | Build from repo (alt. here) | Yes | 2015-05-26 |
Antibounce | 'Move your player to bounce around and collect coins. Go between screens through the holes in the sides of the floor. 3D can also be enabled.' | TurtleP | Here | Yes | 2015-12-23 |
Breakout | 'A 3ds Breakout Clone.' | Magicrafter13 | Here | Yes | 2017-10-17 |
checkers3ds | A checkers game in glorious ASCII. No longer under development. | UnsureSherlock | Build from repo | Yes | 2016-02-25 |
Cookie Collector | A tiny adaptation of the popular Cookie Clicker game for the 3DS. | Kaisogen | Here | Yes | 2017-06-04 |
Cookie Clicker 3DS | A simple Cookie Clicker type of game inspired by Kaisogen's Cookie Collector | TheMachinumps | Here | Yes | 2016-08-27 |
EDuke3D | An unofficial port of EDuke32 for the 3DS. | MasterFeizz | Here | Yes | 2016-05-09 |
Helii | A port of Helii for the 3DS. | BHSPitMonkey | Here | Yes | 2015-09-18 |
Insectoid Defense | A Sci-Fi Tower Defense game. | sgowen | Here | Yes | 2015-11-09 |
NumberFucker3DS | Simple math game, originally used as a debug game for LövePotion. | VideahGams | Here | Yes | 2015-09-19 |
Zelda ROTH for 3DS | A port of Legend of Zelda: Return of the Hylian, a Zelda fangame, to 3DS. | nop90 | Here | Yes | 2016-09-11 |
Mastermind 3DS | A port of Mastermind for the 3DS. | Jasper Peters | Here | Yes | 2015-08-15 |
One Whale Trip | Five-lane underwater whale swimming/pearl pickup adventure game in Python. | thp | Here | Yes | 2016-10-02 |
OpenSupaplex | An open source 1:1 reimplementation of Supaplex for the 3DS. | sergiou87 | Here | Yes | 2020-06-29 |
Paddle Puffle 3DS | A port of Paddle Puffle for the 3DS. | Peanut42 | Here | Yes | 2015-07-05 |
Pituka Classics | Play CPC classics using Pituka Emulator-Core on 3DS. | D_Skywalk | Yes (core) | 2016-02-26 | |
Portal3DS | An adaptation of Portal for the 3DS. | smea | Build from repo (Precompiled here) | Yes | 2015-08-18 |
ctrQuake | An unofficial port of Quake for the 3DS, fully playable. | MasterFeizz | Here | Yes | 2016-09-16 |
Reversi | Reversi for the 3DS. | Jasper Peters | Here | Yes | 2016-03-05 |
Sokoban | An unofficial port of the puzzle game Sokoban for the 3DS. | Landm | Here | Yes | 2016-03-14 |
Space Fruit | Hackathon game by 4 friends ported to 3DS. Asteroids but with fruit. | TurtleP | Here | Yes | 2016-04-09 |
SRB2 3DS | An unofficial port of Sonic Robo Blast 2 Version 2.1.20 to New 3DS. It was made by derrek, a known vulnerability researcher and homebrew developer. SRB2 2.2.X Versions (2.2.8 is latest at the time this is being made) aren't ported yet and probably won't be. | [derrekr] | Here (Don't use 2.2 files!) | Yes | 2018-12-23 |
Tappy Plane | A port of Flappy Bird for 3DS, but with a colorful plane. | sgowen | Here | Yes | 2015-11-09 |
Tetrepetete 3DS | A game with blocks. | thp | Here | No | 2016-06-29 |
That Rabbit Game 3DS | Inverse duck hunt with accelerometer input and stereoscopic 3D. | thp | Here | No | 2016-07-04 |
World of 3DSand | A port of World of Sand for the 3DS. | Steveice10 | Here | Yes | 2016-07-12 |
Yeti3DS | A quick and dirty port of Derek Evans' Yeti3D software rendering engine. | smea | Build from repo | Yes | 2015-08-07 |
Loonies 8192 | A Mini Retro Puzzle for DOS, the PSP and 3DS (Homebrew) | thp | Here | No | 2019-01-27 |
DevilutionX | A 3DS Port of Diablo 1. | MrHuu | Here | Yes | 2020-05-08 |
(muahahah I am SIG7 and I added the thread for SRB2 3DS!)
Emulators[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
3DNES | A NES emulator, without sound support. No longer under development. | st4rk, gdkChan | Here | Yes | 2015-03-28 |
atari800-3DS | An Atari 8-bit home computer emulator. | asie | Here | Yes | 2016-10-29 |
blargSnes | A Super Nintendo (SNES) emulator. A compatibility list can be found here. | StapleButter | Here | Yes | 2015-06-12 |
CHIP-3DS | A simple and slow CHIP-8 emulator. | xerpi | Build from repo (alt. here) | Yes | 2015-04-02 |
CHIP8-2DS | CHIP-8 emulator with savestates and touch controls. | nopy4869 | Here | Yes | 2016-07-20 |
CitrAGB | Yet another GBA emulator for the 3DS. | Shiny Quagsire | Build from repo (alt. here) | Yes | 2015-09-21 |
GameYob | A Game Boy (Color) emulator. A compatibility list can be found here. | Drenn/Steveice10 | Here | Yes | 2016-07-17 |
mGBA | A GBA emulator that runs well without kernel hax. | endrift | Here | Yes | 2016-10-13 |
r3Ddragon | A WIP Virtual Boy emulator for the 3DS based on Reality Boy / Red Dragon. | mrdanielps | Here | Yes | 2016-08-16 |
RetroArch | A multisystem emulator. (GB, GBA, SNES, Genesis, CPS1, CPS2, etc.) | libretro | Here | Yes | Undergoing rapid development. |
SNES9x for 3DS | A SNES emulator for the old 3DS / 2DS. Optimised from Snes9x 1.43 and runs many games at full speed. Compatibility list here | bubble2k16 | Here | Yes | 2017-02-11 |
VirtuaNES for 3DS | A NES emulator for the old 3DS / 2DS. Optimised from VirtuaNES 0.9.7 and runs many games at full speed. | bubble2k16 | Here | Yes | 2017-03-23 |
TemperPCE for 3DS | A PC-Engine/Turbografx-16 emulator for the old 3DS / 2DS. Optimised from Temper runs all games, including CD-ROM and SGX games at full speed. | bubble2k16 | Here | Yes | 2017-06-19 |
Theme managers[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
3DS HomeMenu extdata Tool | Tool for accessing the SD extdata which Home Menu uses. This essentially allows writing custom themes to extdata which get loaded at Home Menu startup. | yellows8 | Here | Yes | 2015-08-17 |
Custom Home Menu Manager 2 | Theme manager for Nintendo 3DS. Discontinued. | Rinnegatamante | Here | Yes | 2016-07-04 |
Themely | Theme manager for Nintendo 3DS with 3dsthem.es integration. | ErmanSayin | Here | Not anymore, 1.3.1 last FOSS version | 2017-6-28 |
Usagi 3DS Theme Editor | A simple 3DS theme editor for PC. You will need to have the .NET Library installed on your PC first before you can use it. | usagirei | Here | Not sure | 2017.05.28 |
Anemone3DS | New theme and Luma splash screen manager, created to fill the gap left by its predecessors. | User:astronautlevel2 | Here | Yes | 2018-5-13 |
Title managers[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
FBI | Open source CIA (un)installer and launcher. | Steveice10 | Here | Yes | 2015-12-02 |
FBI 2 | Multipurpose file/title/ticket/save manager | Steveice10 | Here | Yes | 2018-8-21 |
Note: downloading non-system applications from CDN is broken in any known homebrew, regardless of whether a signed ticket is installed or not (See also: 11.8.0-41#Server-side_changes)
Save managers[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
save_manager | Proof of concept save exporter/importer | profi200 | [Here] | Yes | 2015-09-13 |
svdt | Save Data Explorer/Manager | meladroit | Here | Yes | 2015-10-16 |
[JK's Save Manager] | Save/Extdata Manager | JK_ | Here] | Yes | 2016-09-29 |
JK's Save Manager for Rosalina | Modded version of JKSM for use as .3dsx on Luma 8+ | Phalk, JK_ | Here | Yes | 2017-7-12 |
PKSM | Save editor for Pokémon generations 3 to 7 | Bernardo Giordano | Here | Yes | 2020-6-13 |
Checkpoint | Fast and simple homebrew save manager for 3DS and Switch written in C++ | Bernardo Giordano | Here | Yes | 2019-12-9 |
SpecializeMii | Editor for Mii database (specialness) | phijor | Here | Yes | 2017-1-22 |
SpecializeMii | Editor for Mii database (specialness and ownership) | phijor, Ryccardo | Here | Yes | 2017-8-13 |
File servers[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
ftpd (ftBrony) | A FTP server. | mtheall | Here | Yes | 2020-05-30 |
FTP-3DS | Fork of ftBrony with a Nintendo theme. No longer under development and without repo. | iamevn | N/A | Yes (No source officially available.) | N/A |
FTP - Graphic ModifierX Edition | Fork of ftpd with aesthetic modifications. | FloatingStar | Here | Yes | 2016-01-27 |
ftpony | A basic FTP server, useful for testing new homebrew versions without swapping the SD card. No longer under (active) development? | smea | Build from repo | Yes | 2014-11-24 |
Icon Packs[edit]
Icon Packs are SMDH
Packs for homebrew apps.
Name | Description | Author | Download | Last Updated |
---|---|---|---|---|
Simplok | The first 3DS Icon pack. | link6155 | Here | 2015-09-12 |
1LP | Another 3DS Icon pack. Repo is dead, no alternate downloads available. | 100pcrack | N/A | 2015-12-22 |
Modern UI | A simple icon pack with a flat and minimalist design. | LouchDaishiteru | Here | 2016-02-15 |
Demos[edit]
Name | Description | Author | Download | Open-Source | Last Updated |
---|---|---|---|---|---|
Skate Station | A demo for the 3DS featuring music and 3D effects | SVatG | Here | Yes | July 2019 |
cubedemo | A short demo of Homebrew on the 3DS, with working sound. | plutoo | Here | No | N/A |
demo ou mourir | Small demo for the 3DS with music and 2D effects | Desire | Here | No | November 2015 |
The Night of Interruptions! | An independently made short film which can be watched on the Nintendo 3DS. | Chukoloco08 | Here | No | December 2020 |
3DS Homebrew | |
---|---|
Introduction • Homebrew Development • Glossary • Flashcart FAQ | |
Lists | All Homebrew • Applications • Games • Emulators • Demos • CFWs • Exploits • Development libraries & tools • PC Utilities |
This page contains general information for 3DS Homebrew developers.
If you have any questions, you can come to GBAtemp's main homebrew development and help thread. Tuxera ntfs for mac free crack. It contains shared sources, examples and libraries.
You can find all known resources (hardware registers, syscalls, utilities) to develop your homebrew on 3dbrew. Delphi kfz diagnose software download.
To develop 3DS homebrew you need a development environment consisting of tools, scripts and libraries which will be detailed below. The sources are compiled to binary using GNU GCC-ARM or devkitPro with devkitARM. The available tools and SDK work on Windows 32/64bit and Linux.
The languages used to write homebrew are C, C++ and occasionally ASM. There are various online tutorials and books available to learn these languages.
Alternatively, you can also write homebrew in Lua by using Lua Player Plus.
- 1Install devkitARM
- 2Compiling sources
- 2.1Troubleshooting
- 4Editor setup
- 63ds/cia homebrew
- 8Using git
Install devkitARM
Windows
Use the automated-installer. Install in C:devkitPro and it will install all the latest versions of the required programs (you can disable devkitPSP, but be sure to enable libctru in devkitARM menu). It will create the environment variables automatically.
Linux / Mac OSX
1) Open a terminal and execute these commands:
Install libraries
You may want to install various libraries/tools if your project requires them.
Compiling sources
If you simply want to compile a homebrew project without (or after) editing it, you can use the make
utility from the command prompt/terminal.
1) Windows: Open a Command Prompt (Run -> cmd); Linux/Mac OSX: Open a Terminal from your applications
2) Navigate to the project directory (change to the correct path)
3) Run make
If you ever want to remove the compiled files, you can use this command:
This is often needed when re-compiling a project.
Troubleshooting
It is possible that sometimes your project will not compile. This can have various causes, for example missing libraries. In order to find out the problem, look into the output for the lines that start with 'error:
'; those will tell you what the problem is. You can ignore the warnings, they do not cause the compilation to fail.
If the output is big, you can filter it:
If you can't figure out what's wrong, feel free to make a post on the forums about it. Make sure to post all of the error output.
Windows Tip: To copy from your command prompt, right click and choose Mark. Then select the text to copy and press the Enter key.
Common errors
- cannot find 3dsx_crt0.o: No such file or directory
- In your makefile, find
-mfloat-abi=softfp
and change it to-mfloat-abi=hard
. You shouldn't ever usesoftfp
for 3DS homebrew.
- (name) uses VFP register arguments but (name2) does not
- Part of your project or the libraries you use were compiled with
-mfloat-abi=softfp
while other parts were compiled with-mfloat-abi=hard
. Make sure to use-mfloat-abi=hard
everywhere. You may have to manually recompile the libraries you use, if needed.
- (command) is not recognized as an internal or external command..
- Your PATH environment variable is not set up correctly. It should contain the msys folder in your devkitPro installation path (eg.
C:devkitPromsys
). Edit your PATH environment variable and make sure it includes this directory. If the command ispython
, make sure the python install directory (eg.C:PythonXX
, where XX is the version you installed) is in your PATH as well.
- unknown field 'rmdir_r' specified in initializer
- Your devkitARM is out of date. Rerun the installer or script.
- make[1]: *** No rule to make target `/c/Users/***/path/to'. Stop.
- Move the project to a folder with no spaces anywhere in its path
SMDH
Every homebrew application has an smdh file, containing additional information:
- Icon
- Name of the application (Short description)
- Description of the application (Long description)
- Name of the author (Publisher)
This information is used in The Homebrew Launcher (3DSX), and in the home menu (3DS/CIA). Trials in tainted space save editor online.
The icon is a simple 48x48px png file. You can place this png in your project folder (the same folder as your Makefile is in) and name it icon.png. If no icon.png is present, a default icon from the ctrulib folder will be used.
The other data can be set in the Makefile directly:
The SMDH file is automatically created when building the project (unless you explicitly set NO_SMDH in the Makefile).
You can also manually build the SMDH using bannertool by steveice10:
Editor setup
This section explains how to set up various editors to edit and compile (existing) homebrew projects. If you want to start a new homebrew project, you should preferably copy an example project and edit the sources.
Note that this section lists only the more advanced editors which have features such as code auto-completion. You can use any text editor to edit the source files and compile as detailed above. You should however use a proper code editor (aka not notepad). Some examples are Notepad++, Sublime Text, vim, and Emacs.
Programmer's Notepad
The Programmer's Notepad is (optionally) installed by the devkitPro installer.
1) File -> New -> Project
Give it a name and save anywhere.
2) Right click the project -> Add Files
Now navigate to the example you want and add the files from that folder (eg. Makefile, readme.md, ..)
3) Right click the project -> Add Magic Folder
Navigate to the example directory again and add the source folder within. Repeat this for any other folders in the example (if any).
4) You can build the project using Tools -> Make
Make sure the project you want to build is the active project (Right click project -> active project)
Visual Studio 2015 (community)
When installing Visual Studio, make sure to install the Visual C++ packages!
1) File -> New -> Project From Existing Code..
2) In the dropdown, choose Visual C++ and click Next
3) Under Project file location, navigate to the folder with all sources. Enter a name for the project and click next.
4) Use external build system, Next
5) Build command line:
Clean command line:
Leave the rest blank. Click Finish.
6) Right click project (in the solution explorer) -> properties
7) Under VC++ directories -> General -> Include directories, add the devkitARM and ctrulib include directories (change if needed):
Make sure not to remove anything already in the box! You can add any other include folder that the project may need as well. In the end it'll read something like:
Click OK
8) (Optional) Right click project -> Add -> Existing Item
Choose the Makefile and any other files you want to add, then click Add. This step isn't required, but allows you to edit the Makefile etc. from the editor.
Alternatively, you can use 'Show All Files' under the 'Project' menu (on the top) to display all files and folders as they are on the file system.
9) You can now build the project (Right click -> Build)
Eclipse CDT
Tested with the standalone Eclipse Mars CDT on Linux. Instructions may be slightly different for other cases. Another alternate guide can also be found here.
1) File -> New -> Makefile Project with Existing Code
2) Under Existing Code Location, navigate to the folder containing the code.
You can leave both C and C++ checked, even if the project only contains one.
Under Toolchain for Indexer Settings, choose a valid Toolchain (eg. Linux GCC)
3) Right click the Project in the project explorer and choose properties.
4) Go to C/C++ Build -> Environment.
Here you need to add the DEVKITPRO and DEVKITARM variables, with their correct paths, eg.
Name | Value |
---|---|
DEVKITPRO | /opt/devkitPro |
DEVKITARM | /opt/devkitPro/devkitARM |
Make sure to change the values to the paths on your system.
5) This step isn't needed to build, but it will make Eclipse recognize the external libraries when editing code.Go to C/C++ General -> Paths & Symbols -> Includes
Under 'GNU C' (or 'GNU C++', or both, depending on what files your project has), add the following include directories:
Again, change the paths if needed. When finished, click OK.
6) You can now build the project. Right click project -> Build project
Code::Blocks
This premade project can be used as a base https://github.com/TricksterGuy/3ds-template
1) Open the project within Code::Blocks
2) Choose File > Save project as template, and choose a name for the template
3) When creating a new project, choose File > New > From template..
4) In the dialog select the template you created in 2)
5) Choose a directory to put the project
6) To build the 3dsx file choose target 3dsx and click the build (gear) button
7) To build and run your homebrew in citra choose the citra target and hit the build button (only works if citra is installed and in your PATH).
3dsx homebrew
Homebrew in this format is the most common, and can be played with ninjhax/ironhax/tubehax. No additional steps have to be taken to create this kind of homebrew; it is the default format produced when using make
.
Homebrew examples: https://github.com/devkitPro/3ds-examples
3ds/cia homebrew
If you don't need Kernel access, prefer developing homebrew in 3dsx format.
After building the project (see above), you should have an .elf file. You can convert this into a .3ds/.cia file with makerom:
- Download makerom (and compile it with
make
if needed) - Add the folder where you placed the makerom executable to your PATH environment variable
To create a .3ds or .cia file, you need some additional files in your project:
- An RSF file - Contains various info such as permissions etc. (TODO: Make guide on how to create these)
- An icon.bin - The icon and information for the home menu. This is equivalent to the compiled SMDH file, so you can just use that one.
- A banner.bin - The banner for the top screen
You should preferably put them in your project folder (or a subfolder).
Banner
Homebrew in 3DS or CIA format requires a banner, which appears on the top screen in the Home menu.
The banner consists of an image and an audio file. The image should be a 256x128px png file. This image may contain transparent parts. The audio file is a 16bit wav file.
You can create the banner.bin using bannertool by Steveice10:
Convert .elf to .3ds
Run the following commands:
For example:
3ds Simple Cia Converter V5.0
Please note that the first command will alter the ELF file, so you may want to back it up first.
Convert .elf to .cia
CIA files are generic data containers that can be installed on a 3DS. In order to do this you need to have a 3DS below 9.2.
The process of building a CIA is similar to building a .3DS file:
Note that the used RSF file is not the same one as the one used for building .3DS files.
Releasing
When you are ready to release your homebrew application, create a new thread in the Homebrew Development section. In this thread, you can describe your project.
Make sure to attach (or link to an uploaded version of) the relevant files for your homebrew. This will usually be the 3DSX and SMDH files that have been compiled. You can also include the ELF file, which will allow people to repack it with makerom to a 3DS (and CIA) file. The ELF file can also be used on 3DS Emulators (currently two available: Citra and 3DMoo).
If your project is open source, you can upload the code to GitHub. Alternatively, you can simply provide the source as a separate download, or include it with the compiled files.
Using git
git is a distributed version control system. This allows you to put your code into a repository, which can then be shared with others. The main advantage is that you can keep track of your (and others') changes and even revert them if needed.
You can find instructions on the git website on how to install git on your system.
After git is installed on your system, you need to setup your username and email address. This allows git to identify who made the changes. If you have a GitHub account, use the same username and email as there!
Open a command prompt (Windows) or Terminal (Linux/OSX) and use the following commands:
Getting started
1) If you have not yet done so, create a file named README.md
in your project folder. You can use this file to add a description and information of your project. This description will be shown when people view your repository on GitHub. You can use markdown to add formatting such as bold and headings.
2) Open a command prompt (Windows) or Terminal (Linux/OSX).
3) Navigate to your project folder
4) Initialize it as a git repository
5) Add your existing code to the repository (note: the .
is part of the command)
6) Do the initial commit
Committing
When you make changes to your code, they need to be committed in order to 'save' them to your git repository. When and how often you commit is up to you, but try to do at most one major change per commit.
1) Make the repository aware of your changes
2) Add them to a commit
Add your project to GitHub
3ds To Cia Converter 4.1
GitHub is a popular host for online git repositories.
1) Create a GitHub repository.
Make sure to name the repository after your project and optionally give it a description. Make sure the checkbox to create a README is not checked. The .gitignore
and license
should also be set to None
2) Open a command prompt (Windows) or Terminal (Linux/OSX) and navigate to your project folder.
3) Add GitHub as a remote host (change the URL):
4) From now on, you can push
your changes to GitHub with the following command:
This pushes the master
branch to the remote called origin
, which we setup as GitHub.
You don't have to push after every commit, but your changes will only show up on GitHub after you push.
Tags
Cia To 3ds File Converter
Tags are a way on git to mark specific commits as special. For example, you could use them to track your major releases.
1) Create the tag
For example:
To tag an older commit, specify the sha1 hash of the commit:
3ds Converter Cia
2) If you are using GitHub, you must manually push the tag: