а сам разобраться не можешь ?
ну или хотя бы более внятно объяснить. из твоих сообщения я так понял что был трейнер, и нормально работал в одной игре, но когда его изменили и прикрутили к другой - оно виснет на реальной плойке.
если так - похоже на проблемы с выравниванием. емнип в MIPS два типа команд чтения/записи - выровненные и нет, первые могут читать/писать лишь в адреса кратные 2/4, вторые могут читать/писать по любым адресам но медленнее.
перепроверь и убедись что все переменные и данные выровнены как надо (16бит переменные на чётных адресах, 32бит переменные на адресах кратных 4).
также можешь добавить индикацию работы бордюром, типа поставили один цвет, запустили одну процедуру, поставили другой цвет запустили другую, итд. чтоб если/когда оно повиснет на реальной железке, по цвету было хоть понятно на какой части кода оно сдохло.