The voices sum at their full level, as the Xbox's mix bins did, and the
mixer bent every sample over 0.8 with tanh. When loud voices piled up, as
dialogue over gunfire does, that distorted the sound: a 2x full scale sine
came out with 23% harmonic distortion. A look-ahead limiter now turns the
whole mix down for as long as it would go over -1 dBFS, both channels
alike, and brings it back over 100 ms. The output is 1.3 ms later, so the
gain comes down before each peak; below full scale nothing changes.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A widget background bitmap whose bounds cover the whole 640x480 design
space (the pause menu dim, for example) stopped at the edges of the
centered 640 column on widescreen displays, leaving the side bands
undimmed. Widen the bounds and the clip symmetrically to the full
screen width, mirroring the existing fade_to_black special case in
render_ui_widgets().
Tested on a Retroid Pocket Flip2 (854x480 render target).
Only the view's magnetism is turned off for the mouse: the bullets still bend toward the target, as with a controller, so shots land as they did.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add a new configuration setting for 'display.direct_camera' to enable first-person view adjustments based on player aiming. This update clarifies the behavior of the camera during gameplay and ensures that the setting is applicable only to desktop environments. Additionally, minor adjustments were made to the render_interpolation module to accommodate this feature.
Implement direct camera rendering logic for first-person perspective in the render_interpolation module. This includes a new function to handle direct camera updates based on player control and cinematic states, ensuring proper camera behavior across different gameplay scenarios. Additional includes and static variables were added to support this functionality.
When the mouse moved after the right stick, the controller's magnetism and autoaim leave the player be (input.mouse_aim_assist, off by default). In lockstep games the autoaim stays, since every machine simulates every shot alike.
Co-authored-by: Cursor <cursoragent@cursor.com>
On the Retroid Pocket Flip2 (kona, kernel 4.19) ART reserves its free-list large object space across 0x754d0000-0x954d0000 at zygote start, covering the fixed Xbox window at 0x80000000, so MAP_FIXED_NOREPLACE fails with EEXIST and the game image never loads.
When the fixed reservation hits EEXIST, munmap exactly the intersection of the requested range with anonymous [anon:dalvik-*] space reservations (idle: those spaces commit lazily from their bottom and this app allocates no large objects) and retry. Nothing changes when the window is already free.
SDL_WaitEvent with NULL event does not consume events, so it never
waits, spins, never pumps, never checks dbus. Use PumpEvents and Delay
instead. This also fixes the hot spin that used to occur here.
Bring main through 6bfd9567, preserving its existing README exactly. All other tracked content equals the independently gated canonical reconciliation. No force push or source changes beyond the verified canonical commits.
Recover transparent geometry submit (+1,285 meaningful code, zero exact losses); reconcile COMMON ownership and Q10 85+EXT1 credit, actions/main data, and separately disclosed denominator corrections. Preserve canonical-only repairs and all held research. C09 is ordinary disclosed cleanup, not a claim of proven scaffolding intent. Clean rebuild, 1,663 tests, parks, audits, provider links and independent EXT1 check pass. Local reconciliation only.