XMPlayer | All-in-One Media Center for muOS with a Familiar Interface

XMPlayer

XMPlayer is an all-in-one, XMB-inspired media suite designed specifically for handheld gaming devices running muOS. It provides a clean, easy-to-use interface for managing and enjoying your music, videos, and photos.

XMPlayer is a media suite application for Linux handhelds running muOS. It is NOT a custom firmware or an emulation frontend. The main focus is on media content other than games.

Disclaimer: XMPlayer is developed for educational purposes and is not affiliated with Sony or the XrossMediaBar brand.


Features

  • XMB Interface: A responsive XrossMediaBar UI we all know and love.
  • Responsive UI: UI is responsive to different screen sizes, resolutions, and aspect ratios.
  • Content Indexing: Content indexing allows handling large media libraries without slowing down the UI.
  • System Integration: Live battery percentage and clock display in the status bar.

Video Player

Integrated MPV support for high-performance video playback.

A highly requested feature: resume playback from where you left off!

Music Player

A dedicated audio player interface with album art, track info, and playback controls. Most audio formats, including FLAC, are supported.

Photo Viewer

Browse and view your photo collection.

File Browser

Browse your handheld’s file system and access media files outside the main directories. Both single and dual SD card setups are supported.

Customizable Themes

Fluid particle animations and customizable color themes to your liking. You can set a wallpaper too!

This project’s aim is to utilize XMB’s ease of use for media content and many people’s familiarity in the retro gaming community. This project does not aim to fully replicate or provide 1:1 functionalities with the original XMB interface of Sony devices. This project is a reimagination and adaptation, not a hard copy.


Installation

Prerequisites

  • Handheld device running a recent version of muOS.
  • Your music, videos, and photos organized into dedicated folders on your SD card. Both single and dual SD card setups are supported.

Steps

  1. Download the latest release and put in in the ARCHIVES folder on your SD card.
  2. Install the XMPlayer.muxapp file using Archive Manager.
  3. Go to Applications menu and launch XMPlayer.
  4. At launch, XMPlayer will ask you to set media directories. Set all media directories you plan to use from Settings > Media Directories.

Need help where to locate?

  • For single SD card setups, the SD card contents are mounted to /mnt/mmc.
  • For dual SD card setups, /mnt/mmc refers to the 1st SD card, and /mnt/sdcard refers to the 2nd.
  1. Under Media Directories, select Reindex Media and Restart App. XMPlayer will index your media library for you. After that, XMPlayer is ready to use.

Controls

Button XMB Menu Music Player Video Player (MPV) Photo Viewer
D-Pad Left/Right Change Tabs Previous/Next Track Seek ±5s Previous/Next Photo
D-Pad Up/Down Navigate Menu Items - Seek ±60s -
A Select / Open / Confirm Play / Pause Play / Pause Reset Zoom & Fit to Screen
B Back / Cancel Return to XMB Skip Frames Zoom Out
X Context Menu Playback Options Toggle Mute Zoom In
Y - (Y + D-Pad Right) Un/Lock Controls Show OSD (Hold Y + D-Pad) Pan
L1 - - Previous Video -
L2 - - Toggle Subtitles -
R1 - - Next Video -
R2 - - Next Subtitle -
Start - - Change Aspect Ratio -
Select - - Return to XMB Return to XMB

Customization

You can personalize XMPlayer via Settings > Theme Settings:

  • Theme: Toggle between Light and Dark modes.
  • Theme Color: Choose from the colors of RetroArch’s color presets for its XMB interface.
  • Wallpaper: Select an image from your photos as a wallpaper!
  • Wallpaper Effects: Add blur, tint, brightness effects to better match your style.

More customization options are on the way!


Roadmap

v0.1 (Current)

  • Mark/unmark videos as watched.
  • Play videos from where you left off.
  • Shuffle play: music (folder, album, artist)
  • Play all & Shuffle play: videos (folder)
  • Extended music playback controls. (repeat, hold, sleep, etc.)
  • Auto display sleep.
  • Continue playback while display turned off (+ lid closed for clamshells)
  • Wallpaper and customization.

v0.2 (In Progress)

  • Custom playlists for video and music.
  • More visualizer options.
  • Photo gallery.
  • Image slideshows.

Planned for Later Versions

  • External display support.
  • Custom icon sets.
  • VGM file support (.spc, .nsf, …)
  • Add support for other media formats?

6 Likes

you son of a gun, I was looking for this, THANK YOU!

No, thank YOU :laughing: It’s still in early development, so I’d really appreciate community’s feedback and suggestions.

This is epic! Thank you for making this!

1 Like

Hey,
Just installed this on my RG35XX-H, and the inputs dont seem to work.
I’m on muOS 2601.1 Funky Jacaranda

Sorry to hear that. Would you mind sharing the log file in /mnt/mmc/MUOS/application/XMPlayer/.xmplayer/log.txt ? I could only develop this on a RG35XX SP so far, so compatibility with other devices is untested.

Sure! here it is:

Thank you, looks like the issue is about gptokeyb2 can’t find a required library (libinterpose.aarch64.so), which maps the button inputs to the app. I will be researching this issue. By the meantime, can you make sure PortMaster on your device is up to date and working? The library file should be in /mnt/mmc/MUOS/PortMaster/libinterpose.aarch64.so. If not, that may be the issue. You may want to try reinstalling PortMaster from Task Toolkit.

Edit: Found on Reddit:
A few pre-requisite checks:

(1) Updating to the latest PortMaster version available:

PortMaster App => Options => Update PortMaster.

(2) Updating all the Runtime libraries:

PortMaster App => Options => Runtime Manager => Download All. (new runtime libraries recently added)

(3) Updating individual ports within Portmaster App:

PortMaster App => Options => Update Ports.

Hmm this is very strange
[/mnt/mmc/MUOS/PortMaster]# ls .
7zzs.aarch64 libgl_EmuELEC.txt mod_knulli.txt
7zzs.armhf libgl_JELOS.txt mod_muOS.txt
7zzs.x86_64 libgl_Miyoo.txt muos
PortMaster.sh libgl_REGLinux.txt oga_controls
PortMasterDialog.txt libgl_ROCKNIX.txt oga_controls_settings.txt
astcenc.aarch64 libgl_UnofficialOS.txt pugwash
autoinstall libgl_default.txt pugwash.txt
batocera libgl_knulli.txt pylibs
config libgl_muOS.txt pylibs.zip.md5
control.txt libgl_uConsole.txt resources
device_info.txt libinterpose.aarch64.so retrodeck
exlibs libinterpose.armhf.so runtimes
funcs.txt libinterpose.x86_64.so sdl2imgshow.aarch64
gamecontrollerdb.txt libs sdl2imgshow.armhf
gameinfo.xml licenses sdl2imgshow.x86_64
gptokeyb log.txt sdl_resolution.aarch64
gptokeyb.armhf mapper.py sdl_resolution.armhf
gptokeyb.x86_64 miyoo sdl_resolution.x86_64
gptokeyb2 mod_.txt tasksetter
gptokeyb2.armhf mod_Batocera.txt themes
gptokeyb2.x86_64 mod_EmuELEC.txt trimui
harbourmaster mod_JELOS.txt utils
innoextract.aarch64 mod_Miyoo.txt version
innoextract.armhf mod_REGLinux.txt xdelta3
innoextract.x86_64 mod_ROCKNIX.txt xdelta3.armhf
knulli mod_TrimUI.txt xdelta3.x86_64
libgl_Batocera.txt mod_UnofficialOS.txt

libinterpose.aarch64.sois there, however if i run gptokeyb2, it says not found?

[/mnt/mmc/MUOS/PortMaster]# ./gptokeyb2
./gptokeyb2: error while loading shared libraries: libinterpose.aarch64.so: cannot open shared object file: No such file or directory

I have updated PortMaster, i didn’t update all the runtimes yet, they are big and i dont have a proper internet source.

I have most of my stuff on sd2, including applications, not sure if this is relevant.

Ok, I have

  • Downloaded all runtimes
  • Updated ports
  • Updated PortMaster
    same issue. gptokeyb works, but gptokeyb2 doesnt

This is interesting. All files seem to be in place. But applications being launched from SD2 might actually be relevant. Try copying libinterpose.aarch64.so manually to .xmplayer/libs, so gptokeyb2 can find it. Because the line export LD_LIBRARY_PATH="$APP_DIR/libs:$LD_LIBRARY_PATH" in the launch script allows loading libraries from there.

Copying libinterpose.aarch64.so to .xmplayer/libs solved the issue! gptokeyb2 starts and i can navigate the interface.
Thank You!
So I’m guessing this is an issue with PortMaster?

Glad to hear it! I will update the launch script on next releases for setups that use SD2 as the applications directory. Thank you for your cooperation and bug reporting!
I suppose the issue is about both PortMaster and the app. I missed the edge case of apps being installed on SD2 instead of SD1.

1 Like

Please refer to the following,

1 Like