Download Latest Version RVVM v0.6 source code.tar.gz (313.5 kB)
Email in envelope

Get an email when there's a new version of RVVM

Home / v0.6
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2024-03-18 3.8 kB
RVVM v0.6 source code.tar.gz 2024-03-18 313.5 kB
RVVM v0.6 source code.zip 2024-03-18 414.8 kB
Totals: 3 Items   732.0 kB 1

NOTE: RVVM nightly builds should be preferred, this release is for historical reference.

Please see https://github.com/LekKit/RVVM/wiki/Running

New features

  • Networking is now stable and enabled by default
  • Allow port forwarding to the guest with -portfwd 127.0.0.1:8080=80
  • Support relative mouse movement, grabbing the host mouse
  • Support international keyboard layouts (I.e. keys specific to Japanese, Korean, German etc keyboards)
  • Optional SDL2 GUI backend
  • Support Big-endian hosts (MIPS64, PowerPC64) properly
  • SiFive GPIO support
  • MTD physmap firmware chip
  • Dallas DS1742 Real-time clock
  • Support (multiple) PTY or UNIX sockets as UART character device with -serial [file], silent UART with -serial null;
  • Support explicitly choosing NVMe or ATA with -ata [img] or -nvme [img]
  • Support using host block devices (/dev/sda, /dev/mmcblk) as RVVM drives
  • Faster threaded IO implementation
  • Faster UART console (Especially on Windows, Serenity)
  • Optimized Win32 display rendering
  • Slightly better RVJIT x86 register allocation
  • RVJIT significantly optimizes memory accesses with userland CPU emulation (To the point of near-native perf of user emulation)
  • Rework CMake build system to build shared librvvm properly
  • Colorful logger
  • Libretro port
  • [WIP] Began work on a Linux userspace binary emulator. Many riscv64 glibc binaries work, but threading and JIT caches are flaky.

RVVM API Improvements:

  • Character device API
  • GPIO API
  • Provide a separate mapping property for direct MMIO regions
  • Omit PC increment for traps in Userland API
  • Support non-canonical framebuffer stride
  • Return rvvm_mmio_handle_t upon attaching most de-attachable MMIO devices
  • Implement RVVM_OPT_MEM_BASE, RVVM_OPT_MEM_SIZE to query RAM configuration of the machine.
  • Implement RVVM_OPT_HART_COUNT to query amount of cores
  • Java JNI bindings

Fixes, compatibility

  • Fix crashes when explicitly unloading librvvm shared library (#97)
  • Fix NVMe deadlock reporting when host IO is slow (#99)
  • More bullerproof RVJIT cache allocation (#98)
  • Implement RT8169 93C56 EEPROM to fix FreeBSD & Haiku OS networking (#118)
  • Fix rare keypress loss (#126)
  • Fix pending PLIC interrupts not being re-delivered upon writes to prio/enable/threshold
  • Fix 0-byte UDP payloads with tap_user backend
  • Fix TCP connection tuple lookup
  • Improve TCP stability immensely with tap_user backend
  • Fix networking on NetBSD
  • Implement proper FMA emulation without dual rounding in FPU, advertise FENV_ACCESS
  • Fix endianness issues in FPU
  • Fix several VMA operations on Win32 hosts
  • Support both UTF8 and system locale paths on Win32 hosts
  • Use pthread_cond_timedwait_relative_np() on MacOS to fix possible hang upon wall clock change
  • Fix MMIO op size validation
  • Fix PCI attach failure handling with all the devices
  • Fix non-working I2C ocores with FreeBSD guest
  • Advertise zicsr, zifencei extensions in CPU DT
  • Fix KSM & THP erroneously not being enabled
  • Use .dylib extension for MacOS shared lib target
  • Fix OpenBSD CMake build due to type naming collisions
  • Fix CMake build on arches without a JIT backend
  • Fix Serenity build warnings due to macro naming collisions
  • Myriad of small fixes

New Contributors

Full Changelog: https://github.com/LekKit/RVVM/compare/v0.5...v0.6

Source: README.md, updated 2024-03-18