Commit graph

27049 commits

Author SHA1 Message Date
Zephyron
e11c6c03ec
core: Add support for 10GB and 12GB memory configurations
- Add Memory_10Gb and Memory_12Gb to MemoryLayout enum
- Update memory layout settings to support up to 12GB
- Add SMC enums for 10GB and 12GB memory sizes and arrangements
- Increase MainMemorySizeMax from 8GB to 12GB
- Add memory pool size calculations for 10GB and 12GB configurations
- Update UI translations for new memory options
2025-01-04 17:33:22 +10:00
Zephyron
27d662ad0e
submodules(vcpkg): Update To Latest Commit 2025-01-03 14:38:39 +10:00
Zephyron
ab82a115f5
CMake(SDL+QT): Remove Hard Coded Version Requirement 2025-01-03 14:27:12 +10:00
Zephyron
18eb054ab6
vcpkg: Update builtin-baseline
- Fixes Missing VS 2019 Build Tools
- Allows Compiliation For MSVC Using Newer VCPKG
2025-01-03 14:24:31 +10:00
Zephyron
b685d5701d
Audio Core: Add support tags for compressor stats and volume reset
Added two new audio feature support tags with their corresponding revision
numbers:
- AudioCompressorStatistics (rev 16): For tracking compressor statistics
- AudioVolumeResetSupport (rev 17): For volume reset functionality

These features align with the documented Nintendo Switch audio service
capabilities and maintain compatibility with the existing feature support
system.
2025-01-03 13:34:14 +10:00
Zephyron
eb2a666a69
buffer_cache: Fix storage buffer memory validation and size detection
Fixes the StorageBufferBinding function to properly handle memory validation
and size detection. Key changes include:

- Fix ReadBlock usage to properly handle void return values
- Implement safer memory validation using byte-level reads
- Improve size detection logic for storage buffers
- Fix NVN buffer size reading
- Add proper bounds checking for device memory addresses
- Add better error logging for invalid conditions

This addresses the "Failed to find storage buffer for cbuf index 0" errors
by implementing more robust memory validation and size detection. The changes
ensure proper handling of invalid memory addresses and prevent crashes from
accessing out-of-bounds memory.
2025-01-02 18:03:47 +10:00
Zephyron
167a9e1a5b
arm: Skip duplicate consecutive addresses in backtrace output
Adds logic to track and skip duplicate consecutive addresses when logging
backtraces. This improves log readability by removing redundant entries
that point to the same address in sequence.
2025-01-02 17:25:36 +10:00
Zephyron
7dc72a0e95
impl(Multiplayer): Switched API To Enable Multiplayer 2025-01-02 16:40:28 +10:00
Zephyron
822152c538
fix(CMake): Remove /DEBUG Flag From Release Builds 2025-01-02 16:39:58 +10:00
Zephyron
733d648b5a
vulkan: Update To 1.4.304 2025-01-02 16:39:09 +10:00
Zephyron
1cbcd142fa
video_core: Enforce safe memory reads for compute dispatch
- Modify DmaPusher to use safe memory reads when handling compute
  operations at High GPU accuracy
- Prevent potential memory corruption issues that could lead to
  invalid dispatch parameters
- Previously, unsafe reads could result in corrupted launch_description
  data in KeplerCompute::ProcessLaunch, causing invalid vkCmdDispatch
  calls
- By enforcing safe reads specifically for compute operations, we
  maintain performance for other GPU tasks while ensuring compute
  dispatch stability

This change requires >= High GPU accuracy level to take effect.
2025-01-02 16:38:18 +10:00
Zephyron
749d083197
shader_recompiler: Fix ISBERD instruction implementation
- Simplify ISBERD instruction to handle register-to-register moves
- Remove incorrect CompositeConstruct usage
- Replace with direct register value passing
- Fix compilation errors in internal stage buffer handling
2024-12-31 23:22:54 +10:00
Zephyron
2b5082b30d
shader_recompiler: Use FPRecip in FSWZADD implementation
Simplifies the negative reciprocal calculation in FSWZADD by using the
dedicated FPRecip operation instead of manually constructing a division.
This change:

- Replaces FPDiv(Imm32(f32(1.0f)), src_b) with FPRecip(src_b)
- Results in more efficient code for calculating 1.0/x
- Fixes build errors from undefined IR emitter methods
2024-12-31 22:54:55 +10:00
Zephyron
6f160628c0
shader_recompiler: Fix method names in FSWZADD implementation
Fixes incorrect method names in the floating point swizzled add implementation:
- FNeg -> FPNeg
- FDiv -> FPDiv
- FImm32(1.0f) -> Imm32(ir.f32(1.0f))

These changes align with the correct IR emitter interface naming conventions,
where floating-point operations use the 'FP' prefix and immediate values are
properly constructed using f32().
2024-12-31 22:43:09 +10:00
Zephyron
5d529baafb
shader_recompiler: Implement ISBERD instruction
Implements the Internal Stage Buffer Entry Read (ISBERD) instruction in the
Maxwell shader recompiler. This replaces the previous stubbed implementation
with actual buffer reading functionality.

The implementation:
- Validates unsupported features (skew, o, mode, shift)
- Performs buffer read using IR::InternalStageBufferRead
- Stores the read value to the destination register

This removes the "(STUBBED) called" warning messages that were previously
being logged during shader compilation.
2024-12-31 21:33:37 +10:00
Zephyron
d7df623485
shader_recompiler: Implement ISBERD instruction modes and shifts
Implements the ISBERD (Internal Stage Buffer Entry Read) instruction's
mode and shift options that were previously throwing NotImplemented
exceptions. This includes:

- Patch mode for reading patch data
- Prim mode for reading primitive data
- Attr mode for reading attribute data
- U16 shift for 16-bit unsigned values
- B32 shift for 32-bit values

The implementation follows Maxwell's ISA specification for handling
different buffer read modes and data shifts.
2024-12-31 21:30:58 +10:00
Zephyron
fd74ac4473
api_version: Update constants for HOS 19.0.1
Updates version constants to match Nintendo Switch firmware 19.0.1:
- HOS version numbers (19.0.1)
- Version hash
- Display version string
- Display title string
2024-12-31 18:45:36 +10:00
Zephyron
a9f539e193
audio_core: Add comprehensive audio feature support tags
Added new feature support tags to track audio functionality across firmware
versions. Changes include:

- Added Audio Out/In Auto buffer support tags (3.0.0+)
- Added Final Output Recorder features including work buffer (3.0.0+, 9.0.0+)
- Added Audio Renderer features like manual execution and voice drop
- Added Audio Device features including notifications and auto volume
- Added Hardware Opus decoder features including large frame support
- Added System Audio features like master volume and hearing protection

This provides more complete feature detection for audio functionality
introduced in firmware versions 3.0.0 through 19.0.1.
2024-12-31 18:42:49 +10:00
Zephyron
7e044ac1ce
dist: Add Citron branding assets
- Add Citron logo in multiple formats:
  - .bmp for legacy support
  - .ico for Windows applications
  - .svg for scalable graphics
2024-12-31 17:37:04 +10:00
Zephyron
468ace6b0b
core: Update copyright headers
- Update copyright headers to include Citron Homebrew Project
- Add 2025 to copyright years
2024-12-31 17:36:08 +10:00
Zephyron
c972c5129d
core: Fix telemetry ID personalization array size
- The personalization array in GenerateTelemetryId() was too small (18 bytes)
  for the string "citron Telemetry ID" which requires 20 bytes including the
  null terminator
- Increased the array size to 20 to properly accommodate the full string
2024-12-31 17:33:34 +10:00
Zephyron
b3facaa6bb
chore: update project references and add Citron copyright
- Replaced all references to the old project name with Citron.
- Added Citron copyright information alongside existing notices in all files.
2024-12-31 17:07:49 +10:00
Zephyron
6778aa8ec8
chore: update project branding to Citron 2024-12-31 16:22:24 +10:00
Zephyron
9427e27e24
chore: update project branding to citron 2024-12-31 16:19:25 +10:00
Zephyron
b35ae725d2 Update .gitmodules
Signed-off-by: Zephyron <zephyron@citron-emu.org>
2024-12-31 06:03:48 +00:00
yuzubot
537296095a "Merge Tagged PR 13018" 2024-03-04 13:02:54 +00:00
yuzubot
2ddac7b02b "Merge Tagged PR 13178" 2024-03-04 13:02:53 +00:00
Narr the Reg
15e6e48bef
Merge pull request #13198 from zhaobot/tx-update-20240301020652
Update translations (2024-03-01)
2024-03-01 01:57:00 -06:00
Pengfei Zhu
2f57c5a0e9
Revert arbaic translation 2024-03-01 15:20:53 +08:00
Pengfei Zhu
338e088b9d
Remove trailing whitespaces 2024-03-01 14:19:02 +08:00
The yuzu Community
56c9107d08 Update translations (2024-03-01) 2024-03-01 03:12:19 +00:00
liamwhite
dc94882c90
Merge pull request #13135 from german77/hid-interface
service: hid: Migrate HidServer to new IPC
2024-02-27 12:26:26 -05:00
liamwhite
30567a5909
Merge pull request #13175 from liamwhite/asan
general: fix asan errors
2024-02-27 09:42:59 -05:00
liamwhite
f1b1530249
Merge pull request #13171 from liamwhite/fake-address
texture_cache: do not track invalid addresses
2024-02-27 09:42:46 -05:00
liamwhite
6948ac8c16
general: workarounds for SMMU syncing issues (#12749) 2024-02-27 15:42:15 +01:00
liamwhite
b2e129eaa5
vk_rasterizer: flip scissor y on lower left origin mode (#13122) 2024-02-27 15:40:33 +01:00
liamwhite
1de37306a5
buffer_cache: avoid overflow in usage tracker (#13166) 2024-02-27 15:39:11 +01:00
liamwhite
9bc85dda5f
texture_cache: use two-pass collection for costly load resources (#13096) 2024-02-27 15:38:14 +01:00
Liam
c7174d5f61 general: fix asan errors 2024-02-26 19:28:49 -05:00
Narr the Reg
1bec420695
Merge pull request #13172 from liamwhite/gl-streams
renderer_opengl: declare geometry stream support in profile
2024-02-26 11:51:25 -06:00
liamwhite
79edad2533
Merge pull request #13159 from liamwhite/web-error
core: enable error applet, add stubs for web applet
2024-02-26 12:44:55 -05:00
liamwhite
ce62fa6f7b
Merge pull request #13149 from liamwhite/per-channel-program
video_core: make gpu context aware of rendering program
2024-02-26 12:44:46 -05:00
Liam
a0e254e7c4 renderer_opengl: declare geometry stream support in profile 2024-02-26 11:18:30 -05:00
Liam
25c3bbba0e settings: remove global override for smash on amdvlk 2024-02-26 11:16:18 -05:00
Liam
d66ca8b731 video_core: make gpu context aware of rendering program 2024-02-26 11:16:14 -05:00
Liam
fd9ed54f27 texture_cache: do not track invalid addresses 2024-02-26 10:26:27 -05:00
liamwhite
f9bfdb1555
Merge pull request #13164 from merryhime/reset-submodules
tools: Add reset submodules script
2024-02-25 14:01:11 -05:00
liamwhite
15831b19a3
Merge pull request #13163 from german77/ring
core: hid: hid_core doesn't have access to LIBUSB
2024-02-25 14:01:05 -05:00
liamwhite
8416d1c028
Merge pull request #13154 from german77/vibration-filter
core: hid: Reintroduce vibration filter
2024-02-25 14:00:59 -05:00
Merry
4d5d37ae61 tools: Add reset submodules script 2024-02-25 17:17:01 +00:00