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

Забыл пароль
Регистрация
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [176]
Уроки по переводу java игр [15]
Программы для компьютера [102]
Программы для телефона [85]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [35]
Уроки по модификации ПК игр [10]
Мини-чат
Главная » Статьи » Уроки по модификации 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
Просмотров: 2405 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 1
Спам
Waset   (16.04.2011 19:33) [Материал]
Жалко ссылок нет. А в катологе они подохли sad

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

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

Rise Of Antares
Комментов: 1 | Загрузок: 42
РЕЗНЯ 3D: Not city of sins
Комментов: 0 | Загрузок: 97
Vice Multi-Player 0.1 beta RC 8-4-9-5
Комментов: 0 | Загрузок: 17
GTA San Andreas Beta 1
Комментов: 1 | Загрузок: 170
Galaxy Force 2 FINAL
Комментов: 42 | Загрузок: 1
Haunting abandoned mansion (color mod)
Комментов: 0 | Загрузок: 148
Deadly game Resident Evil 7 DLC
Комментов: 0 | Загрузок: 225
GTA SA FLY
Комментов: 0 | Загрузок: 278
GTA SA Mobile: Definitive Edition
Комментов: 1 | Загрузок: 491
QUAKE
Комментов: 51 | Загрузок: 431

ODN Remake - скриншоты
Комментов: 0 | Просмотров: 46
O. D. N Remake
Комментов: 0 | Просмотров: 117
Новый сайт с мобильными загрузками - Oldfag
Комментов: 7 | Просмотров: 1479
Здорово и вечно 2 свободное человечество анонс номер два
Комментов: 9 | Просмотров: 1408
Дневник разработки "Шизофрения 3D" #2 - Концепция
Комментов: 2 | Просмотров: 1423
Дневник разработки "Шизофрения 3D" #1 - Общая инфа
Комментов: 0 | Просмотров: 1372
Maximum Carnage: No Way Home
Комментов: 0 | Просмотров: 1284
Случайный мод
Персонажи Mortal Combat устроили смертельные разборки между собой. Они лупят друг друга всем, что попадает под руку. Ваш герой - Саб-Зиро, ваша задача - убить всех и выжить самому.
3153 400 10 4.7
Статистика
Онлайн всего: 3
Гостей: 3
Пользователей: 0
Пользователи
Гости сайта

[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2024 | Хостинг от uCoz