From 6f692d7296d7e45cf8afd72aa4c43e35cc064d9a Mon Sep 17 00:00:00 2001 From: lif <> Date: Mon, 25 Dec 2023 00:40:00 -0800 Subject: [PATCH] uhh swizzle io register addresses too?? is this anything --- common.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/common.h b/common.h index 8c0b128..b881422 100644 --- a/common.h +++ b/common.h @@ -141,11 +141,13 @@ typedef u32 fixed8_24; // #define eswap32(value) __builtin_bswap32(value) #define eswap16(value) (value) #define eswap32(value) (value) + #define swizzle_regnum(idx) ((idx) ^ 1) #define swizzle_h(ofs) ((ofs) ^ 2) #define swizzle_b(ofs) ((ofs) ^ 3) #else #define eswap16(value) (value) #define eswap32(value) (value) + #define swizzle_regnum(idx) (idx) #define swizzle_h(ofs) (ofs) #define swizzle_b(ofs) (ofs) #endif @@ -154,12 +156,12 @@ typedef u32 fixed8_24; #define readaddress16(base, offset) eswap16(address16(base, swizzle_h(offset))) #define readaddress32(base, offset) eswap32(address32(base, offset)) -#define read_ioreg(regnum) (eswap16(io_registers[(regnum)])) -#define write_ioreg(regnum, val) io_registers[(regnum)] = eswap16(val) +#define read_ioreg(regnum) (eswap16(io_registers[swizzle_regnum(regnum)])) +#define write_ioreg(regnum, val) io_registers[swizzle_regnum(regnum)] = eswap16(val) #define read_ioreg32(regnum) (read_ioreg(regnum) | (read_ioreg((regnum)+1) << 16)) -#define read_dmareg(regnum, dmachan) (eswap16(io_registers[(regnum) + (dmachan) * 6])) -#define write_dmareg(regnum, dmachan, val) io_registers[(regnum) + (dmachan) * 6] = eswap16(val) +#define read_dmareg(regnum, dmachan) (eswap16(io_registers[swizzle_regnum((regnum) + (dmachan) * 6)])) +#define write_dmareg(regnum, dmachan, val) io_registers[swizzle_regnum((regnum) + (dmachan) * 6)] = eswap16(val) #include #include