I find this to be a general solution to be required but I am specifically altering the program for Thunderforce 3.
My first interest to permit me to analyse TF3 executing is to have a player ship that is invincible and as such located the section of code that handle lives, fatal collision-detection and then found the part of the game where the ship is invincible at the very start of a level when the ship is flashing.
I made changes and directly entered corresponding machinecode but of course anything that is larger than the original instruction offsets the rest of the ROM upwards - I do not want this. As an interim I placed in instructions that were the same size so a 4 Byte was replaced with a 4B or 2 x 2B, etc.
No extra data - only code changes.
References to program code and data need to be either preserved as I have had to do thus far or recalculated.
Editor is available for level data but that does not serve my purpose - I am altering the program code.
Also some context might help; "altered the initial addresses for data and instructions" is not so clear. Hopefully you do not mean "I put everything in the ROM forward by ?? bytes" because that is a nightmare way to set about a hack.
Do you mean "I wanted a larger text section and to keep it all together I shuffled it to the blank space at the end of the ROM", not always the best move for a production hack it is a method that does work so OK.
No to both.