| Разработка и ромхакинг > Инструменты |
| [PS1] PSIG - instructions generator |
| (1/3) > >> |
| Mr2:
Программа выдаёт инструкции в машинном представлении. PSIG v0.2 Добавлена генерация из файла в файл. Подправлены условные переходы. PSIG v0.3 Исправлен порядок регистров в команде сравнения. Увеличено колличество допустимых строк, добавлена обработка превышения лимита. Инструкции. О PSX. |
| babulya:
Mr2, а для чего это все надо? :? |
| Mr2:
--- Цитата: babulya от 02 Ноябрь 2012, 17:51:53 ---Mr2, а для чего это все надо? :? --- Конец цитаты --- Ну например в игре есть код стрельбы из пистолета: --- Код: ---sll $v0, $s1, 2 lw $s2, 0($v0) li $v0, 0x11 jal sub_6D2A0 sw $v0, 0($s7) move $s5, $0 sll $v0, $s1, 2 sw $s5, 0($v0) lw $v0, 0x18($s7) addiu $s1, 1 bne $s1, $v0, loc_3E750 li $v0, 0xC6090 srl $s1, $v0, 2 --- Конец кода --- Ты хочешь заменить его на стрельбу из базуки: --- Код: ---addiu $sp, -0x18 lui $v0, 0xC lw $s1, dword_C60E8 li $v0, 0xC60E0 srl $v0, 2 sw $ra, 0x18+var_8($sp) jal sub_3E6F0 sw $v0, 0x18($s7) lw $ra, 0x18+var_8($sp) nop jr $ra addiu $sp, 0x18 --- Конец кода --- Пишешь код базуки, но текст PSX не поймёт, тут в дело и вступает PSIG! :wow: Кормишь PSIG текстом, а он тебе выдаёт кучку машинных команд, которые PSX должна скушать и не поморщиться. |
| Griever:
Чем spAsm плох? |
| Mr2:
--- Цитата: Griever от 05 Ноябрь 2012, 10:15:11 ---Чем spAsm плох? --- Конец цитаты --- Я не умею пользоваться консольными программами. :blush: |
| r57shell:
Печально. |
| Mr2:
--- Цитата: r57shell от 05 Ноябрь 2012, 13:31:36 ---Печально. --- Конец цитаты --- Да, не расстраивайся! :D Есть же PSIG. :wow: |
| UltraFatalSlash:
Когда предъявишь первые результаты своей деятельности в этом ПСИГе?) Желательно на примере МК)) |
| Mr2:
--- Цитата: UltraFatalSlash от 05 Ноябрь 2012, 18:55:54 ---Когда предъявишь первые результаты своей деятельности в этом ПСИГе?) Желательно на примере МК)) --- Конец цитаты --- Дело не только в PSGI, нужно вникнуть в работу с графическим процессором. |
| Mr2:
PSIG v0.4 Добавлены некоторые функции компилятора: Константы, переменные, метки, установка начала кода и переменных. Так как в код было внесено много изменений, требуется углублённое тестирование. PSIG v0.4.1 Информация о неизвестной ошибке заменена на известную - возникала при проверке сдвигов hi/lo. Исправлена ошибка в ключевом слове "variables". Установлены ограничения для начала кода и переменных. Размер кода и переменных ограничен памятью консоли. Добавлено сообщение о неверном втором регистре в инструкциях загрузки и сохранения. Изменена очистка сообщений об ошибках. Добавлен сдвиг "high data" без увеличения старшей части: _hd. Добавлена очистка code start/variables. Исправлена проверка меток меток. Добавлено сообщение об ошибке при пропуске цифры в инструкции. Изменена проверка ошибок в инструкциях загрузки и сохранения. Добавлено сообщение об ошибке при генерации инструкции введённой с клавиатуры. PSIG v0.5 Добавлены строки. PSIG v0.6 Добавлена возможность создавать указатели. Лимит строк увеличен до 500. PSIG v0.6.1 Исправлена обработка инструкций загрузки и сохранения с отрицательным индексом. В архиве файл(PSIG.xml) подсветки синтаксиса для Notepad++. |
| Mr2:
PSIG v0.7 Исправлено увеличение hi значения. Исправлена адресация в инструкциях загрузки и сохранения. Лимит строк увеличен до 2500. PSIG v0.8 PSIG всунут в окно. Добавлена генерация кода в исполняемый файл(PSX-EXE/SLUS/SLES ). Доступен выбор In/Out файлов через браузер. Обновлён файл подсветки "PSIG Highlighting syntax.xml". Добавлено полное описание синтаксиса PSIG.( файл "Syntax.txt") Ключевое слово "code start" заменено на "code_start". Добавлено ключевое слово file_index. Клавиша F1 - вывод информации о программе. PSIG v0.9 Исправлено декодирование констант. Лимит строк увеличен до 3500. Мануал, из которого можно узнать для чего нужен PSIG. |
| Mr2:
PSIG v1.0 Изменён интерфейс программы. Добавлена поддержка броска файла в окно программы. Добавлен флаг генерации инструкции. |
| paul_met:
Что-то я не понял, а куда делся регистр R0? Почему генератор его не признаёт? |
| krocki:
Как я понял это типа конвертера ASM to HEX? |
| dedok179:
--- Цитата: krocki от 04 Июль 2017, 23:05:31 ---Как я понял это типа конвертера ASM to HEX? --- Конец цитаты --- Да. Почти как SPASM от Hitmen, только в графической оболочке с поддержкой новых WIN ОС. |
| Mr2:
--- Цитата: paul_met от 04 Июль 2017, 20:56:42 ---Что-то я не понял, а куда делся регистр R0? Почему генератор его не признаёт? --- Конец цитаты --- В архиве с программой идёт документация(Синтаксис.txt), там есть ответы на большинство вопросов. ;) Нулевой регистр называется zr. --- Цитата: krocki от 04 Июль 2017, 23:05:31 ---Как я понял это типа конвертера ASM to HEX? --- Конец цитаты --- Это типа ASM компилятора, но чуть до него не дотягивает по функционалу. :) |
| paul_met:
--- Цитата: Mr2 от 07 Июль 2017, 08:29:51 ---В архиве с программой идёт документация(Синтаксис.txt), там есть ответы на большинство вопросов. Нулевой регистр называется zr. --- Конец цитаты --- В этой документации ни слова нет о том, что регистр R0 заменён на ZR и по каким соображением эта путаница затеяна. |
| paul_met:
Предлагаю внести некоторые изменения в интерфейс программы, дабы улучшить её удобство: * Стоит избавиться от привязки к регистру букв. Ввод инструкций исключительно в верхнем регистре это как-то странно. Тоже самое касается и нижнего регистра для "регистров" (тавтология прям получилась). * Думаю, дабы избежать путаницы, надо всё-таки вернуть название нулевому регистру R0, а не ZR. Всё-таки во все дебаггерах, да и в доке по Мипсам нулевой регистр называется именно R0. * Удобнее будет вместо переключателя Reverse Instruction сделать отдельные кнопки для генерации прямого и обратного кода. Это быстрее и логичнее, чем переключение и повторная генерация. * Раз информационное окно не очищается после очередной генерации кода, то нагляднее будет на против ранее сгенерированного кода выводить текст инструкции, чтобы история ввода была информативнее. Оставлять голый код в окне смыла особого нет. Тогда уж проще очищать окно. * Не помешала бы и отдельная кнопка копирования последнего сгенерированного кода, чтобы лишний раз не выделять его и не копировать ручками. |
| Mr2:
--- Цитата: paul_met от 26 Апрель 2018, 20:10:32 ---Стоит избавиться от привязки к регистру букв. Ввод инструкций исключительно в верхнем регистре это как-то странно. Тоже самое касается и нижнего регистра для "регистров" (тавтология прям получилась). --- Конец цитаты --- Такой синтаксис совместим с дизассемблером Munch. --- Цитата: paul_met от 26 Апрель 2018, 20:10:32 ---Думаю, дабы избежать путаницы, надо всё-таки вернуть название нулевому регистру R0, а не ZR. Всё-таки во все дебаггерах, да и в доке по Мипсам нулевой регистр называется именно R0. --- Конец цитаты --- r0-r31 это не имена регистров, это сами регистры. ;) --- Цитата: paul_met от 26 Апрель 2018, 20:10:32 ---Удобнее будет вместо переключателя Reverse Instruction сделать отдельные кнопки для генерации прямого и обратного кода. Это быстрее и логичнее, чем переключение и повторная генерация. --- Конец цитаты --- +1 --- Цитата: paul_met от 26 Апрель 2018, 20:10:32 ---Раз информационное окно не очищается после очередной генерации кода, то нагляднее будет на против ранее сгенерированного кода выводить текст инструкции, чтобы история ввода была информативнее. --- Конец цитаты --- +1 --- Цитата: paul_met от 26 Апрель 2018, 20:10:32 ---Оставлять голый код в окне смыла особого нет. Тогда уж проще очищать окно. --- Конец цитаты --- В контекстном меню главного окна, есть ручная очистка.(если что) --- Цитата: paul_met от 26 Апрель 2018, 20:10:32 ---Не помешала бы и отдельная кнопка копирования последнего сгенерированного кода, чтобы лишний раз не выделять его и не копировать ручками. --- Конец цитаты --- +1 paul_met, в ближайшее время обновлений не планируется :(, если так раздражает регистр инструкций и название нулевого регистра, можешь по старинке поправить их через хекс редактор. :D |
| paul_met:
--- Цитата: Mr2 от 27 Апрель 2018, 13:23:22 ---Такой синтаксис совместим с дизассемблером Munch. --- Конец цитаты --- Так пусть и остаётся совместим. Можно ведь сделать так, чтобы при вводе с клавы регистр игнорировался, а в окошке ввода инструкции всё отображалось как и раньше (имена инструкций в верхнем, регистры - в нижнем). Так будет проще, чем постоянно жонглировать шивтом или капсом. --- Цитата: Mr2 от 27 Апрель 2018, 13:23:22 ---r0-r31 это не имена регистров, это сами регистры. --- Конец цитаты --- Я в курсе, просто привык, что в дебаггере PCSX порядковый номер нулевого регистра совпадает с его именем. А в No$PSX он просто нуль. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |