CE mapbranches
- 
  (Другие записи: https://celua.ru/topic/113/ветвления-кода-связанные-с-адресом-старые-записи/2) - На адрес устанавливается брейкпоинт.
- Идем в игру делаем или не делаем что-то
- Начинают срабатывать инструкции на брейкпоинте
- От каждой инструкции начинается трейслог, подобный тому, который есть у CE, но менее тормозной
- Заканчивается трейслог на инструкции, на 100-ом счетчике после ret-а (об этом пункте будет уточнение). Здесь выходим на коневой цикл
- Трейслог останавливается и ожидание следующей инструкции, которая сработает на брейкпоинте, она должна быть отличной
 В итоге мы имеем кучу трейслогов начинающихся с адреса работающего с параметром (например, кол-во патронов в обойме) и заканчивающихся на корневом цикле. Также мы собираем данные об адресах с рет-ами и счетчиками. По этим данным можно нарисовать схему, где ret-ы меняют направление пути прохождения потоком дизассемблерного кода На скриншотах ниже 
 Вертикальные линии со кружками -— это ветвь трейслога
 Белый кружок — адрес ret-a, который не повторялся
 Пунктирный кружок — адрес ret-а, который повторялся. Стрелка от такого пунктирного круга будет указывать на белый круг.По схеме видим, где ret-ы меняют свое направление поднимаясь по рутине в корневом цикле    По плану по визуальной части: - 
Клик на кружок — переход на код 
- 
Придумать что-то, чтобы стрелки не накладывались друг на друга 
- 
Установка брейкпоинтов на кружках — становиться красными 
- 
Легенда. Номер ветви, связанная инструкция, состояние брейкпоинтов. Комментарий к ветви 
- 
Загрузка/сохранение легенды 
 Для чего нужно. Для поиска условий, которые включают и выключают ветви кода. Т.е. чтобы можно было это условие быстро найти и изменив его, повторить выполнение кода ветви, которая "пробьётся" из корневого цикла. Таким образом попытаться повторить действие в игре, а если не получаться повторить, то определить дополнительные условия. 
 

 MapBranches
MapBranches