An improved FFPLAY configuration file (one-handed use compatible, too!)

This is an attempt to make the built-in ffplay media player more comfortable to use. Turn your handheld into a media player!
This is a follow-up to my mpv custom config I’ve posted here in April, with attempts to recreate it as much as possible.
HOLD any bumper (R1/L1) to use the D-Pad as a MIRRORED set of abxy keys and use the abxy keys as the d-pad.

DIFFERENCES - The on-screen playback info isn’t available in ffplay so Y instead switches playback into fullscreen mode. The triggers (R2/L2) act as chapter seek buttons instead.

BUGS - The player may fail to quit at the end of playback: QUIT manually or perform the soft reset (L2+R2+START). Due to the way audio/subtitle track switching works in ffplay, switching between audio or subtitle tracks may fail to cycle: you may want to QUIT and restart playback to return to original sub/dub.

Save the code below as ext-ffplay.gptk, drop it to /MUX/config/gptokeyb/ - and presto!

[config]
deadzone_triggers = 3000
mouse_scale = 6114
mouse_delay = 16
mouse_slow_scale = 30
deadzone_mode = axial
deadzone = 1000
deadzone_scale = 7
deadzone_delay = 16
				# FFPLAY config by MyOtheHedgeFox, ver 202505
				# Similar to MPV edition: trying to
				# replicate my MPV config as much as possible!
				# Hold R1/L1 for one-handed mode
				# use R2/L2 for chapter seek
				# use Select+Start to QUIT
				# use volume keys to adj volume
				# use MENU+volume keys to adj brightness
				# drop to [MUX aka internal] /config/gptokeyb
				# enjoy, vanger
				
				# KNOWN QUIRKS:
				# No on-screen display available
				# If there's not autoquit, QUIT manually
				# If dub/sub doesn't cycle back, QUIT+restart

[controls]
overlay = clear
a = p			# pause/play
b = s			# frame step
x = m			# mute sound
y = f			# NO on screen display, so fullscreen instead

up = up			# seek +1min
down = down		# seek -1min
left = left		# seek -10sec
right = right	# seek +10sec

start = t		# cycle subtitles
select = a		# cycle audio

start = hold_state quitreadya		# enables quitting
select = hold_state quitready		# enables quitting

l2 = pagedown	# Chapter seek back or -600sec
r2 = pageup		# Chapter seek fwd or +600sec

l1 = hold_state flipped		# holding any of these
r1 = hold_state flipped		# enables FLIPPED mode

[controls:flipped]
# lets you use the d-pad as a MIRRORED set of ABXY buttons
up = m			# FLIPPED X - mute sound
down = s		# FLIPPED B - frame step
left = p		# FLIPPED A - pause/play
right = f		# FLIPPED Y - NO display, so fullscreen instead

# lets you use the ABXY buttons as a d-pad
a = right		# FLIPPED RIGHT - seek +5sec
b = down		# FLIPPED DOWN - seek -1min
x = up			# FLIPPED UP - seek +1min
y = left		# FLIPPED LEFT - seek -5sec

[controls:quitreadya]
select = esc

[controls:quitready]
start = esc
1 Like

For those choosing between ffplay and mpv – REMEMBER TO CHECK FILES FOR INDIVIDUAL ASSIGNED CORES.
If you’d assigned mpv as a playback core for an individual file, it will stay the same even if you assign ffplay to a folder / recursive later on.
Check them individually or use Clear Core Assignments in Apps > Task Toolkit to ensure everything works correctly!