Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

M3diaLib 3DS: Difference between revisions

From GameBrew
No edit summary
m (Text replacement - "Category:PC utilities for 3DS homebrew" to "")
 
(3 intermediate revisions by the same user not shown)
Line 5: Line 5:
|author=m3diaLib-Team
|author=m3diaLib-Team
|lastupdated=2018/10/09
|lastupdated=2018/10/09
|type=PC Utilities
|type=Developments
|version=0.2.2-beta
|version=0.2.2-beta
|license=Mixed
|license=Mixed
Line 82: 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: <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:  
sudo dkp-pacman -S 3ds-dev 3ds-zlib 3ds-tinyxml2 3ds-mpg123 3ds-libpng


===Useful links===
===Useful links===
Line 100: Line 103:
* GBAtemp - https://gbatemp.net/threads/release-m3dialib-a-c-library-for-easier-homebrew-development-for-the-nintendo-3ds.517929
* 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
* 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]]

Latest revision as of 04:23, 6 Mayıs 2024

m3diaLib
M3dialib2.png
General
Authorm3diaLib-Team
TypeDevelopments
Version0.2.2-beta
LicenseMixed
Last Updated2018/10/09
Links
Download
Website
Source

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

External links

Advertising: