I have a Motorola 68K binary file that contains a table of a few hundred function pointers. If I set their data type to Pointer32, Ghidra interprets them as pointers as shown:
00100000 01 20 96 94 addr DAT_01209694
00100004 01 20 96 b2 addr DAT_012096b2
00100008 01 20 96 d0 addr DAT_012096d0
However, while the function pointers are stored as 32-bit values, they use a unique segment/address scheme:
AA SA AA AA(the segment in this project is always 2 and needs to be ignored when parsing the pointer address)
Essentially, I need to make a 32-bit pointer data type that "ignores" the S part of the address, such that the data would look like this if it was correct:
00100000 01 20 96 94 addr DAT_00109694
00100004 01 20 96 b2 addr DAT_001096b2
00100008 01 20 96 d0 addr DAT_001096d0
I'm somewhat new to Ghidra, so any pointers (pun intended) to where I can read up on creating custom pointer types would be greatly appreciated!