| Age | Commit message (Collapse) | Author |
|
Prevent path traversal in NANDImporter::ProcessEntry
|
|
The conditions were in reverse order (maybe someone was reading the
PowerPC manual and forgot about IBM's bit numbering), and additionally
the two conditions for unsigned comparison were wrong.
Fixes https://bugs.dolphin-emu.org/issues/14054.
|
|
Reported by MrSynAckster. A specifically crafted NAND dump could use
path traversal to overwrite files on the host file system.
This is also an accuracy fix for importing NAND dumps that contain
file names that Dolphin is supposed to escape. Some games' save files
are affected.
|
|
GetPath has two special cases where it doesn't add a slash.
The first is for the root entry's special name "/". The next commit will
be neater if we can skip calling GetPath for the root entry, because '/'
is one of the characters that Common::EscapeFileName replaces with an
escape sequence. Let's check for entry number 0 instead.
The second is for parent paths that already end in a slash. There's no
actual need to check for this - double slashes are harmless, and for
comparison, NANDImporter::ExtractCertificates already appends slashes
without checking if there already is one. Let's remove this check.
|
|
If CopyFromEmuSwapped considers the address to be invalid, nothing will
be written to the passed-in pointer.
|
|
VideoCommon: Added option for showcasing internal resolution
|
|
|
|
|
|
|
|
Add screen crop feature
|
|
|
|
|
|
De-duplicates the two inline implementations and prepares it for use from Android.
|
|
Otherwise IOCTL_SO_ACCEPT is very noisy until a client connects.
|
|
Also incremented STATE_VERSION.
|
|
IOS and IPL reject non-32byte aligned sections
|
|
If the last write to a register comes before the last read of it,
we can write the register to ppcState after the last write instead of
after the last read. This will hopefully help spread out m_ppc_state
writes across a code block, improving pipelining. Also, if there's a
conditional branch that's after the last write but before the last read,
instead of needing to emit one m_ppc_state write on each side of the
branch, we now only need to emit one m_ppc_state write.
A note about the changes made to stmw and mfcr: These instructions don't
write to any GPRs or CRs respectively – they only read from them.
With this commit, there are no longer any cases where registers get
written back to m_ppc_state after an instruction that just reads from
them, so we can get rid of all STP logic from these two instructions.
lmw still needs its STP logic, since that one does write to registers.
|
|
DolphinQt/GCMemcardManager: Set ScrollMode::ScrollPerPixel to make scrolling behavior less annoying.
|
|
DiscIO: Add extra IsValid checks for VolumeWAD::m_tmd
|
|
JitArm64: Fix DR check in MSRUpdated
|
|
Dentomologist/msghandler_use_more_suitable_log_levels
MsgHandler: Use LogLevel matching MsgType for alerts
|
|
|
|
DoAllPlayersHaveSameGame returns correct result instead of always true
|
|
Unconditionally lock in ControllerInterface::UpdateInput
|
|
|
|
When calling `ShowMessageAlert` with a given `MsgType`, log the alert
with a `LogLevel` matching the `MsgType` instead of always using
`LogLevel::LERROR`.
|
|
SendGameStatus() was writing SyncIdentifierComparison as a u32 but the server reads it as a u8 enum, so the server always gets 0 (SameGame). This bug was introduced in commit 66276ac.
|
|
AutoUpdateChecker: Fix Edge Cases
|
|
Fixup #14565 (compilation with `-DENABLE_CUBEB=OFF`)
|
|
|
|
Remove the [[maybe_unused]] annotation from various parameters that are
unconditionally unused and comment out their names instead. This makes
it unambiguous that the variables are unused, while making the remaining
[[maybe_unused]] annotations more reliable indicators that those
variables are in fact used in some contexts.
These parameters are mostly in overridden functions where the override
doesn't need that particular variable.
|
|
TBZ takes the index of the bit to test, not a LogicalImm.
|
|
Config: Add Edit button to DSU server menu
|
|
Signed-off-by: Ethan Uppal <113849268+ethanuppal@users.noreply.github.com>
|
|
|
|
Source/Core: Replace `find(x) != npos` with `contains(x)`
|
|
QtUtils: Add ShowFileInFolder function and make GameList right-click menu actions use it.
|
|
HW/Triforce/MarioKartGP: Tweak the steering wheel FFB device responses to prevent "Wheel Error" screens.
|
|
GameINI: Add 60 FPS code for Pikmin Squared
|
|
prevent "Wheel Error" screens.
|
|
StringUtil: Make UTF16ToUTF8 and UTF8ToUTF16 use custom encoding/decoding implementation.
|
|
Make `s_is_adapter_wanted` and the elements of `s_config_rumble_enabled`
atomic.
The CPU thread reads `s_is_adapter_wanted` and `s_config_rumble_enabled`
in `Output`, while the host thread writes to them in `RefreshConfig`.
The simplest way to trigger this race is to close the `Settings` window
while playing a game with the adapter active.
|
|
Dentomologist/stereomode_unabbreviate_variable_names
StereoMode: Unabbreviate enum names
|
|
memory range
The 0x8000 alignment in DirectoryBlob is needed for Wii disc group encryption,
but for GC/Triforce it inflates file offsets unnecessarily. Use 0x20 alignment
for Triforce (matching original disc layout) while keeping 0x8000 for GC due
to DTK audio streaming requirements.
On Triforce games with many files, the inflated offsets can land in the
AMMediaboard DIMM memory range (0x1F000000-0x1F800000). Reads from that
region return SRAM data instead of disc data, causing the game to hang.
Skip the DIMM range when assigning per-file data offsets if any portion of
the file would overlap [0x1F000000, 0x1F800000).
|
|
|
|
GCAdapter: Automatically start and stop thread
|
|
actions use it.
|
|
|
|
|
|
Rename HK_TOGGLE_STEREO_TAB to HK_TOGGLE_STEREO_TOP_AND_BOTTOM.
|