[tvOS] [Apple TV] remote click (main button) Confirm/OK stops working if tvOS Accessibility > Zoom feature is turned ON
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Is there an existing issue for this?
- This is a bug in RetroArch frontend
- I have searched the existing issues
Description
On tvOS, if the user toggles on the Settings > Accessibility > Zoom feature, the main click (aka Confirm/OK button) black button on remote will stop working in RetroArch.
By toggled ON, I mean the zoom feature is active but latent. The zoom itself is triggered by a Triple Click input, which doesn't affect the problem. The optical blow-up zoom doesn't have to be triggered, only the setting itself.
WORKAROUNDS TRIED:
- I tried using virtual remote in iPhone/iOS control panel, to rule out a remote hardware issue. Problem still exists.
- I tried zooming in/out, but it didn't affect the dead button.
- I tried closing the app, of course. Problem persists.
Expected behavior
OK/Confirm and Cancel buttons should continue working regardless of Accessibility Zoom setting in tvOS
Steps to reproduce the bug
- Go into tvOS Settings > Accessibility > Zoom
- Turn the zoom feature ON. (This setting ON means that a Triple Click of remote button will cause a zoom-in / blow-up for easier reading of small text etc) (I doubt it matters, but my zoom setting option is set to 2.2x)
- Now go into RetroArch and attempt to confirm anything or enter into any sub-menus. You can't. Confirm/OK button on remote is dead. You can cancel ("<" button on remote), and you can navigate up/down/left/right, but you can't confirm/proceed. The black button on remote stops working.
- Now go back into tvOS Settings > Accessibility > Zoom, and turn it OFF. The black remote button will now work fine in RetroArch again.
Note the problem doesn't seem related to when you actually zoom-in via Triple Click. The zoom, which is system level, works in RetroArch although there is a white glitched square. The bug is related only to the general setting option being On/Off.
Version/Commit
1.22.2 cf30bc29
Bisect Results
I'm not sure, can't install old versions.
Present in the nightly version
(I'm not aware of nightly version option on Apple TV)
Platform & operating system
Apple TV 4K
Affected Cores
RA Interface Menu
Environment information
No response
Relevant log output
I quit the app, reloaded, and then navigated RetroArch menu for a few moments after turning tvOS > Settings > Accessibility > Zoom On and Off, but I (in ignorance) don't see anything in log that corresponds to the button problem, other than the later line about ignoring MFI controller, but I don't know the true meaning of that.
[INFO] RetroArch 1.22.2 (Git cf30bc29)
[INFO] === Build =======================================
[INFO] Capabilities: NEON VFPV3 VFPV4
[INFO] Version: 1.22.2
[INFO] Git: cf30bc29
[INFO] Built: Nov 18 2025
[INFO] =================================================
[INFO] [Input] Found input driver: "cocoa".
[INFO] [Environ] SET_PIXEL_FORMAT: RGB565.
[INFO] [Core] Version of libretro API: 1, Compiled against API: 1
[INFO] [Core] Geometry: 320x240, Aspect: 1.333, FPS: 60.00, Sample rate: 48000.00 Hz.
[INFO] [Video] Set video size to: 960x720.
[INFO] [Vulkan] Vulkan dynamic library loaded.
[INFO] [Vulkan] Found GPU at index 0: "Apple A15 GPU".
[INFO] [Vulkan] Using GPU index 0.
[INFO] [Vulkan] Using GPU: "Apple A15 GPU".
[INFO] [Vulkan] Queue family 0 supports 1 sub-queues.
[INFO] [Vulkan] Got 3 swapchain images.
[INFO] [Vulkan] Using resolution 1920x1080.
[INFO] [Vulkan] Using RGB565 format.
[INFO] [Vulkan] Loading stock shader.
[INFO] [Video] Graphics driver did not initialize an input driver. Attempting to pick a suitable driver.
[INFO] [Input] Found joypad driver: "mfi".
[INFO] [Video] Found display server: "apple".
[INFO] [Audio] Set audio input rate to: 48000.00 Hz.
[INFO] [CoreAudio] Using output sample rate of 48000.0 Hz.
[INFO] [CoreAudio] Using buffer size of 24576 bytes: (latency = 64 ms).
[INFO] [Audio] Started synchronous audio driver.
[INFO] [Microphone] Initialized microphone driver.
[INFO] [Display] Found display driver: "vulkan".
[INFO] [Playlist] Loading favorites file: "/private/var/mobile/Containers/Data/Application/89ABF017-F889-4C2B-8321-2EE8FB3A9293/Library/Caches/RetroArch/playlists/builtin/content_favorites.lpl".
[INFO] [Playlist] Loading history file: "/private/var/mobile/Containers/Data/Application/89ABF017-F889-4C2B-8321-2EE8FB3A9293/Library/Caches/RetroArch/playlists/builtin/content_history.lpl".
[INFO] [Playlist] Loading history file: "/private/var/mobile/Containers/Data/Application/89ABF017-F889-4C2B-8321-2EE8FB3A9293/Library/Caches/RetroArch/playlists/builtin/content_image_history.lpl".
[INFO] [Playlist] Loading history file: "/private/var/mobile/Containers/Data/Application/89ABF017-F889-4C2B-8321-2EE8FB3A9293/Library/Caches/RetroArch/playlists/builtin/content_music_history.lpl".
[INFO] [Playlist] Loading history file: "/private/var/mobile/Containers/Data/Application/89ABF017-F889-4C2B-8321-2EE8FB3A9293/Library/Caches/RetroArch/playlists/builtin/content_video_history.lpl".
[WARN] [MFI] Ignoring siri remote as a controller.
[INFO] App Intents: Returning 8 history games
[INFO] App Intents: Returning 8 favorite games
[INFO] App Intents: Returning 8 history games
[INFO] App Intents: Returning 8 favorite games
[INFO] [NS] starting draw observer
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue on an Apple TV 4K by toggling tvOS Accessibility > Zoom, then test the RetroArch menu's Confirm/OK and Cancel inputs. Start with the cocoa input driver and mfi joypad-driver paths named in the log, and compare behavior with Zoom disabled. Done means the remote's main click continues to confirm and enter sub-menus while Zoom is enabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100