Автор Тема: NES Block Finder  (Прочитано 5251 раз)

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

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
NES Block Finder
« : 30 Июль 2016, 14:07:48 »
NESBlockFinder
Программа для автоматического поиска адресов блоков в любых NES-играх.

Способ использования:

Описание способов поиска блоков:
Search 2x2 blocks - искать блоки размером 2x2
Search 4x4 blocks - искать блоки размером 4x4
Search 2x4/4x2 blocks - искать блоки размером 4x2 и 2x4 (используются редко)
Left-right block search - искать блоки, в которых описание тайлов хранится слева-направо сверху-вниз.
Top-down block search - искать блок, в которых описание тайлов хранится сверху-вниз слева-направо.
Search block parts with stride 255 - искать блоки размером 2x2, в которых 1-е четв хранятся в массиве из 256 элементов, затем хранятся 2-е четвертинки блоков, затем 3-и и 4-и четверти. Распространённый случай.
Search block parts with stride range - аналогично предыдущему методу, но поиск выполняется в массивах любой указанной длины.

Эти методы поиска покрывают практически все возможные способы хранения информации о блоках в играх. Проверял на 50 разных играх, находит блоки в каждой, в которой они есть  :cool:

Может, кому пригодится.
« Последнее редактирование: 30 Июль 2016, 15:48:30 от spiiin »

Оффлайн grenuar

  • Пользователь
  • Сообщений: 9
  • Пол: Мужской
    • Просмотр профиля
NES Block Finder
« Ответ #1 : 30 Июль 2016, 15:23:53 »
Привет. Подскажи что требуется программе для нормального запуска (ошибка на скрине). Заранее спасибо.

Оффлайн Roket

  • Пользователь
  • Сообщений: 3318
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
NES Block Finder
« Ответ #2 : 30 Июль 2016, 15:24:52 »
spiiin, аналогично, пару раз запустилась, затем перестала и стала вылетать. Ну и антивирус ругается ещё.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
NES Block Finder
« Ответ #3 : 30 Июль 2016, 15:32:21 »
Да ничего ей не надо, всё зависимости в exe-файл включены.

Пересобрал так, чтобы она ошибки в консоль писала при запуске.
grenuar попробуй перекачать архив и запустить из командной строки, она в неё ошибку напишет, из-за чего не запускается у тебя, я тогда диагностировать проблема смогу.

Второй вариант - установить Python 2.7 и запускать скрипт NesBlockFinder.py вот отсюда https://github.com/spiiin/NesBlockFinder

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

  • Пользователь
  • Сообщений: 2161
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
NES Block Finder
« Ответ #4 : 30 Июль 2016, 15:38:28 »
Установить питон?!?!?! Ну уж нафиг! :lol:

Оффлайн grenuar

  • Пользователь
  • Сообщений: 9
  • Пол: Мужской
    • Просмотр профиля
NES Block Finder
« Ответ #5 : 30 Июль 2016, 15:40:27 »
Да ничего ей не надо, всё зависимости в exe-файл включены.

Пересобрал так, чтобы она ошибки в консоль писала при запуске.
grenuar попробуй перекачать архив и запустить из командной строки, она в неё ошибку напишет, из-за чего не запускается у тебя, я тогда диагностировать проблема смогу.

Второй вариант - установить Python 2.7 и запускать скрипт NesBlockFinder.py вот отсюда https://github.com/spiiin/NesBlockFinder
Спасибо. Помог второй вариант. Скрин ошибки во вложении.

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
NES Block Finder
« Ответ #6 : 30 Июль 2016, 15:50:59 »
grenuar спасибо за помощь. Проблема в инсталляторе была, он не допаковал библиотеку туда. Исправил архив в первом посте, теперь должно запускаться без проблем.

Guyver(X.B.M.)
Ну запускай из exe, разницы никакой :lol: , это я на случай Roket'а, который вирусов боится, исходники дал.

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

  • Пользователь
  • Сообщений: 2161
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
NES Block Finder
« Ответ #7 : 30 Июль 2016, 15:54:09 »
Дык я бы скачал и запустил ;о) Но с моей скоростью это около часа. Уже 3 раза ты заменяешь файл в топике - и я ни разу не успел его докачать полностью ещё, максимум до 80% докачивал ;о)))

Оффлайн Roket

  • Пользователь
  • Сообщений: 3318
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
NES Block Finder
« Ответ #8 : 30 Июль 2016, 15:57:52 »
spiiin, Ну теперь не ругается но  и не работает. Вылетает с консольной ошибкой.

Оффлайн grenuar

  • Пользователь
  • Сообщений: 9
  • Пол: Мужской
    • Просмотр профиля
NES Block Finder
« Ответ #9 : 30 Июль 2016, 16:07:17 »
spiiin, Ну теперь не ругается но  и не работает. Вылетает с консольной ошибкой.

Распакуй архив в корень диска С и переименуй папку NesBlockFinder в NBF. У меня заработало только после такой манипуляции.

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

  • Пользователь
  • Сообщений: 2161
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
NES Block Finder
« Ответ #10 : 30 Июль 2016, 16:44:52 »
Программа работает. Но не даёт вводить цифры нормально в поля Max range и Min range, Числа вводятся новые, но стереть нельзя. Т.е. стирание вообще не работает и цифра просто прибавляется к уже существующим. Кое-как можно менять цифры, выделив нужную. А если выделить 2 цифры - новая вставится левее них, а эти 2 так и останутся... Короче, надо что-то делать...

P.S. Какая ужасная среда разработки. Куча файлов. Жесть... Проще на делфи 1 файл забабахать, который и весить будет много меньше...

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
NES Block Finder
« Ответ #11 : 30 Июль 2016, 17:05:31 »
Там защита ввода такая, в любой момент в полях должно быть число от 1 до 256, неудобно немного. Эти числа менять и не надо зачастую, там хорошие значения и так стоят. Если надо - могу убрать проверки, не вопрос.

Насчёт среды разработки - вопрос идеологический. Программа - по сути, скрипт на питоне, запакованный в exe для ленивых, отсюда и размер - там всё что надо из питона. Проще один раз его установить - и тогда вес программы целиком - 20 кб всего ;) на дельфи с формами побольше будет.

По сути - если с какими-то играми работать не будет, пишите, попробую понять почему.
Из проверенных мной программа "не берёт" Micro Mashines (находит несколько областей, в которых меняются какие-то участки трассы, не очень похожие на блоки), и Jurassic Park (вообще ничего не находит, не знаю почему).


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

  • Пользователь
  • Сообщений: 2161
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
NES Block Finder
« Ответ #12 : 30 Июль 2016, 17:18:56 »
Я начинал с мелких игр, типа Натс энд Милк. Там нашлось, правда формат там хранения весёлый. Пробовал несколько других мелких, штук 5 - не нашёл ничего. Ну это понятно, в мелких играх там всё пожато-пережато-оптимизировано. Из крупных Amagon нашлось вроде что-то, но формат там странный тоже. Блоки травы нашлись.

Твоё ограничение на ввод не работает.
К примеру стоит 64 в поле.

Я хочу поставить 70, выделяю 64 - набиваю на клаве 70 и в итоге получаю 064
Выделяю ещё раз и пишу 0 - получаю 0064

В итоге можно добиться числа вроде 0004829464 - и его НИКАК нельзя стереть...

Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
NES Block Finder
« Ответ #13 : 02 Август 2016, 16:40:30 »
Цитата
Я хочу поставить 70, выделяю 64 - набиваю на клаве 70 и в итоге получаю 064
Выделяю ещё раз и пишу 0 - получаю 0064
Это корректные числа, нули можно добавлять и стирать.
Цитата
В итоге можно добиться числа вроде 0004829464
Поподробнее, в какой момент некорректное получается? жму 0,0,4,8,2,9,4 - нули проходят фильтр, остальные не проходят.


Оффлайн spiiin

  • Модератор
  • Сообщений: 760
    • Просмотр профиля
NES Block Finder
« Ответ #14 : 28 Февраль 2017, 20:38:48 »
Обновил программу, добавил новые виды поиска:

Search 1x1 blocks - искать блоки размером 1x1 (тайлы). Такой метод позволяет обнаружить описание сцен, в которых не используюстя блоки (полноэкранные заставки, глобальные карты, кат-сцены). Данный метод позволяет искать в том числе и сжатые различными способами карты.
Обнаружил, что такой метод работает в нескольких играх, случайно.

Search attributes - позволяет находить аттрибуты (биты палитры) блоков. Работает в играх с блоками размером 4x4, а также в некоторых других.

Для работы программы в системе должен быть установлен интерпретатор Python.

Проще не запускать exe, а запускать из исходников
https://github.com/spiiin/NesBlockFinder
« Последнее редактирование: 01 Март 2017, 19:29:02 от spiiin »