mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
bennugd (game engine, no BIOS), cruzes (puzzle game, no BIOS), dice (discrete arcade, no BIOS), ishiiruka (Dolphin fork, same BIOS), mkxp_z (RPG Maker, 3 RTP dirs), onscripter (VN engine, no BIOS), qemu (55 firmware files! SeaBIOS/VGA/iPXE/OpenBIOS/OpenSBI), rustation (PS1 Rust, 22 BIOS by SHA-256), rvvm (RISC-V, OpenSBI), reminiscence (Flashback engine, game data only) 135 total profiles.
101 lines
4.3 KiB
YAML
101 lines
4.3 KiB
YAML
emulator: RVVM
|
|
type: libretro
|
|
source: "https://github.com/LekKit/RVVM"
|
|
systems: [riscv]
|
|
|
|
# RVVM is a RISC-V virtual machine / emulator. The libretro core loads a
|
|
# ".rvvm" config file that specifies bootrom, kernel, nvme drives, memory,
|
|
# CPU mode (rv32/rv64), cmdline, and framebuffer resolution.
|
|
#
|
|
# The core itself does NOT bundle any firmware. Users must supply:
|
|
# 1. A bootrom (M-mode firmware): typically OpenSBI fw_payload.bin or fw_jump.bin
|
|
# 2. Optionally a kernel payload (S-mode): Linux Image, U-Boot, etc.
|
|
# 3. Optionally a custom DTB (the core auto-generates one if not provided)
|
|
#
|
|
# The .rvvm file is a plain-text key=value config parsed by retro_load_game():
|
|
# bootrom=/path/to/fw_payload.bin
|
|
# kernel=/path/to/Image
|
|
# nvme=/path/to/rootfs.img
|
|
# mem=512
|
|
# smp=2
|
|
# rv64
|
|
# cmdline=root=/dev/nvme0n1 rootflags=discard rw console=tty0
|
|
#
|
|
# Paths in the .rvvm file are resolved relative to the .rvvm file's directory
|
|
# (the core chdir()s there before vm_init). The bootrom is mandatory - the core
|
|
# shows "RVVM: No bootrom" if missing.
|
|
|
|
# Source references:
|
|
# libretro binding: src/bindings/libretro/libretro.c
|
|
# firmware loading: src/rvvm.c:rvvm_load_firmware()
|
|
# kernel loading: src/rvvm.c:rvvm_load_kernel() (offset 0x200000 rv64, 0x400000 rv32)
|
|
# FDT generation: src/rvvm.c:rvvm_init_fdt() (auto-generated if not provided)
|
|
# CLI help: src/main.c:rvvm_print_help()
|
|
|
|
files:
|
|
# -- OpenSBI firmware (required) --
|
|
# M-mode firmware loaded at RESET_PC (0x80000000). This is the first code
|
|
# executed by the virtual machine. The standard choice is OpenSBI with
|
|
# U-Boot as payload (fw_payload.bin) or OpenSBI standalone (fw_jump.bin).
|
|
# The core calls rvvm_load_bootrom() which maps to rvvm_load_firmware().
|
|
|
|
- name: "fw_payload.bin"
|
|
path: "rvvm/fw_payload.bin"
|
|
required: true
|
|
source_ref: "libretro.c:309-315, rvvm.c:621-628"
|
|
note: >
|
|
OpenSBI firmware with U-Boot payload. This is the M-mode bootrom
|
|
loaded at physical address 0x80000000. Without this file, the VM
|
|
cannot start. Common builds: opensbi fw_payload (includes U-Boot),
|
|
or fw_jump.bin (jumps to kernel directly). The file is referenced
|
|
by the bootrom= key in the .rvvm config file.
|
|
|
|
# -- Kernel image (optional) --
|
|
# S-mode kernel loaded at offset 0x200000 (rv64) or 0x400000 (rv32) from
|
|
# RAM base. Used with fw_jump.bin to boot Linux directly without U-Boot.
|
|
|
|
- name: "Image"
|
|
path: "rvvm/Image"
|
|
required: false
|
|
source_ref: "libretro.c:316-318, rvvm.c:630-638"
|
|
note: >
|
|
Linux kernel image or other S-mode payload. Loaded at a fixed offset
|
|
from RAM base (0x200000 for rv64, 0x400000 for rv32). Only needed
|
|
when using fw_jump.bin as bootrom. Referenced by the kernel= key
|
|
in the .rvvm config file.
|
|
|
|
# -- Device Tree Blob (optional) --
|
|
# Custom FDT passed to the guest. The core auto-generates a complete DTB
|
|
# with cpu topology, memory map, and all attached devices if not provided.
|
|
|
|
- name: "machine.dtb"
|
|
path: "rvvm/machine.dtb"
|
|
required: false
|
|
source_ref: "rvvm.c:641-648, main.c:230"
|
|
note: >
|
|
Custom Flattened Device Tree. The core generates a DTB automatically
|
|
based on the machine configuration (cpus, memory, devices), so this
|
|
is only needed for special setups. The FDT address is passed to the
|
|
firmware in register a1 at boot.
|
|
|
|
notes:
|
|
emulation_target: >
|
|
RVVM emulates a RISC-V machine with rv64imafdcb (or rv32ima) ISA,
|
|
SiFive PLIC interrupt controller, NVMe storage, RTL8169 networking,
|
|
framebuffer display, HID keyboard/mouse, UART, Goldfish RTC, and
|
|
PCI bus. It includes a tracing JIT with x86_64/ARM64/RISC-V backends.
|
|
firmware_sources: >
|
|
OpenSBI builds: https://github.com/riscv-software-src/opensbi/releases
|
|
Pre-built fw_payload.bin (OpenSBI + U-Boot) for RVVM:
|
|
https://github.com/LekKit/RVVM/wiki/Running
|
|
config_format: >
|
|
The .rvvm file is a plain-text key=value config. Supported keys:
|
|
bootrom, kernel, nvme (up to 4), mem (MB), smp, cmdline, rv64/rv32.
|
|
Default: rv64, 256 MB RAM, 1 core, 640x480 framebuffer.
|
|
libretro_info: >
|
|
Core name: rvvm_libretro. Extension: .rvvm. Experimental: yes.
|
|
No save states, no cheats, needs_fullpath=true.
|
|
The core does not use the RetroArch system directory for firmware -
|
|
all paths are specified in the .rvvm config file relative to its
|
|
own directory.
|