Difference between revisions of "Homebrew Libraries and Tools"

From 3dbrew
Jump to navigation Jump to search
(Created page with "This is a list of libraries and tools that can be used to develop 3DS Homebrew. ==List== ===Libraries=== {| class="wikitable" border="1" width="100%" ! width="20%" | Name ! w...")
 
(22 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="20%" | Name
Line 12: Line 10:
 
|-
 
|-
 
| [https://github.com/smealum/ctrulib ctrulib]
 
| [https://github.com/smealum/ctrulib ctrulib]
| 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]]
Line 18: Line 16:
 
|-
 
|-
 
| [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/archive/master.zip Here]
 +
| Yes
 +
|-
 +
| [https://github.com/fincs/citro3d citro3d]
 +
| Stateful PICA200 GPU wrapper library for the Nintendo 3DS
 +
| [https://github.com/fincs fincs]
 +
| [https://github.com/fincs/citro3d/archive/master.zip Here]
 
| Yes
 
| Yes
 
|-
 
|-
Line 32: Line 36:
 
| 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
 +
|-
 +
| [https://github.com/Parx-3DS Three-DS, computers]
 +
| Canvas/GDI Parx-Pas tested in FreePascal, public stubs
 +
| [https://twitter.com/Kenny_D_Lee Kenneth Dwayne Lee]
 +
| [http://flying-dutchmen.github.io/3DS-Sails Here]
 +
| No
 
|-
 
|-
 
| [https://github.com/Myriachan/libkhax libkhax]
 
| [https://github.com/Myriachan/libkhax libkhax]
Line 39: Line 49:
 
| [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/archive/master.zip Here]
 +
| Yes
 +
|-
 +
| [https://github.com/cpp3ds/cpp3ds cpp3ds]
 +
| Object-oriented C++ game library and port of [http://www.sfml-dev.org/ SFML]
 +
| [https://github.com/Cruel Cruel] et al.
 +
| [https://github.com/cpp3ds/cpp3ds/releases Here]
 +
| Yes
 +
|-
 +
| [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
 +
|-
 +
| [https://github.com/TurtleP/LovePotion LovePotion]
 +
| Love2d port, a lua game engine
 +
| [https://github.com/TurtleP/ TurtleP]
 +
| [https://github.com/TurtleP/LovePotion/releases Here]
 
| Yes
 
| Yes
 
|}
 
|}
  
===Tools===
+
== PC Tools ==
 
{| class="wikitable" border="1" width="100%"
 
{| class="wikitable" border="1" width="100%"
 
!  width="20%" | Name
 
!  width="20%" | Name
Line 51: Line 79:
 
|-
 
|-
 
| [http://devkitpro.org/ devkitARM]
 
| [http://devkitpro.org/ devkitARM]
| GCC-based toolchain tuned for homebrew development for ARM-based consones
+
| GCC-based toolchain tuned for homebrew development for ARM-based consoles.
 
| [https://github.com/WinterMute WinterMute] et al.
 
| [https://github.com/WinterMute WinterMute] et al.
 
| [[Setting_up_Development_Environment|See here]]
 
| [[Setting_up_Development_Environment|See here]]
Line 57: Line 85:
 
|-
 
|-
 
| [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/archive/master.zip Here]
Line 65: Line 93:
 
| Homebrew PICA200 shader assembler
 
| Homebrew PICA200 shader assembler
 
| [https://github.com/fincs fincs]
 
| [https://github.com/fincs fincs]
| [https://github.com/fincs/picasso/releases/tag/v2.0 Here]
+
| [https://github.com/fincs/picasso/releases Here]
 
| Yes
 
| Yes
 
|-
 
|-
Line 75: Line 103:
 
|-
 
|-
 
| [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/archive/master.zip Here]
 
| Yes
 
| Yes
 +
|-
 +
| [[Makerom|makerom]]
 +
| Tool which can be used to create NCCH, CCI, and CIA files.
 +
| [[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/tree/master/makerom Yes]
 +
|-
 +
| [https://github.com/Steveice10/bannertool bannertool]
 +
| Tool to create NCCH banners
 +
| [https://github.com/Steveice10 Steveice10]
 +
| [https://github.com/Steveice10/bannertool/archive/master.zip Here]
 +
| Yes
 +
|-
 +
| [https://github.com/socram8888/amiitool amiitool]
 +
| Tool to decrypt, encrypt and sign amiibo dumps
 +
| [https://github.com/socram8888 socram8888]
 +
| [https://github.com/socram8888/amiitool/archive/master.zip Here]
 +
| Yes
 +
|}
 +
 +
== 3DS Tools ==
 +
{| class="wikitable" border="1" width="100%"
 +
!  width="20%" | Name
 +
!  width="50%" | Description
 +
!  width="10%" | Author
 +
!  width="10%" | Download
 +
!  width="10%" | Open-Source
 +
|-
 +
| [https://github.com/neobrain/braindump braindump]
 +
| Tool to dump ExeFS/RomFS data from games and other applications
 +
| [https://github.com/neobrain neobrain]
 +
| [https://github.com/neobrain/braindump/releases Here]
 +
| Yes
 +
|-
 +
| [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
 +
|-
 
|}
 
|}

Revision as of 02:20, 11 November 2017

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

Libraries

Name Description Author Download Open-Source
ctrulib C library for writing user mode ARM11 code for the 3DS (CTR) smea et al. See here Yes
sf2dlib Simple and Fast 2D library for the Nintendo 3DS (using libctru and citro3d) xerpi Here Yes
citro3d Stateful PICA200 GPU wrapper library for the Nintendo 3DS fincs Here Yes
gl3ds OpenGL implementation for Nintendo 3DS using ctrulib Cruel et al. Here Yes
Caelina An OpenGL implementation for (N)3DS machinamentum Here Yes
Three-DS, computers Canvas/GDI Parx-Pas tested in FreePascal, public stubs Kenneth Dwayne Lee Here No
libkhax Library for modifying kernel memory on a certain handheld game console. Myria et al. Here Yes
cpp3ds Object-oriented C++ game library and port of SFML Cruel et al. Here Yes
SpriteTools Extension to SF2D, adding support for things like animations BtheDestroyer Here Yes
LovePotion Love2d port, a lua game engine TurtleP Here Yes

PC Tools

Name Description Author Download Open-Source
devkitARM GCC-based toolchain tuned for homebrew development for ARM-based consoles. WinterMute et al. See here 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
picasso Homebrew PICA200 shader assembler fincs Here Yes
nihstro 3DS shader assembler and disassembler neobrain Here Yes
3ds-cmake CMake files for devkitARM and 3DS homebrew development Lectem Here Yes
makerom Tool which can be used to create NCCH, CCI, and CIA files. 3dsguy, maintained by profi200 Here Yes
bannertool Tool to create NCCH banners Steveice10 Here Yes
amiitool Tool to decrypt, encrypt and sign amiibo dumps socram8888 Here Yes

3DS Tools

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