Super Mario 64 (libsm64-sharp)
Super Mario 64
About the project
Super Mario 64 es un videojuego de plataformas desarrollado y publicado por Nintendo para la Nintendo 64. Es la primera entrega de Super Mario en mostrar gráficos 3D, que combina la mecánica tradicional de la franquicia, su estilo visual y sus personajes en un amplio mundo abierto. En la historia, Bowser invade el castillo de la Princesa Peach, la secuestra y esconde las Estrellas de Poder en diferentes mundos situados dentro de cuadros mágicos. En el papel de Mario, el jugador recorre los niveles y recoge las estrellas para desbloquear zonas, llegar hasta Bowser y rescatar a Peach.
16 versions of Super Mario 64
You're viewing: Super Mario 64 (libsm64-sharp)
Super Mario 64 (libsm64-sharp)github.com/MeltyPlayer/libsm64-sharp
Infinite Mario 64 (Ever)github.com/Brawmario/infinite-mario-64-ever
sm64coopdx (Super Mario 64 online)github.com/coop-deluxe/sm64coopdx
Super Mario 64github.com/sm64-port/sm64-port
Ghostshipgithub.com/HarbourMasters/Ghostship
Ghostship (Android)github.com/izzy2lost/Ghostship
sm64 wasm · Web (sm64-wasm)github.com/sm64-wasm/sm64-wasm
sm64coopdx (Android)github.com/ManIsCat2/sm64coopdx
sm64coopdx (Switch)github.com/ArcheSV/sm64coopdx-switch
sm64exgithub.com/sm64pc/sm64ex
SM64Plusgithub.com/MorsGames/sm64plus
Super Mario 64 (libsm64-godot)github.com/Brawmario/libsm64-godot
Super Mario 64 (libsm64-rust)github.com/nickmass/libsm64-rust
Super Mario 64 (PSP)github.com/JustKidding23/SM64-PSP
Super Mario 64 (SM64-PC-Port-WebGL)github.com/NotAn127/SM64-PC-Port-WebGL
Super Mario 64 (web)github.com/lwllac/sm64Official project information
libsm64 - C# Bindings
Overview
C# bindings for libsm64.
This library provides both:
- A high-level C# object-oriented layer for safely calling the libsm64 methods.
- A low-level interop layer for calling libsm64-ext's methods directly.
Credits
- libsm64, the original C library that provides this functionality.
- libsm64-unity, which I shamelessly copied the core interop code from.
- Quad64, which I shamelessly copied into this project to load levels.
Installation via NuGet
To install libsm64-sharp, run the following command in the Package Manager Console:
Install-Package libsm64-sharp
Usage
High-level
For a simpler experience working with libsm64, you can use the high-level API. Its entrypoint is the Sm64Context class, which provides a more standard C# API for working with libsm64.
A context must be created from a Super Mario 64 ROM in order to load texture and audio data, like so:
var romBytes = File.ReadAllBytes("Super_Mario_64_(US).z64");
var sm64Context = Sm64Context.InitFromRom(romBytes);
Note: The ROM used must be the US version in the Z64 format (i.e. big-endian). To verify if your ROM is correct, make sure its MD5 hash is 20b854b239203baf6c961b850a4a51a2.
For a full example, refer to this repository's Demo Project.
Low-level
For direct access to libsm64, you can use the low-level API. This can be accessed via the LibSm64Interop class, which exposes static methods that call the C library.
For a full example, refer to how Sm64Context calls these interop methods within LibSm64Sharp.