Difference between revisions of "Homebrew Libraries and Tools"

From 3dbrew
Jump to navigation Jump to search
m (add missing newline)
 
(21 intermediate revisions by 9 users not shown)
Line 1: Line 1:
 
This is a list of libraries and tools that can be used to develop 3DS Homebrew.
 
This is a list of libraries and tools that can be used to develop 3DS Homebrew.
  
==List==
+
== Libraries ==
 
 
===Libraries===
 
 
{| class="wikitable" border="1" width="100%"
 
{| class="wikitable" border="1" width="100%"
!  width="20%" | Name
+
!  width="16%" | Name
 
!  width="50%" | Description
 
!  width="50%" | Description
 
!  width="10%" | Author
 
!  width="10%" | Author
!  width="10%" | Download
+
!  width="8%" | Download
!  width="10%" | Open-Source
+
!  width="8%" | Open-Source
 +
!  width="8%" | Maintained
 
|-
 
|-
| [https://github.com/smealum/ctrulib ctrulib]
+
| [https://github.com/devkitPro/libctru libctru]
 
| C library for writing user mode ARM11 code for the 3DS (CTR)  
 
| C library for writing user mode ARM11 code for the 3DS (CTR)  
 
| [https://twitter.com/smealum smea] et al.
 
| [https://twitter.com/smealum smea] et al.
 
| [[Setting_up_Development_Environment|See here]]
 
| [[Setting_up_Development_Environment|See here]]
 +
| Yes
 +
| Yes
 +
|-
 +
| [https://osdn.net/users/freepascal3ds/pf/FPC-N3DS/files/ N2DS .. N3DS Computers]
 +
| 2DS .. 3DS development in the Pascal computer language
 +
| [mailto:ctru.pas@gmail.com Kenneth Dwayne Lee]
 +
| [http://pascal.fpc-n3ds.ca here]
 +
| No
 +
| Yes
 +
|-
 +
| [https://github.com/devkitPro/citro3d citro3d]
 +
| Stateful PICA200 GPU wrapper library for the Nintendo 3DS
 +
| [https://github.com/fincs fincs]
 +
| [[Setting_up_Development_Environment|See here]]
 +
| Yes
 +
| Yes
 +
|-
 +
| [https://github.com/devkitPro/citro2d citro2d]
 +
| Library for drawing 2D graphics using the Nintendo 3DS's PICA200 GPU
 +
| [https://github.com/fincs fincs]
 +
| [[Setting_up_Development_Environment|See here]]
 +
| Yes
 
| Yes
 
| Yes
 
|-
 
|-
 
| [https://github.com/xerpi/sf2dlib sf2dlib]
 
| [https://github.com/xerpi/sf2dlib sf2dlib]
| Simple and Fast 2D library for the Nintendo 3DS (using ctrulib)
+
| Simple and Fast 2D library for the Nintendo 3DS (using libctru and citro3d)
 
| [https://github.com/xerpi xerpi]
 
| [https://github.com/xerpi xerpi]
| [https://github.com/xerpi/sf2dlib/archive/master.zip Here]
+
| [https://github.com/xerpi/sf2dlib/ Here]
 
| Yes
 
| Yes
 +
| Deprecated
 
|-
 
|-
 
| [https://github.com/cpp3ds/gl3ds gl3ds]
 
| [https://github.com/cpp3ds/gl3ds gl3ds]
| OpenGL implementation for Nintendo 3DS using ctrulib
+
| OpenGL implementation for Nintendo 3DS using libctru
 
| [https://github.com/Cruel Cruel] et al.
 
| [https://github.com/Cruel Cruel] et al.
| [https://github.com/cpp3ds/gl3ds/archive/master.zip Here]
+
| [https://github.com/cpp3ds/gl3ds/ Here]
 
| Yes
 
| Yes
 +
| No
 
|-
 
|-
 
| [https://github.com/machinamentum/Caelina Caelina]
 
| [https://github.com/machinamentum/Caelina Caelina]
 
| An OpenGL implementation for (N)3DS
 
| An OpenGL implementation for (N)3DS
 
| [https://github.com/machinamentum machinamentum]
 
| [https://github.com/machinamentum machinamentum]
| [https://github.com/machinamentum/Caelina/archive/master.zip Here]
+
| [https://github.com/machinamentum/Caelina/releases/ Here]
 
| Yes
 
| Yes
 +
| No
 
|-
 
|-
 
| [https://github.com/Myriachan/libkhax libkhax]
 
| [https://github.com/Myriachan/libkhax libkhax]
 
| Library for modifying kernel memory on a certain handheld game console.
 
| Library for modifying kernel memory on a certain handheld game console.
 
| [https://github.com/Myriachan Myria] et al.
 
| [https://github.com/Myriachan Myria] et al.
| [https://github.com/Myriachan/libkhax/archive/master.zip Here]
+
| [https://github.com/Myriachan/libkhax/ Here]
 
| Yes
 
| Yes
 +
| No
 
|-
 
|-
 
| [https://github.com/cpp3ds/cpp3ds cpp3ds]
 
| [https://github.com/cpp3ds/cpp3ds cpp3ds]
 
| Object-oriented C++ game library and port of [http://www.sfml-dev.org/ SFML]
 
| Object-oriented C++ game library and port of [http://www.sfml-dev.org/ SFML]
 
| [https://github.com/Cruel Cruel] et al.
 
| [https://github.com/Cruel Cruel] et al.
| [https://github.com/cpp3ds/cpp3ds/archive/master.zip Here]
+
| [https://github.com/cpp3ds/cpp3ds/releases/ Here]
 +
| Yes
 +
| No
 +
|-
 +
| [https://github.com/BtheDestroyer/SpriteTools SpriteTools]
 +
| Extension to SF2D, adding support for things like animations
 +
| [https://github.com/BtheDestroyer BtheDestroyer]
 +
| [https://github.com/BtheDestroyer/SpriteTools/releases/ Here]
 
| Yes
 
| Yes
 +
| Deprecated
 +
|-
 
|}
 
|}
  
===PC Tools===
+
== PC Tools ==
 
{| class="wikitable" border="1" width="100%"
 
{| class="wikitable" border="1" width="100%"
!  width="20%" | Name
+
!  width="16%" | Name
 
!  width="50%" | Description
 
!  width="50%" | Description
 
!  width="10%" | Author
 
!  width="10%" | Author
!  width="10%" | Download
+
!  width="8%" | Download
!  width="10%" | Open-Source
+
!  width="8%" | Open-Source
 +
!  width="8%" | Maintained
 
|-
 
|-
 
| [http://devkitpro.org/ devkitARM]
 
| [http://devkitpro.org/ devkitARM]
Line 61: Line 96:
 
| [[Setting_up_Development_Environment|See here]]
 
| [[Setting_up_Development_Environment|See here]]
 
| [https://github.com/devkitPro Yes]
 
| [https://github.com/devkitPro Yes]
 +
| Yes
 
|-
 
|-
 
| [https://github.com/smealum/aemstro aemstro]
 
| [https://github.com/smealum/aemstro aemstro]
 
| Set of tools used to disassemble and assemble shader code for DMP's MAESTRO shader extension used in the 3DS's PICA200 GPU
 
| Set of tools used to disassemble and assemble shader code for DMP's MAESTRO shader extension used in the 3DS's PICA200 GPU
 
| [https://twitter.com/smealum smea]
 
| [https://twitter.com/smealum smea]
| [https://github.com/smealum/aemstro/archive/master.zip Here]
+
| [https://github.com/smealum/aemstro/ Here]
 
| Yes
 
| Yes
 +
| No
 
|-
 
|-
| [https://github.com/fincs/picasso picasso]
+
| [https://github.com/devkitPro/picasso picasso]
 
| Homebrew PICA200 shader assembler
 
| Homebrew PICA200 shader assembler
 
| [https://github.com/fincs fincs]
 
| [https://github.com/fincs fincs]
| [https://github.com/fincs/picasso/releases Here]
+
| [[Setting_up_Development_Environment|See here]]
 +
| Yes
 
| Yes
 
| Yes
 
|-
 
|-
Line 79: Line 117:
 
| [http://4dsdev.org/thread.php?id=14 Here]
 
| [http://4dsdev.org/thread.php?id=14 Here]
 
| [https://github.com/neobrain/nihstro Yes]
 
| [https://github.com/neobrain/nihstro Yes]
 +
| No
 
|-
 
|-
 
| [https://github.com/Lectem/3ds-cmake 3ds-cmake]
 
| [https://github.com/Lectem/3ds-cmake 3ds-cmake]
 
| CMake files for devkitARM and 3DS homebrew development
 
| CMake files for devkitARM and 3DS homebrew development
 
| [https://github.com/Lectem Lectem]
 
| [https://github.com/Lectem Lectem]
| [https://github.com/Lectem/3ds-cmake/archive/master.zip Here]
+
| [https://github.com/Lectem/3ds-cmake/ Here]
 
| Yes
 
| Yes
 +
| No
 
|-
 
|-
| [https://github.com/profi200/Project_CTR/archive/master.zip makerom]
+
| [[Makerom|makerom]]
| Tool which can be used to create NCCH, CCI, and CIA files.  
+
| Tool which can be used to create NCCH, CCI, and CIA files.  
| [http://3dbrew.org/wiki/User:3dsguy 3dsguy] maintained by [https://github.com/profi200 profi200]
+
| [[User:3dsguy|3dsguy]], maintained by [https://github.com/profi200 profi200]
| [https://github.com/profi200/Project_CTR/archive/master.zip Here]
+
| [https://github.com/profi200/Project_CTR/releases/ Here]
 +
| [https://github.com/profi200/Project_CTR/tree/master/makerom Yes]
 
| Yes
 
| Yes
 
|-
 
|-
Line 95: Line 136:
 
| Tool to create NCCH banners
 
| Tool to create NCCH banners
 
| [https://github.com/Steveice10 Steveice10]
 
| [https://github.com/Steveice10 Steveice10]
| [https://github.com/Steveice10/bannertool/archive/master.zip Here]
+
| [https://github.com/Steveice10/bannertool/releases/ Here]
 
| Yes
 
| Yes
 +
| No
 
|-
 
|-
 
| [https://github.com/socram8888/amiitool amiitool]
 
| [https://github.com/socram8888/amiitool amiitool]
 
| Tool to decrypt, encrypt and sign amiibo dumps
 
| Tool to decrypt, encrypt and sign amiibo dumps
 
| [https://github.com/socram8888 socram8888]
 
| [https://github.com/socram8888 socram8888]
| [https://github.com/socram8888/amiitool/archive/master.zip Here]
+
| [https://github.com/socram8888/amiitool/releases/ Here]
 
| Yes
 
| Yes
 +
| No
 
|}
 
|}
  
===3DS Tools===
+
== 3DS Tools ==
 
{| class="wikitable" border="1" width="100%"
 
{| class="wikitable" border="1" width="100%"
!  width="20%" | Name
+
!  width="16%" | Name
 
!  width="50%" | Description
 
!  width="50%" | Description
 
!  width="10%" | Author
 
!  width="10%" | Author
!  width="10%" | Download
+
!  width="8%" | Download
!  width="10%" | Open-Source
+
!  width="8%" | Open-Source
 +
!  width="8%" | Maintained
 
|-
 
|-
 
| [https://github.com/neobrain/braindump braindump]
 
| [https://github.com/neobrain/braindump braindump]
 
| Tool to dump ExeFS/RomFS data from games and other applications
 
| Tool to dump ExeFS/RomFS data from games and other applications
 
| [https://github.com/neobrain neobrain]
 
| [https://github.com/neobrain neobrain]
| [https://github.com/neobrain/braindump/releases Here]
+
| [https://github.com/neobrain/braindump/releases/ Here]
 
| Yes
 
| Yes
 +
| No
 +
|-
 +
| [https://github.com/citra-emu/uncart uncart]
 +
| Utility to dump game cartridges to the SD card
 +
| [https://github.com/neobrain neobrain] et al.
 +
| Build from [https://github.com/citra-emu/uncart repo]
 +
| Yes
 +
| No
 +
|-
 
|}
 
|}

Latest revision as of 15:44, 21 August 2021

This is a list of libraries and tools that can be used to develop 3DS Homebrew.

Libraries[edit]

Name Description Author Download Open-Source Maintained
libctru C library for writing user mode ARM11 code for the 3DS (CTR) smea et al. See here Yes Yes
N2DS .. N3DS Computers 2DS .. 3DS development in the Pascal computer language Kenneth Dwayne Lee here No Yes
citro3d Stateful PICA200 GPU wrapper library for the Nintendo 3DS fincs See here Yes Yes
citro2d Library for drawing 2D graphics using the Nintendo 3DS's PICA200 GPU fincs See here Yes Yes
sf2dlib Simple and Fast 2D library for the Nintendo 3DS (using libctru and citro3d) xerpi Here Yes Deprecated
gl3ds OpenGL implementation for Nintendo 3DS using libctru Cruel et al. Here Yes No
Caelina An OpenGL implementation for (N)3DS machinamentum Here Yes No
libkhax Library for modifying kernel memory on a certain handheld game console. Myria et al. Here Yes No
cpp3ds Object-oriented C++ game library and port of SFML Cruel et al. Here Yes No
SpriteTools Extension to SF2D, adding support for things like animations BtheDestroyer Here Yes Deprecated

PC Tools[edit]

Name Description Author Download Open-Source Maintained
devkitARM GCC-based toolchain tuned for homebrew development for ARM-based consoles. WinterMute et al. See here Yes Yes
aemstro Set of tools used to disassemble and assemble shader code for DMP's MAESTRO shader extension used in the 3DS's PICA200 GPU smea Here Yes No
picasso Homebrew PICA200 shader assembler fincs See here Yes Yes
nihstro 3DS shader assembler and disassembler neobrain Here Yes No
3ds-cmake CMake files for devkitARM and 3DS homebrew development Lectem Here Yes No
makerom Tool which can be used to create NCCH, CCI, and CIA files. 3dsguy, maintained by profi200 Here Yes Yes
bannertool Tool to create NCCH banners Steveice10 Here Yes No
amiitool Tool to decrypt, encrypt and sign amiibo dumps socram8888 Here Yes No

3DS Tools[edit]

Name Description Author Download Open-Source Maintained
braindump Tool to dump ExeFS/RomFS data from games and other applications neobrain Here Yes No
uncart Utility to dump game cartridges to the SD card neobrain et al. Build from repo Yes No