первая схема, как это работает в оригинале. Функция 1 где-то в коде обращается к Функции 2.
вторая схема, добавление каких-то финтифлюшек. нужно найти Функцию 2, перенести её в конец рома, изменить код, который бы использовал как-то твои новые метки, после найти Функцию 1 или все прочие места, которые ссылались на Функцию 2 и изменить там адрес со старого адреса Функции 2 (например 138) на новый адрес (например 194).
а как ты представляешь себе ромхакинг?
такие танцы с бубном с изменением адреса в принципе не нужны если - новый код для измененной функции занимает столько-же или меньше места после компиляции. или если у тебя есть полностью 100% дизассембленный код, то есть туда можно вносить какие угодно правки, где после сборки изменятся все адреса автоматом и игра в целом будет рабочая. ну и желательно еще уместится в размер до 4 мегабайт, чтобы любой эмулятор и железка игру могла в итоге запускать.
сборщик, тот что одиночный - это не 100% разобранный код. там есть некий базовый ром, где тайносокрытые какие-то функции, нам, неучам, непонятные
сборщик пвп я в глаза не видел
и осуждаю, но не думаю что там тоже на 100% все разобрано.
по поводу дебага - так затык то в чем: этот самый пвп работает только с модифицированным меднафеном, а обширный дебажный инструмент есть в шелловском эмуляторе. может что-то какие-то плагины для меднафена и есть, но я не знаю. да и не интересуюсь
копайте, Шура, копайте. я могу лишь помпонами с трибуны в качестве поддержки помахать