На этой страничке вы найдете эмулятор ПК "Корвет"
С этим компьютером у меня связано много приятных часов, для многих людей он открыл путь в мир компьютеров...
С эмуляторами компьютеров я познакомился достаточно давно, и еще тогда возникла мысль сделать эмулятор Корвета, да все руки не доходили, по немногу собиралась информация, обдумывались идеи реализации, и вот появился этот эмулятор ....
сам эмулятор ищи в разделе Download
а сюда немного ифнормации по отладчику в эмуляторе ...
-
-
Etalon - Emulator
-
-
DBG
-
Отладчик для эмулятора,
навеян разными отладчикаими, в основном это
MSX DBG - by Леонид Бараз
и др. (Turbo Debugger, AFD)
отладчик позволяет вести пошаговую отладку программы
произвольно перемещаться по коду и дампу
использовать метки и читать/сохранять их на диск
модифицировать дамп и ассм.
сохранять и читать блоки памяти на диск.
ставить независимые ТОЧКИ на каждую ячейку
выполнение, чтение, запись.
просмотр значение служебных регисров в расшифрованом виде.
показ истории выполнения комманд (trace log)
средство для взлома игр GameTools
отладчик отображает 3 основных окна и несколько информационных
переход между окнами
Ctrl+UP
Ctrl+Down
точка останова на выполнение - страбатывает ПЕРЕД выполнением комманды.
точка останова на доступ к яччейке - страбатывает ПОСЛЕ доступа к ней.
вход в отладчик - F9
выход тоже F9
-
Common
-
клавиши общие для всех окон
Ctrl+UP Переход между окнами Regs/Asm/Dump
Ctrl+Down
Ctrl+L Обновить всю информацию на экране (в случае возникновения глюков)
(Переключатель)
F5 Переключить палитру в стандартную (режим отладки)
Ctrl+F5 если палитра в режиме отладки то переключает
(Стандартный LUT, или выключить графику (All/ACZU))
Записать/Прочитать блок памяти
Alt+W Write memory to disk
Alt+R Read memory from disk (читает весь файл в память с указанного адр.)
Записать/Прочитать метки
Alt+Y Write sYmbol on disk
Ctrl+Y Read sYmbol from Disk
метки читает в разных форматах
делался для чтения меток из IDA
Game Tools mode
Ctrl+Z
Debug keys
F7 - Single step
F8 - Cmd Step (Ставим точку останова на след. комманду и пускаем на выполнение)
F9 - Run
-
Game Tools
-
Средство для поиска жизней в играх ;-)
Общая идея:
предназначен для поиска изменяющихся параметров
пример
жизни в виде цифры (3-2-1-0) (сравнение или по значению или по больше,меньше)
параметры в виде шкалы (сравнение по меньше, больше)
константы (например есть мечь в руках или нет) по равно и не равно
и др.
инструкция
Выбираем необходимый нам параметр для поиска (например кол-во жизней)
1) входим в DBG (F9) -> GameTool (Ctrl+Z)
2) Выбераем режим поиска Byte или Word (в зависимости от макс возможного значения)
3) изменяем значение искомого параметра (запускаем эмулятор на выполнение F9 и например умираем)
4) входим в DBG (F9) -> GameTool (Ctrl+Z)
5) нам предлагают
1) < 2) > 3) = 4) != 9) !=0 0) ==0 C+(0-9)==(0..9), B/W) new Byte/WORD, C) Clr ESC) Exit
1-4,9,0: новое значение относиться со старым как
1: значение меньше предыдыщего
2: значение больше предыдыщего
3: значение равно предыдыщему
4: значение не равно предыдыщему
9: значение не равно 0
0: значение равно 0
Ctrl+0..9
: новое значение РАВНО 0..9
b/w : начать новый поиск
c : отмена поиска.
по результатам поиска в верхней строке GT напишет сколько ячеек соответсвующих условию найдено
если кол-во ячеек меньше 15 в табличке покажут адреса и значения в ячейках
далее вовторяе шаги начиная с 3-го до нахождения нужной ячейки
а дальше - используем отладчик для локализации вредного влияния
-
Ita Express
-
LIFE: 0xE308
Init: 0xAA6A
Kill: 0x80C4
-
Color Balls
-
LIFE: 0xE314
-
Klad 2
-
LIFE: 0x0260
Ининциализация счетчика жизней
125b: 21 0a 00 lhi h,0x0a
22 60 02 shld 0x0260
Уменьшить кол-во жизней
14c1: 2a 60 02 lhld 0x0260
2b dcx h
22 60 02 shld 0x0260
-
Fire Rescue
-
LIFE: 0xEAB1
-
Jumper
-
LIFE: 0x0B88
-
REGS
-
Редактор регистров процессора
Up/Down/Left/Right перемещение по полям редактирования
Enter на значении регистра - редактировать значение
Enter на значении стека - в окне ASM открывает это адрес.
Пробел на регистровой паре переключает вид текста справа от курсора.
(1) hl: 0000 30 31 32 33
дамп куда указывает регистр
(2) de: 0000 "01234567"
текст куда указывает регистр
(3) bc: 3132 `12`
тестовое значение регистра
в поле AF можно пробелом переключать значение флагов.
-
ASM
-
Окно асслемблера
Up/Down/Left/Right/
Page_Up/Page_Down - Навигация
все поля редактируемые,
в АСМ можно в операндах использовать метки.
в поле адресса можно ввести новый адрес.
если метка есть и на ней нажать DEL - это ее убьет.
если в поле метке набрать имя то
если метка есть - перейти к метке
если метки нет - создать метку.
F2 - Поставить/снять брякпоинт на текущую инструкцию
F4 - Выполнить и остановиться на текущей инструкци. (HERE)
Ctrl+K - убить текущую комманду (заполнить NOP)
Ctrl+N - PC = текущему адресу
точка останова на выполнение - страбатывает ПЕРЕД выполнением комманды.
-
DUMP
-
Окно DUMP
Up/Down/Left/Right/
Page_Up/Page_Down - Навигация
TAB - перейти в поле HEX<->ASCII
все поля редактируемые,
в поле адресса можно ввести новый адрес.
если метка есть и на ней нажать DEL - это ее убьет.
если в поле метке набрать имя то
если метка есть - перейти к метке
если метки нет - создать метку.
F2 - Поставить/снять брякпоинт на Read+Write access
Ctrl+F2 - Read Break Point
Shift+F2 - Write Break Point
текущий режим отображаеться цветом и надписью (если курсор стоит на ячейке)
[C_Read] [S_Write]
точка останова на доступ к яччейке - страбатывает ПОСЛЕ доступа к ней.
|