Автор Тема: [SMD] Sonic Classic Heroes (усложнённая версия)  (Прочитано 9771 раз)

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

Оффлайн JAM

  • Пользователь
  • Сообщений: 427
    • Просмотр профиля
Скачал я тут один замечательный хак -- Sonic Classic Heroes. Что-то вроде серии Sonic Heroes, портированной на Mega Drive с уровнями из первого и второго Соников.

Всем меня этот хак устраивает, кроме одного -- сложности. Мочить боссов втроём в конфигурации "1 смертный, 2 бессмертных персонажа" довольно скучно с их обычным количеством жизней. Да и в бонус-уровнях второго Соника количество необходимых колец снижено до стандартного уровня игры в одиночку.

Собственно, если что-то тебе не нравится, возьми, да переделай, как говорится. Что я и сделал. Такова психология хакера. Получилось 2 версии: Hard и Expert.

Собственно, Hard-версия для того, чтобы веселее было поиграть втроём, а Expert-версия, если собрались поиграть вместе 3 задрота-профи. =) Также, обе версии проходимы и в одиночку.

В Hard-версии жизни у боссов увеличены вдвое, требуемое количество колец в бонусах увеличено до стандартных значений Соника 2. Проходишь бонус хорошо -- собираешь иногда даже больше колец, чем в оригинальном Sonic 2 (третий персонаж помогает). Натыкаешься на колючки -- теряешь до 30 колец вместо 20, т.к. ударяются все 3 персонажа.

В Expert-версии жизни у боссов увеличены втрое, а требуемое количество колец в бонусе увеличено в расчёте на троих. Так что теперь помимо женщин и Тетриса на 9-й скорости не прощают ошибок и бонусы из Sonic'а 2 в этой версии. :D Матом просьба не ругаться, все бонусы проходимы без сейвов. =) Да, некоторые с 10-й попытки, и иногда (вернее, очень часто) вам не будет хватать всего 1 или 2 колец, но количество Starpost'ов в игре позволяет собрать все изумруды. В некоторых бонусах главная сложность -- попасть в 3-й сегмент (как и в Формуле 1). Keep Trying!

Немного технической информации:

Немного о себе:



Авторы оригинального хака: flamewing, ColinC10.
Страничка хака: Sonic Classic Heroes

Прилагаю скриншот и пачти для последней на данный момент версии (0.07f6). Хак не мой всё-таки, да и зачем постить изменённые РОМы, когда размер обоих патчей 166 байт? Хак можно скачать отсюда, и на него применять один их моих патчей из архива. Патчить любой программой, работающей с IPS.

Если вы увидели красный экран в эмуляторе, то поставьте галочку напротив "Auto Fix Checksum" в настройках.

Про глюк с боссом Metropolis знаю, но как исправить -- ХЗ (я больше эксперт по SNES). Это и в оригинальной игре так, если жизни подкрутить. Он проходим, если с помощью Тейзла подлететь повыше.
EDIT: глюк исправлен. Архив с обновлёнными патчами перезалит.
Отдельно выкладываю патч для оригинального Соника 2, позволяющий без проблем установить любое количество ударов для босса зоны Metropolis.

По поводу глюков, не касающихся боссов или бонусов -- к авторам хака.



Приятной игры!

P.S. To creators: if you see this topic guys, you did an awesome job!

P.P.S. Надо же, в день рождения Соника выложил патчи... =) С днём рождения тебя, синий ёжик! Побольше тебе удачных игр (вроде 4-й части, если из современных) и красивых хаков!
« Последнее редактирование: 04 Июль 2013, 23:46:07 от JAM »

Оффлайн 2nd Channel

  • Пользователь
  • Сообщений: 886
  • Пол: Мужской
  • Разработчик TNU4
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [SMD] Sonic Classic Heroes (усложнённая версия)
« Ответ #1 : 24 Июнь 2013, 22:42:32 »
Круто. Спасибо за патч.
Но на твоём месте всё-таки прикрепил бы и РОМ, который нужно непосредственно патчить.
Написано много, глаза разбегаются, не сразу дошло, что надо патчить этот 0.07f6 со стороннего сайта.

Оффлайн JAM

  • Пользователь
  • Сообщений: 427
    • Просмотр профиля
Re: [SMD] Sonic Classic Heroes (усложнённая версия)
« Ответ #2 : 25 Июнь 2013, 09:08:42 »
Круто. Спасибо за патч.
Но на твоём месте всё-таки прикрепил бы и РОМ, который нужно непосредственно патчить.
Хорошо, сделаю по просьбам трудящихся.

Появилась идея насчёт босса Metropolis. Если поставить ему больше 8 ударов, то потом он будет просто висеть в воздухе, что и получилось. Достать в супер-формах, а также с помощью Тейлза можно, но кривовато как-то.

Так вот, идея. Что если вместо увеличения количества ударов, приблизить момент, когда босс будет стрелять лазером (ещё до уничтожения защитных сфер)? В Hard версии после 4 ударов, например, а в Expert -- сразу же. А количество ударов обратно 8 поставить? Тогда в Супер-форме будет халява, с другой стороны.

Оффлайн 2nd Channel

  • Пользователь
  • Сообщений: 886
  • Пол: Мужской
  • Разработчик TNU4
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [SMD] Sonic Classic Heroes (усложнённая версия)
« Ответ #3 : 25 Июнь 2013, 16:53:50 »
Так вот, идея. Что если вместо увеличения количества ударов, приблизить момент, когда босс будет стрелять лазером (ещё до уничтожения защитных сфер)? В Hard версии после 4 ударов, например, а в Expert -- сразу же. А количество ударов обратно 8 поставить?
Я лично за. Всё равно, выходит, что иначе босса никак не усложнить, а
Цитата
Тогда в Супер-форме будет халява, с другой стороны
насчёт этого, думаю, не так страшно. На то она и супер-форма, хотя мне приходилось играть за всё знакомство с Соником лишь единожды "в таком режиме".

Оффлайн JAM

  • Пользователь
  • Сообщений: 427
    • Просмотр профиля
Re: [SMD] Sonic Classic Heroes (усложнённая версия)
« Ответ #4 : 26 Июнь 2013, 17:10:05 »
Вот не люблю я тяп-ляп делать. Если уж взялся, то качественно.

В общем, покопался я в коде босса MTZ. Путём проб и ошибок нашёл я ту паршивую команду из-за которой босс, стреляющий лазером, если его ударить, когда он вверху экрана, останавливается и висит, как груша. Ну и затёр эту команду. Естественно, что без дизассемблированного кода S2 и списка комманд M68000 я бы не справился... Что ж, первый опыт написания ASM кода для Genenis прошёл успешно  :cool:

Теперь жизни босса Metropolis ничем не отличаются от других боссов, а после 7 ударов он в обеих версиях начинает лазерные атаки.

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3237
  • Пол: Мужской
  • Blast Processing!
    • Twitter
    • Youtube
    • Просмотр профиля
Re: [SMD] Sonic Classic Heroes (усложнённая версия)
« Ответ #5 : 26 Июнь 2013, 19:33:14 »
затирать команды надо $4E71 - это команда nop или "ничего не делать"
а вообще вот тебе совет:
org $0
  incbin "rom.bin"
  org $(куда надо)
  code(какой надо)
  org $(куда надо)
  code(какой надо)
  end
таким образом ты добавишь ром, и посреди него будешь вклинивать код.
так все делают. главное не забывай о том, что вклиненный код имеет свой размер, и если он перетирает код, нужно это учитывать.
лучше всего просто делать ссылку в конец рома, и там писать код.
если нужны примеры, я их предоставлю

Оффлайн JAM

  • Пользователь
  • Сообщений: 427
    • Просмотр профиля
Re: [SMD] Sonic Classic Heroes (усложнённая версия)
« Ответ #6 : 27 Июнь 2013, 11:01:36 »
затирать команды надо $4E71 - это команда nop или "ничего не делать"
Да, я так и сделал. Изменил move.w на 3 nop'а. Буквально вчера только команды посмотрел и был ошарашен двухбайтовыми опкодами. Даже nop и тот -- 2 байта. Ну и поразило, что одной командой можно записать в такую-то ячейку памяти такое-то значение или сравнить 2 регистра между собой. Ну и big endian, само собой, тоже редкость.

Потом я даже понял, что вместо nop'ов можно изменить адрес прыжка с ветки на оператор rts вместо той команды (rts сразу за ней). Всего 1 байт изменений будет вместо 6. Сегодня днём выложу, наверное. Абсолютно никакой разницы в коде, просто патчи меньше весят.


И за совет спасибо. Это мой дебют именно в модификации кода на M68000. А так, я ASM 65816 знаю, там принцип такой же со свободным местом, только там куда сложнее его искать -- всё на банки разбито. Для изготовления РОМа больше 8 мегов надо вообще свой собственный способ адресации прописывать. Ну и little endian жизнь осложняет. На 68000 вообще легкотня получается. Прям в hex редакторе легко можно прописать команду с обращением к 123456 байту в РОМе, а на SNES ассемблере иногда желательно, чтобы в тот же банк был прыжок, да ещё и в уме надо высчитывать, что команда AF C0 DE 82 -- обращение к адресу 15EC0 если это LoROM или к 2DEC0, если это HiROM.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3250
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: [SMD] Sonic Classic Heroes (усложнённая версия)
« Ответ #7 : 30 Июнь 2013, 19:08:18 »
И за совет спасибо. Это мой дебют именно в модификации кода на M68000.

На 68000 вообще легкотня получается.
Прям в hex редакторе легко можно прописать команду с обращением к 123456 байту в РОМе
Поздравляю. ;)  Раз такое дело,  может и свой хак надумаешь запилить. (не обязательно соника)

Оффлайн JAM

  • Пользователь
  • Сообщений: 427
    • Просмотр профиля
Re: [SMD] Sonic Classic Heroes (усложнённая версия)
« Ответ #8 : 04 Июль 2013, 23:44:23 »
Выложил оптимизированную версию. Код изменён чуть по-другому. На геймплей не влияет, просто пачти более компактные стали. Теперь и выложить не стыдно.

Поздравляю. ;)  Раз такое дело,  может и свой хак надумаешь запилить. (не обязательно соника)
Спасибо  :)
Честно говоря, уже над двумя хаками работаю длительное время. Правда, там я соавтор, генератор идей, кодер и бета-тестер. Если про полностью свой хак говорить, такой тоже есть, но из-за 2 этих хаков времени на него не хватает, да и желания пока нет (очень много переделывать надо).