A C++ library for easier homebrew development for the Nintendo 3DS
A fast, extensive and powerful allround media and game library for the Nintendo 3DS, written in C++.
The m3diaLib (spelled media-lib) is split into multiple modules, which can then be split into smaller parts:
The core module contains all functionality for interacting with the system. Its features range from running and handling the app itself to displaying errors and running system applets.
Its main features are:
The input module does what its name says: It handles each and every input for interacting with the user.
Its main features are:
The graphics module is by far the biggest module. It handles anything graphic-wise, from rendering simple shapes to rendering and animating high-quality textures.
Its main features are:
The audio module can be used for both music and sound effects.
Its main features are:
The utils module contains all kind of useful utilities. Some of its functionalities are the following:
All features are well documented here. Examples can be viewed here.
The barebones of a homebrew app using the m3diaLib would look like this:
#include <m3dia.hpp>
int main() {
m3d::Applet app;
while (app.isRunning()) {
if (m3d::buttons::buttonPressed(m3d::buttons::Button::Start)) {
app.exit(); // exit if start is pressed
}
}
}
Easy, isn't it?
This module isn't availiable at the moment. However, it's planned features are:
...and anything that strikes my mind in the future.
To install the library, download the latest build and then execute the command make install
.
If you want to build it from the source, download the latest release and then execute the following commands:
make
make install
Note: Make sure, to have the latest version of the devkitPro-toolchain installed, before building the lib or any examples.
To compile a m3diaLib-app, you need the following dependencies installed (install via devkitPro-pacman):
Use this command to automatically install all necessary dependencies:
sudo dkp-pacman -S 3ds-dev 3ds-zlib 3ds-tinyxml2 3ds-mpg123 3ds-libpng