Headless VNC libretro frontend
Go to file
Lily Tsuru b31feab847 Unsafe localization + sanity checking
By localization, I mean making functions have unsafe blocks where they are actually doing unsafe things, rather than a blanket "unsafe fn", or moving safe operations (or functions made safe by localizing their unsafety) out to safe Rust where possible. This also adds opporturnity to annotate unsafe blocks in a better fashion, which is a nice side benefit.

Also, the helper to get a EGL Device platform display can now select any of the first 16 devices reported. For now this functionality is useless since we hardcode it to do the same thing it did before effectively, but later on it might be a good idea to expose it? Not Sure™️
2024-08-07 03:56:59 -04:00
crates Unsafe localization + sanity checking 2024-08-07 03:56:59 -04:00
.editorconfig Initial commit 2024-08-02 03:20:29 -04:00
.gitignore Initial commit 2024-08-02 03:20:29 -04:00
.rustfmt.toml Initial commit 2024-08-02 03:20:29 -04:00
Cargo.lock Initial OpenGL core support 2024-08-05 08:49:40 -04:00
Cargo.toml Initial commit 2024-08-02 03:20:29 -04:00
LICENSE Initial commit 2024-08-02 03:20:29 -04:00
README.md update README 2024-08-06 22:12:26 -04:00

retrovnc

A fully headless Libretro frontend that exports a VNC server for display and input.

In layman terms, this lets you play games over VNC. Which isn't all that great, but hey.

This is mostly a "fun project" and consists mostly of code I already wrote.

Dependencies

  • A C++ toolchain
  • A Rust toolchain.

Building

$ cargo b --release

Usage

Make the following directories where you will run retrovnc in:

  • config
  • system
  • save

These folders are used either by retrovnc or cores to store data.

For the most basic usecase:

$ retrovnc --core <CORE> --rom <ROM> (see retrovnc --help for more options)

E.g: to use swanstation (assuming you have placed requirements in the system folder):

retrovnc --core cores/swanstation_libretro.so --rom roms/my_game.cue

After launching a core for the first time, a TOML file in config/ is created to allow you to set core options. You may use this file to set any option given by the core.