Разработка и ромхакинг > Ромхакинг и программирование
Friday 13th (NES) хак.
(1/1)
BalinDMK:
Я считаю, что это замечательная игра, пусть и переусложненная.
Но как и в некоторых нес-овских играх в ней нет необходимой вещи - выстрела (броска) в прыжке.
Ради вселенской справедливости я хакнул ром и добавил пресловутый выстрел в прыжке.

Достигнуто это было следующим образом:
по 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)[!] версию.
Каких либо проблем, связанных с новым кодом, замечено не было.
Phil:
BalinDMK, хак понравился!
Правда смысл, от того, что герои в прыжке стреляют... Зомбики же по земле ходят... Вот если бы ещё и некоторые зомбики прыгали (или все зомбики прыгали время от времени), чтобы их можно было сбивать в воздухе.
zhiharka:
а как поставить хак???
x.GREYSON.x:
Очень нужная вещь. Как раз в пещере, в лесу отбиваться и Джейсона валить удобно. Можно было б добавить в этот хак, где при уроне от Джейсона отнималась 1 черточка, а то быстро убивает, 4 удара и все, и все в такой же прогрессии. И/или хак от оригинала с начальным оружием Мачете.
x.GREYSON.x:
Если можно сделать так, чтобы было видно на карте где находится Джейсон. Или изобразить таким же (только зеленым) человечком, или мигающими домами. Вот это было б нужно.
BalinDMK:
x.GREYSON.x,
Насчет урона, это было бы слишком легко. От Джейсона очень просто уворачиваться, нажимая вниз+вбок.
Показывать положение Джейсона на карте теоретически возможно, но в роме практически нет свободного места под новый код. Я до сих пор не уверен на все сто, что не затер что-то нужное хаком.
x.GREYSON.x:
BalinDMK, ты что-то повредил. Если бить Джейсона на улице в прыжке, то, иногда, в низу экрана появляются куски оружия и игру глючит. а Джейсон на карте, типа моргание дома (любого, хоть большого) где он рядом находиться, т.к. он бывает в пустых домах. Но лучше человечком. :D
И еще, начальное оружие Мачете (или в место ножа(а в место мачете - топор)).


Я немного изменил графу оружия и Джейсона.
BalinDMK:

--- Цитата: x.GREYSON.x от 12 Август 2010, 20:51:20 ---BalinDMK, ты что-то повредил.

--- Конец цитаты ---
Мда. Действительно повредил. Причем умудрился ради теста пробежать пол игры и не столкнуться с багом. Совсем плохо у этого рома со свободным местом.


--- Цитата ---Если можно сделать так, чтобы было видно на карте где находится Джейсон.
--- Конец цитаты ---
Посмотрел код. За местоположение Джейсона отвечает переменная $512.
Проверка на встречу с Джейсоном начинается в B65B. Из трех переменных - $360 (положение x игрока на экране), $53 (счетчик положения игрока на подкольце карты), $8C (номер подкольца карты) вычисляется число, которое после сравнивается с переменной $512.
То есть, во-первых, похоже, что Джейсон, фактически, находится в нескольких местах сразу, чтобы увеличить вероятность столкновения с ним.
Во-вторых, я не вижу способа получить положение на карте из переменной $512 (для координат игрока используются совсем другие переменные - 2FF и 2FC).
Само отображение на карте домиком или человечком сделать совсем просто. Но нет координат и нет свободного места в коде.

P.S. Не хотелось заниматься некробампингом, но раз уж нашел данные, то решил поделиться на случай, если кто-то другой найдет способ.
x.GREYSON.x:
BalinDMK, ну с этим понятно, практически лажа. Переменный код с множеством значений неполучиться отследить. Но в игре то Джейсон бегает по одной линии (несчитая момента появления на озере, т.к. код получается многозначным) и это должно указываться на карте( слотов под это много оставлено).
А насчет смены оружия как? Можно сменить?
x.GREYSON.x:
Всем привет!!! Вопрос по игре такой возник. В роме есть несколько "запчастей" которых в игре не видно и непонятно для чего они нужны. Возможно ли включить их в игру. И еще кое-что. Как можно узнать содержание всех игровых сообщений (записки)?
Kinbeas:
BalinDMK, смысл вообще было создавать отдельную ветку ради такого незначительного хака?
Смысла в стрельбе в прыжках особого нет. Отображать Джейсона на карте - тем более. Мне кажется, это всё испортит.

Но если ты реально хочешь что-то добавить, то не сокрушайся на отсутствие свободного места, а расширяй ром и добавляй, и не выделывайся с файлами .ips. Тем более раз патч ставится только на одну версию игры, то смысла вообще нет в патче. Публикуй сразу ром, как белый человек.

Пока создание новой ветки не оправдывает себя абсолютно.
UnderCrops:

--- Цитата: +Kinbeas+ от 04 Ноябрь 2016, 21:30:38 ---Смысл вообще было создавать отдельную ветку ради такого незначительного хака?

--- Конец цитаты ---
А куда надо было залить?)
Kinbeas:

--- Цитата: UnderCrops от 05 Ноябрь 2016, 16:44:45 ---А куда надо было залить?)

--- Конец цитаты ---
В общую ветку хаков, которая прикреплена к главным в разделе.
UnderCrops:

--- Цитата: +Kinbeas+ от 05 Ноябрь 2016, 21:29:15 ---В общую ветку хаков, которая прикреплена к главным в разделе.

--- Конец цитаты ---
Если ты говоришь о "хаки на любой вкус", то она почти на два года позже была создана.
Kinbeas:
UnderCrops, а, сорри, я думал, это свежая ветка.  :blush:
UnderCrops:

--- Цитата: +Kinbeas+ от 06 Ноябрь 2016, 21:00:02 ---А, сорри, я думал, это свежая ветка.  :blush:

--- Конец цитаты ---
Я понял, что ты не обратил внимания на дату. По этому и отписал тебе.
Навигация
Главная страница сообщений

Перейти к полной версии