Ti_,
Я неверно выразился. Не нахождение таблиц, а, скорее, нахождение тех мест в коде, где выводится число для загрузки по таблице. Так просто и не объяснишь.
Вот, например:
$612 - номер удара. 00 для простого удара рукой Лео, 07 для простого удара ногой и т.п. В случае со Слешем, при ударе рукой в $612 неверно заносится вместо 00 - 02. Из-за этого проигрывается не та анимация.
В $612 пишется так:
8332 - ldy $12
lda 9388, y
sta $612, x
То есть проблема в $12. А вот где в $12 заносится неверное значение, я найти не могу. Глаз замылился.
Добавлено позже:
Этот хак не пошел на Nestopia, а значит не пошел бы и на настоящей NES.
Начал с нуля, удвоил количество банков, пошагово переписываю код для возможности добавления новых персонажей.
Но, так как в последнее время был занят в другой области, то работа движется очень медленно.
Добавлено еще позже:
Нашел кое-какие интересные данные, которыми хочу поделиться:
$4C0 - Порядковый номер мелодии в прослушивании BGM в опциях.
$829D от $4C0 - Настоящий номер мелодии.
(Например, если $4C0 = 0 - "BGM 01", то $829D = 2E)
$9E - номер уровня
$E3CB - загрузка данных о параллаксе на уровне
$E3DF - загрузка данных о графике уровня
$E928, $E927 - данные о палитре
$E3F9 - загрузка структуры уровня
$E920 (1E930h) - ссылки на структуру уровней story по порядку
$E46D - загрузка музыки уровней
далее $9025-$8F80 - продолжается загрузка музыки
$A0DC (20ECh); $A03F; $A1A4; $A1EE - четыре канала мелодии уровня "Pirate Ship".
Добавлено позже:
Столкнулся с серьезной проблемой.
Разбирающиеся ромхакеры, помогите, пожалуйста.
Суть проблемы:
Пытаюсь вынести процедуру, которая загружает номера банков для графики персонажей в бою, в другой Prg-банк.
Для этого копирую из 0x027152 (оригинальная процедура) 39 байт в 0x002070 (свой банк).
В 0x027152 вписываю следующий код:
lda #60
sta $d5
lda #80
sta $d6
jsr fec0
jsr fed0
rts
Этот код заносит в $d5 и $d6 оффсет для перехода. Прыжки fec0 и fed0 - мой код смены банков туда и обратно.
Результат: при входе в бой ром крашится через несколько секунд.
Подозреваю, что это может быть связано с прерываниями, но как исправить не разумею.
Прилагаю ips патч, в котором можно посмотреть на проблему.
Буду очень благодарен за помощь.