From 99ca32baf8489a8ce9167e35f51cb042a27fe018 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Thu, 27 Feb 2025 15:52:07 -0600 Subject: [PATCH 1/3] make osPiReadIo no longer ignored --- src/operations.cpp | 2 ++ src/symbol_lists.cpp | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/operations.cpp b/src/operations.cpp index 70201d3..2cbe3f3 100644 --- a/src/operations.cpp +++ b/src/operations.cpp @@ -9,6 +9,8 @@ namespace N64Recomp { { InstrId::cpu_mflo, { UnaryOpType::None, Operand::Rd, Operand::Lo } }, { InstrId::cpu_mtc1, { UnaryOpType::None, Operand::FsU32L, Operand::Rt } }, { InstrId::cpu_mfc1, { UnaryOpType::ToInt32, Operand::Rt, Operand::FsU32L } }, + { InstrId::cpu_dmtc1, { UnaryOpType::None, Operand::FsU64, Operand::Rt } }, + { InstrId::cpu_dmfc1, { UnaryOpType::None, Operand::Rt, Operand::FsU64 } }, // Float operations { InstrId::cpu_mov_s, { UnaryOpType::None, Operand::Fd, Operand::Fs, true } }, { InstrId::cpu_mov_d, { UnaryOpType::None, Operand::FdDouble, Operand::FsDouble, true } }, diff --git a/src/symbol_lists.cpp b/src/symbol_lists.cpp index cbe5ff5..9703fca 100644 --- a/src/symbol_lists.cpp +++ b/src/symbol_lists.cpp @@ -58,6 +58,7 @@ const std::unordered_set N64Recomp::reimplemented_funcs { // Parallel interface (cartridge, DMA, etc.) functions "osCartRomInit", "osCreatePiManager", + "osPiReadIo", "osPiStartDma", "osEPiStartDma", "osPiGetStatus", @@ -268,7 +269,7 @@ const std::unordered_set N64Recomp::ignored_funcs { "__osDevMgrMain", "osPiGetCmdQueue", "osPiGetStatus", - "osPiReadIo", + //"osPiReadIo", "osPiStartDma", "osPiWriteIo", "osEPiGetDeviceType", From 9d04698fefece2525b579883630425af2133d3f2 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Thu, 27 Feb 2025 15:55:56 -0600 Subject: [PATCH 2/3] remove added dmtc1/dmfc1 functionality --- src/operations.cpp | 2 -- src/symbol_lists.cpp | 1 - 2 files changed, 3 deletions(-) diff --git a/src/operations.cpp b/src/operations.cpp index 2cbe3f3..70201d3 100644 --- a/src/operations.cpp +++ b/src/operations.cpp @@ -9,8 +9,6 @@ namespace N64Recomp { { InstrId::cpu_mflo, { UnaryOpType::None, Operand::Rd, Operand::Lo } }, { InstrId::cpu_mtc1, { UnaryOpType::None, Operand::FsU32L, Operand::Rt } }, { InstrId::cpu_mfc1, { UnaryOpType::ToInt32, Operand::Rt, Operand::FsU32L } }, - { InstrId::cpu_dmtc1, { UnaryOpType::None, Operand::FsU64, Operand::Rt } }, - { InstrId::cpu_dmfc1, { UnaryOpType::None, Operand::Rt, Operand::FsU64 } }, // Float operations { InstrId::cpu_mov_s, { UnaryOpType::None, Operand::Fd, Operand::Fs, true } }, { InstrId::cpu_mov_d, { UnaryOpType::None, Operand::FdDouble, Operand::FsDouble, true } }, diff --git a/src/symbol_lists.cpp b/src/symbol_lists.cpp index 9703fca..19c343c 100644 --- a/src/symbol_lists.cpp +++ b/src/symbol_lists.cpp @@ -269,7 +269,6 @@ const std::unordered_set N64Recomp::ignored_funcs { "__osDevMgrMain", "osPiGetCmdQueue", "osPiGetStatus", - //"osPiReadIo", "osPiStartDma", "osPiWriteIo", "osEPiGetDeviceType", From b0cdff873335ea91a1f7b092d654382ef44d910a Mon Sep 17 00:00:00 2001 From: Rainchus Date: Thu, 27 Feb 2025 16:00:49 -0600 Subject: [PATCH 3/3] add dmtc1 and dmfc1 to recompiler --- src/operations.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/operations.cpp b/src/operations.cpp index 70201d3..2cbe3f3 100644 --- a/src/operations.cpp +++ b/src/operations.cpp @@ -9,6 +9,8 @@ namespace N64Recomp { { InstrId::cpu_mflo, { UnaryOpType::None, Operand::Rd, Operand::Lo } }, { InstrId::cpu_mtc1, { UnaryOpType::None, Operand::FsU32L, Operand::Rt } }, { InstrId::cpu_mfc1, { UnaryOpType::ToInt32, Operand::Rt, Operand::FsU32L } }, + { InstrId::cpu_dmtc1, { UnaryOpType::None, Operand::FsU64, Operand::Rt } }, + { InstrId::cpu_dmfc1, { UnaryOpType::None, Operand::Rt, Operand::FsU64 } }, // Float operations { InstrId::cpu_mov_s, { UnaryOpType::None, Operand::Fd, Operand::Fs, true } }, { InstrId::cpu_mov_d, { UnaryOpType::None, Operand::FdDouble, Operand::FsDouble, true } },