More actions
m3diaLib | |
---|---|
General | |
Author | m3diaLib-Team |
Type | Developments |
Version | 0.2.2-beta |
License | Mixed |
Last Updated | 2018/10/09 |
Links | |
Download | |
Website | |
Source | |
This application has been obsoleted by one or more applications that serve the same purpose, but are more stable or maintained. |
m3diaLib (spelled media-lib) is a fast, extensive and powerful allround media and game library for the Nintendo 3DS, written in C++. The library is split into multiple modules, which can then be split into smaller parts.
Note: This library is deprecated. You should use libctru and citro3d/2d directly, if possible.
Features
- Core:
- A class for running your homebrew app.
- Easy interaction with the system itself.
- Starting and running applets.
- Time measurement.
- Support for the RomFS.
- Multithreading and concurrency.
- Input:
- Handling button input.
- Handling touch input.
- Graphics:
- Support for the top and bottom screen.
- Support for stereoscopic 3D.
- Easy-to-use interface for fast rendering on both screens.
- Support for transformation of textures and sprites.
- Pre-coded shapes as well as a shape class for easily rendering your own shapes.
- Easy-to-use color system.
- Collision detection.
- Audio:
- Loading or streaming audio files directly from the file system.
- Support for .wav and .mp3.
- Two different classes, sound and music, which have features that can be helpful specific in their use case.
- Utils:
- Basic encryption.
Installation
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.
User guide
How to use
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
}
}
}
Dependencies
To compile a m3diaLib-app, you need the following dependencies installed (install via devkitPro-pacman):
- 3dstools
- picasso
- libctru
- citro3d
- citro2d
- 3ds-tinyxml2
- 3ds-zlib
- 3ds-mpg123
- 3ds-libpng
- 3ds-freetype
- tex3ds (if you want to use spritesheets)
Use this command to automatically install all necessary dependencies:
sudo dkp-pacman -S 3ds-dev 3ds-zlib 3ds-tinyxml2 3ds-mpg123 3ds-libpng
Useful links
Credits
- ctrulib
- citro3d (zLib)
- citro2d (zLib)
- OBJ-Loader (MIT)
- ctr-led-brary
External links
- GitHub - https://github.com/m3diaLib-Team/m3diaLib-CTR
- Documentation - https://docs.stunthacks.eu/m3dialib (archived)
- GBAtemp - https://gbatemp.net/threads/release-m3dialib-a-c-library-for-easier-homebrew-development-for-the-nintendo-3ds.517929
- Reddit - https://www.reddit.com/r/3dshacks/comments/9fgmkc/release_m3dialib_a_c_library_for_easier_homebrew