NATIVE PORTADVENTURE / SANDBOXWINDOWSALPHA
Super Mario 64 (libsm64-rust)
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-rust)
Super Mario 64 (libsm64-rust)github.com/nickmass/libsm64-rustWindows
Infinite Mario 64 (Ever)github.com/Brawmario/infinite-mario-64-everWindowsLinuxmacOS
sm64coopdx (Super Mario 64 online)github.com/coop-deluxe/sm64coopdxWindowsLinuxmacOS
Super Mario 64github.com/sm64-port/sm64-portWindows
Ghostshipgithub.com/HarbourMasters/GhostshipWindowsLinuxmacOSAndroidiOS
Ghostship (Android)github.com/izzy2lost/GhostshipAndroid
sm64 wasm · Web (sm64-wasm)github.com/sm64-wasm/sm64-wasmWeb
sm64coopdx (Android)github.com/ManIsCat2/sm64coopdxAndroid
sm64coopdx (Switch)github.com/ArcheSV/sm64coopdx-switchTo be confirmed
sm64exgithub.com/sm64pc/sm64exWindowsLinuxmacOS
SM64Plusgithub.com/MorsGames/sm64plusWindowsLinux
Super Mario 64 (libsm64-godot)github.com/Brawmario/libsm64-godotWindows
Super Mario 64 (libsm64-sharp)github.com/MeltyPlayer/libsm64-sharpWindows
Super Mario 64 (PSP)github.com/JustKidding23/SM64-PSPTo be confirmed
Super Mario 64 (SM64-PC-Port-WebGL)github.com/NotAn127/SM64-PC-Port-WebGLWindows
Super Mario 64 (web)github.com/lwllac/sm64Web
Official project information
Author's original READMEOpen on GitHub ↗
libsm64 - Rust Bindings
This is a thin layer of rust bindings over the very excellent libsm64 project.
Usage
use std::fs::File;
use libsm64::*;
const ROM_PATH: &str = "./baserom.us.z64";
let rom = File::open(ROM_PATH).unwrap();
let mut sm64 = Sm64::new(rom).unwrap();
// Convert your existing level geometry into LevelTriangles
let level_collision_geometry = create_level_geometry();
// Load the geometry into sm64 to be used for collision detection
sm64.load_level_geometry(&level_collision_geometry);
// Create a new Mario and provide his starting position
let mut mario = sm64.create_mario(0.0, 0.0, 0.0).unwrap();
let input = MarioInput {
stick_x: 0.5,
button_a: true,
..MarioInput::default()
};
// For each iteration of your gameloop, tick Mario's state
let state = mario.tick(input);
println!("Mario's current health: {}", state.health);
// Mario's geometry will be updated to his new position and animation
for triangle in mario.geometry().triangles() {
draw_triangle(&triangle, sm64.texture());
}