Такой код как раз очень легко ищется: открываю ром в любом Gens с дебаггером и захожу в дебаггер. Надо отметить, что в режиме отладки в одно время "работает" только один процессор, т.е. например, если я буду выполнять команды CPU - M68k, процессор Z80 останется на прежнем месте. И видеопроцессор тоже не будет генерировать никаких прерываний. В реальности и при эмуляции (не отладке) все процессоры работают параллельно. Т.к. при выполнении команд CPU видеопроцессор "ничего не делает" (это не совсем верно, но сейчас нас это не интересует), он не генерирует кадрового прерывания. Так вот, мы выполняем команды CPU (в Gens кнопка T - 1 команда, R - 10, E - 100, etc.) и застреваем на некотором цикле, в котором проверяется некая ячейка памяти на некое условие. Обычно он выглядит так:
cycle:
tst.x $addr ; (произвольная команда сравнения)
bne cycle ; (прыжок назад при неудачном сравнении для зацикливания)
Из этого цикла мы выйдем только после того, как содержимое этой ячейки изменится, а измениться оно может только при срабатывании прерывания. Команда bne нужна для зацикливания и ожидания прерывания Если её убрать, например, заменить командой NOP (её код 4E71, можно увидеть в примере выше), CPU не будет никого ждать и продолжит вычисления дальше. В результате, если их не очень много, игра может заметно ускориться (пример с Shining in the Darkness выше). Чтобы скорость игры не зависела от частоты процессора, начало нового периода выполнения каких-то вычислений связывают с некоторым "таймером". В случае сеги удобно использовать кадровое прерывание.
А чтобы игра зависла на этом месте, надо просто вместо bne написать bra $fe (код 60FE). Эта команда ссылается на саму себя и комп зависает, однако код прерываний по-прежнему выполняется при их срабатывании.
upd: только допёр, что я дал на самом деле код не на VInt, а на зацикливание перед ним. Для кода на VInt надо использовать адрес обработчика самого прерывания (вектор). Для CPU VInt считается внешним прерыванием с номером 6 и его вектор записан в роме по адресу $0078. Тогда код для Sylvester & Tweety in Cagey Capers (UE) [!] такой: 1F789A:60FE.
Этот код зацикливает самое начала обработчика кадрового прерывания и при первом же прерывании CPU зациклится на этой команде и не выйдет из этого состояния.
...блин, ну и понаписал