Commit graph

492 commits

Author SHA1 Message Date
Eladash
cacb852a1e Emulation stopping bugfix 2021-05-14 15:35:07 +03:00
Eladash
daa53b77cf Simplify named_thread construction 2021-05-01 18:08:03 +03:00
Megamouse
1caf81811a Move unspecific Emulator code out of System.cpp 2021-04-24 11:21:22 +03:00
Eladash
a0d1cf26d0 Reduce precompilation failure log level (error -> notice) 2021-04-19 23:18:31 +03:00
Eladash
5ca6381624 Implement "PPU LLVM Precompilation" control setting 2021-04-10 18:06:46 +03:00
Megamouse
03b76b4606 Emu: some cleanup 2021-04-09 21:03:49 +02:00
Nekotekina
95725bf7fc Add -Werror=missing-noreturn (GCC, clang)
May be useful to diagnose functions which fail assertions unconditionally.
2021-04-08 10:29:47 +03:00
Megamouse
02febd3f65 Workaround: Skip progress_dialog during gameplay 2021-04-06 21:39:34 +03:00
Eladash
7b57b8f2ca debugger: Implement ability to pause entire emulation on breakpoint 2021-04-01 19:11:55 +03:00
Nekotekina
e9a45a2f45 Implement scoped_progress_dialog
Create Emu/system_progress.hpp
Remove atomic g_progr_show
2021-03-31 23:40:09 +02:00
Nekotekina
2212a131ef Fix some -Weffc++ warnings (part 1) 2021-03-31 11:27:09 +03:00
Megamouse
870224cde0 Emu/overlay: ingame native overlay PPU compilation 2021-03-31 09:38:30 +02:00
Eladash
1e71deb0db rsx: Compile shaders when CELL is not running 2021-03-30 11:13:47 +03:00
Megamouse
ba45daff35 Qt: some cleanup in debugger 2021-03-24 20:47:51 +01:00
Nekotekina
b3fb6d7d18 Add and fix -Wredundant-decls (GCC) 2021-03-23 22:48:57 +03:00
Nekotekina
f801dc6558 Save all 8 syscall_args 2021-03-16 19:33:37 +03:00
Eladash
a9b0d25c01
PPU Debugger: Fixup for syscall arguments (#9932) 2021-03-16 16:20:45 +03:00
Nekotekina
a4fdbf0a88 Enable -Wstrict-aliasing=1 (GCC)
Fixed partially.
2021-03-09 03:10:15 +03:00
Nekotekina
87af905018 Enable -Wunused-parameter 2021-03-06 18:07:08 +03:00
Nekotekina
52fe86b56c fixed_typemap.hpp: make it a bit fool-proof
Require objects to be non-copyable (move is still allowed).
2021-03-02 21:58:49 +03:00
Eladash
004ebfdaee SPU debugger: Implement MFC journal
* Allow to dump up to 1820 commands with up 128 bytes of data each, using key D with the debugger.
2021-03-02 21:57:51 +03:00
Nekotekina
ea5e837bd6 fixed_typemap.hpp: return reference 2021-03-02 16:08:14 +03:00
Eladash
68a878264c Minor GUI fix for PPU interpreter at "precompilation" 2021-02-23 17:35:45 +03:00
Eladash
20eb4352fb
debugger: Fix single stepping (#9793) 2021-02-19 14:53:09 +03:00
Eladash
f43260bd58
Atomic waiting refactoring (#9208)
* Use atomic waitables instead instead of global thread wait as often as possible.
* Add ::is_stopped() and and ::is_paued() which can be used in atomic loops and with atomic wait. (constexpr cpu flags test functions)
* Fix notification bug of sys_spu_thread_group_exit/terminate. (old bug, enhanced by #9117)
* Function time statistics at Emu.Stop() restored. (instead of current "X syscall failed with 0x00000000 : 0")
2021-02-13 17:50:07 +03:00
Eladash
cf384795d2 debugger: Improve PPU string constraints 2021-02-13 16:00:26 +03:00
Eladash
423cc1685c PPU LLVM: Reduce PRX/OVL compilation memory usage a little 2021-02-13 13:05:41 +03:00
Eladash
e26ae9899c Reimplement/fix PRX patches 2021-02-12 15:27:59 +03:00
Eladash
fad89f1c3b
Fix tiny race in PPU breakpoints (#9731)
If the PPU has just being paused by the debugger, before it entered the breakpoint handler, the PPU would continue onto the next instruction skipping the breakpoint but then being paused on it instead.
2021-02-07 00:25:40 +03:00
Nekotekina
7b40859eff Remove unused header 2021-02-01 19:14:01 +03:00
Nekotekina
0c034ad7de PPU LLVM: upgrade to GHC call conv
Get rid of some global variables.
Implement ppu_escape (unused yet).
Bump PPU cache version to v4.
2021-02-01 11:30:50 +03:00
Nekotekina
c89362f6a2 PPU LLVM: don't use module name as PRX indicator 2021-02-01 11:30:50 +03:00
Nekotekina
f9ee8978ff PPU LLVM: improve analyser
Compile possibly executable holes between detected functions.
Add unused "PPU LLVM Greedy Mode" option (for future updates).
Add "nounwind" attribute to compiled functions (reduces size).
2021-02-01 11:30:50 +03:00
Nekotekina
cf6606065d PPU: fix some typos in asm code 2021-01-31 20:00:04 +03:00
Eladash
82c86ed2f7 Implement standalone OVL (overlay) loading mode
* Allow to load OVL alone.
* Add error checks in ppu_load_exec(), do not crash on error.
* Fix crash on exit from standalone PRX mode, allow kernel explorer to work with it as well for the added OVL mode.
2021-01-31 15:47:05 +03:00
Megamouse
c464e90d5d Fix stop exit of check_only ppu_initialize 2021-01-31 12:18:32 +03:00
Megamouse
670d2b191c Minor optimization for check_only ppu_initialize 2021-01-31 12:18:32 +03:00
Megamouse
7bddb87306 Simplify compile threads 2021-01-31 12:18:32 +03:00
Megamouse
2025f02105 Search for more game data directories.
Also properly remove duplicate paths
2021-01-31 11:42:33 +03:00
Eladash
16c6b44f55
Fix #9680 (#9687)
Fix regression from #9680
2021-01-30 19:05:02 +03:00
Eladash
e3b3b0cda7
PPU LLVM: Precompile all executable (PRX, MSELF, overlay) code at startup (#9680)
* Precompile LLVM cache at startup of games, like the GUI "Create PPU Cache" option.
* Allow OVL (overlay) precompilation as well (used by certain games).

Co-authored-by: Megamouse <studienricky89@googlemail.com>
Co-authored-by: Nekotekina <nekotekina@gmail.com>
2021-01-30 16:08:22 +03:00
Nekotekina
bb2cc196a6 Fixup for preloading SPRX from MSELF
Forgot to append the offset.
Forgot to use different loop variable.
2021-01-29 21:26:34 +03:00
Eladash
d3bc96a201 Fix minor issue with usage of STL thread::hardware_concurrency() 2021-01-29 18:23:29 +03:00
Nekotekina
11ba6e45ab Add MSELF support to SPRX precompilation.
Add ppu_precompile() function in PPUThread.cpp

Co-authored-by: Eladash <elad3356p@gmail.com>
2021-01-29 13:34:43 +03:00
Eladash
0652870204 New RSX Debugger 2021-01-28 17:40:26 +03:00
Nekotekina
53267e283b PPU LLVM: implement ppu_finalize
Properly free certain compiled PRX/OVL modules (except dev_flash)
2021-01-27 18:03:49 +03:00
Nekotekina
ee288340b0 Implement thread_ctrl::scoped_priority
RAII priority control (+1, or -1)
2021-01-25 21:49:16 +03:00
Eladash
a58c12db0b SPU: fixup after #9630
Co-Authored-By: Ivan <nekotekina@gmail.com>
2021-01-21 21:32:13 +03:00
Eladash
f81674232e Remove SPU and PPU destructors 2021-01-21 18:31:51 +03:00
Nekotekina
f9bc682115 Refactor some 'offending' code a bit (no effect)
It appears linkage errors were rare even in debug mode (GCC/clang).
2021-01-18 21:58:28 +03:00