Автор Тема: Наши хаки  (Прочитано 1719942 раз)

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

Оффлайн Ramzet

  • Пользователь
  • Сообщений: 159
  • Пол: Мужской
  • Коллекционер хаков!!!
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #6600 : 13 Июнь 2020, 15:06:05 »
Всем доброго времени суток. Есть одна просьба у меня к ромхакерам. Кто сможет сделать на денди отдельный ром Tank N. Это танки 1990 где враги берут бонусы. Знаю есть сборник танков от а до я с разными ревизиями. Но хотелось бы иметь отдельный ром. Планирую записать его на картридж. Кто поможет буду примного благодарен.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5567
    • Просмотр профиля
Наши хаки
« Ответ #6601 : 13 Июнь 2020, 15:26:37 »
Кто сможет сделать на денди отдельный ром Tank N.
Если вы об этом

то, как я понимаю, там одна игра, а пункты - параметры. Вам вероятно нужно просто сделать переход на Tank N, с этим справится любой немного знакомый с хакингом NES.
И вы не сказали, нужно 15 -> 28 или 1 -> 14?

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5567
    • Просмотр профиля
Наши хаки
« Ответ #6602 : 13 Июнь 2020, 17:01:21 »
Ramzet, сделал простой пропуск, экран с выбором в начале виден на мгновение, как отключить не знаю, я не разбираюсь. В архиве ромы и патчи, на всякий случай.
Информация
RAM $46 - положение курсора, значения $00 - $06 (A - G), $80 - $86 (H - N).
RAM $8E - выбор (на select) 1->14 - значение $00, 15->28 - значение $01.
$C4A1: A9 80 LDA #$80 - начальная позиция курсора. Заменил на A9 86.
$C4E8: A9 01 LDA #$01 - начальный выбор 1->14 / 15->28. Заменил на A9 00 для версии 1->14.
$C576: F0 AF BEQ $C527 - заменил на F0 00, чтобы пропустить меню выбора.


Оффлайн Ramzet

  • Пользователь
  • Сообщений: 159
  • Пол: Мужской
  • Коллекционер хаков!!!
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #6603 : 13 Июнь 2020, 19:18:48 »
Ramzet, сделал простой пропуск, экран с выбором в начале виден на мгновение, как отключить не знаю, я не разбираюсь. В архиве ромы и патчи, на всякий случай.
Информация
RAM $46 - положение курсора, значения $00 - $06 (A - G), $80 - $86 (H - N).
RAM $8E - выбор (на select) 1->14 - значение $00, 15->28 - значение $01.
$C4A1: A9 80 LDA #$80 - начальная позиция курсора. Заменил на A9 86.
$C4E8: A9 01 LDA #$01 - начальный выбор 1->14 / 15->28. Заменил на A9 00 для версии 1->14.
$C576: F0 AF BEQ $C527 - заменил на F0 00, чтобы пропустить меню выбора.


А чем отличается 1->14 от 15->28?
Всё равно менюшка моргает пару раз. Если бы её убрать как то совсем, было бы шикарно.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5567
    • Просмотр профиля
Наши хаки
« Ответ #6604 : 13 Июнь 2020, 20:20:52 »
А чем отличается 1->14 от 15->28?
Наличие бонуса "корабль/понтон": https://promodj.com/x/blog/1012328/Battle_City_Super_Tank_1990_Tank_1991_Missile_Tank_1994_Missile_Tank_1995. Ещё есть версия "Tank 1990. 1".
Убрал меню. В подпрограмме $C4A1, где менял все остальные значения, заNOPал несколько JSR $D6B3, JSR $D8F6, JSR $FD0C - отображение меню, JSR $FD27 - курсор.
Не гарантирую, что сделал правильно, не разбирался что делают убранные вызовы и какие могут быть побочные эффекты, и как уже говорил, я не разбираюсь в NES хакинге.
Ошмёток танка в углу есть и в оригинале при запуске.

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2641
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #6605 : 14 Июнь 2020, 01:29:18 »
Убрал меню, версия N. Изменил 3 байта корруптором...

адрес в роме h0063EC изменил A5 на 8A плюс h0063EE изменил 0A на 8A - Начало с N (01-14 и 15-28)
адрес в роме h0044B6 изменил 70 на B0 - пропуск меню

Понтона вроде нет.

upd: Исправил ром, есть понтон и исправлена вероятность его появления.
« Последнее редактирование: 04 Сентябрь 2021, 03:28:43 от Guyver(X.B.M.) »

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5567
    • Просмотр профиля
Наши хаки
« Ответ #6606 : 14 Июнь 2020, 03:42:07 »
Понтона вроде нет.
На самом деле, как повезёт, потому что вы убрали инициализацию $8E, а RAM ($0000-$07FF) после power on может иметь любые значения. Если в эмуляторе стоят $00, то не будет "понтона", $FF - будет (проверил), Random - I'm feeling lucky.

Оффлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2641
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #6607 : 14 Июнь 2020, 05:28:37 »
off: Тогда вероятность появления понтона будет 1 к 256? :neznayu:
« Последнее редактирование: 14 Июнь 2020, 07:27:16 от Guyver(X.B.M.) »

Оффлайн Ramzet

  • Пользователь
  • Сообщений: 159
  • Пол: Мужской
  • Коллекционер хаков!!!
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #6608 : 14 Июнь 2020, 12:38:31 »
Sharpnull
Спасибо тебе большое за помощь, всё как и задумывалось. Респект тебе огромный. И всем тем кто участвовал в помощи)

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5567
    • Просмотр профиля
Наши хаки
« Ответ #6609 : 14 Июнь 2020, 13:19:11 »
off: Тогда вероятность появления понтона будет 1 к 256? :neznayu:
Для случайной RAM наоборот, я привёл $FF для примера, изначально срабатывало на $01. Сейчас проверил код выбора бонуса, проверка на равенство 0:
$C5F3
  LDA $8E                 
  BEQ $C5FB               
  LDA $E8FA,Y             
  RTS                     
$C5FB
  LDA $C63A,Y             
  RTS                     
# Значения в RAM
$C63A: 00 01 02 03 03 04 05 06
$E8FA: 00 01 02 03 04 05 06 07
Если != $00, то вместе с "понтоном" (07). В реальной жизни, на nesdev говорили, что обычно биты стоят в 1 с некоторыми 0, то есть чаще тоже будет "понтон", но эмуляторы по умолчанию могут ставить $00 (как Mesen).
--------
Здесь же можно исправить инициализацию, если вместо LDA $8E сделать LDA #$8E (A5 8E -> A9 8E) для "понтона" и без него - LDA #$00 (A9 00). В роме это адрес $4603.
« Последнее редактирование: 14 Июнь 2020, 13:39:25 от Sharpnull »

Оффлайн Veals

  • Пользователь
  • Сообщений: 4
    • Просмотр профиля
Наши хаки
« Ответ #6610 : 21 Июнь 2020, 20:15:51 »
Переделал весь уровень "Ниагарский водопад" в Duck Tales 2. Построен на глюках, трэше и желании Скруджу как можно скорее отправиться на тот свет.



Оффлайн Stormtrooper3d

  • Пользователь
  • Сообщений: 817
    • Просмотр профиля
Наши хаки
« Ответ #6611 : 21 Июнь 2020, 20:32:49 »
Veals, можешь попробовать еще вот эти, тебе должны понравится  :lol:  :lol:
В одном из них ухардкорены загадки, во втором вся игра

Онлайн AuAurora

  • Пользователь
  • Сообщений: 1737
  • Мур
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #6612 : 21 Июнь 2020, 22:02:34 »
Никому случаем не попадались хаки на скуби-ду, чтобы после использования предметы исчезали?  :blush:

Оффлайн Stormtrooper3d

  • Пользователь
  • Сообщений: 817
    • Просмотр профиля
Наши хаки
« Ответ #6613 : 21 Июнь 2020, 22:17:12 »
AuAurora, это как?

Онлайн AuAurora

  • Пользователь
  • Сообщений: 1737
  • Мур
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #6614 : 22 Июнь 2020, 11:00:51 »
Stormtrooper3d, ну в сеговском скуби. Предметы там вроде все по разу юзаются, но из-за того, что не исчезают - их всё время надо проматывать туда-сюда и путаться, что ещё не юзано

Оффлайн Stormtrooper3d

  • Пользователь
  • Сообщений: 817
    • Просмотр профиля
Наши хаки
« Ответ #6615 : 22 Июнь 2020, 11:55:23 »
не совсем) К примеру, лопата используется 2 раза, возможно что то еще. А писать исключения для некоторых предметов вряд ли кто-то будет :)

Оффлайн MaxWooD

  • Пользователь
  • Сообщений: 1110
    • Просмотр профиля
Наши хаки
« Ответ #6616 : 22 Июнь 2020, 13:47:06 »
не совсем) К примеру, лопата используется 2 раза, возможно что то еще. А писать исключения для некоторых предметов вряд ли кто-то будет :)
Ну про это и разговор: когда в игре пропадает надобность в каком-либо предмете, он должен исчезнуть, и ты уже не ломаешь голову для какого еще действия этот предмет в инвентаре. Или Шегги его выложить и сказать что-то наподобие: "Этот предмет нам больше не пригодится". Так было бы намного логичнее. Уже не помню что там  с предметами было...давно проходил.

Оффлайн Stormtrooper3d

  • Пользователь
  • Сообщений: 817
    • Просмотр профиля
Наши хаки
« Ответ #6617 : 22 Июнь 2020, 13:54:49 »
MaxWooD, это закон жанра. Это в современных играх тебе все подсвечивают, советуют и тебе вообще не нужно ни над чем думать. В классических квестах игрок должен до всего догадываться сам. Запутывание игрока является частью геймплея и сделано специально, иначе тогда игра проходилась бы за пару часов.
Ты ж не жалуешься в экшенах, почему персонаж сам не стреляет по мишени, когда ее видит. Ведь так было бы легче и удобней - не нужно постоянно жать кнопку стрельбы и целиться.
Хотя видя постоянно облегчение игр, думаю, и это не за горами  :lol:
Еще лет через 20 думаю вообще играть не нужно будет, прикрепляешь электроды к голове и смотришь как бы своими глазами, а персонаж сам все делает за тебя

Оффлайн MaxWooD

  • Пользователь
  • Сообщений: 1110
    • Просмотр профиля
Наши хаки
« Ответ #6618 : 22 Июнь 2020, 18:26:36 »
Запутывание игрока является частью геймплея и сделано специально
Ого, я даже про такое не знал. Тогда это все объясняет. Сам любитель классических квестов, но это уже похоже самые древние :lol:

Это в современных играх тебе все подсвечивают, советуют и тебе вообще не нужно ни над чем думать.
Ну харош, палку то не перегибай. Все мы знаем к чему все идет - все игры проходятся за 15 мин (с донатиком). Уже и забыли, как перепроходить игры по несколько раз (открывая новый контент), а некоторые квесты проходить по пол года.

Года два назад глянул недавновышедший квест, так там все подсвечивается, тебе все НПС даже не намекают, а прямым текстом говорят что делать. А за внутриигровые золотые монетки загадки сами себя решают. Вот думаю, чем игра от ролика отличается? Тем что я не платил за игру?

Оффлайн Stormtrooper3d

  • Пользователь
  • Сообщений: 817
    • Просмотр профиля
Наши хаки
« Ответ #6619 : 22 Июнь 2020, 18:37:48 »
MaxWooD, я самое долгое проходил Broken Sword, около месяца. Я никогда вообще в жизни не пользуюсь прохождениями, поэтому перед квестом просто смотрю по отзывам, можно ли запороть игру или нет.
Если можно - то просто каждый день начинаю игру заново, чтобы проверить, пропустил ли я что-нибудь или нет
Если нельзя - то просто каждый день упорно стараюсь догадаться, что от меня хотят.
У меня есть несколько правил, как разгадать любую загадку, действую методом исключения
1. Самое первое, что нужно сделать - это прокрутить в голове сюжет, понять, что тебе мешает его продвижению и какие предметы тебе для этого нужны. Вспомнить, где ты мог видеть или слышать про эти предметы. Если ты не можешь догадаться логически, что делать, не унывай - возможно ты еще не получил для этого все предметы. Далее следует прочесывание игры на пропущенные вещи
2. Второе, что нужно сделать в любом квесте, это перемешать все предметы друг с другом, причем в обе стороны, то есть гвоздь на банку и банку на гвоздь. Обычно это не занимает много времени, минут 15-20 максимум.
3. Проверить все стороны экранов на скрытые выходы, очень часто в квестах 1 экран может иметь множество выходов, не всегда очевидных. Сделать это просто - провести персонажа по всем краям экрана
4. Действие следующее - проверить экраны на пиксельхантинг. Это обычно тоже не занимает много времени - берешь курсор, и начинаешь его не очень быстро водить ровными линиями по экрану в любом направлении, таким образом, ты никогда ничего не пропустишь.
5. Проговорить все варианты диалогов по нескольку раз, бывает, для тригерра следующей сцены необходимо допросить персонажа несколько раз
6. Если ничего из предыдущего не помогло, начинается самая муторная часть - применение всех предметов на всем, что есть на экранах. Обычно это занимает долгое количество времени.

Следуя всем этим правилам, вы пройдете любые квесты без всяких прохождений
« Последнее редактирование: 22 Июнь 2020, 18:47:15 от Stormtrooper3d »

Оффлайн MaxWooD

  • Пользователь
  • Сообщений: 1110
    • Просмотр профиля
Наши хаки
« Ответ #6620 : 22 Июнь 2020, 21:38:32 »
Согласен, но
Следуя всем этим правилам, вы пройдете любые квесты без всяких прохождений
Это увы не так :lol:

Есть загадки очень изощренные, которые включают несколько компонентов (чувств) для меня это музыкальные, вспоминаю Alida, вот там очень сложная загадка, где есть несколько локаций, в каждой пищит одно из 8-и насекомых, а на шкатулке нужно выставить это насекомое. Как я не пытался - ничего не вышло, хотя действовал в верном направлении. Пришлось в гайдик лезть. Это всего лишь пример очень ложной загадки. Или я квестомазохист :lol:

Оффлайн Stormtrooper3d

  • Пользователь
  • Сообщений: 817
    • Просмотр профиля
Наши хаки
« Ответ #6621 : 22 Июнь 2020, 23:27:53 »
Пришлось в гайдик лезть.
Здесь надо вставить отрывок из столкновений сторонников Навального и ментов
*позор, позор, позор, позор, позор*  :D

Онлайн AuAurora

  • Пользователь
  • Сообщений: 1737
  • Мур
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #6622 : 25 Июнь 2020, 20:46:19 »
Final Zone - после прохождения игры очки не обнуляются
Spot goes to hollywood  - после прохождения игры очки не обнуляются

Оффлайн mishra

  • Пользователь
  • Сообщений: 50
  • Пол: Мужской
  • Оператор ЭВМ
    • Просмотр профиля
Наши хаки
« Ответ #6623 : 21 Июль 2020, 01:42:59 »

Оффлайн gusara47

  • Пользователь
  • Сообщений: 26
    • Просмотр профиля
Наши хаки
« Ответ #6624 : 27 Июль 2020, 20:46:15 »
Есть у кого опыт работы с ромами от Gbc? Порт heroes of might and magic на gbc имеет один косяк (перепутаны местами 2 трека) и есть желение это исправить, какой софт для этого использовать? есть какие то гайды на эту тему? почему то гугл подкидывает только софт и гайды конкретно для покемонов.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5567
    • Просмотр профиля
Наши хаки
« Ответ #6625 : 27 Июль 2020, 23:37:56 »
какой софт для этого использовать?
Нужно знание инструкций процессора GB (похоже на Z80), знать куда и что пишется (регистры, области памяти и т. п. https://gbdev.io/pandocs/) и эмулятор с отладчиком (BGB неплохой).
По-хорошему, нужно разбирать алгоритм, но опытным путём выяснил, что музыка в банке 0x11 (позиция в роме 0x44000 - 0x47FFF, что отображается в отладчике как RO11:4000 - RO11:7FFF, удачно). Я заметил, что код обращается ниже, поэтому отслеживал все чтения в области после кода (breakpoint на 11:44C0-7FFF). Треки начинаются после $5AB0, сначала ненулевое число, потом несколько 00 и так до следующего числа и нулей. Таблица адресов с $49EA. Little-Endian, поэтому сначала младший байт. У заставки адрес $6B41, в начале игры $5FA6. Чтобы заменить у игры, ищем в таблице A6 5F, это $49EE и меняем на нужный адрес трека. Чтобы узнать трек, ставлю breakpoint на область треков 11:5AB0-7FFF, когда играет трек, выполнение останавливается и в одном из регистров BC, DE, HL будет текущий адрес трека, ищем в памяти нули выше, чтобы найти начало трека, а дальше обмениваем адреса в таблице в роме (тестировать можно в отладчике, но нужно будет это сделать до начала воспроизведения).
Возможно есть ещё треки в другом банке, я игру не проходил.
имеет один косяк (перепутаны местами 2 трека)
С чего вы взяли?
--------
Ещё треки можно узнать без отладчика. Через HEX-редактор менять адрес начального трека (0x449F2) на другие значения из таблицы, то есть сначала вставить 2 байты из 0x449EA и 0x449EB, сохранить, запустить ром, потом 0x449EC и 0x449ED и т. д. Когда найдутся, то обменять местами.
« Последнее редактирование: 27 Июль 2020, 23:58:39 от Sharpnull »

Оффлайн gusara47

  • Пользователь
  • Сообщений: 26
    • Просмотр профиля
Наши хаки
« Ответ #6626 : 28 Июль 2020, 10:41:19 »
Sharpnull, Там 2 трека точно перепутаны (много наиграл в оригинал на пк, так что знаю что и как должно быть в этой игре) там в 2х замках (магов и чернокнижников) треки местами перепутали, порт сам по себе делался видимо в спешке (судя по наличию серьезных багов). Ладно, пойду пытаться это дело исправить.

Оффлайн Photon9

  • Пользователь
  • Сообщений: 10420
  • Пол: Мужской
  • йОжик сОник
    • Просмотр профиля
Наши хаки
« Ответ #6627 : 06 Август 2020, 00:31:33 »
Господа ромхакеры, если не затруднит, пофиксите пожалуйста яркость, слишком уж тускло выглядит всё.

Оффлайн Sharpnull

  • Пользователь
  • Сообщений: 5567
    • Просмотр профиля
Наши хаки
« Ответ #6628 : 06 Август 2020, 00:37:55 »
Photon9, фикс есть https://greg-kennedy.com/wordpress/2019/11/12/back-to-the-future-part-iii-color-fix-patch/, я даже сравнение записывал:
Про русскую версию не знаю, может не подойти.
--------
Сравнил (U) <-> Rus (U) и (U) <-> Color Fix (U). Пересечений вроде нет, значит подходит патч BttF3-ColorFix-U.ips.
« Последнее редактирование: 06 Август 2020, 00:52:30 от Sharpnull »

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9458
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
Наши хаки
« Ответ #6629 : 06 Август 2020, 01:13:57 »
что забавно, такие цвета из-за явной ошибки в коде игры, интересно почему не было официальной исправленной версии ? думается издатель решил что не стоит заморачиваться, и так схавают  :)