Skip to content

Xbox Builds [08-10-2026]

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Aug 02:31

Upstream Changes

  • menu: add a Direct SPIR-V Support (Hint) toggle for the glcore driver (282ca43)
  • smb2: rebuild the pool when settings change, move cloud sync onto it, fix signing negotiation (05db1e0)
  • tools/settings_migrate_group: preserve no-default rows, macro defaults and config guard breadth; add self-test (0a4aae8)
  • smb2: allocate nothing at all when no SMB server is configured (cea330e)
  • smb2: serialize context use, replace cached context pointers with generation handles (3c7447d)
  • Fetch translations from Crowdin (448088d)
  • smb2: publish loaded settings to the SMB backend, harden the pool paths (3676617)
  • settings: restore pre-migration configuration behaviour, add regression checks (558b24a)
  • Revert "settings: restore the pre-migration default values for three rows" (a7a4a9c)
  • Revert "settings: restore config-table breadth for eleven guard-narrowed rows" (8c27288)
  • Revert "settings: drop the duplicated fullscreen size rows and fix the pass marker" (133b720)
  • Revert "settings: add _ND row variants so a row can opt out of a default" (d8e95ae)
  • Revert "settings: register network_remote_enable under HAVE_NETWORKGAMEPAD again" (4c704f3)
  • Revert "settings: add a configuration-table drift check" (7473a5a)
  • settings: add a configuration-table drift check (ae0d726)
  • settings: register network_remote_enable under HAVE_NETWORKGAMEPAD again (682e974)
  • settings: add _ND row variants so a row can opt out of a default (ab2aaa1)
  • settings: drop the duplicated fullscreen size rows and fix the pass marker (588a013)
  • settings: restore config-table breadth for eleven guard-narrowed rows (ecca6cb)
  • settings: restore the pre-migration default values for three rows (714b693)
  • gfx: fix GLES and griffin builds broken by the GL_ARB_gl_spirv path (a7db07c)
  • gl3: use GL_ARB_gl_spirv to bypass SPIRV-Cross when available (ec6dc34)
  • gfx: add a SPIR-V Vulkan to OpenGL lowering pass (e0e13f5)
  • libretro-common: glsym: add glSpecializeShader and SPIR-V binary tokens (a2b145a)
  • smb2: ensure smb settings initalized earlier, also log failures (libretro#19371) (e9f9dd4)
  • (Qt) Recompute the grid layout when the view becomes visible again (c5af8e3)
  • (Input) Bound joy_idx and max_users before indexing the bind arrays (f2e7455)
  • gfx/video_thread_wrapper: document and check the cond_cmd single-waiter requirement (ad12830)
  • runloop: pace the fast forward limiter in microseconds (90e8bee)
  • libretro-common: pre-1803 fallback for retro_sleep() via NtSetTimerResolution (319b1f1)
  • gfx/video_driver: recover the frame delay target's sub-millisecond remainder (4f3513e)
  • libretro-common: high resolution retro_sleep() on desktop Windows (5c30a40)
  • tasks/task_patch: a patch that fails to apply must not mask the other formats (2588770)
  • tasks: reject IPS records whose payload runs past the end of the patch (316c00a)
  • tasks/task_patch: stop a truncating IPS patch from overrunning its target buffer (fed4e55)
  • (FFMPEG) Fix build on GLES2-only configurations (acd48df)
  • Fetch translations from Crowdin (5cd5d65)
  • Another C89 buildbreak (2f2994f)
  • (Font) Only rebuild a font when the language actually changes its face (3599000)
  • Would be nice if C89 didn't keep getting broken (ebd444c)
  • chd: stop decoding the v5 map once its bitstream is exhausted (8e3e9d1)
  • chd: fix a per-hunk huffman decoder leak and an unchecked allocation (807191c)
  • chd: don't shift by a negative bit count when the bitstream is over-consumed (9d85b55)
  • chd: bounds-check the CD codecs' sub-block split - heap overread on a malformed hunk (9a0d4a1)
  • deflate: report block boundaries - stop-at-block never reported any (18e536d)
  • deflate: add the gzip container to rinflate and rdeflate (f6d7c6d)
  • (Font) An explicit font path wins over the renderer's own list (d4e3de7)
  • (Font) No file paths left in the font renderers (92509d3)
  • (Widgets) Fix OSD widgets laying out at zero height (6fceb0f)
  • (Font) Thai renders (9042752)
  • (Font) Follow the menu language in materialui, widgets and xmb too (27b0614)
  • (Intl) Drop "Restart required" from the languages that no longer need it (a147b6d)
  • chd: bound the attacker-controlled sizes in decompress_v5_map (534f21c)
  • chd: cast before shifting in bitstream_peek - signed overflow on ordinary data (63dbd14)
  • (Font) Change the menu language without restarting (42a711f)
  • (Widgets) Fix the sanitize sample, and add a way to catch this (4845f3b)
  • (Font) One copy of the language-to-font decision (f7bb668)
  • chd: cast before shifting in get_bigendian_uint32_t - signed overflow on ordinary data (588c1c8)
  • mpeg1: don't decode motion with an unset f_code - malformed VCD hangs the decoder (81581a2)
  • (XMB) Recompute the wide-glyph width when a font is rebuilt (ea1f6b5)
  • vfs: stop defining feature macros; unbreak 3DS, PSP, DJGPP and Darwin (2878089)
  • (Widgets) Recompute the derived metrics when a font is rebuilt (41bcd2a)
  • encodings: fold the Win32 A/W gate into utf.h, drop the extra header (8bc46ff)
  • patch: verify a patch's own checksum before allocating its target (ac68342)
  • patch: decode BPS copy offsets as unsigned sign-magnitude (52f9e6b)
  • (Font) Recompute the derived metrics when a font is rebuilt (7eddfc2)
  • libretro-common: 64-bit file offsets on Windows, and an honest LEGACY_WIN32 (76a9aee)
  • (Font) Fix a double free on a font file the renderer rejects (57ce5ab)
  • (Font) Let a font be rebuilt in place (d2b0581)
  • griffin: say 9x with the 9x macro on the three old-Windows targets (032c1a8)
  • (Font) Stop the font renderers touching the filesystem (266285f)
  • patch: do not hand NULL to memcpy/memset on a zero-length write (9673ceb)
  • patch: bound the UPS skip walk so a valid varint cannot hang (41a8b1b)
  • patch: reject truncated BPS and UPS varints (libretro#19367) (61727d5)
  • (Font) Take the file I/O out of the font renderers (76f8821)
  • Revert "(Vulkan) Stage the font atlas in one pass, from the atlas's own box" (a717ad3)
  • (Vulkan) Stage the font atlas in one pass, from the atlas's own box (1825596)
  • Revert "(Vulkan) Batch font rendering through the raster block" (c3d403a)
  • (Vulkan) Batch font rendering through the raster block (508be83)
  • (Font) Remove the no-op OSD block unbinds (99ef69d)
  • (Font) Fold font_bind/font_unbind into their call sites (4e488aa)
  • (Font) Skip the reshaper for messages with no high bytes (a243644)
  • (Font) Bound the reshaper's writes to the buffer it was given (381be36)
  • (Font) Cache line metrics on the font, drop the per-call helpers (e139606)
  • (STB) Simplifications (3566eb9)
  • (Apple) Drop Xcode references to files that no longer exist (4c69a54)
  • (Font) Regenerate the bitmap font assets and move them to tools (21e0402)
  • (Font) Move the built-in bitmap font out of the driver directory (cb3dc40)
  • (RGUI) Move the fixed-size glyph loaders to menu/drivers (0a485f4)
  • (Font) Fold bitmapfont.c into bitmap.c (074f637)
  • (Font) Give the built-in glyph data its own translation unit (8ea5810)
  • (Font) Fold the built-in glyphs into stb, drop bitmap_font_renderer (f4352f3)
  • (Font) Always build stb_truetype (0a9fc6d)
  • (ODROID-GO2) Fix the font renderer init call after the atlas format change (84f15b5)
  • SDL2 buildfix (7b7af78)
  • (D3D11) Remove a stray carriage return inside a statement (ddafe10)
  • Cleanups (757c542)
  • SDL2 ifdef no longer needed here (0d0f84e)
  • (Font) Make font_driver_free_osd static (a596f46)
  • (SDL2) Guard the font backend vtable entry like its definition (a11fce5)
  • (Font) Move the OSD font into the state object that owns it (dbfde7e)
  • (Font) Drop the threading_hint parameter from font_driver_init_osd (7bacf38)
  • (Video) Finish the OSD font migration (6598448)
  • (Video) Hand the OSD font lifecycle up in 20 more drivers (b815d73)
  • (Vulkan) Do not discard the font atlas on incremental uploads (f8b5e36)
  • (Font) Pass the atlas format instead of routing it through a global (46f46fa)
  • (Font) Dispatch on a backend pointer instead of an API enum (dcbac35)
  • (Video) Key the OSD font on the driver instance that owns it (a725f60)
  • (Video) Let the layer above own the OSD font lifecycle (e652f95)
  • (Vulkan) Drop the OSD font at init, not at teardown (b39c721)
  • retro_atomic: define thread fences on the volatile fallback (4f0a8bc)
  • input: always check if accel/gyro is supported and return that info to core (libretro#19363) (e96196f)
  • retro_spsc: zero-copy span API (write_begin/end, read_begin/end) Expose the contiguous region between the cursors that write/read already compute internally, so callers can produce into and consume from the ring without the intermediate copy. begin returns the contiguous span at the cursor (min of available and distance to the physical wrap); end publishes the actually-used byte count with the same release-store the copying calls use. No cursor moves at begin, so the region is stable against the other side until end. Wrapped data takes a second begin/end round; callers needing a larger guaranteed-contiguous write fall back to retro_spsc_write's split copy. Documented in the style of retro_spsc_peek, same thread-affinity rules. (246774b)
  • sdl2: When manually enabling SDL2, disable SDL3 (libretro#19358) (2e197cf)
  • Revert "(mem_stats) Include mach/mach_port.h explicitly on Apple" (7870ead)
  • (mem_stats) Include mach/mach_port.h explicitly on Apple (6905998)
  • input/mfi: bound CoreHaptics engine creation (4079dc6)
  • librsound: use mach_absolute_time in rsnd_get_time_usec on Darwin (3acd8ef)
  • mem_stats: release the host port in the Apple free-memory path (ddcc398)
  • (libretro-common) compat_strl: bound the destination scan in strlcat (10bf380)
  • tasks/database: bound the matched entry in iterate_found_match (3fc8e4a)
  • gfx/vulkan: give the hw render interface a lifetime the core can hold (6305367)
  • rthreads: stop churning Mach port names in scond_wait_timeout on Apple (a20cdb9)
  • libretro-common: add rmpeg1, an MPEG-1 program stream and video decoder (79f5ef5)
  • retro_atomic: 64-bit load/store/exchange/CAS (0f0010b)
  • retro_atomic: exchange, CAS, pointer ops, and fences (0967bda)
  • rlz4: reference-structure fast loop - the gap, measured and mostly closed (c0162bb)
  • encodings: clean-room LZ4 block decoder (rlz4) (7a9f3df)
  • Fetch translations from Crowdin (1ee7d12)
  • vfs: memory-map FREQUENT_ACCESS files on Windows too (a7020ad)
  • encoding_deflate: zran primitives - block boundaries, bit tell, mid-byte start (e7dcf2a)
  • encoding_deflate: rinflate_set_dictionary for indexed random access (e436841)
  • encoding_deflate: include crc32intrin.h where clang moved the CRC32 intrinsics (f43acc5)
  • task_cloudsync: four defects that make a failed sync look like a clean one (ef2b482)
  • Silence another unused variable warning (f067057)
  • Silence some warnings (3ff2cd7)
  • (cheevos) fix game identification for buffered cue files (libretro#19355) (65ff794)
  • vfs_hybrid: implement the v4 stat_64 member (4aa3457)
  • vfs_hybrid: gate the v2 member, and release the dir handle on failure (b6cf273)
  • gl1/gl2: fix C89 declaration-after-statement in the HDR encode blocks (7ce29ff)
  • vfs: hybrid local-first dispatch with frontend fallback (b437879)
  • file_stream: optional mapped-ptr callback for VFS providers (8dae798)
  • gl1: advertise 10-bit source support so cores can negotiate HDR10 (19aadba)
  • gl1: composite core-supplied HDR10 PQ frames, with a CPU fallback (cee9627)
  • gl1: accept 10-bit source surfaces (5f5b6f5)
  • gl2: advertise 10-bit source support so cores can negotiate HDR10 (414c5d2)
  • gl2: composite core-supplied HDR10 PQ frames into the scRGB backbuffer (7b18671)
  • gl2: accept 10-bit source surfaces (e81ba96)
  • Fix red tint on core-supplied HDR10 frames (52edd50)
  • Fix HDR10 negotiation breaking on in-process core switch (0e0c2c0)
  • android: reduce RAM usage in packaging to 4GB max (libretro#19349) (7f3c320)
  • Fix HDR10 pixel format being refused on a cold start (e3e958a)
  • gl3: advertise 10-bit source support so cores can negotiate HDR10 (5dcc985)
  • gl3: composite core-supplied HDR10 PQ frames into the scRGB backbuffer (077f5f4)
  • gl3: accept 10-bit source surfaces (00e8156)
  • Fetch translations from Crowdin (4d2a566)
  • android: use the native system keyboard for menu text entry (libretro#19346) (4ff6a32)
  • Specify the file creation semantics of the VFS open function (libretro#19339) (0b4df04)
  • Fix the open flags in the SMB implementation of the VFS open function (libretro#19340) (e33a0ae)
  • rpng: avoid signed overflow in rpng_dword_be (a432a43)
  • rxml: include <stddef.h> for size_t in the public header (a50e5e4)
  • Fix a bug in the SAF implementation of the VFS mkdir function (libretro#19342) (91d9bf2)
  • Regularize the various VFS seek implementations (e50b27b)
  • menu: do not process built-in OSK input while a native keyboard owns the line (5d2b0a8)
  • rxml: parse options, error positions and source lines (e007460)
  • rxml: capture non-whitespace mixed content (35af653)
  • Update the Welcome to the RetroArch Desktop Menu! prompt (libretro#19343) (f534b26)
  • task_file_transfer_test: follow anim_stream_new_avail signature change (7f3c75c)
  • gfx_thumbnail: preview multi-gigabyte videos from a fixed footprint (0cf16ed)
  • rmp4_video: fix link failure when built without HAVE_RVP9 (6041511)
  • rh265: scaling lists; fixes previews for hardware-encoder HEVC (2e86926)
  • gfx_thumbnail: drop stale preview-audio PCM-cap comment (69fc230)
  • rh265: WPP support; H.265 previews now work for x265-default streams (beefc1d)
  • sdl3: Fix mouse wheel expecting SDL 3.2.12+ (libretro#19341) (8dd31c7)
  • Revert "gen: restore copying.ipp" (9b666d7)
  • gen: restore copying.ipp (e65a33c)
  • rh265: Main10 support; fixes H.265 menu thumbnails (8aaa187)
  • raac: provable bounds for the SBR envelope-grid arrays (0b33625)
  • audio_transfer/rmp4_audio: fix heap overflow decoding SBR AAC (7e26978)
  • MP4: H.265/HEVC playback via rh265, a new clean-room intra decoder (libretro#19338) (ec99ba9)
  • libretro-common: fix no-TLS Darwin targets and armv7 __clear_cache (4550a34)
  • Stack budget: clear the remaining over-budget frames (snes_ntsc, gfx_thumbnail, playlist, menu_cbs) + differential harnesses (libretro#19336) (c666fc4)
  • (gl1/gl2) Fix HDR ignoring aspect ratio (libretro#19337) (541c03b)
  • android: increase ram again for packaging plus version (42415fa)
  • mem_stats: heap-allocate the /proc read buffer (e16eba7)
  • cdfs: heap-allocate the sector buffer per path level (d368ee0)
  • config_file: heap-allocate the dump buffer (314cefb)
  • rzstd: hold the weights-read scratch in the huffman state (c776336)
  • rvorbis: move the channel-flag arrays into the decoder (d01846d)
  • rhuff/rchd: take the huffman working set off the stack (bdebd79)
  • rh264: hold the CABAC state and residual scratch in the workspace (482a83e)
  • rh264: move the slice-decode workspace into rh264_video (2dcc920)
  • ropus: move the SILK decode scratch into ropus_silk2 (d484764)
  • libchdr: move the CD sector buffer into flac_decoder (18a3655)
  • rflac: heap-allocate the init info in both open paths (fb801bb)
  • ropus: move the hadamard interleave scratch into the frame scratch (fb3a6d6)
  • core_info: heap-allocate the extension resolver's hash set (8ba2688)
  • libchdr: heap-allocate map_read's chunk buffer (8be0f1d)
  • rchd: hold the LZMA decoder state on the heap (7857f23)
  • rvp9: move reconstruction scratch off the stack (3bc41c4)
  • stack_budget: measure per target, and cross-compile when it can (85fd885)
  • stdin_stream: take the console peek buffer off the stack budget (6e8a7ec)
  • stack_budget: accept explicit files and directories (fc19415)
  • stack_budget: trust gcc's exit status, not the .su existing (669b7c2)
  • rmodtracker: IT stage 5 - envelopes, the resonant filter, and a confession (9d23d93)