I know you're done with this project and all but I guess I'm still hoping you could help me understand this.
I made a cheat code for Fire Emblem Fates that involves the D9 code type for storing pointers.
Here is the cheat I made.
D9000000 158235C4
D4000000 00001DB0
B06D9F40 00000000
D6000000 0000009C
Now as you can see I'm trying to store the pointer at offset 158235C4 and add 1DB0 to it. However it appears that the debugger is instead writing 00000000 to 158235C4 instead. Anyway, here is the whole log.
GS | D9 0 158235C4 -> [True, 0, 0, 0]
> Write(0x158235C4, (0x0, 0x0, 0x0, 0x0), pid=0x29)
null
GS | D4 0 1DB0 -> [True, 0, 0, 4]
GS | B 6D9F40 0 -> [True, 0, 0, 4]
Started readValue(int, int)
> Read(0x6D9F44, 0x4, pid=0x29)
null
GS | D6 0 9C -> [True, 0, 0, 166BBDC8]
Started readValue(int, int)
> Read(0x166BBE64, 0x4, pid=0x29)
null
packet: cmd = 9, dataLen = 4
Read memory: C8BD6B16
packet: cmd = 9, dataLen = 4
Read memory: 01000000
finishedfinishedfinished