Welcome to ThePixelMage.

Try to learn something.
<-Back

Out With the New

Published: 2024-3-16

Out With the New

With Syncthing setup the only real obstacle now was getting things to look right. This took much longer than I’d like to admit. At first I decided to upgrade Batocera versions so I could utilize Syncthing being built into the OS. This seemed like a great idea at first, but then after days of troubleshooting I realized that the newer versions just do not seem to respect overscan options when using the optical out port. These newer versions would boot fine but would appear too zoomed and low res, making it difficult to see the screen and what was going on. Custom resolution and overscan options were seemingly ignored in these versions. In the end the solution was to head back to the original version I tried. But this came with its own set of issues.

From Scratch

One of the decision drivers for upgrading Batocera versions was because Syncthing comes preinstalled on versions 34 and up. This meant that setting up Syncthing was a snap and ended up taking only a few minutes initially. However once the display issues drove me insane enough I decided to downgrade back to lucky version 31 which was the only version I could get to respect my display settings. The problem there was that I now had to get Syncthing onto the device manually. Thankfully Batocera is just Linux and Syncthing is available as a simple binary. I simply downloaded the correct version for the Raspberry Pi’s architecture and I was on my way.

The next challenge in this process was getting Syncthing to automatically startup on boot. Thankfully, Batocera has a scripting system that is very straightforward to use. Simply placing a file named startup.sh in the /userdata folder will make sure that script runs at startup. Knowing this I was able to add a small script that starts the Syncthing binary and sends the logs to a folder. Now that this was in place we could finally start syncing content again.

Side Piece

While I was working on this project I ended up purchasing a handheld emulation device. The device in question was the R3JS to be exact and I got it off AliExpress for a solid price of only $45. This device is compact and I liked the form factor as an alternative to both console or Steam Deck. I thought I could stretch the challenge even more and have games sync between all my devices. In theory this should have been easy but the problem was that this device had no on-board Wifi chip. Thankfully I had a spare Wifi dongle lying around from the days when Pi’s themselves did not have Wifi. After setting up the Wifi on the device I now had to figure out how to run Syncthing on it. Again, at the end of the day this device was just running Linux. So I was able to rsync the file onto the device and set it up as a user level startup task. Now whenever the device boots Syncthing will also be started as well. At this point we had all four devices talking to each other and things were looking close to wrapped up.

Short and Sweet

Setting up Syncthing was actually one of the easiest parts of the entire process. The hard part was just getting it to run on all the devices. Thankfully, with the power of Linux anything was possible and we were able to get all devices up and running. In terms of emulation we are at the point of finishing touches. Next chapter I will go over some of the tweaks and settings I modified while setting up the final version of Batocera.

Try to learn something.