Changelog 1.8.63DS: Add IDs for UZEM, TGB Dual, and NeoCD3DS: Fix font driver horizontal text alignment3DS: Allow button presses up to INPUT_MAX_USERS – this enables the 3DS to bind and use buttons and axis for users up to the maximum set by ‘Max Users’ in the input settings menu.3DS: Disable video filter if upscaled resolution exceeds hardware limits. The 3DS has a maximum video buffer size of 2048×2048. This is sufficient for every core that it supports, but when using software video filters the core output resolution is doubled. This is made worse by the fact that the video filter upscaling buffer size is dependent upon the maximum output resolution of the core – which in some cases is very large indeed (e.g. pcsx-rearmed sets a maximum width of 1024, for enhanced resolution support). The 3DS has very limited ‘linear memory’ for graphics buffer purposes, and a large base core buffer + video filter buffer can easily exceed this – which may also disable video output, or cause a crash. This PR very simply adds a 3DS-specific check to the video filter initialisation: if the resultant upscaling buffer exceeds the hardware limitation, then the filter is automatically disabled.3DS/FONT/BUGFIX: Text colour was wrong: the RGBA channels were muddled, and R was always set to 2553DS/FONT/BUGFIX: When drawing multiline strings, the line spacing was completely incorrect3DS/FONT: Improves the appearance of the drop shadow effect on notification text.3DS/ARCHIVE/7Z: Re-enable 7zip support.ARCHIVE/ZIP: Expand functionality of ‘rzip_stream’ interface. This PR expands the functionality of the new rzip_stream archived stream interface such that it now has almost complete feature parity with the standard file_stream interface, and can therefore be used as a drop-in replacement in most situationsAI SERVICE: Hide redundant entries when service is disabledAI SERVICE: Added in auto-translate supportAI SERVICE: support for NVDA and SAPI narrationAUTOCONFIG: Use correct port index in input device configured/disconnected notificationsBUGFIX: Fix race condition where task could momentarily not be in the queue when reorderingCHEEVOS/BUGFIX: Prevent null reference rendering achievement list while closing applicationCHEEVOS/BUGFIX: Report non-memorymap GBA cores as unsupportedCOMMANDLINE: Advise against using -s and -S variables on the command line.CONFIG FILE: Only write config files to disk when parameters changeCONFIG FILE/BUGFIX: RetroArch no longer crashes when attempting to save a config file after ‘unsetting’ a parameter (currently, this can be triggered quite easily by manipulating input remaps)CONFIG FILE/BUGFIX: When using Material UI, RetroArch no longer modifies the wrong setting (or segfaults…) when tapping entries in the Quick Menu > Controls input remapping submenuCONFIG FILE/BUGFIX: Quite a few real and potential memory leaks have been fixed.CHD: Fixes a crash caused by ignoring the return value from one of the CHD library functionsFASTFORWARDING: A new Mute When Fast-Forwarding option has been added under Settings > Audio. When enabled, users can fast forward without having to listen to distorted audio.GLCORE/SLANG: Set filter and wrap mode correctly when intialising shader textures. Before, the glcore shader driver did not correctly initialise loaded textures. The texture filtering and wrap mode were forced on texture creation, but these settings were not recorded – subsequent updates would set garbage values, that would resolve to linear filtering OFF and wrap mode = CLAMP_TO_EDGE.LOCALIZATION: Update Japanese translationLOCALIZATION: Update Spanish translationLOCALIZATION: Update Portuguese Brazilian translationIOS: Set audio session category to ambient so sound does not get cut off on interruption (phone call/playing back audio)MAC/IOHIDMANAGER/BUGFIX: Fix for Mayflash N64 adapter. In case last hatswitch does not match cookie. For the mayflash N64 adapter, I was getting a BAD EXC ADDRESS (in mac OS 10.13) for this line (tmp was NULL). Retroarch would crash in the gui if I pressed a button from the DPAD on controller 2. With this change, it no longer crashes in the gui and still registers the button push.MAC/COCOA: Fix mouse input – this brings back two lines of code that have been removed over time but appear to be required in order for mouse input to work on macOSMETAL/BUGFIX: GPU capture on Metal/OSX/NVidia could crashMETAL/BUGFIX: Taking screenshots could capture black frames. Resulting PNG screenshots were black.METAL/BUGFIX: Corrupted image due to incorrect viewport copy when taking screenshotMENU: Prevent font-related segfaults when using extremely small scales/window sizesMENU: Fix ‘gfx_display_draw_texture_slice()’MENU/FONT: Enable correct vertical alignment of text (+ font rendering fixes)MENU/RGUI: Enable automatic menu size reduction when running at low resolutions (down to 256×192)MENU/OZONE: Update timedate style options for Last Played sublabel metadataMENU/OZONE: Hide ‘Menu Color Theme’ setting when ‘Use preferred system color theme’ is enabledMENU/OZONE: Fix thumbnail switching via ‘scan’ button functionalityMENU/OZONE: Prevent glitches when rendering Ozone’s selection cursorMENU/OZONE: Enable proper vertical text alignment + thumbnail display improvementsMENU/OZONE: Enable second thumbnail/content metadata toggle using RetroPad ‘select’MENU/OZONE: Refactor footer displayMENU/OZONE: Hide thumbnail button hints when viewing file browser listsMENU/OZONE/INPUT/BUGFIX: Fix undefined behaviour when using touch screen to change input remapsMENU/OZONE/INPUT/BUGFIX: It turns out that Windows reports negative pointer coordinates when the mouse cursor goes beyond the left hand edge of the RetroArch window (this doesn’t happen on Linux, so I never encountered this issue before!). As a result, if Ozone is currently not showing the sidebar (menu depth > 1), moving the cursor off the left edge of the window generates a false positive ‘cursor in sidebar’ event – which breaks menu navigation, as described in #10419. With this PR, we now handle ‘cursor in sidebar’ status correctly in all casesMENU/OZONE/INPUT/BUGFIX: Pointer input is now correctly disabled when message boxes are displayedMENU/XMB: Fix thumbnail switching via ‘scan’ button functionalityODROID GO ADVANCE: Add DRM HW context driverPSL1GHT: Initial portPSL1GHT/KEYBOARD: Implement PSL1GHT keyboardPLAYLIST/BUGFIX: Improve handling of ‘broken’ playlists – RetroArch will no longer segfault when attempting to run content via a playlist entry with missing path or core path fields.PLAYLIST/BUGFIX: Improve handling of ‘broken’ playlists – when a playlist entry has either core path and/or core name set to NULL, DETECT or an empty string, attempting to load content will fallback to the normal ‘core selection’ code (currently this happens only if both core path and core name are DETECT – this is wholly inadequate!)PLAYLIST/BUGFIX: RetroArch will no longer segfault when attempting to fetch content runtime information when core path is NULLPLAYLIST/BUGFIX: Core name + runtime info will only be displayed on playlists and in the Information submenu if both the core path and core name fields are ‘valid’ (i.e. not NULL or DETECT)PLAYLIST/BUGFIX: When handling entries with missing path fields, the menu sorting order now matches that of the playlist sorting order (at present, everything goes out of sync when paths are empty). Moreover, entries with missing path fields can now be ‘selected’, so users can remove them (currently, hitting A on such an entry immediately tries – and fails – to load the content, so the only way to remove the broken entry is via the Playlist Management > Clean Playlist feature)PLAYLIST: Add optional per-playlist alphabetical sortingPLAYLIST: Omit whitespace when writing compressed JSON format playlistsPLAYLIST: Add optional playlist compressionQNX: Support analog sticksSAVESTATES: Add optional save state compression (enabled by default now)SRAM: Add optional save (SRAM) file compressionSCANNER: Prevent redundant playlist entries when handling M3U contentSCANNER/ANDROID: Fix content scanner being unable to identify certain games from CHD images (raw data sector/subcode)TASKS/BUGFIX: Fix task deadlocksTASKS/SCREENSHOT/BUGFIX: Fix heap-use-after-free error when widgets are disabledTVOS: Disable overlays for tvOS, fix app iconVIDEO/WIDGETS/BUGFIX: The font ascender/descender metrics added in #10375 are now used to achieve ‘pixel perfect’ vertical text alignmentVIDEO/WIDGETS/BUGFIX: Message queue text now uses its own dedicated font. Previously, a single (larger) font was used for all active widgets, and this was scaled down for message queue items. This ‘squished’ the text a little; more importantly, when using the stb font renderers (on Android. etc.) it caused ugly artefacts around the edges of glyphs due to pixel interpolation errors. Now that a correctly sized font is used, the message queue is always rendered cleanly.VIDEO/WIDGETS/BUGFIX: Previously, each widget font was ‘flushed’ (font_driver_flush()) at least once a frame. This is quite a slow operation. Now we only flush fonts if they have actually been used.VULKAN/BUGFIX: Fix display of statistics textUNIX/BUGFIX: Fix overflow when computing total memory on i386WIIU/BUGFIX: Fix font driver horizontal text alignmentWIIU/BUGFIX: Fix non-vertex coordinates in draws using tex shaderWIIU/BUGFIX: Update and fix meta.xml file for the WiiU release. This change makes it so the information from the meta.xml file parsed for the WiiU’s Homebrew Launcher is displayed properly.