Привет Гость!
Ты можешь:
Войти или зарегистрироваться

Забыл пароль
Регистрация
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [174]
Уроки по переводу java игр [15]
Программы для компьютера [102]
Программы для телефона [85]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [35]
Уроки по модификации ПК игр [9]
Мини-чат
Главная » Статьи » Уроки по модификации java

23.05.2010, 10:11

Правим SOFT кнопки

FAQ: Правим SOFT кнопки

Автор: Zveka
Оформление: aNNiMON

Во многих случаях в этом вам поможет программа Java Adapter, в освоении не трудна.
Но Java Adapter не идеален, и поэтому иногда правит софт-кнопки не так, как надо, или вообще отказывается что-то изменять.
И тогда приходиться с помощью программы Java Bite править софты вручную (можно править не только софты, а ещё к примеру циферки 132 и 176 к примеру).
Необходимые программы: Java Adapter, Java Bite, Java Decompiler, Win Hex

Исправления на примере Darkest Fear от Rovio:

1. Делаем копию игры.
2. Извлекаем все файлы из игры и копии игры в свои каталоги (Darkest Fear и Копия Darkest Fear).
3. Пропускаем копию игры через Java Adapter и смотрим, в каких классах он делает исправления (в нашем случае это будут классы l.class и n.class). Стоит помнить, что показываемые классы могут быть ошибочны, и кнопки могут быть спрятаны например в классе a.class.
4. Теперь пропускаем классы l и n (из папки копии игры) через Java Decompiler и смотрим код на наличие нокиевских (в этом случае) софт кнопок (почти всегда это слова case со значением) -6 и -7 и видим, что они только в n.java.
5. Запускаем Java Bite и открываем класс n.class из папки Darkest Fear (Classes -> Add Java Class).

Работа в Java Bite:

1. Слева раскрываем + и видим список, раскрываем ещё один + возле Methods, нажимаем на Methods, справа появится список из класса, как в нем идут все его функции по порядку, слева же ниже Methods они показаны по алфавиту.
2. Смотрим текст n.java чтобы узнать, куда же следовать в Java Bite. И увидим, что кнопки расположены в блоке private int _aII(int i), а сразу за ним идет public final void keyPressed(int i). Смотрим в Java Bite список справа и находим этот блок а выше keyPressed, но так же видим что существуют и другие блоки а, а программа не сумеет открыть нужный нам блок, если их много. Поэтому щелкаем 2 раза на нужном блоке а и в 1й строке появившегося окна изменяем его имя на другое, которого нет в списке, например [[C. И тут в списке слева появится внизу искомый нами блок, нажимаем на него.
3. Справа появляется его содержимое, нас интересует строка tableswitch, кликаем на неё. В ней даны кнопки и их значения от -7 до 57 (порядок от минуса к плюсу строго обязателен). Сименсовские софты соотвествуют -1 (левый) и -4 (правый) нокиевским -6 и -7 соответсвенно. Кликаем на значение 00000140 напротив CASE -1 и ставим там значение CASE -6 (это 00000138). То же делаем и с -4.
4. Нажимаем Methods и переименовываем обратно из [[C в а
5. Делаем сохранение Class -> Save Class и закрываем программу. Появится вопрос при закрытии, жмите нет.
6. Запаковываем игру, вуаля, софты работают.

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

Добавление:
Еще можно использовать вторую версию Java Adapter'а, которая намного надежнее и стабильнее предыдущей. Скачать можно здесь
Еще кнопки указываются в конструкциях bipush_000 (где 000 это число до 256). Минусовые кнопки отбавляются от 256, например -4 это bipush_252, положительные, типа 26 так и будут 26.
В игре выше кнопки были в конструкции tableswitch, реже попадается конструкция lookupswitch и тогда Java Bite отпадает, он не умеет ее править. На помощь приходит WinHex.

Находим игру Alpha Wing EX и потрошим ее e.class , открыв его в Байте. В методах выбираем GetGameAction и справа видим этот lookupswitch. Далее смотрим на название колонок и «оттягиваем» столбик Disassembled вправо, освобождая столбик ByteCode.

Далее видим в столбце код примерно такого вида: AB0000000000790000000AFFFFFFFC00…. Запоминаете его или запишите (четное количество символов кода) и открываете WinHex’ом e.class Жмем Ctrl+Alt+F и вводим часть кода для поиска (чем больше, тем точнее); найдя его чуть-чуть далее кода будут идти коды FF FF FF FA и FF FF FF F9 (FA это значение -6, F9 значение -7).

Узнать как будет выглядеть -1 в хексе легко, жмем F8 и в окошке справа пишем цифру для перевода 255 и жмем enter (берем 256 -1=255) получаем FF.

Терь просто правим FA на FF и F9 на FC и сохраняем. Так значения -6 и -7 из конструкции lookupswitch станут -1 и -6.

Превирификация

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

Допустим, вы исправили конструкцию iconstr_null на bipush_255 (это кнопка -1, иногда так отображена в Байте). Или когда в конструкции tableswitch со значениями от -7 до -1 расширяете ее от -62 до -1 и прописываете значения для сименса (-62 значение от -4, для -26 значение -5 и т.д., этим вы добавите рабочий джойстик) и сохраните ее. Т.е. вы добавив или убавив байтов обязаны прогнать игру через превирификатор и заменить правленый класс на превирифицированный, иначе игра работать не будет.

Прикладываю архивчик, все файлы игры ложить в папку default, жать 1.bat и смотреть папку output, если там не все классы, или правленый класс по размеру меньше, то или вы где-то накосячили, или игра противится внесениям таких изменений…

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

Категория: Уроки по модификации java | Добавил: Tommy_M | Автор: Zveka, aNNiMON
Просмотров: 1795 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 1
Спам
Waset   (16.04.2011 19:33) [Материал]
Жалко ссылок нет. А в катологе они подохли sad

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

о, привет
Новинки
  • Файлы
  • Статьи
  • Новости

The long dark mobile
Комментов: 6 | Загрузок: 114
Golden Bridge
Комментов: 14 | Загрузок: 161
Real city russian car driver simulator (java)
Комментов: 0 | Загрузок: 162
Alone in the Dark: Inferno
Комментов: 4 | Загрузок: 185
Manhunt: Prison Massacre
Комментов: 1 | Загрузок: 103
CS 1.6 : Parody BETA
Комментов: 1 | Загрузок: 154
L2D Game Boy Color
Комментов: 1 | Загрузок: 114
Megaman Zero
Комментов: 0 | Загрузок: 71
Bully Mobile Edition
Комментов: 4 | Загрузок: 131
Quantum (Версия от 26.06.2020+обнова конвертера)
Комментов: 96 | Загрузок: 849

S.T.A.L.K.E.R. Mobile part_2
Комментов: 11 | Просмотров: 403
Lost in taiga 3d: Winter survival
Комментов: 2 | Просмотров: 293
Comcraft Remastered Version
Комментов: 1 | Просмотров: 511
Поколение Java #4 — ФЕНОМЕН Left 2 Die
Комментов: 1 | Просмотров: 767
Gangstar 2 Beta
Комментов: 0 | Просмотров: 762
[Поколение Java #3] ВСЕ ИГРЫ про Человека-паука
Комментов: 0 | Просмотров: 884
Sonic.EXE - Анонс
Комментов: 0 | Просмотров: 1430
Случайный мод
Портация популярной аркады "Аngrу Вirds" на ваши мобильные телефоны от команды МGТеаm.
2122 293 15 5.0
Статистика
Онлайн всего: 5
Гостей: 4
Пользователей: 1
Пользователи
Гости сайта
hdrezzka
[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2021 | Хостинг от uCoz