Extending and Repointing

Manual Repointing

There's a few options for finding pointers yourself and updating them to new locations. Event Assembler comes with the command line program PFinder in Event Assembler/Tools, that given a rom and an offset will find all pointers to that offset for you. Otherwise, you can manually hunt down pointers yourself in a hex editor. Take the hex value of the address the table is located at in the ROM, add 0x08000000, reverse the byte order, and search for matches. Make sure you check beyond just the first match, as there may be more than 1 reference to the address. Once you've located your pointers, the next step is replacing them. Generally, the standard way of doing this in EA is something like:

PUSH
ORG $<OFFSET1>
POIN <LABEL>
ORG $<OFFSET2>
POIN <LABEL>
POP

where each <OFFSET> is the locations you found in the previous step, and <LABEL> is the new location of the data you're repointing, easiest done by placing it at an EA label.

Repointing CSVs

CSVs can be repointed automatically by C2EA quite easily. In the top left cell where you would normally have the table offset, instead put INLINE MyTableLabel and the contents of the CSV will be placed in free space and have all references to it automatically updated to instead reference MyTableLabel.

Last updated