Commit graph

80 commits

Author SHA1 Message Date
Connor McLaughlin 8c7a192128 Misc: Add copyright/license statement to applicable files
Should've did this in the beginning.
2022-12-04 21:03:49 +10:00
Connor McLaughlin b42b5501f6 UI: Massive revamp, new features and improvements 2022-07-22 21:19:54 +10:00
Connor McLaughlin b7fbde31a7 Move utility classes from common to own static lib 2022-07-21 17:29:58 +10:00
Connor McLaughlin 46737acecd CPU: Prevent mismatched va_start/va_end in log 2022-01-06 22:47:10 +10:00
Connor McLaughlin bbf67ef544 CPU: Warning fix 2021-12-25 14:28:32 +10:00
Connor McLaughlin 53299e3c7b CPU/Interpreter: Load delay check should be a debug assertion 2021-07-24 13:04:54 +10:00
Connor McLaughlin 30db081a64 CPU: Simulate stalls from GTE instructions 2021-07-16 12:27:31 +10:00
Connor McLaughlin 4f09d61825 CPU: Don't panic on invalid instructions 2021-06-15 22:58:29 +10:00
Connor McLaughlin 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
Connor McLaughlin e382df0d41 Support expanding RAM to 8MB (dev console) 2021-05-03 12:43:33 +10:00
Connor McLaughlin 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
Connor McLaughlin 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
Connor McLaughlin 3106c797d9 CPU: Reduce severity of some log statements 2021-04-19 15:19:08 +10:00
Connor McLaughlin 442b801d39 CPU: Implement cop0 execution and data breakpoints 2021-04-14 19:06:52 +10:00
Connor McLaughlin 22fdd80cc3 CPU/Interpreter: Out of range cop0 reads should be nops 2021-04-14 19:06:52 +10:00
Connor McLaughlin dd5277321b CPU/CachedInterpreter: Fix infinite loop when block compile fails 2021-04-14 19:06:52 +10:00
Connor McLaughlin 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
Connor McLaughlin 922d320523 CPU/Recompiler: Reserve whole fastmem region to avoid clashes 2021-04-11 12:42:51 +10:00
Connor McLaughlin 209827b67c PGXP: Compute PSX values on demand for CPU instructions
Generates shorter code for the recompiler.
2021-02-18 02:08:48 +10:00
Connor McLaughlin 1b881fc60b PGXP: Combine instr and rtVal parameters for CPU_LUI 2021-02-18 02:08:47 +10:00
Connor McLaughlin 0bfa1bf873 PGXP: Fix MFC0/MTC0
Doubt it'll change anything.
2021-02-18 02:08:47 +10:00
Connor McLaughlin 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
Connor McLaughlin 33a5617ea3 PGXP: Remove some unused parameter from M{F,T}{HI,LO} 2021-02-18 02:08:47 +10:00
Connor McLaughlin efecb44344 PGXP: Combine a couple of instructions 2021-02-18 02:08:47 +10:00
Connor McLaughlin 9d80c48d6f CPU: Fix icache missing from save state 2021-01-31 16:39:51 +10:00
Connor McLaughlin e3262fc0a4 CPU: Compile fix for debug builds 2021-01-05 00:46:41 +10:00
Connor McLaughlin 9ff8130e40 fixup! CPU: Make trace-to-file toggleable at runtime and in release builds 2021-01-04 03:11:14 +10:00
Connor McLaughlin bf1d51b5d8 CPU: Make trace-to-file toggleable at runtime and in release builds 2021-01-04 03:11:14 +10:00
Connor McLaughlin 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
Connor McLaughlin 3b23542ec9 CPU: Provide debugger/breakpoint/step functionality 2020-12-17 11:57:47 +10:00
Connor McLaughlin bf2e38aed5 CPU/Recompiler: Implement LUT-based fastmem 2020-11-24 14:49:21 +10:00
Connor McLaughlin a03bca2f72 CPU: Make fastmem a compile-time feature (support 32-bit targets) 2020-11-21 18:39:03 +10:00
Connor McLaughlin 042bdd9c0c CPU/CodeCache: Fetch second delay slot from first branch for double branches 2020-11-19 00:40:02 +10:00
Connor McLaughlin 077764ce18 CPU/Interpreter: Handle move instructions in PGXP memory mode 2020-11-14 23:20:28 +10:00
Connor McLaughlin 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
Connor McLaughlin 7566c45f64 CPU/Recompiler: Implement fastmem 2020-10-18 14:54:38 +10:00
Connor McLaughlin a6f8dde790 CPU/Recompiler: Faster ASM dispatcher 2020-10-18 14:54:38 +10:00
Connor McLaughlin cb351a7dbd CPU: Move interrupt check out of inner-most exec loop 2020-10-18 14:54:38 +10:00
Connor McLaughlin 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
Connor McLaughlin 27697d0508 System: Implement CPU overclocking [SAVEVERSION+]
Partial credit to @CookiePLMonster as well.
2020-09-30 23:48:34 +10:00
Connor McLaughlin 25f45fbd23 CPU: Add hack for stale icache reads in interpreter 2020-09-20 01:38:18 +10:00
Connor McLaughlin 9736dc7895 CPU: Fix InterpretUncachedBlock()
But this shouldn't be hit during normal execution.
2020-09-20 01:36:49 +10:00
Connor McLaughlin a2eaaf0e89 PGXP: Allocate large storage dynamically
This causes performance issues on ARM otherwise.
2020-09-03 00:11:40 +10:00
Connor McLaughlin 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
Connor McLaughlin d37fba81ed CPU/Interpreter: Fix incorrect downcount comparison 2020-08-23 01:41:55 +10:00
Connor McLaughlin 6a17a558bb CPU: Linux compile fix 2020-08-20 01:05:03 +10:00
Connor McLaughlin 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
Connor McLaughlin 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
Connor McLaughlin 025e01ca47 CPU: Fix exceptions clobbering cop0.cause.Ip
Fixes Gran Turismo 2 (PAL).
2020-08-14 23:55:16 +10:00
Connor McLaughlin 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