I previously wrote about installing different systems on the RG35XX Plus in RG35XX Plus Open-Source Handheld OS Installation Attempts and Usage Guide. At that time, ROCKNIX didn’t support the RG35XX Plus. I’ve now bought a new device, the RG40XX V, so let’s install ROCKNIX and have some fun.

Installing ROCKNIX

  1. Download the system image: https://github.com/ROCKNIX/distribution/releases/tag/20250517.
    Since this is an RG40XX V device, download ROCKNIX-H700.aarch64-20250517.img.gz (images differ by device)

  2. Flash the image to an SD card. I’ll use Etcher (other tools like Rufus or the dd command work too)

    etcher-select etcher-flashing

  3. If your device is from the H700 series (my RG40XX V is), there is one extra step. Because hardware differs between models in this series, you must manually select the correct device tree file:

    1. In the SD card’s root directory, open the device_trees folder and find the device tree file for your device. For the RG40XX V, use sun50i-h700-anbernic-rg40xx-v.dtb
    2. Copy this file to the SD card’s root directory and rename it to dtb.img (all lowercase)
  4. Eject the SD card, insert it into the powered-off device, then power it on

  5. The installation is quick — a bit over two minutes in my case
    rocknix-homepage-nintendo

Usage Notes

These notes are based on the nightly-20250815 testing build rather than the 20250517 stable release. The stable image has a few issues on the RG40XX V (for example, it doesn’t support HDMI output), while the nightly does. I need HDMI for some screenshots, so the nightly was more convenient.

The official docs are already very thorough — for example, how to add games, networking, cloud sync, RG40XX V specifics (like hotkeys), etc. This post just jots down a few items I might forget, things that aren’t super obvious, or special cases.

SSH & Samba

SSH is enabled by default. You can log in with ssh root@<device_ip_address> and the password is rocknix.

Samba is also enabled by default. Connect via smb://<device_ip_address>; no username or password is required — anonymous login works.

HDMI

The official docs note that some devices behave better if you plug in the display before powering on, rather than after.

There is no HDMI section in the system settings UI, but if you want to configure things like output resolution, the official docs provide a method:

  • Create an autostart script:
    mkdir /storage/.config/autostart
    vim /storage/.config/autostart/090-sway-hdmi-resolution
    
  • File contents:
    #!/bin/bash
    echo "output HDMI-A-1 resolution 1280x720" >> /storage/.config/sway/config
    
  • Make it executable:
    chmod +x /storage/.config/autostart/090-sway-hdmi-resolution
    

EmulationStation

The ROCKNIX front-end UI is based on the Batocera EmulationStation fork EmulationStation NEXT, customized and maintained by ROCKNIX.

Why Isn’t the Platform I Want Visible on the Home Screen?

Right after first boot, only PICO-8 and ScummVM are visible.
rocknix-navigation-bar

EmulationStation scans the paths defined in /storage/.emulationstation/es_systems.cfg. If a platform’s scan results are empty, that system won’t appear on the home list. For example, here’s a snippet from the config for NES:

<system>
    <name>nes</name>
    <fullname>Nintendo Entertainment System</fullname>
    <manufacturer>Nintendo</manufacturer>
    <release>1985</release>
    <hardware>console</hardware>
    <path>/storage/roms/nes</path>
    <extension>.nes .unif .unf .zip .7z</extension>
    <command>/usr/bin/runemu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command>
    <platform>nes</platform>
    <theme>nes</theme>
    <emulators>
        <emulator name="retroarch">
            <cores>
                <core default="true">nestopia</core>
                <core>fceumm</core>
                <core>quicknes</core>
                <core>mesen</core>
            </cores>
        </emulator>
        <emulator name="mednafen">
            <cores>
                <core>nes</core>
            </cores>
        </emulator>
    </emulators>
</system>

If you place valid ROMs under /storage/roms/nes, the NES platform will appear on the home screen.

rocknix-homepage-nintendo rocknix-navigation-bar-with-nintendo

Manually Adding Game Metadata

ROCKNIX can pull game metadata from ScreenScraper — things like cover art and release dates. If scraping fails, you can add metadata manually.

As an example, let’s add a NES game called “爆笑三国” (this is a Chinese game title). Put the ROM 爆笑三国.zip under /storage/roms/nes, then add two asset files boxfront.jpg and logo.png. Your folder structure should look like this:

/storage/roms/nes
|-- assets
|   `-- 爆笑三国
|       |-- boxfront.jpg
|       `-- logo.png
|-- gamelist.xml
`-- 爆笑三国.zip

gamelist.xml is the metadata file used by EmulationStation. Here’s an example (you can add more fields like rating, players, etc.):

<?xml version="1.0"?>
<gameList>
    <game>
        <path>./爆笑三国.zip</path>
        <name>爆笑三国</name>
        <developer>外星科技</developer>
        <releasedate>19830701T000000</releasedate>
        <desc>《爆笑三国》是由外星科技开发的一款以三国历史为背景的战棋类游戏,发行于 FC(红白机)平台。游戏采用幽默诙谐的风格,重新演绎三国历史,增添了许多搞笑元素。玩家将扮演刘备、关羽、张飞等知名武将,体验丰富多样的职业系统和转职机制。游戏中包含多种职业,如步兵、骑兵、弓兵和文官等,每个职业都有独特的技能和转职路线,增加了游戏的策略深度和可玩性。此外,游戏还原了诸多经典的三国战役,并通过搞笑的剧情对白,为玩家带来轻松愉快的游戏体验。凭借其独特的风格和丰富的玩法,《爆笑三国》在众多 FC 游戏中脱颖而出,成为玩家们津津乐道的经典之作。</desc>
        <image>./assets/爆笑三国/boxfront.jpg</image>
        <marquee>./assets/爆笑三国/logo.png</marquee>
    </game>
</gameList>

Below: left is before adding metadata; right is after.

rocknix-nintendo rocknix-nintendo-meta-ok