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.

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.

  • Screen rotation bug exists here too. Apply the fix from Aya Neo below.
  • No Wi-Fi yet but USB Ethernet works fine. This may change in the future.
  • 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.

However, if running v31 or you find your screen is rotated incorrectly (from a hardware perspective, the screen is a vertical tablet screen in portrait mode), you can do the following:

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

display.rotate=3
splash.video.rotation=3
# splash.screen.sound=0

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

2. 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.

Additional notes:

  • The “home”, “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.
  • handheld_pc.txt
  • Last modified: 4 days ago
  • by atari