Автор Тема: Хаки на любой вкус  (Прочитано 1768026 раз)

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

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4560 : 27 Июль 2016, 14:25:51 »
Ну напиши, несколько байтов всего. Не вижу в этом проблемы.

В первую очередь надо пытаться осуществить переключение встроенными "родными" программами. Если по какой-либо причине это невозможно, то писать свои.

На днях удалось осуществить переключение PRG-банков в TMNT TF следующим образом:



Как это работает, понял лишь в общих чертах: манипуляции с адресами памяти 8000 и 8001 и вставка туда нужных байтов, определяющих номер банка. Полностью разбираться не было ни времени, ни желания, учитывая, что нет нормальных доков по MMC3 на русском языке (или я их просто не понял, или не нашёл). К тому же каждая игра, как я понял, для работы с маппером будет использовать свои области памяти, свои подпрограммы и свои переменные.

В TMNT TF дохрена свободного места для PRG, но большинство из него нельзя использовать без переключения банков.

Некоторые области кода из оригинальной игры, осуществляющие переключение банков:


Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1230
  • Пол: Мужской
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4561 : 27 Июль 2016, 14:35:50 »
Shredder, ЧАВО?
http://wiki.nesdev.com/w/index.php/MMC3

Всё давно описано же. У каждого маппера свои спец регистры, шлёшь туда нужные данные и получаешь переключения банков и прочее.
При этом банки переключаются практически моментально, если я не ошибаюсь.

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4562 : 27 Июль 2016, 14:37:25 »
Shredder, ЧАВО?
нет нормальных доков по MMC3 на русском языке

 :D

Про nesdev знаю, там и читал, что смог понять)

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1230
  • Пол: Мужской
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4563 : 27 Июль 2016, 14:47:01 »
Shredder, вообще раньше писал ланкастеру, напишу и тебе.
Хакать без понимания всех основ это какой-то изврат. Почитай как самому с нуля игру на НЕС написать.
Как сможешь такое сделать, хакинг вообще в лёгкую пойдёт.
Все эти уроки чисто по хакингу - иногда тот ещё бред.

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4564 : 27 Июль 2016, 15:03:34 »
blackbird_ru, об этом спорить никто не будет, но назови мне хоть пару человек, кто хакает с пониманием ВСЕХ основ :D Санчез не в счёт.

Достаточно понимать хотя бы 75-80%, чтобы выходили вполне качественные вещи, на мой взгляд.
Что бы я ни хакал, стараюсь разобраться в этом максимально. Если не разобрался, то даже не берусь. Но маппер - это как раз тот случай, где достаточно понять 80%, получить нужный результат и прошерстить игру на работоспособность. Пока данное правило работает. Как только даст сбой, будем дальше изучать)

Добавлено позже:
Вообще я предпочитаю сначала копаться и изучать работу программ на собственном опыте. После этого уже открываю доки.

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1230
  • Пол: Мужской
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4565 : 27 Июль 2016, 15:11:52 »
Shredder, дело твоё.
Но в тех же переключениях банков громоздкие функции не нужны.
НЕСка она вообще, простая как дуб и там всё парочкой команд делается.

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4566 : 27 Июль 2016, 15:32:30 »
blackbird_ru, насчёт переключения банков в Guardian Legend (UNROM) что можешь сказать? Сам не разбирался, но один из заграничных хакеров, сделавший большой хак на эту игру, остановился из-за нехватки места.

http://wiki.nesdev.com/w/index.php/Programming_UNROM

С UNROM проще или сложнее, чем с MMC3?

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1230
  • Пол: Мужской
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4567 : 27 Июль 2016, 15:53:10 »
Shredder, ну написано
Цитата
UNROM has four or eight banks 16 KB in size
А у рома
Цитата
PRG ROM:    8 x 16KiB
То есть уже максимальное количество доступных банков использовано. Значит нужно будет переделывать под UOROM, но это больше для платы я понимаю, софтварно не слишком отличий будет, точнее вообще не будет в старом коде.

А работать конечно проще, тут банки вообще элементарно переключаются.
http://wiki.nesdev.com/w/index.php/UxROM#Bank_select_.28.248000-.24FFFF.29

Бас конфлиты там написано есть, но эмуляторы этим не заморачиваются, и не все реальные платы тоже.
« Последнее редактирование: 27 Июль 2016, 16:05:23 от blackbird_ru »

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4568 : 27 Июль 2016, 17:54:12 »
А интересно, кто-нибудь хакал Крион Конквест под Мегамена? Уж очень игра похожа на него.

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4569 : 31 Июль 2016, 13:59:35 »
Глядите, в мой хак уже можно сыграть онлайн: http://www.vizzed.com/play/dragon-fighter-fixed-version-nes-nintendo-nes-100141-game
P. S.: пока что нашёл только один свой хак. Может, другие потом ещё найду. ;)

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3258
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4570 : 02 Август 2016, 11:33:26 »
А, ясно. Просто в Нестопии Адаптер должен стоять на НЕС, а не на Фамиком.  )
Есть 2 адаптера просто, и у каждого свой драйвер (код опроса) джойстиков.  Американские игры работают с nes-four-score. Японские с famicom 4-player-adapter адаптер.  Некоторые японские игры поддерживают сразу оба адаптера.

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4571 : 02 Август 2016, 17:28:55 »
blackbird_ru, насчёт переключения банков в Guardian Legend (UNROM) что можешь сказать? Сам не разбирался, но один из заграничных хакеров, сделавший большой хак на эту игру, остановился из-за нехватки места.

http://wiki.nesdev.com/w/index.php/Programming_UNROM

С UNROM проще или сложнее, чем с MMC3?

Раскопал на днях заморский хак Guardian Legend Secret Edition и сделал там несколько улучшений.

1. Расширил РОМ с 128 до 256 КБ (128 КБ стало свободно)

2. Переписал/оптимизировал программу переключения банков, в результате освободилось 66 байт в непереключаемом банке (адреса: 3D734 - 3D775 в ROM, D724 - D765 в RAM), которые можно использовать под свои нужды.

3. По ходу дела исправил несколько багов, как оригинала, так и хака (напр., если во время частичного появления последнего босса в хаке нажать селект, то босс становился непроходимым).

Программа переключения банков расположена по адресам D705 - D7A9 (в RAM), к примеру адреса D705 - D723 переключают банки под номерами: 00, 03, 04, 05, 06. Новые банки могут быть включены путём записи значений 87-8E по адресам D76D-D774 соответственно. Например, следующий код переключит для использования банк №08:

LDA #$08
BNE $D707

Ещё есть такой хак, который переводит оригинальную игру из UxROM в маппер MMC3 - http://www.romhacking.net/hacks/2553/
Не очень понял, в чём смысл этого хака, потому что на картридж я записать его не смог, т.к. PRG и CHR остались не разделены между собой (наследство от UxROM), а для записи на картридж их требуется разделить (в одну микросхему пишется PRG, в другую CHR). Зато исправил в этом РОМе баги со звуком, поэтому тоже выложу.
« Последнее редактирование: 05 Август 2016, 00:59:24 от Shredder »

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3258
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4572 : 02 Август 2016, 17:50:54 »
Новые банки могут быть включены путём записи значений 87-8E по адресу FFF2.
Таким образом получаем РОМ, не работающий на половине эмуляторов и железе.

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4573 : 02 Август 2016, 18:52:25 »
Таким образом получаем РОМ, не работающий на половине эмуляторов и железе.

По какой причине?
Проверил на десятке эмуляторов, в т.ч. полностью прошёл на "самом точном" эмуляторе Nestopia, - везде работает, как часы. На железе негде проверить.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3258
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4574 : 02 Август 2016, 19:25:22 »
По какой причине?
Проверил на десятке эмуляторов, в т.ч. полностью прошёл на "самом точном" эмуляторе Nestopia, - везде работает, как часы. На железе негде проверить.
на fceux запускаю - желтый экран.
причина в том, что записываемое число должно совпадать с тем, что в роме находится по этому адресу. смотри как в оригинале было сделано.

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 4594
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4575 : 02 Август 2016, 22:42:55 »
По какой причине?
Проверил на десятке эмуляторов, в т.ч. полностью прошёл на "самом точном" эмуляторе Nestopia, - везде работает, как часы. На железе негде проверить.
Нестопия - это не самый точный эмулятор. Странно, что Ti_ выше не сказал об этом.  :)

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1230
  • Пол: Мужской
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4576 : 03 Август 2016, 09:27:53 »
По какой причине?
Там в бесконечный джамп программа падает же.
Всё из-за переменной в bfff. Она у тебя не 6 в начале, и не убавляется, ты код по адресу чтоли менял. Вообще не пойму что ты там делал.

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4577 : 03 Август 2016, 09:35:26 »
Переделал и перезалил. Всё должно работать теперь :)

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1230
  • Пол: Мужской
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4578 : 03 Август 2016, 09:44:30 »
Shredder, во, теперь проходит. Только я не пойму, как ты код правил и всё остальное делал без тестинга во фсеу, без дебаггера.

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4579 : 03 Август 2016, 09:47:43 »
blackbird_ru, я тестил на fceuxdsp, там тоже есть дебаггер.

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4580 : 03 Август 2016, 11:20:30 »
Люди, кто бы мог сделать поддержку второго игрока в Toxic Crusaders? Можно было бы сделать отличный хак про черепашек-ниндзя.

Оффлайн Shredder

  • Пользователь
  • Сообщений: 587
  • Пол: Мужской
  • Ninja Master
    • ВКонтакте
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4581 : 03 Август 2016, 12:23:24 »
Там в бесконечный джамп программа падает же.

Хз, чё за джамп. Это не мой код, а код оригинальной игры. По ходу, он не используется, иначе игра постоянно бы висла. Как ты его обнаружил?

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1230
  • Пол: Мужской
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4582 : 03 Август 2016, 12:46:56 »
Shredder, он там в самом начале кода, сразу после основной инициализации же. Трасисруешь и попадаешь.
Да просто, запускаешь во фсе, видишь экран, открываешь дебаг и нажимаешь степ ин, попадешь в джамп.

Видимо спецом сделано, если эту проверку не проходит.

Добавлено позже:
В оригинале он туда и не заходит никогда, всегда бранчится (ну в начале игры, после софт и хард резета).

Добавлено позже:
lancuster, задание тебе. Не думал дизайн уровней дак тейлс ремастеред перенести в оригинальную игру?
Скачают точно не 3 человека такой хак.
« Последнее редактирование: 03 Август 2016, 12:53:14 от blackbird_ru »

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4583 : 03 Август 2016, 13:21:48 »
Shredder, он там в самом начале кода, сразу после основной инициализации же. Трасисруешь и попадаешь.
Да просто, запускаешь во фсе, видишь экран, открываешь дебаг и нажимаешь степ ин, попадешь в джамп.

Видимо спецом сделано, если эту проверку не проходит.

Добавлено позже:
В оригинале он туда и не заходит никогда, всегда бранчится (ну в начале игры, после софт и хард резета).

Добавлено позже:
lancuster, задание тебе. Не думал дизайн уровней дак тейлс ремастеред перенести в оригинальную игру?
Скачают точно не 3 человека такой хак.
А это что, игра на комп? Я в неё не играл.
К тому же, я занят сейчас другой игрой.

Оффлайн Phil

  • Пользователь
  • Сообщений: 926
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4584 : 03 Август 2016, 21:30:15 »
Не знаю, выкладывал ли кто-то такой небольшой хак на Супер Марио 2 (Япония), но может кому-то пригодится.
Когда-то JAM выложил МИНИ-ХАК на Супер Марио 1, который позволяет из Марио-садовника (швыряющегося огоньками) при ударе превратиться сначала в Большого Марио, а потом — уже в маленького, а не сразу в маленького.
Я решил по аналогии проделать тоже самое и со второй частью. Во вложении прилагаю обе части изменённого Марио.

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4585 : 03 Август 2016, 21:55:52 »
Можно было просто сделать патч с его хака, а потом просто найти по куску кода, где менять эти значения. В конце-концов, сиквел - это же хак первой части. :)

Оффлайн Sprill

  • Пользователь
  • Сообщений: 892
  • Пол: Мужской
  • Вескер никогда не снимает свои очки.
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4586 : 07 Август 2016, 16:57:32 »
Откопал два хака, которые я давно забросил.

В хаке Batman & Flash хотел немного улучшить спрайты Бэтмена и Флэша, но рисую я не очень хорошо.

И версия 3.0 BETA моего самого первого хака Bomber City.

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3603
    • Twitter
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4587 : 08 Август 2016, 13:17:44 »
Долго писать... сорри лол

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4588 : 08 Август 2016, 13:46:22 »
Чао, бамбино, санчез. :lol:

Оффлайн Kinbeas

  • Пользователь
  • Сообщений: 4594
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Хаки на любой вкус
« Ответ #4589 : 08 Август 2016, 13:57:32 »
Magistr, хак, где в Пунишер можно играть вдвоём - один управляет телом, второй - прицелом. Остальное в теме - срач Ланкустера с Санчезом. :)
В целом ветку легко промотать, если выискывать только посты со ссылками - они хорошо выделяются на общем фоне.
А ещё проще - вверху есть поиск. Заходишь в эту ветку. В поисковике ставишь параметр "В этой теме", а в поле вводишь "http://" - и перед тобой откроются все посты с хаками и описанием.
« Последнее редактирование: 08 Август 2016, 15:30:07 от +Kinbeas+ »