NEXT_SESSION: актуализация окружения и граблей сессии
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -37,36 +37,45 @@
|
|||||||
## 2. Состояние репозитория
|
## 2. Состояние репозитория
|
||||||
|
|
||||||
Всё закоммичено, `main` чист. `tests-host`: 5 наборов проходят
|
Всё закоммичено, `main` чист. `tests-host`: 5 наборов проходят
|
||||||
(`[char] 65`, `[geom] 3144`, `[grab] 53`, `[phys] 1723`, `[wall] 1`).
|
(`[char] 65`, `[geom] 3144`, `[grab] 55`, `[phys] 1727`, `[wall] 1`).
|
||||||
`make size-check`: OK (65 программ, роста нет).
|
`make size-check`: OK (65 программ, роста нет).
|
||||||
|
|
||||||
Коммиты 2026-08-11 (вечер):
|
Коммиты 2026-08-12:
|
||||||
|
|
||||||
| хеш | что |
|
| хеш | что |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `abe4a83` | уровень 5: тень не дерётся, кнопка в шве, узор паласа после зелья |
|
| `b5951c9` | зацеп за кромку нижнего ряда: `do_fall` пускает ряд до 3 + `check_grab` в midair |
|
||||||
| `740cc6d` | арка у ворот: спецслучай «Lattice + door A» (seg008:622) |
|
| `d7d18ae` | зелье медленного падения (перо) + цвет пузырьков по типу зелья |
|
||||||
| `e4ef489` | L6-SHADOW: тень роняет решётку + кромка ряда ниже |
|
|
||||||
| `9ecea17` | уровень 6: переход на 7-й, портал, многокомнатное падение плиты |
|
|
||||||
|
|
||||||
Уровни 1-6 проходятся; всё, что пользователь ловил в этой сессии, закрыто и
|
Раньше (2026-08-11, вечер): `abe4a83` уровень 5, `740cc6d` арка у ворот,
|
||||||
разобрано в [`BUGS_CLOSED.md`](BUGS_CLOSED.md) (шесть записей за вечер).
|
`e4ef489` L6-SHADOW, `9ecea17` уровень 6 → 7.
|
||||||
|
|
||||||
|
Уровни 1-6 проходятся.
|
||||||
|
|
||||||
## 3. Состояние окружения
|
## 3. Состояние окружения
|
||||||
|
|
||||||
- **MAME запущена с мостом**, но на её HDD сейчас лежат ТЕСТЫ libbgi
|
- **MAME запущена с мостом**, на HDD — roomtest, собранный с
|
||||||
(`accop.exe`, `bgiimg.exe`), а не roomtest. Под roomtest пересобрать
|
`-DFIRST_LEVEL=7`. Пересобрать образ: `make hdd` (или
|
||||||
образ: `make hdd` (или `make PROF_FLAGS="-DFIRST_LEVEL=5" hdd` — при смене
|
`make PROF_FLAGS="-DPROF_BORDER=1 -DFIRST_LEVEL=N" hdd` — при смене
|
||||||
`FIRST_LEVEL` нужен `touch roomtest.c`, иначе не переедет), после чего
|
`FIRST_LEVEL` нужен `touch roomtest.c`, иначе не переедет), после чего
|
||||||
MAME **обязана** пройти полный рестарт (memory `mame_hdd_rebuild_restart`).
|
MAME **обязана** пройти полный рестарт (memory `mame_hdd_rebuild_restart`).
|
||||||
- **Остановка MAME — `mame/v306/bridge_cmd.sh 'cmd exit'`**, НЕ `kill`
|
- **Остановка MAME — `mame/v306/bridge_cmd.sh 'cmd exit'`**, НЕ `kill`
|
||||||
(правило пользователя). `pkill -f` бывает не срабатывает, и остаются ДВА
|
(правило пользователя). `pkill -f` бывает не срабатывает, и остаются ДВА
|
||||||
инстанса, оба отвечающих на файловый IPC — тогда скриншоты приходят от
|
инстанса, оба отвечающих на файловый IPC — тогда скриншоты приходят от
|
||||||
чужой машины. Проверять `pgrep -f mame.arm` после остановки.
|
чужой машины. Проверять `pgrep -f mame.arm` после остановки.
|
||||||
- Прогон без MCP-инструментов: `bridge_cmd.sh 'cont'` → sleep ~45 с (бут
|
- Прогон без MCP-инструментов: запустить `run_bridge.sh` → **sleep 6** →
|
||||||
DSS) → `bridge_cmd.sh 'keyseq d:{ENTER}'` → `keyseq <имя>{ENTER}` →
|
`bridge_cmd.sh 'cont'` → **sleep 8** → `keyseq d:{ENTER}` →
|
||||||
`snap /tmp/mame_snap/x.png`. **Имя .exe на образе — не длиннее 8 символов
|
`keyseq roomtest{ENTER}` → `snap <путь>.png`. Тайминги — правило
|
||||||
(FAT 8.3) и БЕЗ подчёркивания** (`keyseq` не умеет `_`).
|
пользователя, длиннее ставить не надо. **Имя .exe на образе — не длиннее
|
||||||
|
8 символов (FAT 8.3) и БЕЗ подчёркивания** (`keyseq` не умеет `_`).
|
||||||
|
- **Вести игру из моста — по обратной связи из памяти, а не по скриншотам**:
|
||||||
|
`mem 0xA46A 10` = `pop_char_t` Кида, `mem 0xA3F7 1` = номер комнаты (адреса
|
||||||
|
из `.sprinter-cc-roomtest/roomtest.map`+`.sym`). Полный рецепт (удержания,
|
||||||
|
чит-навигация, тайминги нажатий) — memory `mame_mcp_bridge`.
|
||||||
|
- **MCP-инструменты `mame-z80` не поднимались**: сервер падал на
|
||||||
|
`ModuleNotFoundError: mcp.server.fastmcp` — вышел `mcp` 2.0, где FastMCP
|
||||||
|
переехал. В `~/.claude.json` зафиксировано `--with "mcp<2"`; подхватится
|
||||||
|
при следующем СТАРТЕ сессии Claude (внутри текущей — нет).
|
||||||
- **SDLPoP собран с отладочной информацией** (`-O0 -g3`); pkg-config на
|
- **SDLPoP собран с отладочной информацией** (`-O0 -g3`); pkg-config на
|
||||||
машине нет, команда сборки — в истории этого файла (`git log -p`).
|
машине нет, команда сборки — в истории этого файла (`git log -p`).
|
||||||
- **НЕ ПРИБРАНО:** в `SDLPoP/src/seg008.c` диагностический `fprintf` с меткой
|
- **НЕ ПРИБРАНО:** в `SDLPoP/src/seg008.c` диагностический `fprintf` с меткой
|
||||||
@@ -103,7 +112,23 @@
|
|||||||
- Долгие: `BUG-SPIKE-1`, `BUG-CHOMP-JUMP-1` (оба низкий приоритет),
|
- Долгие: `BUG-SPIKE-1`, `BUG-CHOMP-JUMP-1` (оба низкий приоритет),
|
||||||
`L3-COLOR`, `L1-SPEED` (игра на ~39 % быстрее оригинала), `TUNE-1`.
|
`L3-COLOR`, `L1-SPEED` (игра на ~39 % быстрее оригинала), `TUNE-1`.
|
||||||
|
|
||||||
## 6. Грабли, собранные 2026-08-10/11
|
## 6. Грабли, собранные 2026-08-12
|
||||||
|
|
||||||
|
- **Тест, который «проходит» и на сломанном коде, ничего не стоит.** Первая
|
||||||
|
версия регресса на спуск-зацеп засчитывала ЛЮБОЙ вис — а Кид на первых
|
||||||
|
кадрах падения цепляется обратно за ту же верхнюю кромку. Признак цели
|
||||||
|
обязан быть позиционным. Проверять новый регресс откатом фикса — обязательно.
|
||||||
|
- **`action == 3` (midair) — это не только падение**: кадры спуска `seq_68`
|
||||||
|
тоже идут с ним. Ждать «начала падения» по одному `action` нельзя.
|
||||||
|
- **Клавиши, зажатые из моста, переживают точечный `release`**: плагин
|
||||||
|
переустанавливает удержания каждый кадр, и после серии `hold` осталось 6
|
||||||
|
незакрытых входов — у пользователя «Кид ходит как с зажатым Shift».
|
||||||
|
Заканчивать работу с вводом только `pause` + `cont` (release_all).
|
||||||
|
- **Чит-навигация `+`/`−` теряет нажатия и роняет Кида** из комнат без пола:
|
||||||
|
уровень 7 из комнаты 17 всегда сваливается в 1, и кольцо `−` до комнаты 14
|
||||||
|
не доходит никогда. Ходить циклом с проверкой номера комнаты.
|
||||||
|
|
||||||
|
## Грабли 2026-08-10/11
|
||||||
|
|
||||||
- **Не оценивать железо по своей же memory-заметке.** Заявил, что accel
|
- **Не оценивать железо по своей же memory-заметке.** Заявил, что accel
|
||||||
умеет только копирование и XOR потребует ~25 % кадра на CPU — неверно,
|
умеет только копирование и XOR потребует ~25 % кадра на CPU — неверно,
|
||||||
|
|||||||
Reference in New Issue
Block a user