Introduction to Homebrew development¶
This guide will teach you how to write your own homebrew apps, system modules and mitm services using C/C++. There are also ways to write limited apps using Rust or Python but these languages won’t be covered in this guide.
Important
This guide is meant for developers. If you’re just here to install a CFW on your Nintendo Switch, this is NOT the guide for you.
Important
Homebrew development should not be used as way to learn a programming language. You should have a good understanding about C/C++ BEFORE trying to write homebrew apps. At the time of writing this guide there is no easy way to debug homebrews on the switch so you’ll be limited to printf debugging and fatal screen interpretation mostly.
Development tools¶
To get started, make sure you have all the following tools installed on your system.
- devkitA64
The toolchains used to compile your homebrew apps. Windows has a installer for it and other platforms just use pacman. Make sure to actually install the switch package that contains devkitA64!
- Visual Studio Code
A amazing IDE / Text editor that works perfectly for homebrew development.
Make sure to install the C/C++ and optionally the GitLens extension
- GitKraken [Optional]
A Git GUI that makes version control super easy.
Useful resources¶
- SwitchBrew
Provides information about the Switch’s hardware and software.
- switch-examples
Examples for common homebrew features
- SwIPC
A documentation of most of the switch’s IPC calls.
- stratosphere
Atmosphere’s custom or reimplemented sysmodules.
- GitHub
Other peoples homebrew projects are a great way of learning
- Error Codes
Descriptions for fatal and IPC error codes