play NES rpgs with fceux, lua, and rust

Overview

rpg-bot

play NES rpgs with fceux, lua, and rust

running server

# load dependencies
nix-shell -p lua51Packages.luasocket lua51Packages.rapidjson

# launch fceux through rust
cd sofia
cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.02s
     Running `target/debug/sofia`
Loading SDL sound with pulseaudio driver...
[
    MemoryAddress {
        value: 0,
        tags: [
            "menu selection",
        ],
    },
    MemoryAddress {
        value: 255,
        tags: [
            "character selection",
        ],
    },
    MemoryAddress {
        value: 0,
        tags: [
            "slot 1 class",
        ],
    },
    MemoryAddress {
        value: 0,
        tags: [
            "slot 2 class",
        ],
    },
    MemoryAddress {
        value: 0,
        tags: [
            "slot 3 class",
        ],
    },
    MemoryAddress {
        value: 0,
        tags: [
            "slot 4 class",
        ],
    },
    MemoryAddress {
        value: 255,
        tags: [
            "menu cursor x",
        ],
    },
    MemoryAddress {
        value: 255,
        tags: [
            "menu cursor y",
        ],
    },
    MemoryAddress {
        value: 255,
        tags: [
            "world map x",
        ],
    },
    MemoryAddress {
        value: 0,
        tags: [
            "world map y",
        ],
    },
    MemoryAddress {
        value: 0,
        tags: [
            "battle cursor x",
        ],
    },
    MemoryAddress {
        value: 0,
        tags: [
            "battle cursor y",
        ],
    },
]
rust: got 12 addresses (frame 0)
...

open questions

  • nix develop doesn't work for lua dependencies (lua51Packages.luasocket), but nix-shell -p does; how can we reproduce the effect of nix-shell -p ... using flakes?

references

You might also like...
This is the core library with the full abstraction and implementation of the Minecraft protocol and logic. (Currently WIP)

MineRust (WIP) This is the core library with the full abstraction and implementation of the Minecraft protocol and logic. This project is currently WI

Rust-and-opengl-lessons - Collection of example code for learning OpenGL in Rust

rust-and-opengl-lessons Project requires Rust 1.31 Collection of example code for learning OpenGL in Rust 00 - Setup 01 - Window 02 - OpenGL Context 0

A Rust wrapper and bindings of Allegro 5 game programming library

RustAllegro A thin Rust wrapper of Allegro 5. Game loop example extern crate allegro; extern crate allegro_font; use allegro::*; use allegro_font::*;

RTS game/engine in Rust and WebGPU
RTS game/engine in Rust and WebGPU

What is this? A real time strategy game/engine written with Rust and WebGPU. Eventually it will be able to run in a web browser thanks to WebGPU. This

grr and rust-gpu pbr rendering
grr and rust-gpu pbr rendering

grr-gltf Barebone gltf viewer using grr and rust-gpu. Currently only supports a single gltf model! Assets These files need to be downloaded and placed

A no-frills Tetris implementation written in Rust with the Piston game engine, and Rodio for music.
A no-frills Tetris implementation written in Rust with the Piston game engine, and Rodio for music.

rustris A no-frills Tetris implementation written in Rust with the Piston game engine, and Rodio for music. (C) 2020 Ben Cantrick. This code is distri

Text Renderer written in Rust using HarfBuzz for shaping, FreeType for rasterization and OpenGL for rendering.
Text Renderer written in Rust using HarfBuzz for shaping, FreeType for rasterization and OpenGL for rendering.

Provok Text Renderer written in Rust using HarfBuzz for shaping, FreeType for rasterization and OpenGL for rendering. Input Provok is fed with a JSON

 The Bloat-Free Browser Game in Rust but in C and in UEFI
The Bloat-Free Browser Game in Rust but in C and in UEFI

rust-browser-game but in UEFI instead of browser quick start deps rust gnu-efi gcc make build process $ make running after building everything you wil

rust-browser-game but native and rendered with ncurses in C without the Browser
rust-browser-game but native and rendered with ncurses in C without the Browser

Spin-off of rust-browser-game-but-sdl but with ncurses Nothing much to say. Just see rust-browser-game-but-sdl and rust-browser-game. Quick Start $ ma

Owner
Jonathan Strickland
very curious, trying to grow. into haskell, rust, racket, and nix
Jonathan Strickland
Small game where you play a big spider chasing small spiders, written in Rust and Macroquad.

Ludum Dare #49 Compo entry - Procedural Spider Small game where you play a big spider chasing small spiders. Each spider you catch makes you bigger! C

Jakub Arnold 16 Sep 5, 2022
Heavy - an opinionated, efficient, relatively lightweight, and tightly Lua-integrated game framework for Rust

Heavy - an opinionated, efficient, relatively lightweight, and tightly Lua-integrated game framework for Rust Slow down, upon the teeth of Orange Heav

Shea Leffler 12 Mar 18, 2022
Why not play with MLIR from Rust?

rmlir rmlir aims to provide Rustaceans with: Parser for MLIR Way to write passes (& pass managers) Ports for code generators e.g. LLVM, Cranelift, ...

uint256_t 4 Nov 20, 2021
🐝 An action-packed game where you play as a missile-dodging, laser-evading, upgradeable bumbly bee.

Beeline The last known specimens of the Andor flower, the flower with the tastiest nectar in the world, are preserved at the Mount Dared fortified mil

plam 4 Oct 6, 2022
Play jungle chess on the linux terminal.

Jungle-Chess This is my first project written in Rust. Happy for contributors and feedback! The code is dirty. Play Jungle Chess on an Emoji-Enabled L

Arne Winter 10 Aug 9, 2022
Play or watch Othello in your terminal!

othello-cli othello-cli is a cli version of Othello (Reversi) written in Rust. You can play against another player, the AI, or watch two AIs play each

null 4 Oct 18, 2022
Victorem - easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust.

Victorem Easy UDP game server and client framework for creating simple 2D and 3D online game prototype in Rust. Example Cargo.toml [dependencies] vict

Victor Winbringer 27 Jan 7, 2023
Abstreet - Transportation planning and traffic simulation software for creating cities friendlier to walking, biking, and public transit

A/B Street Ever been stuck in traffic on a bus, wondering why is there legal street parking instead of a dedicated bus lane? A/B Street is a project t

A/B Street 6.8k Jan 9, 2023
"putzen" is German and means cleaning. It helps keeping your disk clean of build and dependency artifacts safely.

Putzen "putzen" is German and means cleaning. It helps keeping your disk clean of build and dependency artifacts safely. About In short, putzen solves

Sven Assmann 2 Jul 4, 2022
Plugins and helpful methods for using sepax2d with Bevy for 2d overlap detection and collision resolution.

bevy_sepax2d Plugins and helpful methods for using sepax2d with Bevy for 2d overlap detection and collision resolution. Compatible Versions bevy bevy_

null 7 Nov 14, 2022