mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 04:12:33 -05:00
profile emulators pd777 through tic80, add frozen snapshots (puae2021, snes9x2002/2005/2010, stella2014/2023). CI: replace github-script with gh CLI, add test execution, job-level permissions, propagate changed output, pin jsonschema.
80 lines
3.0 KiB
YAML
80 lines
3.0 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"
|
|
core_version: "0.6-git"
|
|
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: libretro.c:332-421 (retro_load_game)
|
|
# VM init + loading: libretro.c:288-330 (vm_init)
|
|
# firmware loading: rvvm.c:621-628 (rvvm_load_firmware)
|
|
# kernel loading: rvvm.c:630-638 (rvvm_load_kernel)
|
|
# FDT loading: rvvm.c:641-648 (rvvm_load_fdt, standalone only)
|
|
# standalone CLI: main.c:213-282 (rvvm_cli_configure)
|
|
|
|
files:
|
|
- name: "fw_payload.bin"
|
|
path: "rvvm/fw_payload.bin"
|
|
required: true
|
|
source_ref: "libretro.c:309-314, rvvm.c:621-628"
|
|
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: "libretro.c:316-318, rvvm.c:630-638"
|
|
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: "main.c:230, rvvm.c:641-648"
|
|
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. Correct: the core loads firmware via
|
|
user-specified paths in the .rvvm config, not from system_dir.
|