Трасса kidobj для сверки с SDLPoP + разбор боя у шва
Инструмент: pop_dbg_kidobj печатает то же, что вывод, добавленный
пользователем в SDLPoP add_kid_to_objtable — tilepos/frame/act/col/cols/rows
(+ наша комната). Считает по set_char_collision и set_objtile_at_char.
Выключен по умолчанию (DBG_KIDOBJ 0), включается одним define; вывод
забирает брейкпоинт MAME на резидентном pop_dbg_trap.
Сверка подтвердила фикс a498255: окно перехода совпало кадр в кадр, за бой
на уровне 1 комната сменилась один раз, на уровне 8 у шва 24/18 — четыре
раза на 387 кадров боя, и все четыре на РАЗРЕШЁННЫХ кадрах (170/164/170/165).
Смен на запрещённых кадрах во всей трассе нет.
Разбор целиком — BUGS_CLOSED.md#seam-fight-flicker, включая невыясненное
расхождение поля cols.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -79,6 +79,14 @@ uint8_t pop_dbg_hits;
|
||||
|
||||
void pop_dbg_trap(void) { pop_dbg_hits++; }
|
||||
|
||||
/* ВРЕМЕННО: трасса kidobj — порт вывода, который пользователь добавил в
|
||||
* SDLPoP add_kid_to_objtable (seg008:1679), чтобы сверить поведение у шва
|
||||
* кадр в кадр. Буфер РЕЗИДЕНТНЫЙ, потому что читает его брейкпоинт MAME:
|
||||
* printf из действия точки берёт байты по фиксированному адресу. Поля —
|
||||
* ровно те же и в том же порядке, плюс наша комната девятым (у оригинала
|
||||
* смена комнаты видна по скачку tilepos, а нам удобнее явно). */
|
||||
int8_t pop_dbg_obj[9];
|
||||
|
||||
/* Зеркало уровня 4 — см. pop_state.h. */
|
||||
int8_t pop_jumped_mirror;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user