Bemined - I have ported my game to RISC-V (testers welcome?)

I’ve been following RISC-V developments for a long time and with VisionFive 2 it looked like desktop-grade board with GPU acceleration finally so I have decided to give it a go and port one of my games to it. The process wasn’t easy (finding correct image, flashing bootloader with UART, fixing the system that lost GPU acceleration all of a sudden after reboot, etc), but finally it is working on my system and I would love to get some testing/feedback on other RISC-V systems/configurations.

The game is a digging/puzzle game.

To install/play:

wget bemined.com/download/Bemined.run
chmod +x Bemined.run
./Bemined.run

The game’s is pretty heavy on the graphics/effects side, so will be unplayable without GPU acceleration.

I have built and tested it on Ubutnu 24.04 @ VisionFive 2, but the game’s engine supports both OpenGL and OpenGL ES, so in theory it should work with discreete GPU too.

From my experience on VisionFive 2 the game lags initially while it loads/processes textures in the background, but once the heavy CPU work is done and it’s mostly GPU that does the work, the experience is relatively smooth even at 1920x1080.

For reference there is also a web version of the game which can be played at www.bemined.com in case you are not sure if what you see is a bug or not.

Would love to hear any feedback! Thanks in advance.

2 Likes

I tried on StarFive Debian, but I get an error about a missing library (libssl.so.3).

*** LAUNCHER BUILT ON Oct  8 2026 15:15:52 ***
Writable dir is: /home/user/.local/share/Enkord/Bemined/app
(launch_exe) Continuing to: /tmp/.mount_BemineJYlUfj/usr/bin/Bemined
16:35:48.586 Done loading 457912 bytes of static data!
16:35:48.586 No preferred locales supported [‘C’], using default “en”
Traceback (most recent call last):
File “/tmp/.mount_BemineJYlUfj/usr/bin/client.py”, line 11, in <module>
File “/tmp/.mount_BemineJYlUfj/usr/bin/bladefx/app.py”, line 9, in <module bladefx.app>
File “/tmp/.mount_BemineJYlUfj/usr/bin/bladefx/system/app.py”, line 7, in <module bladefx.system.app>
File “/tmp/.mount_BemineJYlUfj/usr/bin/bladefx/system/native/backend.py”, line 6, in <module bladefx.system.native.backend>
File “/tmp/.mount_BemineJYlUfj/usr/bin/bladefx/system/native/kernel.py”, line 20, in <module bladefx.system.native.kernel>
File “/tmp/.mount_BemineJYlUfj/usr/bin/bladefx/system/native/bfx2.py”, line 14, in <module bladefx.system.native.bfx2>
ImportError: /tmp/.mount_BemineJYlUfj/usr/bin/libssl.so.3: version `OPENSSL_3.2.0’ not found (required by /lib/riscv64-linux-gnu/libcurl.so.4)
(launch_exe) Got exit code 1
1 Like

Looks like I have accidently bundled libssl.so from my build machine inside AppImage.

I have uploaded a new version, please run Bemined.run again. (no need to download again, it should update automatically).

Thanks for the quick update.
Now I get an error about libcrypto.so.3 missing.

can you post traceback again?

*** LAUNCHER BUILT ON Oct  8 2026 17:45:51 ***Writable dir is: /home/user/.local/share/Enkord/Bemined/app(launch_exe) Continuing to: /tmp/.mount_BemineTOBtQn/usr/bin/Bemined
18:04:19.851 Done loading 457912 bytes of static data!
18:04:19.851 No preferred locales supported [‘C’], using default “en”
Traceback (most recent call last):File “/tmp/.mount_BemineTOBtQn/usr/bin/client.py”, line 11, in <module>
File “/tmp/.mount_BemineTOBtQn/usr/bin/bladefx/app.py”, line 9, in <module bladefx.app>
File “/tmp/.mount_BemineTOBtQn/usr/bin/bladefx/system/app.py”, line 7, in <module bladefx.system.app>
File “/tmp/.mount_BemineTOBtQn/usr/bin/bladefx/system/native/backend.py”, line 6, in <module bladefx.system.native.backend>
File “/tmp/.mount_BemineTOBtQn/usr/bin/bladefx/system/native/kernel.py”, line 11, in <module bladefx.system.native.kernel>
File “/tmp/.mount_BemineTOBtQn/usr/bin/ssl.py”, line 100, in <module>
ImportError: /tmp/.mount_BemineTOBtQn/usr/bin/libcrypto.so.3: version `OPENSSL_3.3.0’ not found (required by /lib/riscv64-linux-gnu/libssl.so.3)
(launch_exe) Got exit code 1
(launch_exe) Got exit code 0

Thanks. I have made another update, let’s see if it helps. Launch Bemined.run again.

I get to the start of the game, but it crashes.
Did you get the crash report, or do I have to post the traceback?

Thanks. Now as it passed the openSSL phase it submits crash reports automatically. Uploaded another fix.

Success!

1 Like

Thanks! F11 or Alt+Enter can switch full screen mode



debian202510(Upgraded to Debian 13.7)+chromium142

PS:This game isn’t really suitable to play in China, the internet is slow, and it can take 15-30 minutes just to get into the game. :grinning_face:

1 Like

Thank you! I am using bunny CDN and looks like they don’t have servers in mainland China, only in HK, probably that’s why it is slow. But it’s only first download is slow. Next updates are incremental, so should be fast.
Speaking about browser version, looks like RISC-V browser builds are limited and do not support WebAssembly - I have the same problem in Firefox. Too bad :pensive_face:

1 Like

The RISC-V chip of the VisionFive 2 (JH7110) is RVA20 profile, and it means that it doesn’t support everything that is expected from a “modern” chip. For instance Google has set the baseline for Android on RISC-V to the RVA23 profile.

I tested Bemined on the SpacemiT K3 (RVA23). It works, but after a while I got a crash. Did you get the report?

I can run Bemined with Chromium on the SpacemiT K3.
Here is my video: https://youtu.be/W-9xCO7gKMg

1 Like

Yes, I’ve got the crash reports, thank you. From the log it looks like you’ve been able to run it for 5 minutes, but from the log does not look like you’ve been playing it. Was it loading for 5 minutes and then crashed?

No, it crashed while I was playing. I had finished a couple of levels.

The crash if pretty obscure on it’s own, it says it crashed inside glibc’s memset so not enough info. If it will happen again and you spot the pattern, maybe it will give me more clue.

Is Bunny CDN a network operator in Ukraine?

No it’s US company I think. bunny.net

They provide simple and accessible CDN services and I use them to store game data files (textures, AppImage, etc) so it can be downloaded faster than from my server in Germany. Apparently they don’t focus on China, mostly Europe and America.

1 Like

Here is part of the logging in the terminal. It might have some additional info.
Bemined_Crash_terminal.txt (16.5 KB)