More actions
m (Text replacement - "Infobox 3DS homebrew" to "Infobox-3DS-Homebrews") |
m (Text replacement - "Category:PC utilities for 3DS homebrew" to "") |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Infobox | {{Infobox 3DS Homebrews | ||
| title = m3diaLib | |title=m3diaLib | ||
| type = | |image=M3dialib2.png | ||
| version = | |description=A C++ library for easier homebrew development for the Nintendo 3DS. | ||
| | |author=m3diaLib-Team | ||
| | |lastupdated=2018/10/09 | ||
| website = https://github.com/m3diaLib-Team/m3diaLib-CTR | |type=Developments | ||
| | |version=0.2.2-beta | ||
|license=Mixed | |||
|download=https://dlhb.gamebrew.org/3dshomebrews/m3dialib.7z | |||
|website=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. | |||
==Features== | |||
* Core: | |||
** A class for running your homebrew app. | |||
** Easy interaction with the system itself. | |||
* A class for running your homebrew app | ** Starting and running applets. | ||
* Easy interaction with the system itself | ** Time measurement. | ||
* Starting and running applets | ** Support for the RomFS. | ||
* Time measurement | ** Multithreading and concurrency. | ||
* Support for the RomFS | * Input: | ||
* Multithreading and concurrency | ** Handling button input. | ||
** Handling touch input. | |||
* Graphics: | |||
* Handling button input | ** Support for the top and bottom screen. | ||
* Handling touch input | ** Support for stereoscopic 3D. | ||
** Easy-to-use interface for fast rendering on both screens. | |||
** Support for transformation of textures and sprites. | |||
* Support for the top and bottom screen | ** Pre-coded shapes as well as a shape class for easily rendering your own shapes. | ||
* Support for stereoscopic 3D | ** Easy-to-use color system. | ||
* Easy-to-use interface for fast rendering on both screens | ** Collision detection. | ||
* Support for transformation of textures and sprites | * Audio: | ||
* Pre-coded shapes as well as a shape class for easily rendering your own shapes | ** Loading or streaming audio files directly from the file system. | ||
* Easy-to-use color system | ** Support for .wav and .mp3. | ||
* Collision detection | ** Two different classes, sound and music, which have features that can be helpful specific in their use case. | ||
* Utils: | |||
** Basic encryption. | |||
* Loading or streaming audio files directly from the file system | |||
* | ===Installation=== | ||
* Two different classes, sound and music, which have features that can be helpful specific in their use case | 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: | |||
== How to use | 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: | 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 59: | Line 69: | ||
} | } | ||
</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 98: | Line 82: | ||
* 3ds-libpng | * 3ds-libpng | ||
* 3ds-freetype | * 3ds-freetype | ||
* tex3ds (if you want to use spritesheets) Use this command to automatically install all necessary dependencies: | * tex3ds (if you want to use spritesheets) | ||
== Credits == | |||
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/smealum/ctrulib/ ctrulib] | ||
* [https://github.com/fincs/citro3d citro3d] (zLib) | * [https://github.com/fincs/citro3d citro3d] (zLib) | ||
Line 105: | Line 97: | ||
* [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 |
Latest revision as of 04:23, 6 Mayıs 2024
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