diff --git a/README.md b/README.md
index 3cee7ed..5700d76 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ Supports:
- ARM (GBA, DS, 3DS)
- ARM64 (Switch)
- MIPS (N64, PS1, PS2, PSP)
-- PowerPC (GameCube, Wii, Xbox 360)
+- PowerPC (GameCube, Wii, PS3, Xbox 360)
- SuperH (Saturn, Dreamcast)
- x86, x86_64 (PC)
diff --git a/objdiff-core/Cargo.toml b/objdiff-core/Cargo.toml
index 2aa62ce..4acd73b 100644
--- a/objdiff-core/Cargo.toml
+++ b/objdiff-core/Cargo.toml
@@ -128,7 +128,7 @@ itertools = { version = "0.14", default-features = false, features = ["use_alloc
log = { version = "0.4", default-features = false, optional = true }
memmap2 = { version = "0.9", optional = true }
num-traits = { version = "0.2", default-features = false, optional = true }
-object = { git = "https://github.com/gimli-rs/object", rev = "16ff70aa6fbd97d6bb7b92375929f4d72414c32b", default-features = false, features = ["read_core", "elf", "pe"] }
+object = { git = "https://github.com/gimli-rs/object", rev = "16ff70aa6fbd97d6bb7b92375929f4d72414c32b", default-features = false, features = ["read_core", "elf", "coff"] }
pbjson = { version = "0.7", default-features = false, optional = true }
prost = { version = "0.13", default-features = false, features = ["prost-derive"], optional = true }
regex = { version = "1.11", default-features = false, features = [], optional = true }
diff --git a/objdiff-core/src/arch/arm.rs b/objdiff-core/src/arch/arm.rs
index fffc9cb..8ce6901 100644
--- a/objdiff-core/src/arch/arm.rs
+++ b/objdiff-core/src/arch/arm.rs
@@ -11,7 +11,7 @@ use object::{Endian as _, Object as _, ObjectSection as _, ObjectSymbol as _, el
use unarm::{args, arm, thumb};
use crate::{
- arch::Arch,
+ arch::{Arch, RelocationOverride, RelocationOverrideTarget},
diff::{ArmArchVersion, ArmR9Usage, DiffObjConfig, display::InstructionPart},
obj::{
InstructionRef, Relocation, RelocationFlags, ResolvedInstructionRef, ResolvedRelocation,
@@ -356,47 +356,57 @@ impl Arch for ArchArm {
Ok(())
}
- fn implcit_addend(
+ fn relocation_override(
&self,
_file: &object::File<'_>,
section: &object::Section,
address: u64,
- _relocation: &object::Relocation,
- flags: RelocationFlags,
- ) -> Result