mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 15:43:45 -06:00
Each libretro profile records version_basis and core_version is read there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba 0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build takes its version from git carry the nearest tag in describe form (flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders copied from .info files (Git, SVN) are replaced by the code's statement, and a code that states none is null with kind none.
85 lines
3.3 KiB
YAML
85 lines
3.3 KiB
YAML
emulator: RVVM
|
|
type: libretro
|
|
core_classification: official_port
|
|
source: "https://github.com/LekKit/RVVM"
|
|
upstream: "https://github.com/LekKit/RVVM"
|
|
profiled_date: "2026-03-25"
|
|
source_commit: "343f6784c8922446083c5d5bd111d7c1eb8590eb"
|
|
core_version: "0.7"
|
|
version_basis:
|
|
kind: file
|
|
path: "CMakeLists.txt"
|
|
pattern: '^set\(RVVM_VERSION ([0-9.]+)\)'
|
|
display_name: "RVVM"
|
|
cores: [rvvm]
|
|
systems: [riscv]
|
|
|
|
# RVVM emulates a RISC-V machine (rv64imafdcb or rv32ima). The libretro core
|
|
# loads a .rvvm plain-text config file specifying bootrom, kernel, nvme drives,
|
|
# memory, CPU mode, cmdline, and framebuffer resolution.
|
|
#
|
|
# The core does NOT use the RetroArch system directory. All firmware paths are
|
|
# specified in the .rvvm config file and resolved relative to its directory.
|
|
# The core chdir()s to the .rvvm file's parent before initializing the VM.
|
|
#
|
|
# The .rvvm config format (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
|
|
#
|
|
# The libretro binding uses an older RVVM API (rvvm_load_bootrom, 4-param
|
|
# rvvm_create_machine) that has been renamed in the current upstream
|
|
# (rvvm_load_firmware, 3-param rvvm_create_machine). The binding may not
|
|
# compile against RVVM HEAD without updates.
|
|
|
|
# Source references:
|
|
# libretro binding: src/bindings/libretro/libretro.c
|
|
# config parsing: src/bindings/libretro/libretro.c:332-421 (retro_load_game)
|
|
# VM init + loading: src/bindings/libretro/libretro.c:288-330 (vm_init)
|
|
# firmware loading: src/core/rvvm.c:629-636 (rvvm_load_firmware)
|
|
# kernel loading: src/core/rvvm.c:638-647 (rvvm_load_kernel)
|
|
# FDT loading: src/core/rvvm.c:649-656 (rvvm_load_fdt, standalone only)
|
|
# standalone CLI: src/main.c:211-280 (rvvm_cli_configure)
|
|
|
|
files:
|
|
- name: "fw_payload.bin"
|
|
path: "rvvm/fw_payload.bin"
|
|
required: true
|
|
source_ref: "src/bindings/libretro/libretro.c:309-314, src/core/rvvm.c:629-636"
|
|
note: >
|
|
M-mode firmware loaded at 0x80000000. Typically OpenSBI with U-Boot
|
|
payload (fw_payload.bin) or standalone (fw_jump.bin). Referenced by
|
|
the bootrom= key in the .rvvm config.
|
|
|
|
- name: "Image"
|
|
path: "rvvm/Image"
|
|
required: false
|
|
source_ref: "src/bindings/libretro/libretro.c:316-318, src/core/rvvm.c:638-646"
|
|
note: >
|
|
S-mode kernel payload loaded at offset 0x200000 (rv64) or 0x400000
|
|
(rv32) from RAM base. Only needed with fw_jump.bin as bootrom.
|
|
Referenced by the kernel= key in the .rvvm config.
|
|
|
|
- name: "machine.dtb"
|
|
path: "rvvm/machine.dtb"
|
|
required: false
|
|
mode: standalone
|
|
source_ref: "src/main.c:220, src/core/rvvm.c:649-656"
|
|
note: >
|
|
Custom Flattened Device Tree. The core auto-generates a DTB based on
|
|
machine configuration. The libretro binding does not parse a dtb= key
|
|
in the .rvvm config, so this is only usable via the standalone CLI
|
|
(-dtb flag).
|
|
|
|
notes:
|
|
firmware_sources: >
|
|
OpenSBI: https://github.com/riscv-software-src/opensbi/releases.
|
|
Pre-built images for RVVM: https://github.com/LekKit/RVVM/wiki/Running
|
|
info_firmware_count: >
|
|
.info declares 0 firmware. The core loads firmware via
|
|
user-specified paths in the .rvvm config, not from system_dir.
|