Commit Graph

198 Commits

Author SHA1 Message Date
Unknown W. Brackets ec3d408da0 HLE: Detect video buffer copies.
These are common and can help us notify the texture cache appropriately.
2021-09-19 07:51:33 -07:00
Unknown W. Brackets aa89ed5111 Debugger: Include source tag in memcpys. 2021-04-03 18:11:44 -07:00
Unknown W. Brackets 4178f09e57 Build: More consistently avoid _M_ defines.
We use PPSSPP_ARCH in several places already, this makes it more complete.
2021-03-02 21:49:21 -08:00
Henrik Rydgård 2f3bc2d373 Merge pull request #14056 from unknownbrackets/debugger-mem
Track memory allocations and writes for debug info
2021-02-21 10:18:11 +01:00
sum2012 00d2a050b8 Hook open season
Fix #13252
original from #13326
2021-02-21 13:46:49 +08:00
Unknown W. Brackets 1556187d36 HLE: Swap endian in matrix multiply replacement. 2021-02-18 22:27:48 -08:00
aliaspider 9a3e5879bb Global: Correct many endian types and casts. 2021-02-18 22:25:24 -08:00
Unknown W. Brackets f7740edc6d Debugger: Add more metadata for memory usage. 2021-02-15 15:01:21 -08:00
Henrik Rydgård 0a1303b069 Merge pull request #13938 from unknownbrackets/worms-hook
HLE: Hook Worms text render copy func
2021-02-15 16:32:00 +01:00
Unknown W. Brackets ec3bfe08ae GPU: Force texture invalidation for ZHP minimap.
See #14069, our texture hash misses this change.
2021-02-07 09:02:28 -08:00
Unknown W. Brackets 53b9a8e48c HLE: Hook Worms text render copy func.
This func takes drawn text and replaces stencil with alpha based on the
color intensity to prepare text for blending.

See #12380.
2021-01-17 12:38:03 -08:00
Henrik Rydgård 3162f30158 Merge base/basictypes.h into Common/Common.h (mostly). 2020-09-29 15:51:51 +02:00
Henrik Rydgård b43698a13d Remove most instances of base/logging.h from Common, Core, GPU, more 2020-08-15 19:08:44 +02:00
Unknown W. Brackets e36f894f66 HLE: Replace Motorstorm pixel read func.
Helps with some lighting, see #12363.
2019-10-05 08:37:18 -07:00
Henrik Rydgard 3f8aec5147 Remove the "Disable stencil test" hack. Doesn't seem to serve much purpose anymore. 2018-12-14 13:54:03 +01:00
Unknown W. Brackets 395ac32d63 Debugger: Run memory breakpoints on mobile. 2018-06-06 17:31:56 -07:00
Unknown W. Brackets 28da05fa7a HLE: Replace starocean framebuf clear func.
This reduces the performance impact significantly, by skipping the memset
uploads for each line.

Fixes #10466.
2017-12-28 23:40:18 -08:00
Unknown W. Brackets 1cf5e30bd6 Add hooks for Marvel video copy func.
Not tested - but should make videos visible in Marvel Ultimate Alliance 1.

See #9852.
2017-08-19 11:47:42 -07:00
Unknown W. Brackets 3fe1a08cf5 Use unordered lookups for better speed.
These reduce the time spent on save states.
2016-09-24 14:23:17 -07:00
Unknown W. Brackets 0e43f1cdff Hook another VRAM modifying function.
Seems to be a copy.
2016-08-06 16:30:47 -07:00
Unknown W. Brackets f0cc975865 Hook some funcs in Me and My Katamari.
One is a very hardcoded screenshot download / vfpu convert to 565, and the
other is some very weird check to make sure render is clear or has
happened or something.

The screenshot func detects downloads for the "Royal Album".  The render
check detects downloads for post-rename (no idea why it checks here.)

Fixes #7695.
2016-05-20 22:30:25 -07:00
Henrik Rydgard 6e44e97ffa Refactor prep: Split JitInterface into MIPSFrontendInterface and JitInterface 2016-05-09 19:41:39 +02:00
Henrik Rydgard a5be0976bd Remove preprocessor hacks to choose JIT implementation.
Opens up for having multiple JIT implementations available at runtime,
which could be use for experimenting with new JIT compiler types or for
unit testing one JIT on another architecture.

Very few of the newly virtual calls are on any sort of critical path so
hopefully there will not be a performance loss.
2016-05-01 11:39:53 +02:00
Unknown W. Brackets ef1dc583a2 Fix various minor warnings. 2016-03-20 14:17:51 -07:00
daniel229 d032c3895b Replace function in Omerta Chinmoku No Okite The Legacy 2016-01-24 11:58:20 +08:00
daniel229 0ab6c544b7 Replace function in unENDing Bloody Call 2016-01-24 11:55:56 +08:00
daniel229 80952d5e06 Replace function in ATV Offroad Fury Pro (US) demo 2016-01-24 11:53:46 +08:00
Unknown W. Brackets bc48509f33 Add a bit more safety to func replacements.
In case somehow the replacement changes.
2016-01-21 22:17:25 -08:00
daniel229 1e984b48ef update functions 2016-01-04 09:08:52 +08:00
daniel229 de8503f83b Replace function in Shinigami to Shoujo 2016-01-03 22:35:46 +08:00
daniel229 05612bbc25 Replace function in Little Busters! Converted Edition 2016-01-03 22:28:38 +08:00
daniel229 3b461a00cc Replace function in ATV Offroad Fury Blazin' Trails 2016-01-03 22:20:50 +08:00
daniel229 107fa1c09a Replace function in ATV Offroad Fury Pro 2016-01-03 22:13:42 +08:00
daniel229 ed12bb9c89 Fix flickering in SD Gundam G Generation Portable 2016-01-03 09:56:40 +08:00
daniel229 678ca9301a Fix tutorial videoes in Tony Hawk P8 2016-01-02 13:33:22 +08:00
Henrik Rydgard b998131581 Move the symbol map to the heap, deallocate it when no game is running. 2015-10-31 23:01:19 +01:00
Sacha bbc4f64999 MIPS: Fix build so we can compile this again. 2015-10-29 02:46:43 +00:00
Henrik Rydgard 2430c283a5 More GPU cleaning, removing uses of GPUState.h where not needed.
Want to get rid of direct accesses to GPUState in modules that may be reused in
my future next-gen backends, that will reformat display lists into command lists that will
then be optimized and executed, out of sync with the real GPUState.

Candidate modules that may be reused in full are Framebuffer and Depal, possibly TextureCache to some degree.
2015-07-29 12:37:49 +02:00
Henrik Rydgard cde585a29a Include dependency cleanup 2015-07-29 11:48:20 +02:00
Henrik Rydgard d1bbc1d3c0 More regcache fixes. ML_IMM works now although there is another stability issue somewhere. 2015-07-11 16:59:13 +02:00
Jan Beich a4eb49f009 Unbreak build with FakeJit
Core/MIPS/fake/FakeJit.cpp:141:46: error:
      unknown type name 'FakeJitBlock'; did you mean 'JitBlock'?
const u8 *FakeJit::DoFakeJit(u32 em_address, FakeJitBlock *b)
                                             ^~~~~~~~~~~~
                                             JitBlock
Core/MIPS/JitCommon/JitBlockCache.h:59:8: note:
      'JitBlock' declared here
struct JitBlock {
       ^
Core/MIPS/fake/FakeJit.cpp:141:20: error:
      out-of-line definition of 'DoFakeJit' does not match any declaration in
      'MIPSComp::FakeJit'
const u8 *FakeJit::DoFakeJit(u32 em_address, FakeJitBlock *b)
                   ^~~~~~~~~
Core/HLE/ReplaceTables.cpp:1044:29: error:
      use of undeclared identifier 'JITFUNC'
        { "fabsf", &Replace_fabsf, JITFUNC(Replace_fabsf), REPFLAG_ALLOWINLI...
                                   ^
Core/HLE/ReplaceTables.cpp:1101:27: error:
      invalid application of 'sizeof' to an incomplete type 'const
      ReplacementTableEntry []'
        for (int i = 0; i < (int)ARRAY_SIZE(entries); i++) {
                                 ^~~~~~~~~~~~~~~~~~~
native/math/../base/basictypes.h:67:30: note:
      expanded from macro 'ARRAY_SIZE'
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
                             ^~~
Core/HLE/ReplaceTables.cpp:1117:9: error:
      invalid application of 'sizeof' to an incomplete type 'const
      ReplacementTableEntry []'
        return ARRAY_SIZE(entries);
               ^~~~~~~~~~~~~~~~~~~
native/math/../base/basictypes.h:67:30: note:
      expanded from macro 'ARRAY_SIZE'
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
                             ^~~
Core/MIPS/JitCommon/JitCommon.cpp:31:2: error:
      unknown type name 'Jit'
        Jit *jit;
        ^
Core/MIPS/JitCommon/JitCommon.cpp:100:21: error:
      no member named 'Asm' in 'MIPSComp::FakeJit'
        if (MIPSComp::jit->Asm().IsInSpace((u8 *)(intptr_t)addr)) {
            ~~~~~~~~~~~~~  ^
Core/MIPS/JitCommon/JitCommon.cpp:101:45: error:
      no member named 'Asm' in 'MIPSComp::FakeJit'
                *offset = addr - (uint64_t)MIPSComp::jit->Asm().GetBasePtr();
                                           ~~~~~~~~~~~~~  ^
Core/MemMap.cpp:197:57: error:
      use of undeclared identifier 'MEMVIEW32_MASK'
  ...position, view.size, base + (view.virtual_address & MEMVIEW32_MASK));
                                                             ^
2015-05-26 15:20:10 +03:00
daniel229 af9e04dc97 Replace framebuffer download in Youkoso Hitsuji-Mura Portable 2015-04-20 16:36:07 +08:00
Henrik Rydgård 70fa830ba5 Split out the ReplaceJalTo test logic.
This makes it so the IR, in the future, can work correctly for
replacements.
2015-04-12 13:35:10 -07:00
Henrik Rydgard b309c83973 Initial work on ARM64, based on the ARM jit. 2015-04-06 18:13:01 +02:00
Henrik Rydgard f7215c39ee Add missing memcheck to Replace_memcpy_jak 2015-03-19 23:09:39 +01:00
daniel229 a4d8be5023 Fixes saveicon in Gakuen Heaven. 2015-03-18 11:43:31 +08:00
Unknown W. Brackets 4c15afa905 Allow multiple replacements on the same func.
Or, more specifically, hooks.  This allows enter and exit on the same
func, which can obviously be useful for debugging.
2015-02-21 15:48:09 -08:00
Henrik Rydgard 879baec692 With this, Jak and Daxter works again (but does warn at startup and has one illegal GetPointer later).
I really don't understand what's going on..
2015-02-21 13:07:13 +01:00
Henrik Rydgard 1ecfd6cebc More replacement function accuracy improvements. Makes J&D happy, "fixing" #7502. 2015-02-20 00:17:47 +01:00
Henrik Rydgard 23492d8d90 Jak and Daxter relies on implementation details of memcpy (scary!), fix our replacement. Fixes #7502 2015-02-19 11:16:16 +01:00