они не динамические, они все в коде в одних и тех же местах
Да, на своих местах, но адреса этих мест вычисляютса динамически. Прохождение всево кода рома статически - нерешаемая задача.
Што-то пытаютса эвристики, но, как видно, ошыбаютса.
В итоге секрет оказался прост: поиск оставшыхся таких функцый рекомпилятры перекладывают на игроков как на тэстировщиков, и портировщика, если он не бросил исправлять порт.
компилируешь код обратно в ром побайтово, это 100% гарантия.
Раз всегда есть ненайденные функцыи, они просто помечены как данные и при компиляцыи обратно в ром просто вставляютса на свои места. То есть это не гарантия.
Я делаю свой рекомпилятр (начал думать ещę до всей это волны портов), так вот с ним надо будет сначала пройти весь код игры в эмулятре или на консоли, абсолютно все ветки.
Поэтому мне было дико интересно как поступили в этих 'статичных' рекомпилятрах. Мучил нейросети, но даже они не смогли понять и объяснить. Писал некоторым портировщикам - они тоже не знали всех тонкостей

Похоже, просто заставляли ИИ разбиратса в Си-коде или вообще забили на баги.