DuckStation on RISC-V

DuckStation on RISC-V

Just to be clear, the developer of DuckStation does NOT support custom Linux builds. If you need support, just ask here.

It is possible to build DuckStation on RISC-V, but you need vectors. I tested on the SpacemiT K3 RVA23 RISC-V SoC.

You can build the dependencies with the script for Linux, found in this repo: https://github.com/duckstation/dependencies

Put the directories (bin, doc, include, lib, etc.) somewhere in the DuckStation directory. I created a directory called prebuilt in dep.

Reference this directory in DuckStationDependencies.cmake, and I commented out the error about unsupported architecture.

set(DEPS_PATH "${CMAKE_SOURCE_DIR}/dep/prebuilt/")

Follow the build instructions: https://github.com/stenzek/duckstation#linux-1

I have the best result with OpenGL ES, as I see a lot of issues with Vulkan. But that is probably because of issues with the Vulkan driver for the Imagination Technologies IMG BXM-4-64.

I can play Colin McRae Rally at 3x resolution.

https://youtu.be/yec1HxNT6bs

u/LivingLinux — 10 days ago

SwanStation (PS1 Emulation) on the SpacemiT K3

Someone mentioned it is possible to build SwanStation on RISC-V.

https://forum.rvspace.org/t/visionfive2-in-2026-mostly-games/5939/15

The developer probably never tested on RISC-V, so I had to make some small changes to the code.

https://github.com/piepacker/swanstation

sudo apt install git cmake libsdl2-dev libxrandr-dev pkg-config qtbase5-dev qtbase5-private-dev qtbase5-dev-tools qttools5-dev libevdev-dev libwayland-dev libwayland-egl-backend-dev extra-cmake-modules libgbm-dev libdrm-dev libcurl4-gnutls-dev ninja-build

Fixes:

CMakeLists.txt: replace fatal error Unknown system processor with set(CPU_ARCH= "rv64gcvh")

cubeb_audio_stream.cpp:
#include "stdio. h"
Line 88: remove std::

StringUtil.h: #include "cstdint"

log.h: #include "cstdarg"

platform.h: replace error Unknown architecture with #define CPU_ARCH_STR "rv64gcvh"

Build command: cmake -DCMAKE_BUILD_TYPE=Release -GNinja -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DUSE_WAYLAND=ON ..

Start the no-gui version (you will get a gui): ./duckstation-nogui

I got the PS1 bios from the PS3 firmware. You do need an x86 or ARM computer to do that.

https://wiki.recalbox.com/en/tutorials/games/guides/playstation-1/grab-ps1-bios-from-ps3-firmware

Here you can see Colin McRae Rally: https://youtu.be/bwFC9ImSSos

u/LivingLinux — 13 days ago

EDuke32 Duke Nukem 3D SpacemiT K3

You can build EDuke32 on the SpacemiT K3 to play Duke Nukem 3D.

https://wiki.eduke32.com/wiki/Building_EDuke32_on_Linux

git clone --depth=1 https://voidpoint.io/terminx/eduke32.git
cd eduke32
make -j6

If you don't have a copy of the game, you can get the shareware version: https://archive.org/details/3D_Realms_Duke_Nukem_3D_Shareware

Put the DUKE.RTS and DUKE3D.GRP files in the ~/.config/eduke32/ directory. If the directory isn't there, start the game once.

I wasn't able to play it fullscreen (disable that in the launcher), and I had to use Zink. You can run it with Mangohud, to see the performance.

MESA_LOADER_DRIVER_OVERRIDE=zink mangohud ./eduke32

You can also try Voxel Duke3D: https://www.moddb.com/mods/voxel-duke-nukem-3d/addons/voxel-duke-3d

Put the zip file in the ~/.config/eduke32/autoload directory.

https://youtu.be/eb2loE61_hw

reddit.com
u/LivingLinux — 26 days ago

Bianbu doesn't ship with sr_mod for optical drives?

I wanted to test playing DVD and Blu-Ray. I connected a USB Blu-Ray drive, but Bianbu doesn't ship with sr_mod?

I see an error when I do: sudo modprobe sr_mod

Tested with the Muse Pi Pro and K3 Pico-ITX.

The same drive does work with the VisionFive 2 RISC-V SBC, running StarFive Debian.

reddit.com
u/LivingLinux — 1 month ago

Running ARMSX2 (PS2 Emulator) on a Raspberry Pi 5

I saw the news that ARMSX2 now has a Linux release.

https://github.com/ARMSX2/ARMSX2/releases#release-linuxv0.0.1

I have some issues to get it working properly with Vulkan. Vulkan will only run with llvmpipe, meaning it runs on the CPU, not the GPU.

It is possible to get it working with OpenGL, by spoofing OpenGL 3.3.

You can start it from the command line like this: MESA_GL_VERSION_OVERRIDE=3.3 ./ARMSX2-linux-Qt-arm64-appimage-sha\[47229e4ff3\].AppImage

If you are running Raspberry Pi OS, make sure you use the 4K page size kernel, not the default 16K page size kernel. See for more information here: https://forums.raspberrypi.com/viewtopic.php?t=393687

OpenGL 3.3 is not fully working, and you get better results with a recent Mesa version. Mesa 25.0 shows some serious glitches. Mesa 25.2 shows better results.

If you want to install a recent version of Mesa, you can try with a PPA. https://launchpad.net/~ernstp/+archive/ubuntu/mesarc

If anyone has it working with Vulkan on the GPU (not llvmpipe), please let me know.

You can see the result here: https://youtu.be/khs-XY1G8XA

u/LivingLinux — 1 month ago
▲ 22 r/spacemit_riscv+1 crossposts

SpacemiT K3 Co-Build Program: help shape the K3 ecosystem

If you already have a SpacemiT K3 board, we’d like to see what you are actually doing with it.

We are looking for developers who are willing to share real K3 experience, especially on:

  • K3 Pico-ITX
  • K3 Com260 Kit
  • reproducible project demos

There are two ways to join.

Track 1: Super Point

This track is for real usage feedback.

You can submit:

  • bug reports
  • setup notes
  • flashing or environment logs
  • benchmark results
  • compatibility findings
  • performance comparisons
  • troubleshooting records
  • documentation suggestions
  • development experience on K3

A good Super Point post just needs to be specific enough for other developers and our engineers to understand what happened.

Suggested format:

[Super Point] Your title

  1. Hardware model
  2. System image / OS version
  3. Test goal or use case
  4. Steps taken
  5. Results, logs, screenshots, or data
  6. Issues encountered
  7. Your analysis or suggestions

Post here: https://forum.spacemit.com/c/eco-hardware/26-category/26 and on this subreddit.

Track 2: Super Spark

This track is for projects, demos, and application cases built on K3.

You do not need a perfect finished product. A running prototype is welcome if it has a clear use case, basic documentation, and enough detail for others to reproduce or learn from it.

Good submissions may include:

  • AI inference demos
  • open-source project ports
  • edge computing applications
  • robotics projects
  • multimedia applications
  • developer tools
  • system experiments
  • hardware integration cases

Suggested format:

[Super Spark] Project name

  1. Project name
  2. K3-based use case
  3. Hardware and software environment
  4. Core features
  5. Screenshots, demo video, or code repository
  6. Current progress
  7. Next steps

Post in the competition section: https://forum.spacemit.com/c/competitions/21 and on this subreddit.

Submit project page: https://www.spacemit.com/community/lab/createProject

What selected contributors can get

We want to reward both useful feedback and great projects, while keeping the program focused on real engineering value.

Super Point: points-based rewards

For Super Point, each valid post earns 1 point.

When you collect 5 points, you can contact the official SpacemiT administrator (@u/Icy-Primary2171) to redeem a SpacemiT Developer T-shirt.

The SpacemiT Developer T-shirt is designed as a thank-you for hands-on field reports from overseas developers.

Reward process:

  • Valid Super Point posts are reviewed monthly.
  • Around the middle of each month, SpacemiT will officially announce who will receive the rewards. We don't track the numbers for you – so please make sure to reach out to us directly.
  • Confirmed contributors will be asked to provide the information needed for T-shirt fulfillment, such as size, preferred shipping region, and delivery details.

It is not a pay-per-post program. Repeated low-effort posts, duplicated content, AI-generated filler, or reports without real K3 usage details will not be counted. All rights of final interpretation belong to SpacemiT.

Super Spark: selected project rewards

For Super Spark project submissions, selected projects may receive:

  • official showcase opportunities
  • promotion through SpacemiT channels
  • Super Spark community badge
  • technical feedback from the SpacemiT team
  • for selected monthly projects: RMB 1,000 cash reward + official promotion

Monthly selections will prioritize projects that other developers can reproduce or learn from. A small demo with clear steps, code, screenshots, and honest limitations is more valuable than a polished post with little technical detail.

How rewards are reviewed

Super Point selections focus on whether the feedback is specific, reproducible, and useful for product iteration, documentation improvement, compatibility validation, or developer experience.

Super Spark selections focus on technical depth, reproducibility, documentation clarity, and whether the project shows a meaningful K3 use case.

Why this matters

The goal is simple: make more real things run on K3, document the process, and let useful work be seen by more developers.

Original announcement: https://forum.spacemit.com/t/topic/1333

u/Icy-Primary2171 — 1 month ago
▲ 5 r/SBCs

Unofficial Batocera 44 build for some ARM Devices

I found a fork of Batocera. https://github.com/suckbluefrog/Batocera-Custom-Arm-Builds

Use this at your own risk, as this is not from the Batocera team.

I tested on a Radxa Dragon Q6A (Qualcomm Snapdragon QCS6490). It comes with a couple of apps, like browsers (Brave and Firefox), I installed Waydroid, but I didn't really do anything with it.

I got Lugaru HD working with PortMaster, God of War with ARMSX2, Super Stardust HD with RPCS3, Ascendant with Lutris and Half-Life 2 with Steam.

Here is my video review: https://youtu.be/lvwGHYeOwwE

reddit.com
u/LivingLinux — 2 months ago
▲ 8 r/RISCV

Issues installing Rocky Linux 10.2 RISC-V Boot ISO in a QEMU VM (SpacemiT K3)

I downloaded the Rocky Boot ISO from the website: https://rockylinux.org/download?arch=riscv64

I also have an issue when I configure 10GB storage (qcow) in VMM, but the installer starts when I configure 8GB.

Booting the ISO boots into a shell. I can start the Rocky installer with this command: FS0:\EFI\BOOT\grubriscv64.efi

During the installation I get an error that grub2-efi-x64 and shim-x64 are missing, but I can continue. After a while I get a blocking error, and it looks like it was trying to install the boot loader.

So I'm wondering if anyone has created a VM with QEMU with more than 8GB storage with the SpacemiT K3 running Bianbu?

And if anyone wants to try Rocky Linux on RISC-V, please let me know if it works for you.

You can also try a Docker image and you can even try on the VisionFive 2, but I think I read that HDMI is not working.

Rocky Linux Installer Error, grub2-efi-x64 and shim-x64 missing

Error at step Installing boot loader

reddit.com
u/LivingLinux — 2 months ago
▲ 2 r/pop_os

Update failed. /boot/efi full

I saw the update for Cosmic, and did sudo apt update && sudo apt upgrade.

I think this is the relevant part of the log:

kernelstub.Installer : INFO     Copying Kernel into ESP
kernelstub.Installer : INFO     Copying initrd.img into ESP
kernelstub.Installer : ERROR    Couldn't copy the initrd onto the ESP!
This is a critical error and we cannot continue. Check your settings to see if there is a typo. Otherwise, check permissions and try again.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/kernelstub/installer.py", line 278, in copy_files
    shutil.copy(src, dest)
  File "/usr/lib/python3.12/shutil.py", line 435, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/lib/python3.12/shutil.py", line 273, in copyfile
    _fastcopy_sendfile(fsrc, fdst)
  File "/usr/lib/python3.12/shutil.py", line 164, in _fastcopy_sendfile
    raise err from None
  File "/usr/lib/python3.12/shutil.py", line 150, in _fastcopy_sendfile
    sent = os.sendfile(outfd, infd, offset, blocksize)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 28] No space left on device: '/boot/initrd.img-7.0.9-76070009-generic' -> '/boot/efi/EFI/Pop_OS-0dd9ddf5-fe65-43c2-bc1f-2864827e3eb8/initrd.img'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/kernelstub/installer.py", line 144, in setup_kernel
    self.copy_files(
  File "/usr/lib/python3/dist-packages/kernelstub/installer.py", line 282, in copy_files
    raise FileOpsError("Could not copy one or more files.")
kernelstub.installer.FileOpsError: Could not copy one or more files.
run-parts: /etc/initramfs/post-update.d//zz-kernelstub exited with return code 171
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 171
dpkg: error processing package linux-image-7.0.9-76070009-generic (--configure):
 installed linux-image-7.0.9-76070009-generic package post-installation script subprocess returned error exit status 171
Errors were encountered while processing:
 linux-image-7.0.9-76070009-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

df -h shows:

df -h
Filesystem             Size  Used Avail Use% Mounted on
tmpfs                  773M  1,9M  771M   1% /run
efivarfs               128K   91K   33K  74% /sys/firmware/efi/efivars
/dev/mapper/data-root  431G  342G   68G  84% /
tmpfs                  3,8G  4,0K  3,8G   1% /dev/shm
tmpfs                  5,0M     0  5,0M   0% /run/lock
/dev/sda1              497M  497M     0 100% /boot/efi
/dev/sda2              4,0G  3,0G  1,1G  74% /recovery
tmpfs                  3,8G     0  3,8G   0% /run/qemu
tmpfs                  773M   15M  758M   2% /run/user/1000

How can I repair this?

reddit.com
u/LivingLinux — 3 months ago
▲ 11 r/RISCV

Self Promotion: T-DOSE 2026 RISC-V Gaming Presentation 7th of June

This weekend, 6th and 7th of June, is T-DOSE, Technical Dutch Open Source Event near Eindhoven, The Netherlands.

https://t-dose.org/2026/

For the Dutch people, you might want to attend the presentation of Brenno de WInter on Saturday the 6th of June.

https://pretalx.t-dose.org/2026/talk/WGQG8V/

I'm going to present gaming on RISC-V, on Sunday the 7th of June.

https://pretalx.t-dose.org/2026/talk/SBXGRQ/

reddit.com
u/LivingLinux — 3 months ago
▲ 28 r/RISCV

Windows XP on RISC-V with QEMU (very slow)

TL;DR Too slow, playing Solitaire is already pushing the SpacemiT K3 to its limits.

Six years ago I tested Windows XP with QEMU on my Pinebook Pro, with the Rockchip RK3399. I don't think Windows XP is really taking advantage of multiple cores, and the limiting factor is single core performance.

Anyone that wants to run Windows apps or games on RISC-V, it's better to try with Box64 or Felix86, together with Wine.

youtu.be
u/LivingLinux — 3 months ago

Flycast on RISC-V

RISC-V is not a supported architecture, but you can build it by removing the errors from the following files:

/core/build.h
/core/linux/context.cpp
/core/hw/sh4/sh4_core_regs.cpp

This also means no dynarec, so it's very slow. Hopefully we can get double digit fps, once we get faster RISC-V chips.

sudo apt install git libao-dev libasound2-dev libevdev-dev libgl1-mesa-dev liblua5.3-dev libminiupnpc-dev libpulse-dev libsdl2-dev libudev-dev libzip-dev cmake libcurl4-openssl-dev libaudio-dev libjack-dev libsndio-dev libsamplerate0-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxfixes-dev libxi-dev libxss-dev libxkbcommon-dev libdrm-dev libgbm-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev glslang-dev

git clone --recursive https://github.com/flyinghead/flycast.git
cd flycast
cmake -B build -DUSE_BREAKPAD=OFF -DUSE_HOST_SDL=ON -DUSE_OPENGL=ON -DUSE_GLES2=OFF -DUSE_GLES=ON -DCMAKE_BUILD_TYPE=Release -DARCHITECTURE=rv64gcv
cmake --build build --config Release

Tested with Volgarr the Viking.

https://volgarr.rkd.zone/

https://youtu.be/nDAB821FIlQ

reddit.com
u/LivingLinux — 3 months ago
▲ 14 r/RISCV

PCSXR PS1 Emulation on RISC-V

Someone is testing a lot of games on the VisionFive 2.
https://forum.rvspace.org/t/visionfive2-in-2026-mostly-games/5939

It's possible to get some console emulators working on RISC-V. A properly working OpenGL device will probably help a lot.

He even has Duckstation working on the VF2, by building from source and changing the code to ignore errors. This means there is no JIT/Dynarec, so not good for performance.

I settled on PCSXR (available in the Debian repository), as you don't need a PS1 BIOS, and I have it working on the SpacemiT K3 with xvideo, instead of OpenGL.

And if anyone wants to try, there are free PS1 games.

http://netyaroze.com/Media/Magic-Castle

https://archive.org/details/magic-castle-2021-07-may

youtu.be
u/LivingLinux — 3 months ago
▲ 17 r/RISCV

SpacemiT K3 Tips

Bruce Hoult pointed out that my SpacemiT K3 wasn't running at max frequency.

You can check with lscpu. If CPU Scaling is set lower than 100%, you can change the governor.

Available governors: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

Set governor for X100 cores: echo ondemand | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

Set governor for A100 cores: echo ondemand | sudo tee /sys/devices/system/cpu/cpufreq/policy8/scaling_governor

You can read more here: https://www.spacemit.com/community/document/info?nodepath=software/SDK/buildroot/k3_buildroot/device/peripheral_driver/15-Cpufreq.md&lang=en

I have not tested the following things, but I asked SpacemiT about possibility to boot from USB or NVMe. Here are the links with more information. There is a UEFI test image.

https://www.spacemit.com/community/document/info?nodepath=hardware/eco/k3_pico/pico_user_guide.md&lang=en

https://spacemit.com/community/document/info?lang=en&nodepath=tools/user_guide/flasher_user_guide.md

reddit.com
u/LivingLinux — 3 months ago
▲ 35 r/RISCV

My first test of Bianbu 4 (based on Ubuntu 26.04) on the SpacemiT K3

Disclosure: SpacemiT has sent me the SpacemiT K3 Pico-ITX for free.

Some highlights.

  • The GPU now runs at 1.2GHz (was 819MHz)
  • Chromium (patched by SpacemiT?) can play 4K YouTube
  • Felix86 (x86 emulation) has a rootfs available for Ubuntu 26.04
  • PPSSPP can play God of War at original PSP resolution at 60fps

I'm open for suggestions for other tests.

For me the SpacemiT K3 is a better desktop replacement than a Raspberry Pi 5. But I have to add that I'm not a fan of Raspberry Pi.

And as a thank you to SpacemiT, links to buy the SpacemiT K3.

https://www.reddit.com/r/spacemit_riscv/comments/1tcrx4o/collection_of_k3_ecosystem_hardware_partner_store/

youtu.be
u/LivingLinux — 3 months ago
▲ 33 r/Fedora

I was surprised to see that the Fedora 44 ARM mainline image is booting on a Raspberry Pi 5.

https://fedoraproject.org/workstation/download/

Perhaps Fedora 44 mainline server image is working fully on a Raspberry Pi 5.

You can see from the screenshot that the GPU (V3D) isn't working yet (llvmpipe). And audio is only showing dummy output.

For now it's better to use the dedicated Raspberry Pi image for a working desktop, but it is encouraging to see the progress of the mainline image on a Raspberry Pi 5.

Here you can find the Raspberry Pi image: https://rpmfusion.org/Howto/RaspberryPi

u/LivingLinux — 4 months ago