More actions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Infobox 3DS Homebrews | {{Infobox 3DS Homebrews | ||
|title=m3diaLib | |title=m3diaLib | ||
|description=A C++ library for easier homebrew development for the Nintendo | |description=A C++ library for easier homebrew development for the Nintendo 3DS. | ||
|author=m3diaLib-Team | |author=m3diaLib-Team | ||
|lastupdated=2018/10/09 | |lastupdated=2018/10/09 | ||
Line 7: | Line 7: | ||
|version=0.2.2-beta | |version=0.2.2-beta | ||
|license=Mixed | |license=Mixed | ||
|download=https://dlhb.gamebrew.org/ | |download=https://dlhb.gamebrew.org/3dshomebrews/m3dialib.7z | ||
|website=https://github.com/m3diaLib-Team/m3diaLib-CTR | |website=https://github.com/m3diaLib-Team/m3diaLib-CTR | ||
|source=https://github.com/m3diaLib-Team/m3diaLib-CTR | |source=https://github.com/m3diaLib-Team/m3diaLib-CTR | ||
}} | }} | ||
{{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. | |||
=== Core | ==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=== | |||
== How to use | |||
The barebones of a homebrew app using the m3diaLib would look like this: | The barebones of a homebrew app using the m3diaLib would look like this: | ||
<source lang="cpp">#include <m3dia.hpp> | <source lang="cpp">#include <m3dia.hpp> | ||
Line 79: | Line 68: | ||
} | } | ||
</source> | </source> | ||
= | ===Dependencies=== | ||
To compile a m3diaLib-app, you need the following dependencies installed (install via [https://devkitpro.org/wiki/devkitPro_pacman devkitPro-pacman]): | To compile a m3diaLib-app, you need the following dependencies installed (install via [https://devkitpro.org/wiki/devkitPro_pacman devkitPro-pacman]): | ||
* 3dstools | * 3dstools | ||
Line 119: | Line 82: | ||
* 3ds-freetype | * 3ds-freetype | ||
* tex3ds (if you want to use spritesheets) Use this command to automatically install all necessary dependencies: <code>sudo dkp-pacman -S 3ds-dev 3ds-zlib 3ds-tinyxml2 3ds-mpg123 3ds-libpng</code> | * tex3ds (if you want to use spritesheets) Use this command to automatically install all necessary dependencies: <code>sudo dkp-pacman -S 3ds-dev 3ds-zlib 3ds-tinyxml2 3ds-mpg123 3ds-libpng</code> | ||
== Credits == | |||
===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/smealum/ctrulib/ ctrulib] | ||
* [https://github.com/fincs/citro3d citro3d] (zLib) | * [https://github.com/fincs/citro3d citro3d] (zLib) | ||
Line 125: | Line 93: | ||
* [https://github.com/Bly7/OBJ-Loader OBJ-Loader] (MIT) | * [https://github.com/Bly7/OBJ-Loader OBJ-Loader] (MIT) | ||
* [https://github.com/mariohackandglitch/ctr-led-brary ctr-led-brary] | * [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 | |||
[[Category:3DS homebrew applications]] | |||
[[Category:PC utilities for 3DS homebrew]] |
Revision as of 04:17, 13 March 2022
m3diaLib | |
---|---|
General | |
Author | m3diaLib-Team |
Type | PC Utilities |
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