This version is outdated by a newer approved version.DiffThis version (2022/08/23 18:05) is a draft.
Approvals: 0/1

This is an old revision of the document!


Handheld PC

This page provides information to run Batocera on your favorite handheld PC. We are talking about x86_64 PC hardware designed for handheld gaming. These are typically on the larger side (similar to a Nintendo Switch) and require active cooling (a fan) to function.

If you were after the weaker and more portable handhelds, click here.

For those who prefer videos, check out Retro Game Corps' in-depth review (including Batocera installation):

Anbernic's first x86_64 handheld. It supports Windows out of the box (hence the name) but because it's x86_64 it also supports the regular x86_64 Batocera image as well.

In the bios, fast boot must be disabled (otherwise, boot works only is you start from the bios menu).

Anbernic has a dedicated website for it with a lot of useful information, check it out at https://win.anbernic.com/

In Batocera v35 and higher, press the Windows button on the right to cycle through backlight brightness levels.

Boot into its BIOS menu by holding down the volume down key while booting. Then, switch to mouse and keyboard mode with the switch on the right and navigate the BIOS menu sideways. Yep.

Press right on the D-pad to go all the way to Boot, then scroll down and make USB: UEFI Partition the first option by pressing South button (B SNES). Now Batocera will be the default OS to boot. Navigate to Save and reboot, the device will boot into Batocera immediately.

It is possible to have the device automatically boot into Batocera by changing the boot order in the BIOS settings. However, if the USB device is ever removed then it will reset back to booting from the internal drive. To work around this, a chainloader (such as GRUB) can be installed onto the internal drive to have it default to Batocera's USB drive anyway.

  • The initial screen rotation is incorrect, this can be fixed by going into SYSTEM SETTINGSSCREEN ROTATION and setting it to “90 DEGREES”

In Batocera v34 and lower, this required the same fix as the Aya Neo below.

  • The Xbox guide button and the Windows key are currently not bindable in ES. It is recommended to set [SELECT] as the hotkey.

Here's a benchmark table (as of v35):

CPU GPU Low-end PSP (Hatsune Miku - Project DIVA) High-end PSP (Midnight Club: L.A. Remix) Low-end Dreamcast (MvC2) High-end Dreamcast (Sega Rally 2) High-end GameCube/Wii (Auto Modellista) Low-end Saturn (Saturn Bomberman) High-end Saturn (Sega Rally Championship) Low-end PS2 (Sonic Riders) High-end PS2 (God of War) Low-end Xbox (Jet Set Radio Future) High-end Xbox (Burnout 3: Takedown)
AMD Athlon Silver 3050e1) AMD Radeon RX Vega 3 Max 3x 3x N/A2) 2x Full-speed 78% (47 FPS) 2x 58% (35 FPS) 1x 50% (30 FPS)

And another take:

  • PSP, N64, Dreamcast, Saturn: 720p full speed
  • Gamecube: 2x for most games, 1x for some (like F-Zero GX)
  • 3DS: 3x Samus Returns, 2x Mario Kart 7 full speed
  • Xbox: Halo at native res full speed
  • Wii U: Wind Waker HD and Super Mario 3D World full speed. Mario Kart 8 very close!
  • PS2: still sucks, about the same as in Windows

This section is under construction.

Batocera has been confirmed to be bootable on the Steam Deck with the regular x86_64 image, however it currently has multiple minor issues that need to be ironed out. Expect official support soon!

The Aya Neo, Founder Edition or Kickstarter edition (AMD Ryzen 5 4500U based, with a 7“ screen) should be working out of box with Batocera v31 and later versions.

Sometimes there are some issues (v31, v32) using the native resolution of the screen, Batocera will default to using a lower resolution in these situations. This can be worked around by manually switching the output back and forth in the video output settings.

There is also another issue with ES not properly using the proper aspect ratio after rebooting. In order to remedy this, the following script can be added to /userdata/system/custom.sh:

custom.sh
#!/bin/sh
export DISPLAY=:0
 
# rotate the screen
# xrandr -o left
xrandr -o right
# xrandr -o inverted
 
# This is to invert the touch panel for the touchscreen to work as intented !!
# https://askubuntu.com/questions/368317/rotate-touch-input-with-touchscreen-and-or-touchpad
# https://wiki.ubuntu.com/X/InputCoordinateTransformation
# I used the idea from the 1st link and adjusted for the "Right rotate" in the 2nd.
xinput set-prop 9 --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1

The OneXPlayer (Intel Tiger Lake i5 or i7 11xxG7 CPU, with a 8.4” screen) is supported out-of-the-box with Batocera v32 and later versions. The OneXPlayer 1S (Intel-based) should also be supported, but has yet to be tested.

The AMD-powered OneXPlayers have been reported as not compatible at the time of writing (Batocera 32). If you think you can help with supporting AMD version, please reach out on the Discord server.

The initial screen rotation is incorrect, this can be fixed by going into SYSTEM SETTINGSSCREEN ROTATION and setting it to “270 DEGREES”.

By default, the only resolution supported is 1600×2560 (native resolution of the screen panel). Even with a beefy CPU, it's not really necessary to have such a high resolution on the OneXPlayer. You can force a 1080×1920 resolution by editing the /boot/batocera-boot.conf file and add:

# disable the splash screen
# splash.screen.enabled=0
es.forcedresolution=1080x1920:60

WARNING Yes, it's 1080×1920, as the hardware screen is in portrait mode.

WARNING 2 By default the /boot mount point is read-only, you might need to do a mount /boot -o remount,rw before editing it from your SSH session.

After a reboot, this will force a new resolution called “1080x1920_60.00” in the Video Mode options from the Games Settings menu ([START] button). I'd recommend you to use this resolution, as it will require less CPU/GPU power, which means a better battery life on your device.

If you use the Thunderbold output to play your games on a 4K monitor and want to keep the full 1600×2560 resolution, you still select AUTO or 1600×2560 and have the full experience. In that case, if you want to use bezels, I'd recommend to also set the Stretch bezels (4K and ultrawide) option from the GAME SETTINGS menu.

With Batocera 35 and later, you can use the orange button on the left to adjust brightness. This button is not registered in gamepad mode, but seen as a key from a keyboard.

Also, with Batocera 35 and later, you can use the power button to put the OneXPlayer in suspend mode. To enable this, you need to manually edit the batocera.conf file and add a line system.suspendmode=suspend or system.suspendmode=hybrid. Hybrid modes saves a little more energy than suspend (but takes longer to restore). Full “hibernate” mode doesn't work right now.

  • The “keyboard” and “turbo” buttons won't be usable, they're not attached to the rest of the controller
  • Touchscreen is not supported at the moment. The USB “Surface-like” OneXPlayer keyboard is fully supported though.

This device is supported. Recommended watching: Batocera Nation's GPD Win Max 2021 guide.

The internal screen is not rotated correctly by default. This can be fixed by going into the SYSTEM SETTINGSSCREEN ROTATION and changing the screen rotation to 90 degrees. Further display tweaking can be done via xrandr configuration.

Video output settings are currently bugged in Batocera. If you toggle between modes then you can temporarily fix it for that session. If you'd like to permanently fix the issue, SSH in and run the following commands:

mount -o remount,rw /boot
rm /etc/X11/xinit/xinitrc
cp /boot/boot/xinitrc /etc/X11/xinit/xinitrc
echo "es.resolution=1280x800" >> /boot/batocera-boot.conf
batocera-save-overlay
batocera-es-swissknife --restart

The 8100Y model has a locked BIOS and cannot support booting into other operating systems, like Batocera. The M3 7Y30 is confirmed working.

FIXME (The values may be 1 instead of 3, depending on original rotation.)

Set the screen in landscape mode. Edit the batocera.conf file and add:

display.rotate=3
splash.video.rotation=3

This will both rotate the EmulationStation and emulators screen, but also the splash boot video if you're using one.

Suspending by closing the lid currently does not function, but otherwise is fully operational.

Booting off the SD card port is possible, but will result in a black screen. Booting via the USB port is recommended. More information for booting generic Linux-based OS's from the SD card port on this Reddit post. There are very slim Micro-SD card adapters that sit nearly flush with the device you can buy:

A micro-SD card reader the size of the USB tongue itself.

Performance

5th gen and below run flawlessly. Can run Wii games decently. Struggles with most PS2 games, but can run easy-to-run games at full speed. You can check out Batocera Nation's demonstration video here (the installation instructions earlier in the video are outdated).

FIXME

A small handheld ultrabook equipped with a Intel 11th gen Tiger Lake i7-1160G7 (non-pro has a weaker Intel 10th gen). It has detachable controllers connected via Bluetooth. Should work out of box with Batocera but testing is required. Can use an external GPU, which also needs testing (not likely working).

These devices are currently not supported.

  • The Win 1 is not supported currently. It can boot up, and if connected to an external screen it can work, but the main portable screen shows only black.
  • The Win 3 technically boots perfectly fine, but the screen rotation settings are not properly interpreted, resulting in major screen distortion. This can be worked around by manually setting the screen rotation every boot. Shares the same issues the Win 2 has in regards to buttons/suspending features. There is also a chance of the device having a locked BIOS, meaning installation of any other OS aside Windows is impossible.
  • The XD and XD Plus are Android-powered ARM devices, and currently not supported by Batocera.

1)
Anbernic Win600 running with no overclock, stock RAM speed and stock TDP.
2)
A bug in Batocera causes framerate to only reach 30 FPS.
  • handheld_pc.1661270743.txt.gz
  • Last modified: 19 months ago
  • by nadenislamarre