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

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

Оффлайн Arbars

  • Пользователь
  • Сообщений: 1406
  • Пол: Мужской
  • Линукс кұрылысшы
    • ВКонтакте
    • Просмотр профиля
Наши хаки
« Ответ #5130 : 11 Ноябрь 2016, 21:21:41 »
Когда я когда-то переводил на русский язык игру "Adventures of Dizzy, The" на денди (которую так и не перевёл...), то случайно обнаружил такую штуку:

Если в роме перейти по адресу h7DF4 и поменять байт на определённое значение, то при загрузке рома на весь экран будут показаны грустный или весёлый смайлики.

00 - весёлый смайлик
09 - грустный смайлик



Кто знает что это такое? Зачем программисты это сделали? Похоже на какую-то проверку...
Может быть, это проверка правильности записи игры на картридж-переходник?

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5131 : 11 Ноябрь 2016, 22:45:40 »
http://cah4e3.shedevr.org.ru/cheatsbase_d.php#399
https://tcrf.net/The_Fantastic_Adventures_of_Dizzy#ROM.2FRAM_Test
Все игры кодмастерс имеют эти рожи. Это стандартный селфтест в их библиотеке.

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

  • Пользователь
  • Сообщений: 2641
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #5132 : 12 Ноябрь 2016, 01:51:47 »
Понятно. Интересный тест ;о)

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
Наши хаки
« Ответ #5133 : 14 Ноябрь 2016, 22:50:35 »
может кто подсказать как заменить имя имя "MARIO"на более длинное в SMB?
GameText:
TopStatusBarLine:
  .db $20, $43, $05, $16, $0a, $1b, $12, $18, $14 ; "MARIO"
  .db $20, $52, $0b, $20, $18, $1b, $15, $0d ; "WORLD  TIME"
  .db $24, $24, $1d, $12, $16, $0e
  .db $20, $68, $04, $00, $24, $24, $2e, $29 ; score trailing digit and coin display
  .db $23, $c0, $7f, $aa ; attribute table data, clears name table 0 to palette 2
  .db $23, $c2, $01, $ea ; attribute table data, used for coin icon in status bar
  .db $ff ; end of data block


как я понял $20, $43, это координаты, $05 - количество букв, но если добавить еще одну букву игра после сборки не работает, а если добавить в имени и убрать в другом слове то работает, как будто на текст выделен определенный размер.

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5134 : 14 Ноябрь 2016, 23:58:30 »
очевидно, в этом дизасме хреново восстановлены оффсеты

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
Наши хаки
« Ответ #5135 : 16 Ноябрь 2016, 22:26:55 »
в этом дизасме хреново восстановлены оффсеты
Может я и ошибаюсь но это единственный дизасм в сети из тех что собираются.
Можешь помочь решить эту проблему?

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5136 : 16 Ноябрь 2016, 23:07:55 »
мне пока не интересно. у тебя есть асм разобранный до байтика, который другие вроде нормально собирают и пересобирают. может дело все-таки в том, что ты что-то не так делаешь? тем более там явно есть лишние байты, кроме адреса, длины и символов, которые тоже что-то значат наверное...

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
Наши хаки
« Ответ #5137 : 16 Ноябрь 2016, 23:59:20 »
тем более там явно есть лишние байты
ты про $14? так то от буквы измененного имени, проглядел удалить когда возвращал в исходное состояние.

другие вроде нормально собирают и пересобирают
особо не искал но тоже не видел чтобы удлиняли имя в хаках на марио.
« Последнее редактирование: 17 Ноябрь 2016, 00:16:01 от DendyJunior3 »

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5138 : 17 Ноябрь 2016, 00:19:46 »
Я не читал этого асма и что там как сделано не знаю. Но если сборка едет при сдвиге с этой точки, то проблема явно в офсетах за ней. Кто-то за парой байт не рассмотрел оффсет и записал его числом. Если код смещается, такой оффсет едет. Вставляй в промежутки кода или данных левые байты для сдвига вниз, пока не найдешь, где перестает ломаться. Значит ошибка между последним едущим и не едущим байтом. Ищи там оффсеты.

Мне проще отдизасмить с нуля, чем разбираться, но у меня щас есть чем заняться. И так как я знаю, что есть полный дизасм марио, я не собирался его делать до сих пор лол

Добавлено позже:
ты про $14? так то от буквы измененного имени, проглядел удалить когда возвращал в исходное состояние.
у тебя там тогда в трех местах какой то левак написан. Лишние нули и счетчики в 127 вместо 1 лол

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
Наши хаки
« Ответ #5139 : 17 Ноябрь 2016, 01:09:25 »
у тебя там тогда в трех местах какой то левак написан
короче вот так оно есть
GameText:
TopStatusBarLine:
  .db $20, $43, $05, $16, $0a, $1b, $12, $18 ; "MARIO"
  .db $20, $52, $0b, $20, $18, $1b, $15, $0d ; "WORLD  TIME"
  .db $24, $24, $1d, $12, $16, $0e
  .db $20, $68, $05, $00, $24, $24, $2e, $29 ; score trailing digit and coin display
  .db $23, $c0, $7f, $aa ; attribute table data, clears name table 0 to palette 2
  .db $23, $c2, $01, $ea ; attribute table data, used for coin icon in status bar
  .db $ff ; end of data block

счетчики в 127 вместо 1 лол
ты про 7f ? там все правильно, если заменить на 1 то получим

Оффлайн ПАУК

  • Пользователь
  • Сообщений: 1554
  • Пол: Мужской
  • Ну-ка, от винта!
    • Steam
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #5140 : 17 Ноябрь 2016, 06:02:31 »
особо не искал но тоже не видел чтобы удлиняли имя в хаках на марио.
Можно, я пробовал. ЕМНИП, там длинна прицеплена к обоим именам.

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
Наши хаки
« Ответ #5141 : 17 Ноябрь 2016, 10:05:33 »
Можно, я пробовал.
а можно подробнее как это сделать без замещения байт, с замещением я и сам могу,  это видно на обоих скринах.

там длинна прицеплена к обоим именам
это влияет только на отображение второго игрока, так как буквы второго игрока только заменяют буквы первого и не имеют собственной длины.

Оффлайн ПАУК

  • Пользователь
  • Сообщений: 1554
  • Пол: Мужской
  • Ну-ка, от винта!
    • Steam
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #5142 : 17 Ноябрь 2016, 18:26:33 »
а можно подробнее как это сделать без замещения байт, с замещением я и сам могу,  это видно на обоих скринах.
Ой, а я и не помню, может, у меня тоже с замещением, я ж для перевода делал :neznayu:



На, глянь...
[NES] Super Mario Bros (Rus).7z [42.94 КиБ]
« Последнее редактирование: 26 Ноябрь 2016, 13:11:55 от ПАУК »

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
Наши хаки
« Ответ #5143 : 17 Ноябрь 2016, 19:54:29 »
ПАУК, пока глянул Super Mario Bros. (JU) [T-Rus].nes - количество байт GameText: и расположение в роме равное  :( 

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5144 : 17 Ноябрь 2016, 21:08:07 »
лол горе ромхакеры, заставили старого санчеза залезть в чужой дизасм. сборка после изменения длины не работает, потому что в игре 32 кило программы забито полностью до последнего байта, когда ты добавляешь байт, оно становится больше 32 кило и перестает работать.

но.

в конце дизасма есть хрень типа
;unused space
      .db $ff, $ff, $ff
удали его и добавляй сколько хочешь буков (не больше трех лол)

но помни, имя ЛУИЖИ пишется поверх имени МАРИО один к одному, потому что оно имеет ту же длину, и в коде у имени луижи нет ни параметров адреса, ни длины, т.е. подразумевается, что оба имени всегда имеют одну длину. если ты поменяешь у марио имя, у луижи в имени будет хвост от имени марио лол и поменять это можно только переписыванием самого кода вывода обоих имен и возможно ресурсов имен. учитывая, что у тебя на все это есть только три байта, удачи тебе лол...

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

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
Наши хаки
« Ответ #5145 : 17 Ноябрь 2016, 22:05:02 »
удали его и добавляй сколько хочешь буков (не больше трех лол)
лол, я это уже давно сделал, я хотел по другому.

но помни, имя ЛУИЖИ пишется поверх имени МАРИО один к одному, потому что оно имеет ту же длину, и в коде у имени луижи нет ни параметров адреса, ни длины
лол, я об этом уже тоже писал

но вы не пытайтесь туда соваться, пока не научитесь читать код, понимать, что он делает и как его можно изменить....
как можно научится читать код не читая его, как можно понять что он делает не меняя его?

лол горе ромхакеры, заставили старого санчеза залезть в чужой дизасм
ок, раз ты уже залез в чужой дизасм, и даже нашел в чем проблема при увеличении длины текста, то может ты посмотришь в чем проблема при уменьшении, проблема и решение те же. Неужели на каждый освободившийся байт мне нужно будет в unused space добавлять $FF? По моему что то тут не так.

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5146 : 17 Ноябрь 2016, 23:26:11 »
научись пользоваться ассемблером (в частности, директивой ORG) и узнай, что такое вектора прерываний у денди, и может поймешь, в чем проблема

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Наши хаки
« Ответ #5147 : 18 Ноябрь 2016, 00:52:55 »
Прерывания - это IRQ и NMI, да? :)

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5148 : 18 Ноябрь 2016, 01:03:28 »
Прерывания - это IRQ и NMI, да? :)
Расслапсо. Это не тебе. Ты ж не умеешь. Иди картинки дорисовывай лол

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Наши хаки
« Ответ #5149 : 18 Ноябрь 2016, 01:16:57 »
Иди оттуда, откуда появился, то есть - в жопу. Сранчез, блеать. :P

Оффлайн M3tro ™

  • Пользователь
  • Сообщений: 726
  • I’m BlackholeChan, i’m massive so much & very hot…
    • Facebook
    • ВКонтакте
    • Steam
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #5150 : 18 Ноябрь 2016, 02:30:37 »
Сранчез
Lancuster, ты реально обижаешься как ребёнок. А ведь вы оба два взрослые мужика, а ведёте себя, не соответствуя возрасту. CaH4e3 хоть и тоже засоряет тему своими лолами, но хоть по делу, а ты и того паче.
А потом ты, Lancuster, удивляешься, почему это у людей такое мнение о тебе :), так вот ведь почему :)!.. Видно ж всё.
Ты сам пишешь сначала в какой-либо теме, что ты бы занялся тем или иным вопросом, но у тебя нету/мало времени. Тогда зачем писать сообщение, не несущее ни для кого никакой творческой и смысловой ценности?
Ты отвечаешь или пытаешься найти ответ на вопрос, адресованный не тебе. 3ачем :neznayu:?..
Вот из-за этого тебя многие и не понимают, не смотря на твои некоторые труды в области нэсхаккинга :-\.
А если где помочь кому хочешь, то пиши тогда лучше в лс тому человеку, дабы не получалось подобного срача ;))).

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Наши хаки
« Ответ #5151 : 18 Ноябрь 2016, 02:55:37 »
Так ведь я так и делаю. Люди мне пишут в ЛС, обращаются. Я им помогаю по возможности.
А то, что спросил, так это ж очевидно. Уточнить хотел. Не всё ж время проводить с книгой по 6502 процессору. :D

Оффлайн DendyJunior3

  • Пользователь
  • Сообщений: 282
  • Пол: Мужской
    • Просмотр профиля
Наши хаки
« Ответ #5152 : 18 Ноябрь 2016, 12:50:59 »
научись пользоваться ассемблером (в частности, директивой ORG) и узнай, что такое вектора прерываний у денди, и может поймешь, в чем проблема
спасибо за помощь, разобрался

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5153 : 18 Ноябрь 2016, 14:38:17 »
Так ведь я так и делаю. Люди мне пишут в ЛС, обращаются. Я им помогаю по возможности.
С утра приходят ко мне люди разные
Бледные, прям на пороге могут скончаться
И всякие другие разнообразные
Розовые, еще не успели сторчаться

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Наши хаки
« Ответ #5154 : 18 Ноябрь 2016, 14:51:55 »
Рад за тебя, санч. Не понимаю только, зачем ты нам в этом жалуешься... :P

Оффлайн Roket

  • Пользователь
  • Сообщений: 3338
  • Пол: Мужской
  • Злой Котэ
    • Просмотр профиля
Наши хаки
« Ответ #5155 : 18 Ноябрь 2016, 17:35:52 »
Стрим Tom & Jerry (and Tuffy) hack через 10 минут на канале Ромхак! Смотреть на https://www.twitch.tv/romhack_video и http://peka2.tv/romhack
« Последнее редактирование: 18 Ноябрь 2016, 17:41:55 от Roket »

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Наши хаки
« Ответ #5156 : 21 Ноябрь 2016, 02:55:36 »
Вопрос к знающим людям. На днях наткнулся на порт игры Glider c Макинтоша на RetroUSB. Вот только проблема в том, что демки, представленные на сайте, нифига не фурычат. Две, которые по 16 кб, вообще отказываются работать, даже если менять маппер в заголовке. А вот ром themadhouse при смене маппера вёл себя по-разному: при смене с 13 на 4 - работал со скрипом, при смене на 2 - стал работать более-менее. Только графика почти везде битая, вместо музыки и звуков - какой-то левый скрип. Но теперь хотя бы видно, что ром рабочий.  ;)
Только вот я не понял юмора. Ромы выложены вроде как для теста на эмуляторах, но на них они отказываются работать...
Как заставить эту штуку нормально работать на эмуляторах и какой у неё маппер на самом деле?..

Оффлайн ПАУК

  • Пользователь
  • Сообщений: 1554
  • Пол: Мужской
  • Ну-ка, от винта!
    • Steam
    • Youtube
    • Просмотр профиля
Наши хаки
« Ответ #5157 : 26 Ноябрь 2016, 13:18:42 »
Соника улучшили, теперь он довольно шустрый.



http://www.romhacking.net/hacks/3208

Помнится кто-то делал хак на кольца, или кто-то хотел, чтобы вылетало больше трёх

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3605
    • Twitter
    • Просмотр профиля
Наши хаки
« Ответ #5158 : 26 Ноябрь 2016, 13:42:24 »
Вопрос к знающим людям. На днях наткнулся на порт игры Glider c Макинтоша на RetroUSB. Вот только проблема в том, что демки, представленные на сайте, нифига не фурычат. Две, которые по 16 кб, вообще отказываются работать, даже если менять маппер в заголовке. А вот ром themadhouse при смене маппера вёл себя по-разному: при смене с 13 на 4 - работал со скрипом, при смене на 2 - стал работать более-менее. Только графика почти везде битая, вместо музыки и звуков - какой-то левый скрип. Но теперь хотя бы видно, что ром рабочий.  ;)
Только вот я не понял юмора. Ромы выложены вроде как для теста на эмуляторах, но на них они отказываются работать...
Как заставить эту штуку нормально работать на эмуляторах и какой у неё маппер на самом деле?..
ты уже раз пятый на этот глайдер "натыкаешься" лол и пятый раз спрашиваешь, а я уже не помню, отвечал ли тебе пятый раз или забил. короче. глайдер - это самодельное хомбрю. у него свой маппер собственный кустомный, такого маппера никто не эмулирует. а картридж сам по себе железный работает даже не на всех приставках лол и его фишка в том, что он может перешиваться, чтобы добавлять или менять уровни. и вот те ромы, которые на ретроусб выложены и которые кто-то к мапперу 13 зачем-то присобачил (это не этот маппер вообще лол), они для того, чтобы карик, купленный железный апгрейдить новыми уровнями. они вообще не игры и сами по себе работать не могут раздельно от карика, даже если бы кто-то сделал мумуляцию этого хитрожопого маппера.

Оффлайн lancuster

  • Пользователь
  • Сообщений: 4214
  • Пол: Мужской
  • A nullo diligitur, qui neminem diligit...
    • Просмотр профиля
Наши хаки
« Ответ #5159 : 26 Ноябрь 2016, 15:07:22 »
Но ведь на втором маппере он хоть и со скрипом и битой графикой, но работает. Может, есть смысл довести мумуляцию до конца? :)
P. S.: и вообще, я не понимаю, почему откровенно битые и нерабочие ромы выкладываются в гудсет. И почему среди хороших дампов лежат и те, у которых даже заголовка нет?

Добавлено позже:
Я ещё хотел уточнить по поводу маппера OneBus. Воспользовался твоим эмулем для дампа первых 32 кб кода, и вырезал эти игры по началу этого кода: http://www.emu-land.net/forum/index.php/topic,72005.msg1261080.html#msg1261080
Только вот в чём проблема. Ни одна из вырезанных игр не хочет запускаться. Может, я не те банки кода вырезал? По графике же всё правильно.
И вообще. Кластер говорил, что у этих игр есть начало и конец. Я сплошняком их и вырезал.

Добавлено позже:
ПАУК, я, кстати, начал перенос оригинальных спрайтов Соника в игру Jurassic Boy. Так что, если выскажешь желание - будет тебе ещё один пиратский Соник, только в доисторическом мире. ;)
« Последнее редактирование: 26 Ноябрь 2016, 15:21:14 от lancuster »