This is a sample application for 3ds homebrew (aka SDK).
Homebrew application for 3ds such as Video player for 3DS and Battery mark for 3DS are based on this sample code.
Currently this sample application contains following samples :
- Draw image sample
- File explorer sample
- Hardware settings sample
- Camera and mic sample
- Speaker sample
This is a sample code to draw images such as .png and .jpg.
Application source code : source/sub_app0.cpp
Used APIs :
This is a sample code to use file explorer.
Application source code : source/sub_app1.cpp
Used APIs :
This is a sample code to change hardware settings such as wifi state, screen brightness and sleep.
Application source code : source/sub_app2.cpp
Used APIs :
This is a sample code to take a picture by using camera and record sound by using mic.
Application source code : source/sub_app3.cpp
Used APIs :
This is a sample code to playback audio.
Application source code : source/sub_app4.cpp
Used APIs :
You need :
If you want to build .cia, then you also need :
- bannertool
- Broken links? Try our backup.
- makerom
- Broken links? Try our backup.
(Copy them in your path e.g. in {devkitPro_install_dir}\tools\bin
).
As of this writing, we use these packages to build this project.
Note : Not all of them are necessary e.g. devkitARM-gdb
is not required to build and we don't use
standard libctru
and citro2(3)d
, but we just document all of them in case someone need these information.
For more information, see here.
$ dkp-pacman -Q
3ds-cmake 1.5.1-1
3ds-examples 20230610-1
3ds-pkg-config 0.28-5
3dslink 0.6.2-1
3dstools 1.3.1-3
catnip 0.1.0-1
citro2d 1.6.0-1
citro3d 1.7.1-2
devkit-env 1.0.1-2
devkitARM r64-2
devkitARM-gdb 14.1-2
devkitarm-cmake 1.2.2-1
devkitarm-crtls 1.2.6-1
devkitarm-rules 1.5.1-1
devkitpro-keyring 20180316-1
dkp-cmake-common-utils 1.5.2-1
general-tools 1.4.4-1
libctru 2.3.1-1
pacman 6.0.1-7
picasso 2.7.2-3
tex3ds 2.3.0-4
For .cia build
bannertool 1.2.0
makerom v0.18.4
If you want to make changes to the libraries, then follow this guide.
After having all dependencies, do :
- Clone this repository (
git clone https://github.com/core-2-extreme/{project_name}
).- On windows run
build_3dsx.bat
for.3dsx
only build orbuild.bat
for.3dsx
+.cia
build. - On other system, run
make 3dsx
for.3dsx
only build ormake all
for.3dsx
+.cia
build.
- On windows run
This software is licensed under GNU General Public License v3.0 or later.
Note : As of this writing, zlib
is not used in this project
(once it was used), however it may be used in the future.
Third party libraries are licensed under :
Library | License |
---|---|
libctru | zlib License |
citro3d | zlib License |
citro2d | zlib License |
x264 | GNU General Public License v2.0 |
libmp3lame | GNU Lesser General Public License v2.0 |
dav1d | BSD 2-Clause |
ffmpeg | GNU General Public License v3.0 |
zlib | zlib License |
mbedtls | Apache License 2.0 |
nghttp2 | MIT License |
curl | The curl license |
stb_image | Public Domain |