Commit Graph

6456 Commits

Author SHA1 Message Date
zilmar bb042406be RSP: Add const to mmx and sse terms 2024-06-13 20:50:54 +09:30
zilmar 303af24bde RSP: Better handle delay slot at 0xFFC 2024-06-13 14:54:44 +09:30
zilmar c3d6ed1a0c RSP: Have the code be able to loop 2024-06-13 14:23:59 +09:30
zilmar 7161a6f591 RSP: Handle break in delay slot 2024-06-13 12:55:23 +09:30
zilmar d3411809f7 RSP: Get Recompiler to use LWU 2024-06-13 12:34:28 +09:30
zilmar 73c9174ce9 Core: Remove Memory exception filer 2024-06-13 11:50:06 +09:30
Summate 65a9097980
Allowing a paste into a number field to be trimmed automatically (#2414)
The specific issue I experienced is that Excel/LibreOffice Calc add a newline when you copy the contents of a single cell. This is bad behavior and they should provide a copy option that does not do that, but alas, it's much harder to get that into those applications. This behavior made it impossible to paste an otherwise-valid hex address into the Project64 fields without first putting it into Notepad, deleting the newline, recopying, and then doing the paste from there. If the field was simply text, you can go into the field edit and shift + home to select all and then do a copy, but that does not work for a formula. When you edit the file, it shows the formula instead. Therefore, you have absolutely no way of working around this except pasting it somewhere else and removing the newline manually.

In principle, there's no reason why you wouldn't trim the ends at least. Whitespace on either end is useless to you. However, content being after the newline should be rejected as it was before.

There were two secondary issues in the pasting code that are fixed here: One is that it only sort of collapsed single spaces. So if you had more than one space, spaces still would have ended up in the result. Actually I think the semantics were slightly more insidious, <space><number> would have turned into <number><same number> effectively. The only thing it did was remove the space by duplicating the number. If you had two spaces, then it would have ended up with e.g. <space><number><same number>. The only case where this wouldn't have happened is a space at the end which would have been preserved in the paste.

Secondly, it mutated the clipboard data directly. This would have lead to confusing results where multiple pastes would have had clipboard data in the clipboard itself move from, for example, two spaces to a single space to no spaces at all. The better solution is to preprocess to figure out how big we ultimately want our space-less result to be and stamp out the copy ourselves skipping anything we don't want. Leave the clipboard alone.

If it's desired to preserve single spaces only in the middle, the code will need to be modified a bit.

Co-authored-by: Summate <summate.ssbm@gmail.com>
2024-06-06 14:22:26 +09:30
Derek "Turtle" Roe f1d0c49d73
Add TOC to the README and other improvements (#2424)
* Add TOC

* Added some extra things to the build instructions

* Added a link to the build doc
2024-06-06 14:21:17 +09:30
MegaMech 0761ad4a83
Fix implementation of quad3d for f3dex 0.95 on pj64 video plugin (#2427)
* Update ucode01.cpp

* Fix quad3d implementation for f3dex 0.95

* Fix compile
2024-06-06 14:20:46 +09:30
zilmar 91f9cdaaa7 Core: Change the Program counter to be 64bit 2024-06-06 14:09:12 +09:30
zilmar 77ac4744a5 Core: Make sure fpu stack is being cleared 2024-05-23 11:52:58 +09:30
zilmar 0ff0d5234c Core: In R4300iOp::CheckFPUInput64 check values directly instead of using fpclassify 2024-05-23 11:43:19 +09:30
zilmar ec714cd90d Core: in CX86RecompilerOps::CompileCheckFPUResult64 protect RegPointer before Map_TempReg(asmjit::x86::eax) 2024-05-23 11:41:15 +09:30
zilmar 3baaa829de Core: Remove g_TLBLoadAddress, g_TLBStoreAddress global variables 2024-05-16 16:34:17 +09:30
zilmar ae21e10a8d Core: Increase the minimal amount of free space in recompiler memory 2024-05-16 16:15:28 +09:30
zilmar a1f46356fb Core: remove usage of g_RecompPos 2024-05-16 16:08:23 +09:30
zilmar 7f18773b5b Core: Add CX86RegInfo::GetFPStatusReg 2024-05-16 15:51:04 +09:30
zilmar 13bd420b2a Core: Sync FP status register in advanced block linking 2024-05-16 15:45:38 +09:30
zilmar 703a09d034 Core: Remove protecting memory option 2024-05-09 17:56:28 +09:30
zilmar b851689ceb RDB: Remove SMM-Protect as a setting being used 2024-05-09 15:59:04 +09:30
zilmar f478f16269 Core: Clear FP Status flag in recompiler on BC1FL and BC1TL 2024-05-09 10:55:38 +09:30
zilmar 4c23e7af2c Core: Remove ChangeFPURegFormat, Load_FPR_ToTop 2024-05-02 17:21:01 +09:30
zilmar c786bc3251 Core: Force Fpu exception in recompiler 2024-05-02 16:34:13 +09:30
zilmar b3e8b760e6 Core: get COP1_S_TRUNC_L, COP1_S_CEIL_L, COP1_S_FLOOR_L, COP1_W_CVT_S, COP1_W_CVT_D, COP1_L_CVT_S, COP1_L_CVT_D to use COP1_S_CVT function 2024-05-02 15:48:43 +09:30
zilmar dd0f7ad776 Core: Have CX86RecompilerOps::COP1_S_CVT be able to handle the old format of FPU_Dword and FPU_Qword 2024-05-02 15:46:03 +09:30
zilmar 046f27ce98 Core: fix up some bugs in CX86RecompilerOps::COP1_S_CVT 2024-04-25 20:47:02 +09:30
zilmar 627b4d6103 Core: Get CompileCheckFPUInput check InvalidValueMax, InvalidMinValue in conv 2024-04-25 20:41:03 +09:30
zilmar b92e6bd752 Core: get to COP1_S_ROUND_L and COP1_S_CVT_L to use COP1_S_CVT 2024-04-25 20:22:47 +09:30
zilmar d658477cf4 Core: get CX86RecompilerOps::Compile_Branch to clear status flags 2024-04-18 17:31:19 +09:30
zilmar b313640831 Core: In CX86RegInfo::Map_TempReg allow it to use FPStatusReg if it is unprotected 2024-04-18 17:28:23 +09:30
zilmar 1172b6e04d Core: get CX86RecompilerOps::SW_Const on 0x04300000 to call MIPSInterfaceHandler directly 2024-04-18 17:21:39 +09:30
zilmar 38738b783d Core: get CX86RecompilerOps::COP1_S_CVT to handle NewFormat == CRegInfo::FPU_Qword 2024-04-18 17:11:45 +09:30
zilmar 7dc53e51cf Core: Get CompileCheckFPUInput to better handle 64bit value check 2024-04-18 17:00:29 +09:30
zilmar a9875b7d61 Core: Get COP1_D_CMP to map eax before CompileInitFpuOperation 2024-04-18 16:58:18 +09:30
zilmar 3203322d8b Core: Get COP1_D_CVT_L to use COP1_S_CVT 2024-04-18 16:56:30 +09:30
zilmar 9e73771815 Core: Use the new COP1_S_CVT in COP1_D_ROUND_L, COP1_D_TRUNC_L, COP1_D_CEIL_L, COP1_D_FLOOR_L 2024-04-18 16:51:53 +09:30
zilmar fe87142657 Core: CX86RecompilerOps::COP1_S_CMP should allocate eax before calling CompileInitFpuOperation 2024-04-18 16:42:48 +09:30
zilmar 4071b52810 Core: CX86RegInfo::UnMap_X86reg should fail on a protected register 2024-04-18 16:41:03 +09:30
zilmar 79f7aa9927 Core: CX86RegInfo::UnMap_FPStatusReg should unprotect register before trying to free it 2024-04-18 16:34:49 +09:30
zilmar 0cf4c7dc11 Core: get COP1_D_CMP to work in recompiler 2024-04-11 18:14:44 +09:30
zilmar 9272ac05f6 Core: refactor S opcodes to one central function 2024-04-11 18:09:30 +09:30
zilmar e7178dbdec Core: Fix CX86RecompilerOps::COP1_D_CVT_S 2024-03-28 20:05:27 +10:30
zilmar 8bb2445263 Core: Have CX86RecompilerOps::CompileCheckFPUResult32 write to the high word 2024-03-28 20:02:24 +10:30
François Berder 560c49ba2d
Core: Fix N64 disk IPL load address check (#2401)
The IPL load address check always evaluated to false due
to a wrong operator.

Signed-off-by: Francois Berder <fberder@outlook.fr>
2024-03-21 17:52:09 +10:30
zilmar 45fb2ad965 Core: In X86RecompilerOps::CompileCheckFPUResult64 make sure RegPointer is protected 2024-03-21 17:44:53 +10:30
zilmar 2811b63ff0 Core: Update CX86RecompilerOps::COP1_D_CVT_S and CX86RecompilerOps::COP1_D_CVT_W 2024-03-21 17:41:29 +10:30
zilmar 33d2722841 Core: fix up CX86RecompilerOps::COP1_D_FLOOR_W 2024-03-21 17:40:14 +10:30
zilmar 9a9c2e5439 Core: Update CX86RecompilerOps::COP1_D_CEIL_W 2024-03-21 17:32:12 +10:30
zilmar 401efae0d9 Core: fix up CX86RecompilerOps::COP1_D_ROUND_W 2024-03-21 17:28:16 +10:30
zilmar 772a20f07d Core: Update CX86RecompilerOps::COP1_D_SQRT 2024-03-21 17:15:10 +10:30