Commit Graph

87 Commits

Author SHA1 Message Date
SternXD
d983b2b066 Copyright: Change year from 2002-2025 to 2002-2026 2026-01-15 00:22:32 +01:00
Ty
de03d2f672 Debugger: Properly reset the breakpoint skip first when skipped 2026-01-11 14:32:21 -05:00
refractionpcsx2
02f0921b2d EE: Force sync on EE timer read 2025-12-05 11:20:15 -05:00
Ty
cb0bf953d3 Interpreter: Fix warning from reading 64 bit GPR into u32 variable.
The PS2 has 32 bit addresses!
2025-11-21 18:20:58 -05:00
refractionpcsx2
2d03b21f2b Formatting: Clean up some if spaces 2025-05-17 22:47:38 +02:00
TheTechnician27
23fd57f641 Copyright: Change year from 2002-2024 to 2002-2025 2025-01-20 05:07:26 +01:00
Ty Lamontagne
313ddb7879 EE Cache: Writeback dirty cache entries when exiting the interpreter. 2024-12-08 17:49:33 -05:00
GovanifY
132431b7c8 headers: relicense to GPL-3.0+
also update to 2024 while i'm at it
2024-07-30 17:17:13 -04:00
Ty Lamontagne
de020978e4 Debugger: Use std::string for bp conditions. Implement memory bp conditions 2024-07-11 11:21:39 -04:00
JordanTheToaster
ea00a89cff Interpreter: Comment cleanup 2024-02-17 15:15:51 +00:00
Stenzek
d9abe10308 Misc: Remove explicit PCH include, switch to SPDX 2023-12-24 14:03:14 +10:00
lightningterror
8d7227b1f9 Interpreter: Fix Wsign-compare warning. 2023-11-08 15:43:52 +01:00
refractionpcsx2
927d8ce237 EE Int: Implement a variation of the wait loop hack 2023-11-03 21:28:39 +00:00
refractionpcsx2
461f3bd89f EE Int: Add EE overclocking to interpreter 2023-11-03 21:28:39 +00:00
refractionpcsx2
ed1791ab02 Int/VU0: Improve VU0 sync, mainly for interpreter.
Also correctly doubles the opcode time when double issue is disabled (interpreter).
2023-11-03 21:28:39 +00:00
Ty Lamontagne
be405eb705 Debugger: Visually show what CPU triggered a breakpoint 2023-10-26 19:26:43 +01:00
Mrlinkwii
e36cd7fe5c Build: remove -32 notation from core filenames 2023-08-01 16:09:09 +01:00
lightningterror
7ebc04bc34 Interpreter: Cleanup constants, casts, formatting. 2023-06-28 22:59:58 +02:00
Stenzek
4d22102fd1 Interpreter: Use local variables for action PCs 2023-06-28 22:44:54 +10:00
Stenzek
36c27188a4 VMManager: Refactor and improve boot process
[SAVEVERSION+] VM struct changes.

 - Serial/title is now linked to disc, instead of running ELF.
 - Save states can be created during BIOS boot.
 - Patches now apply based on the executing CRC, and only after the
   entry point starts executing (fixes multi-game discs).
 - Add "Fast Forward Boot" option.
 - Split achievements download and activation, downloads occur on
   initialization, but are not activated until after the ELF loads.
 - Prevent HostFS access while in PS1 mode.
 - Remove multiple sources of truth for ELF/CRC/etc.
 - Move ELF state from global scope to VMManager.
 - Prevent game fixes and hw fixes being active while booting game.
 - Simplify game update.
 - Flush recompilers after ELF loads. No point keeping boot code around
   which gets overwritten.
2023-06-17 17:38:43 +10:00
Ty Lamontagne
ab9a1e4307 R5900 interpreter: Fix breakpoint exits
Exit exceptions were not being caught, causing a crash.
2023-05-01 07:02:21 +01:00
Stenzek
d12fa690c0 R5900: Remove exceptions 2023-01-26 11:11:36 +00:00
Ty Lamontagne
37540d1c68 Debugger Breakpoints: (Refactor) Use some reflection and item models 2023-01-10 13:57:06 +01:00
Stenzek
07789f5dad Core: Warning fixes for clang-cl 2022-12-25 09:27:44 +00:00
Stenzek
96a1c77577 Core: Remove PCSX2_CORE define and leftovers from wx 2022-12-24 08:42:23 +00:00
Ty Lamontagne
78c9b7f33e Debugger Core: Initial QT core work
Revert 3ce242886b (Disabled force symbol loading) until solution is found

If this isn't caught when the game is loaded, the symbols will not be properly loaded while the game is running.

DisassemblyManager: Don't spin continuously if the guest CPU is dead
2022-12-24 07:21:49 +00:00
Connor McLaughlin
00bcb4cf02 System: Revamp memory allocation
Guest memory is now mapped into a shared memory/file mapping, for use
with fastmem.

64-bit and 128-bit arguments are passed by register/value instead of by
reference/address.

LDL/LDR/SDL/SDR now use 64-bit GPRs instead of SSE.
2022-10-14 22:24:42 +01:00
TellowKrinkle
738c8cb630 Core: Remove trailing whitespace from all files 2022-09-16 00:52:28 -05:00
Connor McLaughlin
d535331b4b Misc: Remove __fastcall, __fc, __concall and friends
These have no meaning in x64 (apart from throwing compiler warnings),
and we don't do 32-bit anymore. Also saves needing to include
`Pcsx2Defs.h` in files which don't otherwise need it.
2022-05-12 14:58:03 +01:00
Connor McLaughlin
756cd1ee47 System: Move old SysThread junk to gui 2022-05-08 05:40:59 +01:00
Connor McLaughlin
3801825793 R3000A/R5900: Refactor interpreter/recompiler exits
Now, IOP breakpoints work nice and reliably in both interpreter and
recompiler, exiting as soon as possible, without leaving the event state
indeterminate.
2022-04-06 15:27:15 +01:00
Connor McLaughlin
5ac9419703 R5900: Make CPU exits consistent and safe
Previously, we would either throw an exception (ints), or longjmp out of
the recompiler when the execution state was checked. Unfortunately for
our stability, this happened at the end of the frame, just before it was
pushed to the GS, and in the middle of processing EE events (!).

Doing so not only meant that we executed a bunch of event
testing/exception code twice (once after we paused, again when we
resumed), but it also could potentially leave things in an inconsistent
state.

So instead, let's do it safely with a flag, replacing the old
iopBreakpoint flag, so there's no additional overhead on the hot path.
2022-04-06 15:27:15 +01:00
Ty Lamontagne
a632f3c5cb Core: Lighten IOP breakpoint load
standardizeBreakpintAddress calls on the IOP just return the address unmodified. Considering this is called at least once every load / store instruction when there is an IOP OR EE memcheck enabled, it's pretty hot.
2022-02-04 16:52:27 +00:00
Connor McLaughlin
252562db90 Misc: #ifdef out last bits of wx-dependent code 2021-12-28 05:22:45 +00:00
Gauvain 'GovanifY' Roussel-Tarbouriech
fa9b30fa9e pcsx2: remove relative imports
gosh that was a pain, please don't make me do that again
2021-07-03 18:16:11 -04:00
Maxim Nikitin
7dbf01b024 Implements IOP breakpoints (#3011)
IOP: Implement IOP Breakpoints
2021-01-08 23:34:08 +00:00
refractionpcsx2
4ce3fdfcb2 Fix up debugger stepping 2020-05-02 04:53:03 +01:00
Iritscen
a3c6ad636b PCSX2: Add ability to pass launch arguments to games with CLI option '--gameargs="-arg1 -arg2 -etc (#2576)
For more information please check the PR (#2576) since it's a bit detailed.
2018-11-07 19:07:17 +01:00
Nobbs66
6589feaacd Link Unconditionally (#1566)
EE Interpreter: Link Unconditionally on Branch and Link instructions
-Link instructions used to store the return address if the branch was
taken, but the correct behaviour is to store the return address whether
or not the branch is taken.
2016-09-16 09:58:37 +01:00
Gregory Hainaut
4796803c33 pcsx2: Remove == true/false for boolean logic (#1556)
As discussed in #1553

Clang Tidy reports goes from 156 to 9.

Remain some macro in spu2x + a deadcode line
2016-09-10 20:08:14 +02:00
Pseudonym
c782b6222c More robust eeload hooking to monitor and interfere with bios and game loading.
Maybe some other cruft can go now this should be reliable.
2016-07-29 16:51:18 +01:00
Gregory Hainaut
cb73ed4737 pcsx2:tlb:goemon: allocation can be called from 2 places
* game is working :)

Note1: I dissassemble the main exe to search all call of the allocation (unlikely to have more calls)
Note2: it is easier to use the return of the function so allocation is done in the tlb[array] cache
2014-12-12 22:25:56 +01:00
Gregory Hainaut
2cfbc6e5ef pcsx2:tlb: extend goemon gamefix
Add GoemonUnloadTlb function that invalidate TLB cache.

Currently the function is only used on the interpreter. It fixes TLB error after a reload of data.

Next step: porting to the recompiler
2014-12-12 22:14:08 +01:00
Gregory Hainaut
8d8aa87457 pcsx2: interpreter: better use pc
cpuRegs.pc is the actual pc+4...
2014-12-12 22:14:08 +01:00
Gregory Hainaut
c9aa04c679 core: EE interpreter major speed boost
Disable the debugger and an useless debugI function

* x2 on dbg build :)
* x2.5 on dev build :)

Note: debugger doesn't work yet with the interpreter so no real drawback.
2014-12-02 21:38:39 +01:00
Gregory Hainaut
9c92a30dbb pcsx2: interpreter: add a typical example to disassemble R5900
Previous examples don't work anymore

v2: merge the cpu dump example
2014-12-02 21:38:39 +01:00
Gregory Hainaut
8a899c4c7b pcsx2: interpreter: increment pc before reading pc content
memRead32 could throw a TLB miss exception, however TLB handler expects pc counter to be incremented

Goemon is now really "playable" with the interpreter (disable automatic gamefix)
2014-12-02 21:38:39 +01:00
Gregory Hainaut
a30bd86311 pcsx2: interpreter: add an exception for tlb miss
When a tlb miss is detected current instruction must be skipped. We need
to immediately switch to the handler

Typical instruction bug case:
 lw a0, 0x8(a0)

a0 mustn't be loaded if we have a miss

v2: create a dedicated exception for tlb miss

v3:
* rename exception to CancelInstruction
* add a basic state machine on the exec loop so we keep same behavior
  for eeloadReplaceOSDSYS and eeGameStarting

v4: remove assert
2014-12-02 21:38:29 +01:00
Kingcom
a95e55dc54 Add breakpoint support to R5900 interpreter 2014-09-18 16:31:44 +02:00
Gregory Hainaut
a00b8ecc55 pcsx2: tlb: goemon implement a preload hack tlb
Tlb mapping is stored @0x3d5580 (GoemonTlb[150])
The function that will populate the tlb is around pc = 0x356250, ra = 0x33ad48

The idea is to add a callback on 0x33ad48 block that will populate the tlb based on
ee mem content.

Note: The hack is based on previous Virtual PS2 => Physical PS2 LUT
2014-06-20 13:52:05 +02:00