mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-05-11 15:30:35 +00:00
|
Some checks are pending
Canary CI / Release for linux-arm64 (push) Waiting to run
Canary CI / Release for linux-x64 (push) Waiting to run
Canary CI / Release for win-x64 (push) Waiting to run
Canary CI / Release MacOS universal (push) Waiting to run
Canary CI / Post CI Steps (push) Blocked by required conditions
## Description ~~Fixes a fatal CLR crash when `caps` screenshot saving receives an input buffer larger than `0x384000`.~~ ~~Resolves a crash in Tomodachi Life: Living the Dream where saving the pictures to the system's album crashes with 0x80131506.~~ Follow up to #18. This PR adjusts the validation and copy behavior to better match real hardware, and adds logging to make invalid screenshot buffer cases easier to diagnose. Real hardware accepts screenshot buffers with a size greater than or equal to `0x384000`, but only `0x384000` bytes are needed for the 1280x720 RGBA image. This changes screenshot saving to: - reject buffers smaller than `0x384000` - accept buffers equal to or larger than `0x384000` - copy only the first `0x384000` bytes into the 1280x720 bitmap ## Testing Tested with a real Switch NRO using `capssuSaveScreenShotEx0`, `capssuSaveScreenShotEx1`, and `capssuSaveScreenShotEx2`. Observed hardware behavior: ```text 0x384000 => OK 0x384000 - 1 => NullInputBuffer 0x384000 + 1 => OK 0x3C0000 => OK // Tomo life picture size ``` Co-authored-by: yell0wsuit <5692900+yell0wsuit@users.noreply.github.com> Reviewed-on: https://git.ryujinx.app/projects/Ryubing/pulls/44 |
||
|---|---|---|
| .. | ||
| ARMeilleure | ||
| Ryujinx | ||
| Ryujinx.Audio | ||
| Ryujinx.Audio.Backends.Apple | ||
| Ryujinx.Audio.Backends.OpenAL | ||
| Ryujinx.Audio.Backends.SDL3 | ||
| Ryujinx.Audio.Backends.SoundIo | ||
| Ryujinx.BuildValidationTasks | ||
| Ryujinx.Common | ||
| Ryujinx.Cpu | ||
| Ryujinx.Graphics.Device | ||
| Ryujinx.Graphics.GAL | ||
| Ryujinx.Graphics.Gpu | ||
| Ryujinx.Graphics.Host1x | ||
| Ryujinx.Graphics.Nvdec | ||
| Ryujinx.Graphics.Nvdec.FFmpeg | ||
| Ryujinx.Graphics.Nvdec.Vp9 | ||
| Ryujinx.Graphics.OpenGL | ||
| Ryujinx.Graphics.RenderDocApi | ||
| Ryujinx.Graphics.Shader | ||
| Ryujinx.Graphics.Texture | ||
| Ryujinx.Graphics.Vic | ||
| Ryujinx.Graphics.Video | ||
| Ryujinx.Graphics.Vulkan | ||
| Ryujinx.HLE | ||
| Ryujinx.HLE.Generators | ||
| Ryujinx.Horizon | ||
| Ryujinx.Horizon.Common | ||
| Ryujinx.Horizon.Generators | ||
| Ryujinx.Horizon.Kernel.Generators | ||
| Ryujinx.Input | ||
| Ryujinx.Input.SDL3 | ||
| Ryujinx.Memory | ||
| Ryujinx.SDL3.Common | ||
| Ryujinx.ShaderTools | ||
| Ryujinx.Tests | ||
| Ryujinx.Tests.Memory | ||
| Ryujinx.Tests.Unicorn | ||
| Ryujinx.UI.LocaleGenerator | ||
| Spv.Generator | ||