Commit Graph

132 Commits

Author SHA1 Message Date
Henrik Rydgård
5926886c0c Some include cleanup, delete some obsolete code 2024-07-25 14:52:41 +02:00
Henrik Rydgård
c332d564db IRInterpreter: Cache the MIPSState pointer in a local, faster address check 2024-05-10 23:21:51 +02:00
Henrik Rydgård
70ae4a35c1 Fix faulty formula for block transfer size-check. 2024-05-10 13:50:49 +02:00
Henrik Rydgård
0b91aa50ee Improve memory safety, add bugfix to little-used sysclib functions 2024-05-05 14:19:49 +02:00
Henrik Rydgård
c004bea5e4 Use memchr in IsValidNullTerminatedString 2024-05-05 12:23:36 +02:00
Henrik Rydgård
85f8fd0bdb Safety fix for GetCharPointer
Uses IsValidNullTerminatedString from #19103 by Kethen
2024-05-05 12:09:08 +02:00
Katharine Chui
47c7fab928 optimize Memory::IsValidNullTerminatedString 2024-05-03 21:00:26 +08:00
Katharine Chui
b570cacd90 add Memory::IsValidNullTerminatedString 2024-05-01 22:58:01 +08:00
Ethan O'Brien
8426b35a80 Cleanup emscripten libretro build target 2023-08-12 14:38:35 -05:00
Unknown W. Brackets
9cebfc31b3 Debugger: Avoid unaligned reads in expressions.
Potentially, a watch or break condition could crash if it was unaligned
between mirrors.  This might happen if it's not the condition you wanted,
especially.  Play it safe.
2023-04-12 01:14:30 -07:00
Henrik Rydgård
e1a48d74c4 A bit more GetPointer cleanup.
Probably not worth it for performance reasons, but some semantic cleanup
is good, especially the accidental GetPointer -> writable casts without
using GetPointerWrite.

Using Unchecked on already checked pointers, or when we'd crash anyway
if it returned nullptr, is good for clarity.
2023-01-10 12:13:47 +01:00
Henrik Rydgård
91b7bf986e Can do an unchecked GetPointer here 2023-01-01 20:48:03 +01:00
Henrik Rydgård
a4d3e0ead8
Add range checks in replaced memcpy/memset functions. (#16693)
* Add range checks in replaced memcpy/memset functions.

Keep seeing especially Replace_memcpy as a semi-rare crash in the
reports. Hopefully this will take care of it, though if games hit this,
they're probably on their way to failing somehow anyway.

* Alternate approach, correctly causing memory exceptions if not ignoring
2023-01-01 18:25:40 +00:00
Henrik Rydgård
65c016d154 Fix dialog rendering (PPGe). Fixes #15954
Was caused by 867eb99 , part of #15950 .
2022-09-04 00:42:14 +02:00
Unknown W. Brackets
ccd4e92184 Kernel: Use PSPPointer for status objects.
Code makes more sense when reading ->size rather than offset 0.
2022-09-03 10:44:12 -07:00
Unknown W. Brackets
3a372aa615 HLE: Remove misc usage of WriteStruct().
Prefer PSPPointer and notifying.
2022-09-03 10:44:11 -07:00
Henrik Rydgård
e6403d7157 Split GetPointer into two versions, to help with const correctness 2022-07-24 13:26:19 +02:00
Unknown W. Brackets
2479d52202 Global: Reduce includes of common headers.
In many places, string, map, or Common.h were included but not needed.
2022-01-30 16:35:33 -08:00
Unknown W. Brackets
32ea8734fb MemMap: Cleanup memory mirror pointers. 2021-04-23 22:43:21 -07:00
Unknown W. Brackets
744d17e13c Core: Correct ValidSize outside scratchpad.
And simplify all the scratchpad valid checks.
2021-04-21 19:32:22 -07:00
Unknown W. Brackets
124774fecb Debugger: Provide memory mapping ranges.
Most of these are entirely static, but introspection is good for APIs.
2021-04-04 21:27:30 -07:00
Unknown W. Brackets
bab9581901 Core: Unbreak ValidSize limits.
Broken in bdd2029.
2021-03-28 19:42:29 -07:00
aliaspider
9a3e5879bb Global: Correct many endian types and casts. 2021-02-18 22:25:24 -08:00
Henrik Rydgård
5ed5947804
Merge pull request #13943 from unknownbrackets/dialog
Dialog: Simulate volatile memory lock behavior
2021-02-15 16:47:06 +01:00
Gleb Mazovetskiy
0fb42e07a6 CMake: Rename USE_ADDRESS_SANITIZER to USE_ASAN
For consistency with USE_UBSAN
2021-01-29 23:10:22 +00:00
Unknown W. Brackets
e42dac2fb4 Dialog: Simulate volatile memory lock behavior.
Also simply clear to zero, which isn't exactly correct but should be
fairly close.  See #8288 (NBA Live 08 hang.)
2021-01-18 11:07:21 -08:00
Henrik Rydgård
ad2ec61c98 Retry the masked memory experiment on iOS. Turns out it was the shader generator bug that broke things. 2020-11-03 21:04:03 +01:00
Henrik Rydgård
f429c97392 Disable masked memory on iOS again. The cure was worse than the disease apparently.
Needs more investigation before we re-enable.

See #13616
2020-11-03 15:46:21 +01:00
Henrik Rydgård
f050d51973 Enable masked memory addressing on iOS
(removes the need for functioning memory mirrors)

I have a theory that this is related to the iOS 14 problems: #13451
2020-11-03 00:20:19 +01:00
Henrik Rydgård
ee11c796a1 Revert "Try my theory about memory mirrors on iOS 14. See #13451"
This reverts commit 0f647684a3.
2020-10-23 06:57:56 +02:00
Henrik Rydgård
0f647684a3 Try my theory about memory mirrors on iOS 14. See #13451 2020-10-22 10:12:21 +02:00
Henrik Rydgård
b8e8325888 Fix text issue in God Eater Burst. Forgot that games can allocate texture in volatile memory too.
We considered any texture from kernel memory "reliable", which is wrong
since games can allocate out of the upper half of kernel RAM, which is
called "volatile" memory.

Fixes issue #13511
2020-10-14 00:09:08 +02:00
Henrik Rydgård
3e3a40da8c Mark the PPGe font texture as reliable to avoid hashing it. 2020-09-22 21:13:30 +02:00
Henrik Rydgård
a22181df1c Partially fix Katamari (flicker due to choice of the wrong depth buffer still happening). 2020-09-01 22:54:36 +02:00
Henrik Rydgård
92bbe974cd Prevent reporting a bad memory access just because Tekken creates a mutex with a null name. 2020-07-20 10:01:22 +02:00
Henrik Rydgård
0829543987 Third part of getting rid of PanicAlert 2020-07-19 20:34:02 +02:00
Henrik Rydgård
626d173d10 Split the fault handling from MemMap.cpp to MemFault.cpp. 2020-07-15 12:12:57 +02:00
Henrik Rydgård
c3016fe6a5 Mac/Linux buildfixes 2020-07-14 09:25:45 +02:00
Henrik Rydgard
1fce6de8b1 Simple exception handler so we can ignore accesses that happen within the PSP memory space. 2020-07-14 09:25:45 +02:00
Henrik Rydgård
7208cf6900 Some code reformatting/renaming 2020-07-12 15:25:21 +02:00
Henrik Rydgård
c739d4e164 Revert "Repeat of the experimental commit, was too fast for the build bot."
This reverts commit d8992a6ae3.
2020-06-03 11:55:14 +02:00
Henrik Rydgård
d8992a6ae3 Repeat of the experimental commit, was too fast for the build bot. 2020-06-03 10:34:21 +02:00
Henrik Rydgård
20afef4c35 Revert "Experimental commit: Bump up scratchpad size so that Android will act like Windows in #10196 (Spider-Man 3)"
This reverts commit 1d9d15a1d7.
2020-06-03 09:19:38 +02:00
Henrik Rydgård
1d9d15a1d7 Experimental commit: Bump up scratchpad size so that Android will act like Windows in #10196 (Spider-Man 3) 2020-06-03 09:19:22 +02:00
Unknown W. Brackets
bdd2029623 Core: Fix memory range guard check.
Was allowing sizes with the high bits set, which could cause all kinds of
weird issues and crashes.
2019-09-28 08:40:41 -07:00
Henrik Rydgård
2f26297062 Clean up some more ifdefs 2019-05-10 23:25:57 +02:00
Henrik Rydgård
67b8c4527d b.sh: Add a build option for address sanitizer. When enabled, we turn on some compatibility options to make it work right. 2018-01-31 14:29:23 +01:00
Henrik Rydgård
6a1fa728d8 Remove Globals.h 2017-08-31 17:15:22 +02:00
Henrik Rydgard
ff2b6b3fca Assorted cleanup, UWP memory map fixes. PSPFlower runs in both 32-bit and 64-bit. 2017-03-23 10:02:28 +01:00
Henrik Rydgård
193b5f3094 By skipping kernel mappings, I got things to fit in the iOS 64-bit address space. However, something is still a bit broken with JIT... 2017-01-25 18:35:09 +01:00