b42b5501f6
UI: Massive revamp, new features and improvements
2022-07-22 21:19:54 +10:00
b7fbde31a7
Move utility classes from common to own static lib
2022-07-21 17:29:58 +10:00
46737acecd
CPU: Prevent mismatched va_start/va_end in log
2022-01-06 22:47:10 +10:00
bbf67ef544
CPU: Warning fix
2021-12-25 14:28:32 +10:00
53299e3c7b
CPU/Interpreter: Load delay check should be a debug assertion
2021-07-24 13:04:54 +10:00
30db081a64
CPU: Simulate stalls from GTE instructions
2021-07-16 12:27:31 +10:00
4f09d61825
CPU: Don't panic on invalid instructions
2021-06-15 22:58:29 +10:00
1ed1d641a6
CPU/Recompiler: Don't use intepreter icache when falling back
...
Fixes broken rendering in TOCA 2.
It has self-modifying code every frame, which gets falled back to the
interpreter, and using the interpreter's icache, which resulted in
stale code executing.
2021-05-20 12:19:23 +10:00
e382df0d41
Support expanding RAM to 8MB (dev console)
2021-05-03 12:43:33 +10:00
f1310bf93a
System: Don't discard PGXP state when runahead-rollbacking
...
You'll still see some glitches if you have the frame count set too high,
since you'll get imprecise values for any vertices which have moved, but
that's going to happen anyway because of the runahead in the first
place.
2021-04-28 02:51:44 +10:00
40731b49fc
Bus: Handle CPU-internal narrow writes
...
The full 32-bits of the GPR are used.
Fixes SoundScope in the BIOS Shell.
2021-04-26 22:08:18 +10:00
3106c797d9
CPU: Reduce severity of some log statements
2021-04-19 15:19:08 +10:00
442b801d39
CPU: Implement cop0 execution and data breakpoints
2021-04-14 19:06:52 +10:00
22fdd80cc3
CPU/Interpreter: Out of range cop0 reads should be nops
2021-04-14 19:06:52 +10:00
dd5277321b
CPU/CachedInterpreter: Fix infinite loop when block compile fails
2021-04-14 19:06:52 +10:00
e087e6f3a2
CPU/Recompiler: Prevent using fastmem when cache is isolated
...
No point even trying since it's just going to fault.
2021-04-12 02:08:56 +10:00
922d320523
CPU/Recompiler: Reserve whole fastmem region to avoid clashes
2021-04-11 12:42:51 +10:00
209827b67c
PGXP: Compute PSX values on demand for CPU instructions
...
Generates shorter code for the recompiler.
2021-02-18 02:08:48 +10:00
1b881fc60b
PGXP: Combine instr and rtVal parameters for CPU_LUI
2021-02-18 02:08:47 +10:00
0bfa1bf873
PGXP: Fix MFC0/MTC0
...
Doubt it'll change anything.
2021-02-18 02:08:47 +10:00
a722fd6b53
PGXP: Make mult/div compute results instead of parameters
...
Lets us call it from the recompiler.
2021-02-18 02:08:47 +10:00
33a5617ea3
PGXP: Remove some unused parameter from M{F,T}{HI,LO}
2021-02-18 02:08:47 +10:00
efecb44344
PGXP: Combine a couple of instructions
2021-02-18 02:08:47 +10:00
9d80c48d6f
CPU: Fix icache missing from save state
2021-01-31 16:39:51 +10:00
e3262fc0a4
CPU: Compile fix for debug builds
2021-01-05 00:46:41 +10:00
9ff8130e40
fixup! CPU: Make trace-to-file toggleable at runtime and in release builds
2021-01-04 03:11:14 +10:00
bf1d51b5d8
CPU: Make trace-to-file toggleable at runtime and in release builds
2021-01-04 03:11:14 +10:00
c9240eea72
CPU/Recompiler: Use PGXP interpreter for fallback
...
Fixes holes in geometry with PGXP enabled in Threads of Fate.
2021-01-01 17:16:55 +10:00
3b23542ec9
CPU: Provide debugger/breakpoint/step functionality
2020-12-17 11:57:47 +10:00
bf2e38aed5
CPU/Recompiler: Implement LUT-based fastmem
2020-11-24 14:49:21 +10:00
a03bca2f72
CPU: Make fastmem a compile-time feature (support 32-bit targets)
2020-11-21 18:39:03 +10:00
042bdd9c0c
CPU/CodeCache: Fetch second delay slot from first branch for double branches
2020-11-19 00:40:02 +10:00
077764ce18
CPU/Interpreter: Handle move instructions in PGXP memory mode
2020-11-14 23:20:28 +10:00
6cd991bc57
BIOS: Turn display on with fast boot
...
Fixes black screen in SaGa Frontier with fast boot disabled.
2020-11-11 01:02:40 +10:00
7566c45f64
CPU/Recompiler: Implement fastmem
2020-10-18 14:54:38 +10:00
a6f8dde790
CPU/Recompiler: Faster ASM dispatcher
2020-10-18 14:54:38 +10:00
cb351a7dbd
CPU: Move interrupt check out of inner-most exec loop
2020-10-18 14:54:38 +10:00
fa638ef9d2
CPU/Interpreter: Fix incorrect call in to PGXP for addi
...
Fixes exploding triangles in Spyro with PGXP CPU mode enabled.
2020-10-09 18:49:36 +10:00
27697d0508
System: Implement CPU overclocking [SAVEVERSION+]
...
Partial credit to @CookiePLMonster as well.
2020-09-30 23:48:34 +10:00
25f45fbd23
CPU: Add hack for stale icache reads in interpreter
2020-09-20 01:38:18 +10:00
9736dc7895
CPU: Fix InterpretUncachedBlock()
...
But this shouldn't be hit during normal execution.
2020-09-20 01:36:49 +10:00
a2eaaf0e89
PGXP: Allocate large storage dynamically
...
This causes performance issues on ARM otherwise.
2020-09-03 00:11:40 +10:00
19d6037b99
CPU: Implement instruction cache simulation
...
Implemented for all execution modes. Disabled by default in the cached
interpreter and recompiler, always enabled in the pure interpreter.
2020-08-29 22:07:40 +10:00
d37fba81ed
CPU/Interpreter: Fix incorrect downcount comparison
2020-08-23 01:41:55 +10:00
6a17a558bb
CPU: Linux compile fix
2020-08-20 01:05:03 +10:00
daa72aba10
CPU: Skip executing nop instructions
...
Makes PGXP CPU mode quicker, as well as a performance improvement to the
regular interpreter.
2020-08-20 00:49:39 +10:00
2e9f656546
CPU: Implement PGXP CPU Mode
...
This is *very* slow. You don't want to enable it if you don't need it.
It is also incompatible with the recompiler and will disable it if the
option is enabled.
2020-08-20 00:49:39 +10:00
025e01ca47
CPU: Fix exceptions clobbering cop0.cause.Ip
...
Fixes Gran Turismo 2 (PAL).
2020-08-14 23:55:16 +10:00
1d5f810a4b
CPU/Recompiler: Disable memory access exceptions by default
...
This means it'll no longer pass amidog's CPU test in the default config.
But no games rely on this. You can enable it in advanced options if you
want to pass the CPU test.
2020-08-08 23:44:13 +10:00
f6e88353eb
CPU/Recompiler: Make generated code invariant to virtual PC
2020-08-08 23:06:28 +10:00