Commit Graph
38975 Commits
Author SHA1 Message Date
Scott MansellandGitHub debe8e9fd9 Merge pull request #14789 from phire/optimise_vs_uid
Optimize vertex_shader_uid_data down to 28 bytes
2026-09-06 14:37:57 +12:00
Scott MansellandGitHub bd389f6b00 Merge pull request #14843 from linkmauve/better-dff-error-message
Core: Improve error message on empty dff
2026-09-06 12:06:31 +12:00
Scott MansellandGitHub ef0038dded Merge pull request #14842 from linkmauve/pe-token-2-bytes
VideoCommon: Use correct size for PE token
2026-09-06 12:06:17 +12:00
JosJuiceandGitHub 7f6eb621ad Merge pull request #14838 from OatmealDome/mac-memory-increase-fail
MemArenaDarwin: Pass the MAP_MEM_VM_SHARE flag to mach_make_memory_entry_64
2026-09-05 12:18:19 +02:00
Link Mauve f80a78869a HW/EXI: Don’t dereference one item past end of array
Dolphin would previously crash while accessing &buffer[got], as if we
were trying to access that element instead of just obtaining a pointer
to it.  The proper solution is to obtain a pointer to the first element,
and only add the offset we want to get the range.

Here is the printed message:
/usr/include/c++/16/array:210: constexpr std::array<_Tp, _Nm>::value_type& std::array<_Tp, _Nm>::operator[](size_type) [with _Tp = char; long unsigned int _Nm = 128; reference = char&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.

The stack trace originates from:
Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp:139
2026-09-04 15:37:36 +02:00
JosJuiceandGitHub ca8c6ee45e Merge pull request #14830 from JoshuaVandaele/sdl-miscs
SDLGamepad: Add Misc 2 through 6
2026-09-03 21:28:31 +02:00
JosJuiceandGitHub 5ff90a0471 Merge pull request #14686 from JoshuaVandaele/sdl-touchpads
SDLGamepad: Support multiple touchpads
2026-09-03 21:28:20 +02:00
Link Mauve cdb1744994 Core: Improve error message on empty dff
This also lets us remove the comment, which is now unnecessary.
2026-09-03 11:51:35 +02:00
Link Mauve e4349ae179 VideoCommon: Use correct size for PE token
This token is a u16, not a u24, so let’s not display unnecessary 00
padding.
2026-09-03 11:49:13 +02:00
OatmealDome 27804b4e67 MemArenaDarwin: Pass the MAP_MEM_VM_SHARE flag to mach_make_memory_entry_64
Large anonymous mappings are split into 128 MB chunks. Without MAP_MEM_VM_SHARE,
mach_make_memory_entry_64 will only return an entry spanning the first chunk.
Attempting to map through that entry will fail if it extends beyond the 128 MB
boundary, which can happen when the sizes of MEM1/MEM2 are overridden.
2026-09-01 22:25:12 -04:00
iwubcode 9263f6b7c6 VideoCommon: separate out reinterpret and palette texture creation from rendering 2026-08-31 19:51:30 -05:00
DentomologistandGitHub 1fd7f35218 Merge pull request #14818 from JoshuaVandaele/gridview-title
GameList: Enable word wrap in grid view
2026-08-29 21:51:10 -07:00
JosJuiceandGitHub dfe15b9e24 Merge pull request #14824 from JosJuice/save-controller-to-dtm
Core: Fix controllers resetting when starting input recording
2026-08-29 11:20:54 +02:00
JosJuiceandGitHub 30c9669d7b Merge pull request #14750 from tom-pratt/netplay-controller-mapping
Android: Netplay controller mapping
2026-08-29 11:19:47 +02:00
JosJuiceandGitHub 9b50b88d2e Merge pull request #14829 from TorresOwO/fix-skylanders-crash-13956
Android: Fix Crash when loading Skylanders file
2026-08-29 11:15:38 +02:00
Tom Pratt 0bca7edf20 Fix netplay crash on pre API 31 devices
TypedArray doesn't implement AutoCloseable on older devices so .use{} caused a crash.

It turned out the special handling for background colours was unnecessary anyway.
2026-08-28 14:11:50 +02:00
Joshua Vandaële b572e4ca5a SDLGamepad: Add Misc 2 through 6
SDL 3 has more misc buttons for "additional controller buttons" (e.g. left/right trigger clicks on a GameCube controller, or for the second touchpad click on the Steam Controller) which use these additional named Misc buttons. Taken from [SDL_GamepadButton](https://wiki.libsdl.org/SDL3/SDL_GamepadButton)
2026-08-28 07:37:18 +02:00
JMC47andGitHub 4f8af23db5 Merge pull request #14718 from JosJuice/android-vibration-length
Android: Make vibration length variable
2026-08-27 12:48:49 -04:00
Sergio Torres b1e360e1e4 Android: Use OpenDocument for NFC figures and fix crash (Fixes #13956)
- Switch from ActivityResultContracts.GetContent() to OpenDocument()
  which restores ACTION_OPEN_DOCUMENT behavior, granting write access
  to file descriptors opened in C++ via ContentHandler.openFd().
- Replace unsafe force-unwraps (!!) in EmulationActivity with null checks.
2026-08-26 00:49:43 +02:00
Tom Pratt e6f5516ad7 Android controller mapping UI
UI for assigning netplay players to gamecube ports and wii remotes.
2026-08-24 19:36:00 +02:00
Tom Pratt df4c394fc3 Netplay PlayerTable fixes
- Improve the column measurement logic so it updates the column width when text changes.
- Use matchParentSize on the clickable target in OutlinedBox so that it is clickable when the OutlinedBox contains contents with dynamic height.
2026-08-24 19:36:00 +02:00
Tom Pratt 3236c634d9 Add functionality to get and set controller mappings in Android 2026-08-24 19:36:00 +02:00
JosJuice dcf9ca05db Core: Fix controllers resetting when starting input recording
200e26c added controller handling to MovieConfigLayerLoader's
LoadFromDTM but not SaveToDTM. This caused a regression. When starting a
new input recording, MovieManager::BeginRecordingInput calls SaveToDTM,
which doesn't set the controller values in the DTM header to anything.
Then it loads the newly created movie config layer, causing LoadFromDTM
to be called, which in turn causes zeroed out controller values to be
loaded from the DTM header. This leaves the player with all controllers
set to None, making it impossible to control the game.

To fix this, let's move the saving of controllers from
MovieManager::SaveRecording to ConfigLoaders::SaveToDTM.
2026-08-24 18:45:27 +02:00
DacoTaco a8cc19decc DolReader: correctly save section index of ancast 2026-08-24 15:16:42 +02:00
JMC47andGitHub 123d32248e Merge pull request #14736 from tom-pratt/wii-controller-netplay
Auto assign wii controllers in netplay
2026-08-23 12:58:47 -04:00
JosJuiceandGitHub 474fa6e6f2 Merge pull request #14742 from Simonx22/android/settings-search-next
Android: Add global settings search
2026-08-23 12:19:09 +02:00
OatmealDomeandGitHub 38e70fda65 Merge pull request #14800 from dreamsyntax/winupdater-vcredist
Require VS2026; Update Redist WinUpdater Pulls
2026-08-20 22:02:49 -04:00
Admiral H. CurtissandGitHub 46e38d28fa Merge pull request #14821 from SuperSamus/mmu-try-read-non-integral-fixup
MMU: Fix non-integral HostTryRead not passing space
2026-08-19 23:26:06 +02:00
Martino Fontana 591aa07b93 MMU.h: Remove useless consts in declarations
Since the issue solved by the previous commit was spotted with clang-tidy, let's also fix its other complaints.
https://clang.llvm.org/extra/clang-tidy/checks/readability/avoid-const-params-in-decls.html
2026-08-19 21:14:58 +02:00
Martino Fontana 2944fd26e3 MMU: Fix non-integral HostTryRead not passing space
Randomly spotted. Didn't test, but it was obviously wrong.
Fixes regression from 8a97ce9124.
2026-08-19 21:12:10 +02:00
Martino Fontana e407f178ba Debugger: Fix symbol search speed
Having Qt query a setting for every symbol isn't efficient.
Fixes regression introduced by #13216.
2026-08-19 10:21:48 +02:00
DacoTaco aabde19114 DolReader: Don't error on dol section alignment on Wii 2026-08-18 23:03:17 +02:00
Joshua Vandaële fc69f9231a GameList: Enable word wrap in grid view 2026-08-16 16:11:25 +02:00
JosJuiceandGitHub a9c36ee2ef Merge pull request #14735 from tom-pratt/dual-core-warning
Android: Dual core warning when hosting netplay
2026-08-16 11:05:39 +02:00
Dr. Dystopia f65180fa91 DSP: Fix Off-by-one clamping error 2026-08-13 08:41:37 +02:00
OatmealDomeandGitHub 4ff214cdd2 Merge pull request #14808 from phire/ZeldaHLE_overflow
Fix stack overflow in ZeldaHLE
2026-08-10 21:45:52 -04:00
Scott Mansell 53cd8ffa3f Fix stack overflow in ZeldaHLE
Independently spotted by both @Dentomologist and me while reviewing
PR #14805
The previous limit was correct for valid VPBs, but an invalid VPB
controlled by a malicious game could contain a non-fractional value
in current_pos_frac, which would allow writing an extra 15 samples
(30 bytes) into the stack. With AFC encoding, this is rounded up to 16
samples, but with much less control over which bytes are written.

Maybe we should be doing some validation, or bounds checking, but I'm
pretty sure this issue was copied from the original ucode, and we kinda
want to stay compatible.

The simpler fix is to just increase the size of raw_input_samples.
I've checked other code paths, and 0x514 samples seems to be the limit.
2026-08-11 12:30:54 +12:00
Joshua Vandaële 7da0baae93 SDLGamepad: Support multiple touchpads 2026-08-10 22:41:40 +02:00
Tillmann Karras ce85da6b96 DSPHLE/Zelda: prevent out-of-bounds stack read
Reported by @RickdeJager.
2026-08-09 15:56:21 +01:00
Scott MansellandGitHub 216ffb4581 Merge pull request #14803 from Andy1210/fix/bbox-memorybarrier-mainline
VideoBackends/OGL: Don't call glMemoryBarrier without ARB_shader_image_load_store
2026-08-09 15:12:01 +12:00
JosJuiceandGitHub cd3ea81462 Merge pull request #14767 from JosJuice/state-nand-open-file
IOS/FS: Fix loading savestate when files are open
2026-08-08 13:02:54 +02:00
DentomologistandGitHub f42c349c32 Merge pull request #14802 from phire/fallthrough_warnings
Enable Fallthrough warnings
2026-08-08 01:21:25 -07:00
Scott Mansell 02bffba368 Enable implicit fallthrough warnings for gcc/clang 2026-08-08 13:18:32 +12:00
Scott Mansell a6cf98332b Fix fallthough in CodeView/MemoryView widgets
This slightly changes the behaviour, but I think this is more correct.
2026-08-08 13:18:32 +12:00
Scott Mansell 7de31b291e Fix missing break in BluetoothRealDevice
Minor behaviour change, prevents an erroreous error log
2026-08-08 13:16:57 +12:00
Scott Mansell ca33c38afd Add missing breaks (no behaviour change) 2026-08-08 13:14:06 +12:00
Andy1210 21ace56160 VideoBackends/OGL: Don't call glMemoryBarrier without ARB_shader_image_load_store
glMemoryBarrier comes from ARB_shader_image_load_store, so on a desktop context
below GL 4.2 the pointer is null. bSupportsBBox is set from
bSupportsFragmentStoresAndAtomics, which such a driver can still have, so saving
a state reads the bounding box and calls a null pointer.

UsePersistentStagingBuffers() in OGLTexture.cpp already guards the same call with
bSupportsImageLoadStore.
2026-08-07 17:09:46 +02:00
Scott Mansell 1c4208e1fb Add fallthroughs to OpenGL InitExtentionList 2026-08-07 20:41:59 +12:00
Scott Mansell 4a10a9c634 Add fallthroughs to GetMurmurHash3 2026-08-07 19:27:41 +12:00
Scott Mansell e5eabd08f5 Optimize vertex_shader_uid_data down to 28 bytes
This started as a fixing a misalignment issue, but I got carried away.
Was originally 41 bytes (overflowing it's expected 40 bytes by 1 bit).

Now it's 27 bytes plus 8 bits of padding (ready for future expansion).

The savings come from:
 - Removing UV usage from components, it can be reconstructed from
   texcoord_elem_count (saved 8 bits)
 - Removed the 8 unused bits from texMtxInfo_n_projection (saved 8 bits)
 - Removing unused bit from from start of components (saved 1 bit)
 - Removed extra bit from inputform, texgentype and sourcerow
 - packed texMtxInfo_n_projection and texcoord_elem_count back into
   the per texgen info space freed up above. (saved 24 bits)
 - Overlayed postMtx index and Emboss mode shifts into a union based on
   texgentype (saved 56 bits)
 - Move to a single-bit union tag, freeing up an extra bit for regular
   texgens.
 - Move PotMtx normalize into the freed up space (saved 8 bits)

Total savings: 105 bits of data

EDIT: Even worse, MSVC wasn't respecting pack(1) for bitfields at all,
      so on windows this struct was actually quite a bit larger.
      Something like 80 bytes, if not more.

      Fixed this by dropping the size of any enums used in these
      bit structs to u8. Our Common::BitField allows for the underlying
      type to be explicitly specified to something larger.

      msvc's bitfield packing appears to be completely braindead, can't
      mix sizes at all.
2026-08-07 18:42:52 +12:00