Автор Тема: Battle City - 4 players ; P.O.W. и Duck Tales 2 - 2 players hacks - релиз хаков.  (Прочитано 37966 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Всем привет. Играю в Battle City (4 players hack v1.3) (addendum 002). Начал заниматься ромхакингом только из-за этой игры. Перевёл на русский, сделал сборку со своими уровнями. Хотел ещё под себя немного переделать и не получается. Нашел что адрес 468e отвечает за количество врагов, а переключатель в меню умножает их на 2. Дак вот при изменении значения в ячейке появляются глюки в виде мигающих кирпичей и со временем пропадает информация с правой стороны (кол-во жизней и левел). Как это исправить? А вообще мне надо чтобы можно было выбрать (в идеале) 40 или 250 врагов, (или хотябы) 40 или 80 врагов. И думаю что счётчик врагов лучше отображать в цифрах как в приложеном роме и на скриншоте. Кто может подсказать хоть что нибудь?256161-0

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Это значение в памяти или роме?
Это он указал позицию в файле хака "Battle City (4 players hack v1.3) (addendum 002)".
при изменении значения в ячейке появляются глюки в виде мигающих кирпичей и со временем пропадает информация с правой стороны (кол-во жизней и левел). Как это исправить?
Очевидно, менять код отображения. Сразу замечу, что бонусные враги указаны в коде, если сделать 80 вместо 40, то бонусные враги будут только у 40. Отображение кол-ва оставшихся врагов в это хаке (4 players hack v1.3) (addendum 002) с CPU $DC6D:
Разбирайте и меняйте как хотите. Есть разобранный код Battle City, там можно посмотреть как всё устроено.
UPD:
счётчик врагов лучше отображать в цифрах как в приложеном роме и на скриншоте. Кто может подсказать хоть что нибудь?
Код отображения врагов в "Battle City - 2 vs 255" с CPU $BF20, туда передаётся в регистре A число, число делится на 100 и на 10, чтобы получить отдельные цифры. Вообще в Battle City для записи в PPU в RAM с $0180 записывается PPU адрес и тайлы с FF на конце, в этом коде так записываются цифры, а в оригинале стирался тайл врага справа.
« Последнее редактирование: 10 Январь 2023, 04:02:31 от Sharpnull »

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Разбирайте и меняйте как хотите. Есть разобранный код Battle City, там можно посмотреть как всё устроено

Не подскажете чем разобрать rom и где взять разобранный код Battle City. Я пока что работал только с HEX редактором и редактором графики

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 205
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Evgen72, добавил в игру счетчик врагов. Этот код для меня делал Тай еще в 2014м (в приложении).
Также вместо переключателя 20/40 танков с умножением на 2, я вывел оба значения в отдельную таблицу, редактируется в 0x71BE.

Исходник оригинала можешь посмотреть здесь https://github.com/cyneprepou4uk/NES-Games-Disassembly

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5005
    • Просмотр профиля
Cyneprepou4uk, можно сделать короче на 7 байтов процедуру добавления счёта:

Оффлайн varezhkin

  • Пользователь
  • Сообщений: 959
  • Пол: Мужской
    • Просмотр профиля
P.o.w. 2p v1.6
глубокое Вам мерси!  :hi:

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 205
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Sharpnull,

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля

 Battle City (4 players hack v1.3) (addendum 002) enemy counter.zip

Спасибо. Только осталось разобраться с тем что если я делаю 250 врагов, то бонусных танков нет. Можно сделать через каждые 10 или 15 обычных идёт бонусный. И тогда один РОМ будет заменять все возможные модификации
А так ещё в планах:
1. общие жизни на всех. А кто чаще умирает тот дольше ждёт в следующий раз респауна
2. отредачить экран подсчёта очков (ребенку не нравиться что непонятно кто сколько настреллял)). На скрине накидал эскиз
3. сократить 2 ноля в очках за сбитые танки
4. Увеличить кол-во уровней до 105 или более

Раз вы счётчик прикрутили за один вечер, может и это не сложно будет сделать :D
Я сам конечно хочу немного разобраться и научиться. Нашёл вот интересное видео, новичкам будет интересно https://www.youtube.com/watch?v=3H3vSKkVORg&t=121s

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 205
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Evgen72, я-то могу, но не стану лишать тебя удовольствия учиться самому. Я тоже с танчиков начинал.

Дам пару подсказок. Бонусные враги выбираются во время их респауна на основании счетчика врагов, в оригинале это $007F и $0080, не помню какой точно нужен. Ставь на него бряк на чтение, в хаке увидишь большой список сравниваемых индексов.

Чтобы сделать общие жизни, достаточно заменить команды $жизни,Х на $жизни.

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3899
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Evgen72, я-то могу, но не стану лишать тебя удовольствия учиться самому.
А зачем столько хакеров? Количество хакеров превышает количество хаков. В чём прикол?
Ну то есть один научиться хакать за пару лет, второй, третий. а хак так и будет полигры с каждого нового...

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Пусть лучше будут донимать тут? :)
Уверен, ромхакинг часто ведёт и в "большое" программирование. Не будут больше хаков от нового специалиста, так будет +1 специалист в IT.

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Я хакаю для себя. Мы семьёй почти каждый вечер играем. Вряд ли пойду дальше в программирование. Вот хак на 1-4 игрока, врагов 40 или 250, бонусные выходят рандомно (привязка к внутриигровому таймеру), примерно 1 бонусный на 20 обычных, в принципе меня устраивает пока. Буду сейчас общие жизни делать

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Получилось сделать общие жизни, но не до конца. Когда запасных жизней нет (значение в RAM 0х0120 равно 01) => далее одного из игроков убивают (значение в RAM 0х0120 становиться 00) игрок считается проигравшим и не возраждается) => далее если убивают ещё одного (значение в RAM 0х0120 становиться ff) и этот уже возраждается, и далее бесконечно можно убиваться. Моих познаний недостаточно чтобы это решить.
И хочу научиться искать координаты текста. Конкретно надпись GAME OVER после подсчёта очков хочу перевести как ИГРА ОКОНЧЕНА. Увеличить кол-во букв уже получилось. В данном случае конечно можно переставить буквы местами но для других случаев это не сработает
Всё это дело в приложеном РОМе
Буду благодарен если поможете.

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Вижу, у тебя много идей и энтузиазма, поэтому тебе пора учить ассемблер и дебаггер :)
Предлагаю скачать MESEN и изучать через него как работает код игры. Мощнее его только IDA.

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3899
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
perfect_genius, из-за одного Battle City учить ассемблер - это здоровый совет?  :debile:

Оффлайн perfect_genius

  • Пользователь
  • Сообщений: 1144
    • ВКонтакте
    • Steam
    • Просмотр профиля
Kinbeas, ты так написал, будто это крупная и сложная по устройству игра.

Оффлайн NeGAtiv4k

  • Пользователь
  • Сообщений: 45
  • Пол: Мужской
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
Он так написал по той причине, что учить язык программирования ради одной игры глупое решение.

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 205
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
NeGAtiv4k, очень часто после одной игры идет вторая, третья и тд. Особенно если что-то получается.

Evgen72, добавь условие, чтобы жизни не уменьшались если уже = 00.

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3899
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
очень часто
:lol: :lol:
Хде? У кого?
Я имею ввиду такие хаки, где реально нужно знать ассемблер. Весь интернет завален, аж не пролезть...

А конкретно по этому хаку. Если что-то надо улучшить, лучше бы это продолжал делать Ti_, чтобы хак оставался именным авторским.  :)

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 205
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Kinbeas, у тебя например  :)
Я на RHDN такое наблюдаю постоянно

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 3899
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Kinbeas, у тебя например
У меня мелкие хаки, хоть они и конкретно меняют геймплей или оптимизируют баланс. Но я таким не занимался, чтобы в ром вставлять новые условия, потому что без понятия, как и к чему их привязывать. И это надо игру разбирать. ))

Добавлено позже:
Cyneprepou4uk, единственное, что я поднял в прошлом году, это распределение палитр на экране.
Ломакс улучшил хак по вышибалам с выбором арен (http://technos-battles.ucoz.ru/load/khaki/nekketsu_koukou_dodgeball_bu/random_aren/9-1-0-263). Поскольку он добавил туда и арену с третьего режима, она была ниже, чем нужно. Пришлось мне её перерисовать и перераспределить палитры цветов. До этого наборы палитр на бэкграундах не менял. Но нашёл информацию. там было всё понятно объяснено. )) 
« Последнее редактирование: 19 Январь 2023, 17:24:23 от Kinbeas »

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 205
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
Evgen72, координаты текста

Оффлайн DMI3Y

  • Пользователь
  • Сообщений: 4
  • Пол: Мужской
  • Space Ranger
    • ВКонтакте
    • Просмотр профиля
Спасибо большое за проделанную работу! Очень круто в компании из 4 человек вспомнить былые времена. У меня вопрос к разработчику. А контру на nes не планируешь на 4 игрока сделать?

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Вот результат моей кропотливой работы. Велком на тестирование)

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Вот версия на которой думаю остановиться пока что. В архиве 3 рома, различаются только наборами уровней.
Список изменений по сравнению с Battle City (4 players hack v1.3) (addendum 002) enemy counter:
1. Общие жизни на всех игроков
2. 180 разных уровней
3. Каждый шестой враг - бонусный
4. Сократил два нуля в очках
5. Перевод на русский

Оффлайн immortalserg

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Подскажите люди добрые, скачал разные варианты Battle City на 4 игрока.
запускаю в FCEUX на Linux, в игре работают только 2 джойстика (в программе все 4 видит на портах 1,2,3,4)
такая же ситуация и RetroArch на Android
На чем корректно запустить чтобы заработали все 4 джойстика?

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Я использую retroarch на Андроиде, ядро nestopia. Всё работает нормально. Может вам нужно правильно привязать джойстики к портам в эмуляторе

Оффлайн immortalserg

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
Я использую retroarch на Андроиде, ядро nestopia. Всё работает нормально. Может вам нужно правильно привязать джойстики к портам в эмуляторе
ядро: Nintendo - NES / Famicom (Nestopia UE)
в настройках портов 1,2,3,4 сделал не автоматически, а привязал кнопки каждого джойстика (XBOX 360 Controller) (ID 045e:028e Microsoft Corp. Xbox360 Controller)
привязка ведь в меню Настройки - Ввод -
Порт 1 привязки
Порт 2 привязки
и т.д
?
или ещё где-то?
« Последнее редактирование: 26 Февраль 2024, 01:50:53 от immortalserg »

Оффлайн immortalserg

  • Пользователь
  • Сообщений: 3
    • Просмотр профиля
в общем удалось запустить в FCEUX 4 джойстика (меню Option - Input config - поставить галочку Attach 4-Score)

а где можно прочитать как пропатчить, хочу к такой версии 4 танка/40 вражеских (задача минимум) и доп уровни
в этой версии можно 2 снаряда выпускать и жизней по 20 у каждого.

Оффлайн Evgen72

  • Пользователь
  • Сообщений: 10
    • Просмотр профиля
Я по этому видео научился. 4 танка сделать сложно, скорее всего у вас не получиться). А вот количество врагов можно изменить.
https://www.youtube.com/watch?v=3H3vSKkVORg&t=121s