Skip to content

rpi-bootloader-version: vcgencmd bootloader_version replacement#850

Merged
timg236 merged 1 commit into
raspberrypi:masterfrom
timg236:rpi-bootloader-version
Jun 11, 2026
Merged

rpi-bootloader-version: vcgencmd bootloader_version replacement#850
timg236 merged 1 commit into
raspberrypi:masterfrom
timg236:rpi-bootloader-version

Conversation

@timg236

@timg236 timg236 commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Add a new script which reports the bootloader_version using device-tree instead of vcgencmd.

Whilst rpi-eeprom-update has used device-tree in preference to vcgencmd for some years now there are lots of places in documentation which refer to 'vcgencmd bootloader_version.

Once this new script is released the documenation can be updated to use the preferred approach.

A related change will also remove the vcgencmd dependency from rpi-eeprom-update.

Add a new script which reports the bootloader_version using
device-tree instead of vcgencmd.

Whilst rpi-eeprom-update has used device-tree in preference
to vcgencmd for some years now there are lots of places in
documentation which refer to 'vcgencmd bootloader_version.

Once this new script is released the documenation can be updated
to use the preferred approach.

A related change will also remove the vcgencmd dependency from
rpi-eeprom-update.
@timg236 timg236 merged commit d6c6269 into raspberrypi:master Jun 11, 2026
1 check passed
@timg236 timg236 deleted the rpi-bootloader-version branch June 11, 2026 11:12
@HiassofT

Copy link
Copy Markdown

Was there some reason why you output the timestamp as local time (date) instead of UTC (date -u)?

I'm now seeing 3 different bootloader times reported here (CEST/+0200 timezone) on RPi5:

bootloader shows 16h:

  1.77 RPi: BOOTSYS release VERSION:086b83e3 DATE: 2026/05/26 TIME: 16:01:25
  4.99 RPi: BOOTLOADER release VERSION:086b83e3 DATE: 2026/05/26 TIME: 16:01:25

kernel shows 15h:

raspberrypi-firmware soc@107c000000:firmware: Attached to firmware from 2026-05-26T15:01:25, variant start_cd

vcgencmd 16h:

# vcgencmd bootloader_version
2026/05/26 16:01:25
version 086b83e3332dfc8927c56762771d082f3077a1ae (release)
timestamp 1779807685
update-time 1779916375
capabilities 0x0000007f

rpi-bootloader-version 17h:

# rpi-bootloader-version 
2026/05/26 17:01:25
version 086b83e3332dfc8927c56762771d082f3077a1ae (release)
timestamp 1779807685
update-time 1779916375
capabilities 0x0000007f

and rpi-eeprom-update 15h:

# rpi-eeprom-update 
BOOTLOADER: up to date
   CURRENT: Tue May 26 15:01:25 UTC 2026 (1779807685)
    LATEST: Tue May 26 15:01:25 UTC 2026 (1779807685)
   RELEASE: latest (/usr/lib/kernel-overlays/base/lib/firmware/raspberrypi/bootloader-2712/latest)
            Use raspi-config to change the release.

IMHO it would be better to universally report the timestams in UTC to avoid confusion

@timg236

timg236 commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator Author

Yes, just an oversight. The "source of truth" in the makefile is BUILD_TIMESTAMP ?= $(shell date -u +%s) and as you say, everything else should use UTC.

timg236 added a commit that referenced this pull request Jun 15, 2026
timg236 added a commit that referenced this pull request Jun 17, 2026
* rpi-fw-crypto fine-grained locking
  Crypto operations can be individually locked per key until after reboot
  using rpi-fw-crypto set-key-status. Reading, signing, hmac, setting key usage
  and generating a key can each individually be locked. Setting key usage and
  generating a key can be locked with lock_device_key_write=1 in config.txt.
* Use UTC for BUILD_DATE and BUILD_TIME
  Expand BUILD_TIMESTAMP using (date -u) for the human readable
  date / timestamp strings.
  See: #850
* fix wrap issue with platform_stc64
  It is unsafe to read lo and hi registers separately
  around the wrap point (every 71m)
* gencmd: Disable pmicrd and pmicwr if secure-boot is enabled
* arm_dt: Avoid incompatible overlay memory leak
  Overlay loading is now aborted early if the overlay map says that it
  isn't compatible. Unfortunately that error path leaked the memory used
  to hold any parameters passed to the overlay. Plug the leak.
* Stop the heartbeat with the watchdog
  There is no reason to keep the watchdog heartbeat going when the
  watchdog is stopped. Ensure the heartbeat is also stopped.
  See: raspberrypi/firmware#2023
* arm_dt: Defer overlay_map loading until needed
  There is no need to load the overlay map if overlays are not being used.
  Defer the loading of overlay_map until it is actually needed, saving a
  few tens of milliseconds.
* arm_dt: Drop an overlay if remapping fails
  If the process of overlay name remapping explicitly fails by returning
  NULL, don't proceed to apply the overlay anyway - it has been rejected.
* Avoid an unnecessary relocation
  ARM64 kernels include a load address in the header, but others don't.
  For those cases, treat an explicit kernel_address setting as gospel,
  potentially avoiding an unnecessary relocation.
* Set RP1 UART baud to the value configured in eeprom config
  See: #765
* arm-loader: Restrict SET_VOLTAGE to core-voltage on Pi4 and newer.
  With LPDDR4 the SDRAM is initialised by Broadcom's DPFE
  firmware which does PHY training. Attempting to adjust the SDRAM
  voltage independently of this will just make the system less stable
  so switch off this legacy behavior on Pi4 and newer.
Hancock33 added a commit to Hancock33/batocera.piboy that referenced this pull request Jun 28, 2026
-------------------------------------------------------------
alsa-ucm-conf.mk v1.2.16.1 # Version: Commits on Jun 12, 2026
-------------------------------------------------------------
Release v1.2.16.1

Signed-off-by: Jaroslav Kysela <perex@perex.cz>,

------------------------------------------------------------------------------------
cubeb.mk cdb54bbf405e5d75d42d21947cc717b35b0ccbf4 # Version: Commits on Jun 11, 2026
------------------------------------------------------------------------------------
style: run clang-format-18,

--------------------------------------------------------------------------------------------------------
batocera-emulationstation.mk d7d8e9eb158fdf988999bd007835b5bf52fa4f20 # Version: Commits on Jun 15, 2026
--------------------------------------------------------------------------------------------------------
Merge pull request #2159 from fabricecaruso/win

[Win32] SetThreadDescription API is supported since W10 only,

------------------------------------------------------------------------------------------------
batocera-es-piboy.mk d7d8e9eb158fdf988999bd007835b5bf52fa4f20 # Version: Commits on Jun 15, 2026
------------------------------------------------------------------------------------------------
Merge pull request #2159 from fabricecaruso/win

[Win32] SetThreadDescription API is supported since W10 only,

-----------------------------------------------------
amiberry.mk v8.2.1 # Version: Commits on Jun 15, 2026
-----------------------------------------------------
Windows release binaries are signed through SignPath. See the Code signing policy: https://amiberry.com/code-signing-policy

<!-- Release notes generated using configuration in .github/release.yml at v8.2.1 -->

## What's Changed

### New Features

- **Audio:** Added UAE MHI MP3 offload support. (#2096) - requires latest Host-Tools (v2.5) https://github.com/BlitterStudio/host-tools/releases/tag/v2.5

### Bug Fixes

- **PPC/QEMU-UAE:** Fixed the QEMU PPC cache sync hook, improved plugin override/SIGTERM handling, and updated the bundled plugin to v11.0.1-amiberry.3.

- **UAESND:** Implemented recording/capture. (#2097) - requires latest Host-Tools package (v2.5) https://github.com/BlitterStudio/host-tools/releases/tag/v2.5

- **Libretro:** Improved audio underrun recovery.

### Other

- **Build:** Optimization flags now apply more broadly. (#2095)

- **WinUAE sync:** Refreshed main-thread callback queue handling.

**Full Changelog**: BlitterStudio/amiberry@v8.2.0...v8.2.1,

-------------------------------------------------------------------------------------
azahar.mk 609ed7caf3e03ce50f49d981dad46451a5890738 # Version: Commits on Jun 15, 2026
-------------------------------------------------------------------------------------
cmake: Enable ENABLE_QT_TRANSLATION by default,

------------------------------------------------------------------------------------------
dolphin-emu.mk 144d19433aa734c19c34e5978a1b817d2aa12663 # Version: Commits on Jun 14, 2026
------------------------------------------------------------------------------------------
Merge pull request #14603 from jordan-woyak/gamesettings-solitaire

GameSettings: Apply settings required for Solitaire and Mahjong WiiWare.,

------------------------------------------------------------------------------------------
duckstation.mk 1cce275db36dba5b992fafeb59e8560929a19e60 # Version: Commits on Jun 15, 2026
------------------------------------------------------------------------------------------
Achievements: Don't update game database on disc change,

-----------------------------------------------------------------------------------
eden.mk 5ebb5b8772452f6144358bb12c7bd0443e3711ae # Version: Commits on Jun 15, 2026
-----------------------------------------------------------------------------------
[opengl] query GL_MAX_CLIP_DISTANCES instead of hardcoding 8 (#4095)

----------------------------------------------------
pcsx2.mk v2.7.419 # Version: Commits on Jun 15, 2026
----------------------------------------------------
- [OSD: Include \Show GPU Debug Info\ when using the \De/Select All\ buttons](PCSX2/pcsx2#14535)

,

-------------------------------------------------------------------------------------
ppsspp.mk d98354aaa18668575ee87f95f3286aee3b09034b # Version: Commits on Jun 15, 2026
-------------------------------------------------------------------------------------
Merge pull request #21839 from arvindfroi/arvindfroi-patch-2

Add Norwegian Nynorsk (nn_NO) translation,

------------------------------------------------------------------------------------
rpcs3.mk a4649475b6d8f524ab3a80ad831565852a97cd45 # Version: Commits on Jun 14, 2026
------------------------------------------------------------------------------------
Use opengl renderer in game window title,

-----------------------------------------------------
ryujinx.mk 1.3.313 # Version: Commits on Jun 15, 2026
-----------------------------------------------------
1.3.313

---------------------------------------------------------------------------------------
touchhle.mk 2590848309be6dd20f68ea0501b1d1e4e45605df # Version: Commits on Jun 14, 2026
---------------------------------------------------------------------------------------
Stub for CGContextSetShouldSmoothFonts()

Change-Id: Ie52992940d5896b09223f2a66249ce47f17286b4,

-------------------------------------------------
vice.mk r46149 # Version: Commits on Jun 15, 2026
-------------------------------------------------
null

-------------------------------------------------------------------------------------------
xenia-canary.mk 72ce1309715b30d07035c8511dffc13c0b92a2d9 # Version: Commits on Jun 14, 2026
-------------------------------------------------------------------------------------------
[CPU] Xbox360 cache line is always 128 bytes

Fixes: 4E4D07E0 & 4E4D083D,

-----------------------------------------------------------------------------------------
xenia-edge.mk ad41554a539bb5a254cb1a31324f83a623a0fea0 # Version: Commits on Jun 15, 2026
-----------------------------------------------------------------------------------------
[Vulkan] Flush float16 NaN to zero inside PackFloat16x2ExtendedRange

Removes the now redundant NaN map in FSI_ClampAndPackColor,

-------------------------------------------------------------------------------------
ikemen.mk 5b26efa0d8547e713b2756eb5c690dc840249c7c # Version: Commits on Jun 15, 2026
-------------------------------------------------------------------------------------
style: fix code style issues with gofmt,

-----------------------------------------------------------------------------------------
lightspark.mk 2622901cfd7d8ae666affab0ec15165a1225bc98 # Version: Commits on Jun 15, 2026
-----------------------------------------------------------------------------------------
revert previous commit,

-------------------------------------------------------------------------------------------
moonlight-qt.mk ca7d61f5281f0aa820ca0f4f3307b06c4f0d257d # Version: Commits on Jun 15, 2026
-------------------------------------------------------------------------------------------
Prefer libplacebo on macOS when available,

---------------------------------------------------------------
ruffle.mk nightly-2026-06-15 # Version: Commits on Jun 15, 2026
---------------------------------------------------------------
**Full Changelog**: ruffle-rs/ruffle@nightly-2026-06-14...nightly-2026-06-15

---------------------------------------------------------------------------------------
thextech.mk 066e1715dae3e9ce626769edba8b87daa382e8f1 # Version: Commits on Jun 14, 2026
---------------------------------------------------------------------------------------
Experiment: Handle the SYS_MainLoop() on Wii to prevent freezing

Made by @dssloth, I adjusted included heads

(cherry picked from commit 65b309949bc5b5874352f3ca443f3c405513d931),

-----------------------------------------------------------------------------------------
rpi-eeprom.mk 8fb9ea2fcb1735616a72fe6c5eb15b96595fc35d # Version: Commits on Jun 15, 2026
-----------------------------------------------------------------------------------------
rpi-bootloader-version: Show dates as UTC

See: raspberrypi/rpi-eeprom#850,

---------------------------------------------------------------------------------------------
deskpipro-case.mk 6d291f77f78badf0361daeb4134086768c73d1cb # Version: Commits on Jun 15, 2026
---------------------------------------------------------------------------------------------
Merge pull request #212 from lukeaurio/feat/buildLocally

raspiOS64 (Trixie): Update installation scripts for local builds,

-------------------------------------------------------------------------------------------
jazz2-native.mk 9a12db9c5613981a94d6c936254260493a2d2234 # Version: Commits on Jun 14, 2026
-------------------------------------------------------------------------------------------
Moved workflows to 'windows-2022',

----------------------------------------------------------------------------------------
openjkdf2.mk 7b2f431d30791eced98b4e04f257180ec00585ce # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------
Fix incorrect comparison in sithCollision,

--------------------------------------------------
labwc.mk 0.20.1 # Version: Commits on Jun 15, 2026
--------------------------------------------------
build: bump version to 0.20.1,

-------------------------------------------------------------------------------------------------
shadps4-qtlauncher.mk 4eff207be994dcf867199ba2fb7c7820b61f8f2b # Version: Commits on Jun 15, 2026
-------------------------------------------------------------------------------------------------
mac: Updates for MoltenVK removal (#387),

----------------------------------------------------------------------------------------
retroarch.mk 64815702e1f619fe199324a23a1b8ec97d3cf54d # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------
midi/fmsynth: keep voice pitch correct across output-rate changes

A voice's base_inc (freq/rate) and drum_dec (1/(time*rate)) are baked at

note-on from the output rate in force at that moment. If the rate changed

afterwards the voice kept its old pitch/decay for its whole lifetime. The

common trigger is a note arriving on the very first frame, before

audio_driver.c has supplied the real rate: with the 44100 default still

in place, a note rendered at 48000 played ~9% sharp.

Rescale every active voice's baked rate-dependent state by old/new in

fmsynth_set_rate whenever the rate changes. The work happens only on an

actual rate change (rare), needs no extra per-voice state, and corrects

both the first-frame case and any later rate switch.

Validated: a note triggered before the first render now sounds 440.0 Hz

(was ~480), and a 48000->44100 switch mid-note holds 440.0 Hz.,

---------------------------------------------------------------------------------------
vpinball.mk 2c83fd2249c4406f15232ce6b6d6d4f913fd7883 # Version: Commits on Jun 15, 2026
---------------------------------------------------------------------------------------
pup: correct label rotation rendering,

----------------------------------------------------------------------------------------
doomretro.mk 423ff2851fe22b78018baaf8a56d10cb98f20146 # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------
Define DPI awareness in manifest

Hopefully addresses issue #940,

---------------------------------------------------------------------------------------
vkquake3.mk 650bd625eb725446279c6176804b554e2e1c98f3 # Version: Commits on Jun 14, 2026
---------------------------------------------------------------------------------------
Merge pull request #33 from metaq3/meta/fix/shader-double-free,

---------------------------------------------------
trx.mk trx-1.8.1 # Version: Commits on Jun 15, 2026
---------------------------------------------------
docs: release 1.8.1,

-------------------------------------------------------------------------------------------
hlsdk-xash3d.mk 079f2387eb59e4a045647d9057240628130f0058 # Version: Commits on Jun 14, 2026
-------------------------------------------------------------------------------------------
Merge branch 'master' into mobile_hacks,

-----------------------------------------------------------------------------------------------
hlsdk-xash3d-dmc.mk c04e011bff5d56f629cd6d04eb07f44f5578ae58 # Version: Commits on Jun 14, 2026
-----------------------------------------------------------------------------------------------
Merge branch 'master' into dmc,

-------------------------------------------------------------------------------------------------
hlsdk-xash3d-opfor.mk dbb72426d98559d458d4ebfda3db020072f859c6 # Version: Commits on Jun 14, 2026
-------------------------------------------------------------------------------------------------
Merge branch 'opfor' into opforfixed,

---------------------------------------------------------------------------------------------------
hlsdk-xash3d-zombiex.mk cef1e22673747e6738a425717822642f366e7ce7 # Version: Commits on Jun 14, 2026
---------------------------------------------------------------------------------------------------
Merge branch 'sohl1.2' into zombie-x,

--------------------------------------------------------------
libretro-amiberry.mk v8.2.1 # Version: Commits on Jun 15, 2026
--------------------------------------------------------------
Windows release binaries are signed through SignPath. See the Code signing policy: https://amiberry.com/code-signing-policy

<!-- Release notes generated using configuration in .github/release.yml at v8.2.1 -->

## What's Changed

### New Features

- **Audio:** Added UAE MHI MP3 offload support. (#2096) - requires latest Host-Tools (v2.5) https://github.com/BlitterStudio/host-tools/releases/tag/v2.5

### Bug Fixes

- **PPC/QEMU-UAE:** Fixed the QEMU PPC cache sync hook, improved plugin override/SIGTERM handling, and updated the bundled plugin to v11.0.1-amiberry.3.

- **UAESND:** Implemented recording/capture. (#2097) - requires latest Host-Tools package (v2.5) https://github.com/BlitterStudio/host-tools/releases/tag/v2.5

- **Libretro:** Improved audio underrun recovery.

### Other

- **Build:** Optimization flags now apply more broadly. (#2095)

- **WinUAE sync:** Refreshed main-thread callback queue handling.

**Full Changelog**: BlitterStudio/amiberry@v8.2.0...v8.2.1,

----------------------------------------------------------------------------------------------
libretro-azahar.mk 609ed7caf3e03ce50f49d981dad46451a5890738 # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------------
cmake: Enable ENABLE_QT_TRANSLATION by default,

--------------------------------------------------------------------------------------------------
libretro-beetle-ngp.mk a50d5ac288a81f2104ddf43195a4efdd15c72227 # Version: Commits on Jun 14, 2026
--------------------------------------------------------------------------------------------------
Add support for 16KB pages on Android. (#119),

-------------------------------------------------------------------------------------------------------
libretro-beetle-pce-fast.mk cad58cb0efed50ebf0ffa18f3b76748a45cbef28 # Version: Commits on Jun 14, 2026
-------------------------------------------------------------------------------------------------------
fix: add bounds check before memcpy in cdrom.c (#243)

* fix: V-001 security vulnerability

Automated security fix generated by OrbisAI Security

* fix: add bounds check before memcpy in cdrom.c

At cdrom,

-------------------------------------------------------------------------------------------------
libretro-beetle-vb.mk 38e7a0ec9ac7079ca1c1e3dd9aaf5b56f527efca # Version: Commits on Jun 14, 2026
-------------------------------------------------------------------------------------------------
Add a core option for opposite directions (#85),

---------------------------------------------------------------------------------------------
libretro-fbneo.mk 00c687941956d861b3841d9ea56679ca8e487aba # Version: Commits on Jun 15, 2026
---------------------------------------------------------------------------------------------
(libretro) update files,

----------------------------------------------------------------------------------------------
libretro-fceumm.mk c0c52ad0eb36cdbfc66e9bdb72efc83103e85e22 # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------------
libretro: drop stale \96000hz filter could probably be improved\ note

The comment is inaccurate. Measured as the resampler actually uses them,

the 96000 tables realise ~83 dB stopband attenuation with effectively

flat passband, the best of all the shipped rate tables (44100/48000/

32000 sit around 71 dB). The wider transition band available at 96 kHz

lets the same 1024-tap budget reach a deeper stopband, so there is no

outstanding deficiency to flag.,

----------------------------------------------------------------------------------------------------------
libretro-genesisplusgx-wide.mk ff04a54b86005e0944bbdfd67af7a79e48deee37 # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------------------------
make low-pass audio filter cut-off sample-rate independent

The single-pole low-pass filter (config.filter & 1) used config.lp_range

directly as the feedback coefficient a in y[n] = a*y[n-1] + (1-a)*x[n].

That coefficient only defines the cut-off relative to the sample rate

(fc = -ln(a)*fs/(2*pi)), and was tuned at 44.1 kHz. Re-using it verbatim

at other rates moved the cut-off: at the default 60% setting the cut-off

was ~3585 Hz at 44.1 kHz but ~2602 Hz at 32 kHz and ~7805 Hz at 96 kHz,

so the characteristic Model 1 'muffled' filter became far too weak at

high rates and too aggressive at low ones.

With the new selectable output sample rate this became user-visible.

Rescale the coefficient to preserve the 44.1 kHz cut-off at any rate:

  a_fs = a_44100 ^ (44100 / fs)

This is exactly identity at 44.1 kHz (coefficient unchanged, bit-for-bit

same output) and holds the cut-off constant at 32/48/96 kHz. The pow()

is evaluated only when lp_range or the sample rate changes (cached), not

per sample. The 3-band EQ path (config.filter & 2) already derived its

coefficients from snd.sample_rate via init_3band_state(), so it needed

no change.

Build verified; declarations are block-scoped (C89/MSVC-safe).,

---------------------------------------------------------------------------------------------
libretro-opera.mk 8f77c80b39d6f765333f16326d2ad7475c15a054 # Version: Commits on Jun 14, 2026
---------------------------------------------------------------------------------------------
MADAM: handle literal LRFORM rows

LRFORM describes the interleaved row-pair memory layout used by Opera

bitmaps. Adjacent vertical pixels are stored together, so literal

LRFORM CELs have VCNT values that count row pairs and source reads

that alternate between the two halfword lanes.

Although this layout is most commonly used for 16-bpp bitmap

extraction, games can apply lower-depth literal CELs to LR-format

bitmap-derived data. AITD2 uses a 1-bpp LRFORM priority mask to select

where foreground scenery is copied back over actors. Treating LRFORM

as 16-bpp-only leaves that mask at half height and decodes the wrong

row lane for the lower half.,

----------------------------------------------------------------------------------------------------
libretro-parallel-n64.mk 9211836f42bf6d95a324965033d5ab1fe0049a70 # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------------------
rsp: use the full 12-bit skip field in the SP DMA length register

The SP_RD_LEN/SP_WR_LEN length register encodes three fields: length in

bits [11:0], count in bits [19:12] and the per-line skip (stride) in bits

[31:20], per the Ultra64 programmer's manual.

The skip was computed as ((l >> 23) & 0x1ff) << 3, which reads only bits

[31:23] and forces the low three bits to zero. That truncates any stride

that is not a multiple of 8 and drops bits [22:20] of the field entirely,

so strided RSP DMAs (count > 1 with a non-zero, non-8-aligned skip) read

or write the wrong RDRAM lines.

Use ((l >> 20) & 0xfff) for both the read and write length registers, the

full 12-bit field, matching the hardware encoding and mupen64plus-next.,

----------------------------------------------------------------------------------------------
libretro-ppsspp.mk d98354aaa18668575ee87f95f3286aee3b09034b # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------------
Merge pull request #21839 from arvindfroi/arvindfroi-patch-2

Add Norwegian Nynorsk (nn_NO) translation,

----------------------------------------------------------------------------------------------
libretro-prboom.mk 10f5f8b0447269ed6de73f0a493f0431b76dd2ee # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------------
r_decal: do not clip decals with a solid wall's occlusion sentinels

The previous change clipped each decal column to the drawseg's

sprtopclip/sprbottomclip.  That is correct for masked/two-sided segs,

which carry real per-column opening arrays, but a solid one-sided wall --

the usual target for bullet decals -- does not.  Instead it stores the

sentinels sprtopclip = screenheightarray and sprbottomclip = negonearray

to signal \this wall fully occludes sprites\.  Fed to the masked-column

drawer as decal bounds, those put the ceiling clip at the screen bottom

and the floor clip above the top, so every row is rejected and the decal

never appears.  This regressed bullet decals on ordinary walls: they

stopped rendering entirely.

Use the seg's clip arrays only when they are genuine openings (neither

sentinel); otherwise fall back to the real full-screen decal bounds

(ceiling clip above the screen, floor clip at the bottom), which is what

a fully visible solid wall needs.  Decals on two-sided/masked segs stay

clipped to the wall surface as intended.,

--------------------------------------------------------------------------------------------
libretro-race.mk 70a304213e1dc2e3474ee7ff5ee5137e5d285f33 # Version: Commits on Jun 15, 2026
--------------------------------------------------------------------------------------------
Cleanups,

-----------------------------------------------------------------------------------------------
libretro-sameboy.mk eb4c47ebf58cf93261620bfe138b650979f94049 # Version: Commits on Jun 15, 2026
-----------------------------------------------------------------------------------------------
Merge pull request #760 from alexemorris/fix-save-state-masking

Core: Fix object_low_line_address masking in sanitize_state,

---------------------------------------------------------------------------------------------------
libretro-snes9x-next.mk 2f6beca3ada61bdb4dabf7afe8cb9293a699224a # Version: Commits on Jun 15, 2026
---------------------------------------------------------------------------------------------------
Add audio interpolation core option (gaussian/cubic/sinc)

Add a snes9x_2010_audio_interpolation core option to select how each SNES

voice's pitch is interpolated by the DSP. Gaussian is the default and

matches real hardware; cubic and sinc are inaccurate brightening options.

These change only the per-voice pitch interpolation applied to already-

decoded samples. They do NOT undo BRR sample compression and do NOT match

hardware output -- they trade accuracy for a brighter, less muffled sound,

which is the same enhancement other SNES cores expose. Gaussian remains the

default, so accuracy is unchanged unless the option is opted into.

Cubic is a deterministic fixed-point 4-point Hermite. The Mesen2 float

reference normalises samples by 1/32768 and rescales by 32768; that

normalisation cancels exactly, so it is evaluated directly in sample units

in Q8 Horner form with round-to-nearest. Verified against the float

reference over a 4M-sample sweep of the full s16 range: max error +/-2 LSB

pre-mask (the &~1 low-bit clear makes the effective resolution 2 LSB). It

is bit-identical across platforms/CPUs (no float), which is the property

that matters for a libretro core.

Sinc is an 8-tap windowed-sinc FIR using the Q14 table shipped by snes9x

mainline (bsnes/blargg), applied with mainline's phase index

(interp_pos & 0xFF0) >> 1 and, like mainline's sinc case, without the &~1

low-bit clear. The 8-tap read is in-bounds in the existing buf[24] double

ring: worst-case read index is 18, and buf[12..23] mirror buf[0..11] every

decode cycle. Verified bit-exact against an independent FIR over 500k

random states, with correct unity DC gain across all 256 phases.

All paths are scalar C89 and compile clean under

-std=c89 -pedantic -Wall -Wextra.,

----------------------------------------------------------------------------------------------
libretro-stella.mk b104052a7abc7a1fda13c274386ebc73e8b9b6e4 # Version: Commits on Jun 15, 2026
----------------------------------------------------------------------------------------------
Remove paging for Linux, which goes against how UNIX normally outputs text.

Since this never worked for Windows either, we can close the issue (fixes #962).,

------------------------------------------------------------------------------------------------
libretro-tyrquake.mk fabedcffc0133544ec9e6ee68976aa9de4851126 # Version: Commits on Jun 14, 2026
------------------------------------------------------------------------------------------------
Fix MSVC C89 build: portable cache-line alignment macro

MSVC rejects GCC's __attribute__((aligned)) suffix syntax, producing

C2061/C2059/C2143 at the d_polyset_spans declaration in d_polyse.c and

cascading 'undeclared identifier' errors as the parser desyncs.

Add CACHE_ALIGN_DECL() in quakedef.h: __declspec(align()) prefix for

MSVC, __attribute__((aligned())) suffix elsewhere, wrapping the whole

declaration so each compiler gets the placement it expects. Both use

CACHE_SIZE so the alignment stays in sync with the pad-array math.,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants