You do not have permission to edit this page, for the following reason:
The action you have requested is limited to users in one of the groups: Users, Administrators.
Free text:
{{Obsolete}} 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: <source lang="cpp">#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 } } } </source> ===Dependencies=== To compile a m3diaLib-app, you need the following dependencies installed (install via [https://devkitpro.org/wiki/devkitPro_pacman 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=== * [https://docs.stunthacks.eu/m3dialib Documentation]. * [https://github.com/StuntHacks/m3d-examples Examples]. ==Credits== * [https://github.com/smealum/ctrulib/ ctrulib] * [https://github.com/fincs/citro3d citro3d] (zLib) * [https://github.com/devkitPro/citro2d citro2d] (zLib) * [https://github.com/Bly7/OBJ-Loader OBJ-Loader] (MIT) * [https://github.com/mariohackandglitch/ctr-led-brary ctr-led-brary] ==External links== * GitHub - https://github.com/m3diaLib-Team/m3diaLib-CTR * Documentation - [https://web.archive.org/web/20181028151709/https://docs.stunthacks.eu/m3dialib/ 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
Advertising: