This is a living document describing what I learned setting up and running Batocera v40 on the Anbernic RG35XX-H.
This file will most likely contain errors and vague information. You might not like how I describe things. I am sorry. Also, I can't be held responsible if you break things by following this.Nor will I share with you ROMS, BIOS, or any other files. Ask Google instead.
If you find this information helpful please consider giving it a ⭐️ at GitHub.
Maybe buy me a ☕️.
Look at the CHANGELOG to see recent changes to this document.
Note: This guide is standing on the shoulder of Giants. Many of the tips here come from beanioz on Reddit and other people on Reddit.
- Introduction
- Setting Up The Device
- Controls
- The SD Card
- BIOS Files
- ROM Files
- Workflow for Adding Content
- Setup and Optimize Emulators
- Configuring Ports
- Tools
- Bluetooth
- Some Terms / What is
- Batocera is a Linux-based custom firmware (CFW) for retro gaming for multiple devices/platforms.
- There is now a port for the Anbernic RG35XX-H, the current version is: Batocera rg35xx-cfw V40.
- It provides a better experience than the stock firmware.
- Batocera offers more functionality than the stock firmware.
- Its is "prettier" than the other custom firmwares, e.g. MuOS.
- Batocera v40 is 32-bit firmware. MuOs run 64-bit code. hus, MuOs is a bit more optimized towards the chip set.
- PortMaster will not run on Batocera v40, as it runs on 64-bit code.
- There is now a 64-bit port of Batocera available in an Alpha version for the RG35XX-H called Knulli. It supports PortMaster but not all emulators are ported yet. But it has the potential to provide a similar if not better experience than Batocera v40.
Follow these steps to set up get Batocera v40 running on your device. I tried to put the steps in a helpful order - so best follow them along...
- Download Batocera for RG35XX-H called rg35xx-cfw.
- Flash the firmware to a (new!) SD card (e.g., use BalenaEtcher).
- Put the SD card in the device (left slot).
- Turn on the device (
Long-press on Power Button
). - The device will now update the file structure on the SD card.
- Consider setting up WiFi (see below).
- Shut down the device (
Menu > Quit > Shutdown
).
Main Menu > Network Settings
.Main Menu > System Settings > Frontend Developer Options > Enable web API access
.- Now you can find your device in your network.
- IP Address:
Main Menu > Network Settings
. - You can now also download themes and enable scraping and other tools that need an Internet connection.
- In addition you can now find your device in your network.
- You can mount the device to copy data, connect via SSH or the Emulation Station Web Service:
http://[ip address]:1234
. - Username and password is:
root/linux
.
Note: The device has problems to connect to 5GHz and guest networks.
- A recommended theme is
Art-Book-Next-ES
:
Main Menu > Updates & Downloads > Themes > Art-Book-Next-ES
- Enable your theme:
Main Menu > User Interface Settings > Theme Set
- A scraper can download game information to your device.
- You do need an active internet connection for this.
- Register an account at screenscraper.fr.
- Enter your credentials at
Main Menu > Scraper
.
- Get a login at retroachievements.org.
- Enter your credentials:
Main Menu > Game Settings > RetroArchievements Settings
.
Main Menu > Games Settings > Netplay Settings > Index New Games
Main Menu > System Settings > Overclock
- You can disable the in-menu music in
Main Menu > Sound Settings > Frontend Music
. - Consider disabling
Enable Navigation Sounds
andEnable Video Preview Audio
there, too. - If you get no sound after you connected the console via HDMI, you need to reset the audio output:
- Go to:
Main Menu > System Settings > Audio Output
. - Select
AudioCodec
and confirm. And then go back toAuto
.
- Go to:
- Batocera > Controller
Button | Function |
---|---|
POWER |
Long press to turn on. When turned on, click for stand-by. |
START |
Menu |
F + VOLUME |
Change brightness |
B |
OK / Select |
A |
Cancel / Back |
F + POWER |
Quick Shutdown (not saving meta data) |
R3 / L3 |
Next / Previous Song (Frontend Music) |
A
+B
button assignment can be switched:
Main Menu > System Settings > Frontend Developer Options > Switch Confirm & Cancel Buttons in EmulationStation
. I recommend doing so.- Shutdown the device:
Main Menu > Quit > Shutdown System > Yes
or pressF + POWER
.
Button | Function |
---|---|
START |
Quick Access |
L1 / L2 |
Previous emulator |
R1 / R2 |
Next emulator |
Y |
Quick Search |
B |
Side Menu |
Button | Function |
---|---|
SELECT |
View Options |
L1 / R1 |
Page list up / down |
L2 / R2 |
Previous / next emulator |
X (long press) |
Add / remove to Favorites |
A (long press) |
Edit meta data / Edit keyboard config |
- In most emulators pressing
F + Y
orF + X
will safe or load a games' state- - There is a list of slots you can safe games, too. You select the slot via
F + UP / DOWN
. - But you can also load a saved state when you are in the game list.
- In the game list press
X
to show the saved state list. - Press
A
to load a state,Y
to delete one, andB
to cancel.
- TBD: PSP
Button | Function |
---|---|
F + START |
Exit Game |
F + RIGHT |
Fast Forward |
F + L1 |
Take Screenshot |
F + UP / DOWN |
Select Quick Save Slot |
F + Y |
Quick Save Game |
F + X |
Quick Load Game |
F + A |
Reset Game |
F + R2 / L2 |
Select Shader |
F + B |
Emulator Menu |
Note: To see the screenshots you took in the menu, run Main Menu > Games Settings > Update Game List
. Then you will have a "Screenshots" section in your main menu.
Button | Function |
---|---|
R2 |
Toggle Display View Mode |
L2 + R2 |
Toggle Single Double View Msode |
Button | Function |
---|---|
LEFT |
Insert coin (not sure if this a pre-set) |
A |
OK / Select |
B |
Cancel / Back |
L3 |
Emulator Menu |
F + Y |
Quick save game |
F + X |
Quick load game |
F + A |
Reset game |
F + R2 |
Take screenshot |
F + L2 / F + R2 |
Select Shader |
See the Ports and the Tools section.
- You can define keys to be mapped to buttons (for keyboard controlled system, e.g. Amstrad).
- To see the current configuration
SELECT > View Pad to Keyboard Information
. - To edit it:
A (long press) > Edit PadToKey Profile
. - This will create a configuration file in your
roms/
folder, either a.p2k.cfg
or a.keys
file. .p2k.cfg
files have a config style format.
0:select = j ;; Joystick
.keys
files are in JSON files.
{
"actions_player1": [
{
"trigger": "select",
"type": "key",
"target": "KEY_J",
"description": "Joystick"
}
]
}
- It seems that the
.keys
file takes precedence over the.k2p.cfg
one. - You can also create a key config file manually in the folder. Use the name of the rom/port and append the suffix.
- You can then add descriptions to the key definitions. Both examples above add "Joystick" as a description.
- In the
.k2p.cfg
files the buttons are calledEAST
,WEST
. In the.keys
they are calledA
,Y
. - In the
.key
filesL1
andR1
are calledpage up
andpage down
.
- Assign the keys you need to select and start the game (see above).
- Fire and movement will automatically recognized as joystick input.
- I suggest you bind the virtual keyboard to
R1
by assigningF9
to it.
0:r1 = F9 ;; Toggle Keyboard
- FYI: Amstrad's return key does not equal to the
Enter
key. Have not found a way to map this to it.
- The SD card has two partitions:
BATOCERA
andSHARE
. We will only concern ourselves with theSHARE
partition. - On
SHARE
are the folders for adding content onto the device. - The
bios/
folder is the place where to add BIOS files (see below). - The
roms/
folder contains folders for the different emulators for your games. Most of the folder names are self-explanatory.
- Some Emulators need BIOS files to run.
- Check for missing/needed BIOS files via:
Main Menu > Game Settings > Missing Bios Check
.
You can also selectAll
to see all possibly needed ROM files. - Or see all needed ROMS here.
- Find them online...
- Copy them in the
bios/
folder of your SD card. - Turn on the device.
- Check if they are correct:
Main Menu > Game Settings > Missing Bios Check
- Find them online...
- Copy your files in the different
roms/
folders. - Put your games files in the correct emulator folders.
- Check the
_ìnfo.txt
files in eachroms/
subfolder for information on file format and folder structure to set things up. - See below a list of specific game port folders.
- Copy files on the SD card (either from your computer or via WiFi).
- Remove Apple's dot files, if needed (see below).
- Eject all mounted partitions.
- Put card in RG35XX-H.
- Power on the device.
- Run the Scraper
Main Menu > Scraper > Scrape Now
- Update the Game List
Main Menu > Games Settings > Update Game List
- Play!!
Note: Alternatively, you can also connect to your device via your network and mount the share/
folder if it is connected via WiFi. Copy your filed, update the game list, scrape, and update again.
- On a Mac, you can run
dot_clean /Volumes/SHARE
. - I also suggest to create a .dot_clean script in your
ports
folder.
- This section explains for the "non-trivial" emulators (e.g. DOS or Daphne are being set up).
- For a list of in-game controls take a look at the Controls section.
- You need to change the default emulator to make games run smooth.
- Go to
Game Settings > Per System Advanced Configuration > Nintendo 64
.- Set
Emulator: Mupen64Plus:RICE
. - Set
Power Mode: High Performance
. - Set
Game Aspect Ration: 4:3
.
- Set
- I have not found a way yet to access the hotkey menu or to Quick Load or Quick Save.
Button | Function |
---|---|
F + START |
Exit Game |
F + RIGHT |
Fast Forward |
F + A |
Reset Game |
F + L1 |
Take Screenshot |
- To switch the
A
andB
buttons edit thesystem\configs\mupen64\input.xml
file:
<input name="b" value="C Button R" />
<input name="a" value="A Button" />
- There are different DOS emulator that you can choose. Per default
DOSBox Pure
is used. - Copy a game folder to
roms/dos/
. - Add
.DOS
to the end of the folder name. - If there is a
dosbox.conf
file in the game folder, its settings will be applied. - If there is a
dosbox.bat
file in the game folder, it will be executed. - If you start the game without a
dosbox.bat
file, you will get the start menu where you can select a file as the default executable. Use the right joystick and theY
key to select a file. You can also select a timeout, where the first X frames after starting a game are not shown. - After selecting an executable it will be run and file called
AUTOBOOT.DBP
will be created. - If you press
L3
, a keyboard overlay will be shown. - On the top-left of the overlay keyboard there is an option to manual map keys. I think this is preferable to use the Batocera key mapping.
Button | Function |
---|---|
L3 |
Show Keyboard (and Keyboard Mapper button) |
LEFT JOYSTICK |
Mouse |
F + UP /DOWN |
Load / Save |
F + RIGHT |
Fast Forward |
Y |
OK |
TBD
This is a list of existing port folders/emulators available on the Batocera CFW by default.
Port Folder | Game |
---|---|
cannonball |
Out Run - Sega Arcade |
devilutionx |
Diablo & Diablo Hellfire |
eduke32 |
Duke Nukem 3D |
fallout1-ce |
Fallout 1 |
fallout2-ce |
Fallout 2 |
mrboom |
Bomberman |
ports |
Linux games |
prboom |
Doom 1 & Doom 2 |
quake3 |
Quake 3 |
scummvm |
Scumm Engine for Games like Monkey Island |
sdlpop |
Prince of Persia |
tyrquake |
Quake 1 |
vitaquake2 |
Quake 2 |
xash3d_fwgs |
Half-Life Engine |
- Here is a link to a complete list of available systems of Batocera Linux, which will be larger than for the RG35XX-H, but still might be helpful.
Always start by reading the _info.txt
file in the emulators folder.
- Copy
DIABDAT.MPQ
from the CD or Diablo-installation toroms/devilutionx/
folder. - To run the Diablo: Hellfire expansion you will need to also copy
hellfire.mpq
,hfmonk.mpq
,hfmusic.mpq
,hfvoice.mpq
.
Button | Function |
---|---|
B |
OK / Select, Use Skill |
A |
Cancel / Back, Use Weapon |
X |
Pick up item |
Y |
Use Spell |
Left D-Pad |
Movement |
Right D-Pad |
Mouse |
START (pressed) |
In-Game Menu |
START (pressed) |
Spells |
START + F |
Show items |
L1 |
Use Health Potion |
R1 |
Use Mana Potion |
L2 |
Character |
R2 |
Inventory |
R2 |
Toggle Map |
- You cannot edit the key definitions in the
Advanced System Options
. - You can edit the key definitions in the Game:
Settings > Padmappig
. In thereA
andB
, andX
andY
are reversed. - There is also a Playstation version of Diablo. Controls are nicer but graphics are more "blocky" it runs a bit less smooth.
- Create folder called
duke
inroms/eduke32/
and copyDUKE3D.GRP
into it. - Create file
Duke_Nukem_3D.eduke32
inroms/eduke32/
. - Add line
FILE = /duke/DUKE3D.GRP
to it.
Button | Function |
---|---|
B |
OK / Select |
A |
Cancel / Back |
R2 |
Fire |
X |
Kick |
L1 |
Duck |
L2 |
Jump |
R1 |
Permanent ducking |
Left D-Pad |
Movement |
Right D-Pad |
Look |
SELECT |
Map |
START |
Main Menu |
F + X |
Load |
F + Y |
Save |
F + START |
Exit Emulator |
- You can edit the key definitions in the game:
Options > Control Setup > Controller Setup > Button Assignment
. In thereA
andB
, andX
andY
are reversed.
-
Copy the following files from your Fallout game into the
rom/dallout1-ce
folder:master.dat
critter.dat
data/
folder
-
Create an empty file called
Fallout.f1ce
. -
Initially, only the right joystick works in the game.
-
Therefore, you need to define your own keys:
Go to the Fallout entry in the Ports sectionA (long press) > Edit PadToKey Profile
-
Suggested key definition:
Button Function D-PAD-UP
Cursor Up D-PAD-DOWN
Cursor Down D-PAD-LEFT
Cursor Left D-PAD-RIGHT
Cursor Right START
ENTER
SELECT
ESC
EAST
Mouse Left SOUTH
Mouse Right NORTH
S
WEST
I
LEFT SHOULDER
TAB
Left Stick Press Mouse Left Right Stick Press Mouse Left Emulate Mouse Cursor Left Analog Stick
TBD
- Place the
.WAD
files of Doom 1 and/or in theroms/prboom/
folder. - Supported wads (non exhaustive list) are from Doom 1, Doom 2, The Ultimate Doom, The Plutonia Experiment, TNT: Evilution.
Button | Function |
---|---|
A |
OK / Select |
B |
Cancel / Back |
X |
Fire |
Left D-PAD |
Movement |
L1 / R1 |
Strave |
L2 / R2 |
Change weapon |
R3 |
Turn around |
START |
Main Menu |
SELECT |
Map |
F + Y |
Quick save game |
F + X |
Quick load game |
F + A |
Reset game |
F + B |
Emulator menu (in here B is OK ) |
F + R2 |
Take screenshot |
F + L2 / F + R2 |
Select Shader |
- You can edit the key in the game:
F + B
,Controls > Port 1 Controls
- ScummVM is an emulator for adventures such as Monkey Island.
- Store games in the
roms/scummvm/
folder. - Each game has a unique ID. You can find all games and their ID in the compatibility list, e.g. use
atlantis
for Indiana Jones and the Fate of Atlantis. - Create a folder for each game and copy files into it
- Inside the folder create a file
[id].scummvm
for each game you want to add. To be sure also write put id into the file. - To see what the required files for a game are take a look at the supported games list.
Button | Function |
---|---|
LEFT D-PAD |
Mouse |
START |
Main Menu |
SELECT |
Main Menu |
A |
OK / Select |
X |
Skip |
L2 |
Settings, e.g. Save |
TBD
- Create a folder
Half-Life
. - Copy the contents of
Half-Life/valve
in there - Create a folder called
Half-Life.game
. Keep in empty
Button | Function |
---|---|
B |
OK / Select |
A |
Cancel / Back |
- You can view and change the controls in the game:
Configuration > Controls
. In thereA
andB
, andX
andY
are reversed.
It is pre-installed on the device and can be found in the Port section.
Button | Function |
---|---|
A |
Cancel / Back |
B |
OK / Select |
SELECT |
Toggle selection of files |
START |
Open the folder in the other tab |
LEFT / RIGHT |
Toggle active tab |
X |
File actions, e.g. Delete |
Y |
General actions, e.g. Quit |
L1 / R1 |
Page up / down |
- Lets add a simple script that deletes all Mac dot_files.
- Create a file called
.dot_clean.sh
inroms/ports/
with the following content:
#!/bin/bash
# remove all ._* files from the system
find /userdata/ -name "._*" -exec rm {} \;
- Next, update the Game List:
Main Menu > Games Settings > Update Game List
For connecting a bluetooth device follow these steps:
- Go to
Main Menu > Controller & Bluetooth settings > Pain Bluetooth Pads Automatically
. - Alternatively, run a manual detection and select your device.
- Enable pairing mode on your device.
- You you will get a notification when the device is paired to the console.
- Follow the steps above.
- Turn on Bluetooth mode on your controller (e.g.
Y + START
on an 8bitdo Controller). - Enable pairing mode on your controller.
- Run the
Controller Mapping
. - Adjust the
Player Assignments
to use the controller, e.g.:P1 > Controller
P2 > #0 Deeplay-Keys
- Connect the audio device as described above.
- Select the bluetooth audio device as audio output:
Main Menu > System Settings > Hardware > Audio Output > [Device]
You can also pair keyboards and mice as described above.
-
Batocera Linux: An open-source operating system designed specifically for retro gaming, transforming any computer or single-board device into a gaming console. It includes a variety of pre-configured emulators and tools, making it easy to set up and use.
-
CFW (Custom Firmware): Modified firmware that enhances the capabilities and features of a device beyond what the original manufacturer provided. In the context of retro gaming, CFW allows for custom emulation setups and additional functionalities.
-
Batocera for RG35XX-H: A version of Batocera Linux tailored for the RG35XX-H handheld gaming device, optimized for performance and compatibility with the specific hardware, providing a seamless retro gaming experience.
-
EmulationStation: A graphical front-end for organizing and launching games on various emulators. It provides a user-friendly interface for retro gaming systems and works in conjunction with Batocera Linux to offer a streamlined gaming experience.
-
Libretro: A lightweight, modular API that enables the creation of multi-system emulators. It serves as the backbone for many emulation projects and integrates with EmulationStation, allowing it to run a wide variety of emulators through a standardized interface.
These components work together to create a cohesive retro gaming system, where Batocera Linux provides the foundation, EmulationStation offers the interface, and Libretro supports the underlying emulation functionality.