Автор Тема: [Хак Battle City] Как добавить пистолет в танчики?  (Прочитано 1145 раз)

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

Оффлайн HenryLANDEMU

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
Вот какая проблема я хочу добавить пистолет в танчики.! Но я не знаю как это сделать. Я новичок в ромхакинге и не могу понять как это сделать. Можете помочь?

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5108
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #1 : 12 Август 2022, 17:53:25 »
Лучше не надо, это непросто и мерцать придётся для определения позиции, что лично меня раздражает. Начать нужно с изучения https://www.nesdev.org/wiki/Zapper, внизу ссылки на тестовые ромы с исходным кодом. С мышкой думаю намного проще и веселее https://www.nesdev.org/wiki/Super_NES_Mouse, только нельзя проигрывать DPCM сэмплы, есть игра https://rainwarrior.itch.io/nesert-golfing с поддержкой мыши.

Оффлайн lupus

  • Пользователь
  • Сообщений: 3828
  • Пол: Мужской
  • man with no face
    • ВКонтакте
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #2 : 12 Август 2022, 21:06:03 »
Может он про бонус «пистолет»?

Оффлайн HenryLANDEMU

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #3 : 12 Август 2022, 21:41:53 »
Может он про бонус «пистолет»?

Да я про бонус и говорил!

Добавлено позже:
Лучше не надо, это непросто и мерцать придётся для определения позиции, что лично меня раздражает. Начать нужно с изучения https://www.nesdev.org/wiki/Zapper, внизу ссылки на тестовые ромы с исходным кодом. С мышкой думаю намного проще и веселее https://www.nesdev.org/wiki/Super_NES_Mouse, только нельзя проигрывать DPCM сэмплы, есть игра https://rainwarrior.itch.io/nesert-golfing с поддержкой мыши.

Идея крутая! но это не то.......

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5108
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #4 : 12 Август 2022, 21:49:14 »
Может он про бонус «пистолет»?
:lol: И правда, я подумал про световой.

Но зачем добавлять бонус, который есть в хаках Tank 1990 и т. п. Тогда нужно изучать хак с пистолетом, а исходный код (после дизассемблирования) Battle City есть в сети. Насколько помню, там 6 бонусов, но можно было добавить ещё 2, что и сделали пираты. Нужно изменить вероятности выпадения и добавить соответствующий код (сделать танк сразу мощным не проблема, а про скашивание травы не знаю).

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 206
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #5 : 13 Август 2022, 02:17:31 »
https://github.com/cyneprepou4uk/NES-Games-Disassembly/blob/main/Battle%20City/bank_FF.asm

Таблица с рандомом бонусов на строке 6708. Пистолет под индексом 06. Поинтеры на подпрограммы поднятия бонусов на строке 6863. По умолчанию будет просто выполняться RTS, то есть по сути кода для пистолета не существует, и в игре ничего не произойдет если добавить бонус в таблицу и поднять пистолет. Код надо дописывать самому, например максимальная прокачка танка.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5108
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #6 : 13 Август 2022, 05:14:40 »
Cyneprepou4uk, я и забыл, что там изображение пистолета было, благодаря вам всё просто: поставить CPU $E900 или CPU $E901 байт 06 (будет реже попадаться либо звезда, либо граната) и уже будет появляться пистолет, а для добавление своего кода в CPU $E9EE записать адрес CPU $FF50 (байт 50 FF), где место свободно. В CPU $FF50 для макс. танка (не проверял):
  LDA #$60
  STA ram_tank_upgrade,X ; $0101
  STA ram_tank_type,X ; $A8
  RTS
Можно в Tank 1990 посмотреть, думаю не сложно найти.

Оффлайн HenryLANDEMU

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #7 : 13 Август 2022, 10:59:26 »
Спасибо попытаюсь сделать.

изменено: Я делаю через хекс редактор.
« Последнее редактирование: 13 Август 2022, 11:09:45 от HenryLANDEMU »

Оффлайн Mr2

  • Пользователь
  • Сообщений: 1611
  • Пол: Мужской
  • Free roaming sorcerer
    • Facebook
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #8 : 13 Август 2022, 12:16:26 »
:lol: И правда, я подумал про световой.
Ага, и семпл ещё запилить после выстрела:"есть пробитие". :lol:

Оффлайн HenryLANDEMU

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #9 : 13 Август 2022, 17:12:19 »
Cyneprepou4uk, я и забыл, что там изображение пистолета было, благодаря вам всё просто: поставить CPU $E900 или CPU $E901 байт 06 (будет реже попадаться либо звезда, либо граната) и уже будет появляться пистолет, а для добавление своего кода в CPU $E9EE записать адрес CPU $FF50 (байт 50 FF), где место свободно. В CPU $FF50 для макс. танка (не проверял):
  LDA #$60
  STA ram_tank_upgrade,X ; $0101
  STA ram_tank_type,X ; $A8
  RTS
Можно в Tank 1990 посмотреть, думаю не сложно найти.
На хекс не похоже....

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5108
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #10 : 13 Август 2022, 19:01:09 »
HenryLANDEMU, как вы собрались код писать через HEX-редактор. CPU $E900 в роме это 0x2900 + 0x10 заголовок. Простой код я добавляю через Mesen (Assembler), а для сложного есть отдельные ассемблеры. Простой дизассемблер онлайн - https://www.masswerk.at/6502/disassembler.html (нужно не забывать менять промежуток, который сохраняется от прошлого кода) и для одичалых онлайн ассемблер - https://www.masswerk.at/6502/assembler.html, который даст ваши любые байты.
Кстати, не уверен, что нужно STA ram_tank_upgrade,X ; $0101, тогда только:
Цитата
LDA #$60
STA $A8,X
RTS
Что в байтах A9 60 95 A8 60.
Cyneprepou4uk уже написал помощь для начинающих ромхакеров: https://cyneprepou4uk.github.io/iromhacker/nes/ru/index.html. Для начало это прочтите, чтобы не спрашивать почему LDA не похоже на HEX.

Оффлайн Cyneprepou4uk

  • Пользователь
  • Сообщений: 206
  • Пол: Мужской
  • Самый лысый ромхакер
    • ВКонтакте
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #11 : 14 Август 2022, 02:59:40 »
Sharpnull, насколько я помню, один из этих двух адресов отвечает за графику степени апгрейда, а второй за непосредственную степень апгрейда. По крайней мере при взятии звезды пишется в оба адреса.

Добавлено позже:
HenryLANDEMU, полный код в хексе будет A9 60 9D 01 01 95 A8 60

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5108
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #12 : 14 Август 2022, 05:15:39 »
Cyneprepou4uk, я код и брал от звезды. Сейчас посмотрел, $0101,X нужно. Для полного танка достаточно установить $A8,X = #$60, а $0101,X для переноса улучшения на следующий уровень. В остальном $0101,X используется для проверки при взятии звезды, иначе после полного будет 2-я форма (#$20), но проверку можно изменить с $0101,X на $A8,X. Эти адреса $0101,X, но с индексами врагов, также используются зачем-то.
В Tank 1990 для скоса травы используется ещё $0178,X, должно быть #$A0 или больше. Звёзды туда прибавляют #$20, пистолет #$60.

Оффлайн HenryLANDEMU

  • Пользователь
  • Сообщений: 5
    • Просмотр профиля
[Хак Battle City] Как добавить пистолет в танчики?
« Ответ #13 : 14 Август 2022, 08:51:08 »
Спасибо Cyneprepou4uk и Sharpnull!