| Age | Commit message (Collapse) | Author |
|
DSPHLE/Zelda: Add bounds check for m_sync_voice_skip_flags in RenderAudio()
|
|
GCMemcardDirectory: Add bounds check for m_save_data
|
|
|
|
IOS/FS: Fix loading savestate while TASing
|
|
The only negative result UsesBlock can return is -1, so this change
doesn't affect anything in practice, but makes the intent a little bit
clearer.
|
|
|
|
When calling CreateDirectory for /wfs, we were passing a UID of 19,
because that is the UID /wfs is supposed to have. However,
CreateDirectory returns AccessDenied if we try to create a directory in
the root using a UID other than 0.
To fix this, let's use UID 0 to create the directory, and then change
the UID and GID afterwards using SetMetadata. This is what the ESCore
constructor does, which is the piece of code that normally creates /wfs.
|
|
When TASing, we savestate not just /tmp but also /. The code that was
added in d35fe1b didn't handle recreating / correctly.
This commit fixes the problem by skipping recreating /, which is fine
since it always exists.
|
|
Fix building on OpenBSD
|
|
NetPlayIndex: Fix regression introduced in #14738
|
|
Core: Fix RAM override setup in IOS.
|
|
DolphinQt: Properly define QtPaths
|
|
This is a correction for 0cab1731d6 (part of #14665), where it was
overlooked that the condition to enable the RAM override was flawed: if
the user had enabled the emulated memory size override in Dolphin, but
the running game did not define a simulated memory size greater than the
retail memory size, the RAM override in IOS was wrongly misconfigured,
causing issues with Wii games.
Test plan:
- Launch Dolphin.
- In the **Settings > Advanced** section, tick the **Enable Emulated
Memory Size Override** check box, and set the maximum memory size for
both **MEM1** and **MEM2** (i.e. 64 MiB and 128 MiB respectively).
- Play any Wii game (e.g. _Mario Kart Wii_ (RMCE01)).
**Without** the patch, the emulator will hit an invalid read from
`0x83FEE78C` at `0x8019FE6C`:
<img alt="Invalid read when starting Wii game after having enabled the emulated memory override in Dolphin" title="Invalid read when starting Wii game after having enabled the emulated memory override in Dolphin" src="https://github.com/user-attachments/assets/1777485e-a421-4303-8d3d-dd49f1aaa9bf" />
**With** the patch, the emulator can execute the game as usual.
|
|
For some reason, #14738 removed the headers and allowed return codes which broke using the Netplay index for users.
Also, bools converted to a string using std::to_string would become 0/1, while fmt::format by default turns them into false/true, which also broke the index.
|
|
- OpenBSD does not have SO_NOSIGPIPE
- Enable some socket related code in AMMediaboard.cpp on OpenBSD
|
|
The RA_PROGRESS_ENABLED flag was added but not currently being invoked, this
makes sure it is checked before popping up progress messages.
|
|
This reverts commit e4349ae1791dec688d91c6813eeadf049a8c73ec.
The 0x prefix is included in the characters count (unlike e.g. in Rust
where there is no 0x prefix), so that commit was wrong. Sorry about
that!
Fixes regression introduced in #14842.
|
|
Common: Add Android to GetNetplayDolphinVer
|
|
Optimize vertex_shader_uid_data down to 28 bytes
|
|
Core: Improve error message on empty dff
|
|
VideoCommon: Use correct size for PE token
|
|
MemArenaDarwin: Pass the MAP_MEM_VM_SHARE flag to mach_make_memory_entry_64
|
|
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
|
|
SDLGamepad: Add Misc 2 through 6
|
|
SDLGamepad: Support multiple touchpads
|
|
This also lets us remove the comment, which is now unnecessary.
|
|
This token is a u16, not a u24, so let’s not display unnecessary 00
padding.
|
|
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.
|
|
rendering
|
|
This fixes cross-compilation on Windows, where windeplotqt would previously always grab the host's DLLs instead of the target's.
|
|
GameList: Enable word wrap in grid view
|
|
Core: Fix controllers resetting when starting input recording
|
|
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)
|
|
Android: Make vibration length variable
|
|
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.
|
|
|
|
Auto assign wii controllers in netplay
|
|
This makes Android players show up as "Android" instead of "Lin".
(This is only visible in DolphinQt, not in the Android GUI.)
I'm also unabbreviating all the existing operating system names:
* Win -> Windows
* Mac -> macOS
* Lin -> Linux
|
|
Require VS2026; Update Redist WinUpdater Pulls
|
|
MMU: Fix non-integral HostTryRead not passing space
|
|
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
|
|
Randomly spotted. Didn't test, but it was obviously wrong.
Fixes regression from 8a97ce9124c94f868b078d67208f81795f259323.
|
|
Having Qt query a setting for every symbol isn't efficient.
Fixes regression introduced by #13216.
|
|
|
|
|
|
|
|
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.
|
|
|
|
Reported by @RickdeJager.
|