diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-02-04 21:12:47 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-02-04 21:12:53 +0100 |
| commit | 7cbe71c2188498adb43c1bcaf42d196b032a1940 (patch) | |
| tree | 10cadb8ff3342a624f937caa396762831dce17ac | |
| parent | 8bb53e10018e7ebee785afc8ad571f1cee5f9bef (diff) | |
| download | box64-7cbe71c2188498adb43c1bcaf42d196b032a1940.tar.gz box64-7cbe71c2188498adb43c1bcaf42d196b032a1940.zip | |
[DYNAREC] Fixed a rare issue when flags would not be computed on 1st opcode of a block if a jump go there (and added a profile for fixed MGSV:TPP)"
| -rw-r--r-- | src/dynarec/dynarec_native_pass.c | 2 | ||||
| -rw-r--r-- | system/box64.box64rc | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_native_pass.c b/src/dynarec/dynarec_native_pass.c index 1e013eb6..724a2115 100644 --- a/src/dynarec/dynarec_native_pass.c +++ b/src/dynarec/dynarec_native_pass.c @@ -123,7 +123,7 @@ uintptr_t native_pass(dynarec_native_t* dyn, uintptr_t addr, int alternate, int WILLWRITE(); } #endif - if((dyn->insts[ninst].x64.need_before&~X_PEND) && !dyn->insts[ninst].pred_sz) { + if((dyn->insts[ninst].x64.need_before&~X_PEND) && !ninst) { READFLAGS(dyn->insts[ninst].x64.need_before&~X_PEND); } if(BOX64ENV(dynarec_test) && (!BOX64ENV(dynarec_test_end) || (ip>=BOX64ENV(dynarec_test_start) && ip<BOX64ENV(dynarec_test_end)))) { diff --git a/system/box64.box64rc b/system/box64.box64rc index 8246c36e..e7f5b049 100644 --- a/system/box64.box64rc +++ b/system/box64.box64rc @@ -479,6 +479,16 @@ BOX64_DYNAREC_STRONGMEM=1 BOX64_DYNAREC_X87DOUBLE=1 BOX64_DYNAREC_FASTROUND=0 +[mgsvtpp.exe] +BOX64_DYNAREC_SAFEFLAGS=2 +BOX64_DYNAREC_BIGBLOCK=3 +BOX64_DYNAREC_CALLRET=1 + +[mgsvmgo.exe] +BOX64_DYNAREC_SAFEFLAGS=2 +BOX64_DYNAREC_BIGBLOCK=3 +BOX64_DYNAREC_CALLRET=1 + [MinutesTillDawn.exe] BOX64_DYNAREC_STRONGMEM=1 |