Я считаю, что это замечательная игра, пусть и переусложненная.
Но как и в некоторых нес-овских играх в ней нет необходимой вещи - выстрела (броска) в прыжке.
Ради вселенской справедливости я хакнул ром и добавил пресловутый выстрел в прыжке.
Достигнуто это было следующим образом:
по FFD4 в дебаггере или же по 7FE4 в хексе добавлен код
20 6E B2 JSR B2 6E Подпроцедура, которая проверяет нажат ли выстрел
F0 0B BEQ $FFE4 И если не нажат то пропускаем следующие B символов переходя в адрес $FFE4
A9 04 LDA #04 Загружаем в A четверку - номер анимации выстрела в присяде, которая использовалась для выстрела в прыжке
9D 08 03 STA $308, X Пишем ее в 308, которое отвечает за анимации главного героя
20 97 AA JSR $AA97 Подпроцедура, которая отрисовывает героя
20 96 B4 JSR $B496 Подпроцедура выстрела
20 AB B2 JSR $B2AB Код который был на месте, куда мы врезали вызов своего
4C 1C B1 JMP $B11C Возврат на место из которого вызывался наш код
И по хекс адресу 7FE4 врезан 4C D4 FF, который вызывает наш код.
В процессе хака были найдены интересные значения, которые могут кому-нибудь пригодиться:
В $2d хранится опрос джойстика.
В $360 по x и $370 по х соответственно хранятся координаты х и у для спрайтов
$308 по х отвечает за номер анимации для персонажа.
В $506 хранится число отвечающее за текущее оружие
(т.е. пишем в 506, например, 5 - получаем трезубец)
В $B32B хранится левая граница, при достижении которой начинается сдвиг экрана (по умолчанию - 70)
В $B364 - правая (по умолчанию - 90)
В $AF92 и $AF96 хранятся координаты точек, в которые отбрасывается персонаж при достижении границ из B32B и B364
Приложенный IPS патч ставится на (U)[!] версию.
Каких либо проблем, связанных с новым кодом, замечено не было.