Much like a sizable portion of the Retro Handheld community, my gateway was the Retro Game Corps channel. One thing I noticed, both on Russ’ recent video showcasing Linux on the RP Mini and in our own Team Retrogue’s written guide, is the expectations are that the only way to transfer ROMs onto the Batocera SD card is over the network. While this will always work, it is a very slow way to transfer files (I think Russ said it took him about 3 hours to transfer his ROM set).
I’m here to tell you there’s an easier way.
This problem is not unique to the Retroid Pocket Mini & Retroid Pocket 5. It will also affect other devices running Batocera (or Batocera forks) with only one SD card, which will include the Steam Deck, my beloved RGB10, or a TrimUI Smart Pro running Knulli.
The Cause of the Problem
Batocera, like most Linux desktop operating systems, consists of 2 partitions. There’s a Boot Partition, which is the primary partition that holds the software responsible for loading the operating system, and there’s the Data Partition which holds user data: things like configurations, saves, Bioses, and yes, ROMs.
On devices with 2 SD cards, the boot partition can reside on SD1 and the data partition on SD2. On a device with only one SD card, both partitions must reside on the same SD card, and both are created when an image is burned to an SD card using a tool such as BlanaEtcher.
Batocera requires the partitions to be in certain formats, the Boot Partition needs to be in fat32, but the Data Partition can be in one of three formats – ext4, BTRS, or ExFat
Quick Summary of the 4 Data Formats
- Fat32 is a universal format that can be read on any computer, making it ideal for a Boot Partition, however, it is incompatible with large files, meaning it is not a good fit for a Data Partition.
- ext4 is the native format for modern Linux devices, however, it can’t be accessed on a Windows or Mac device without additional software, and while this causes inconveniences loading up files, it should allow faster data reads within Batocera. When a Batocera image is burnt to a single SD card, the Data Partition defaults to ext4, which is why the Data Partition isn’t recognized on Windows or Mac devices
- BTRFS is another Linux data format, that prioritizes fault tolerance, making it good for network storage, it’s not a great fit for SD cards running Batocera
- ExFAT on the other hand, is a universal format, accessible on Windows, Linux, and Mac devices without any additional software. It’s a perfect fit for transferring ROMs
Converting to ExFat
In order to help us transfer ROMs easily we need to reformat the Data Partition to ExFat. While there is a menu option to do this in Batocera (we’ll go into this towards the end of the article), this only works on x86 devices like the Steam Deck, it doesn’t yet work on ARM devices like the RP Mini or the RP5. Instead, we need to convert the format manually
To do this, we will need a computer, an SD Card reader, an SD card, and the RP Mini/RP5.
Step 1
We need to make a fresh installation of Batocera on an SD card. We do this on our computer using a tool such as BlanaEtcher. At the time of writing, the latest pre-release build of Batocera for the Retroid devices is available here
Step 2
We need to complete an initial bootup of Batocera on the Retroid device. In order to boot to the SD card on a Mini/RP5 we need to hold down Volume Up during boot, then select the second option. During the initial boot, Batocera will set the location of the data partition to be the 2nd part of SD1 and will expand this partition to take up all of the free space on the card. It is this activity we need to let it complete. Once the EmulationStation menu is visible, the activity is complete, and we can switch off the Mini/RP5
Step 3
The SD card needs to go back into the computer. We need to delete the ext4 partition and manually create an ExFat partition in its place. To do this, on a Windows device open “Create and Format (Partition manager), and on a Mac open Disk Utilities. Once the program is loaded, two partitions should be visible, the Fat32 Boot Partition (called “Batocera”) and the Data Partition which will not be recognized.
On Windows, the partition needs to be deleted (right-click on the partition and choose the option to delete) and then, once it is deleted and a free space is shown, create a new partition (again, right-click on the free space) by selecting ExFat as the format. For a Mac, the Erase option can be clicked, once the Data Partition is selected.
Once the ExFat partition is created, the SD card can be ejected and put back into the Retroid Device
Step 4
With the SD card in the Retroid device, boot it up, again holding down (Hold down volume during boot, & choose the second option) to boot to the SD card. At this point, Batocera will detect the empty Data Partition and will add the structure it needs.
On every bootup, Batocera checks the location where it is expecting a data partition. If it finds the location in one of the recognized formats, it checks to see if the correct folder structure is in place and if not creates it. Once the boot operations are complete, the Retroid device can be switched off and the card ejected one final time.
Step 5
Putting the SD card back in the computer, this time both of the two partitions should be recognized – the Boot Partition will be called “Batocera” and the new Data Partition will be called “Share”. Now that the share partition is visible, Bios files can be transferred to the Bios folder, and Roms can be transferred to the relevant section under the Roms folder (e.g. SNES Roms go under the SNES folder).
After the Roms are transferred, the card can go back into the Retroid Device, and the device booted into a fully loaded Batocera build.
While transferring the SD card between two devices is a hassle, the speed of data transfer for the Rom files should be much faster, and this will save time overall.
A Word of Warning
The Batocera Wiki suggests that changing the Data Partition to ExFat will cause performance problems on very high-end systems. While this may be true, my expectation is that this won’t have any impact on anything beneath PS2/GameCube. I’ve never observed performance issues myself, and consider the ease of transferring files to be worth any risk of reduced performance on complex emulators like PS3 or Xbox.
Will this work for ROCKNIX?
While I haven’t tested this on ROCKNIX, there is every chance the exact same process will work on both Rocknix and Batocera
A Faster, Better Method, only for x86 devices
While we’ve covered the manual method to format the Data Partition as ExFat, there is an automated option in the Batocera menu, however, this only works on x86 devices like the Steam Deck or other Windows devices. We’re including instructions here in case they become useful
The option can be found under System Settings -> Frontend Developer Options -> Format a Disk
In this menu, the “Device to Format” should be set to “Internal” and the “File System” to “ExFat”. Then it’s just a matter of selecting “Format Now” and waiting. Once the formatting is complete, the device will need to be rebooted in order for the changes to be initiated.
A Big Thank You
This article wouldn’t have been possible without the help of RH’s J-Dubya who gave me extensive help with pictures and testing
Further Reading
If this article opens up the possibilities of Batocera customization, then our previous article, detailing how to set the Batocera hots keys to be more like other handhelds, might be of interest
While the methods detailed in this article come as a result of my own ideas and experimentation, I am indebted to the Batocera Nation YouTube channel. While it’s not been active recently, their videos were instructive in helping me understand Batocera
While you’re here, you might be interested in our guide to installing Linux on the Retroid Pocket 5 and Pocket Mini, which covers all other aspects of the setup.
What did you think of this article? Let us know in the comments below, and chat with us in our Discord!
This page may contain affiliate links, by purchasing something through a link, Retro Handhelds may earn a small commission on the sale at no additional cost to you.
https://lcb-google.ms-de.ru