flybrain/services/flysim
dev 2987b243f4 probe: press at every battle menu to see which reading says it is accepting input
Row 50 asks which WRAM reading tells a battle menu that is accepting input
from one that is only drawn, and the honest way to answer it is to press.
FLY_PROBE_CATCH=accept drives real battles, and on every battle frame it
exports the emulator state, issues one directional pulse, reads
wCurrentMenuItem and puts the state straight back -- so the run is not
perturbed by the measurement and every frame gets a ground truth.

Beside that it asks every byte of WRAM and HRAM whether its values on
accepting frames are disjoint from its values on refusing ones, so a
reading is found rather than nominated.

The pulse releases the buttons before it presses: JoypadLowSensitivity acts
on a key's edge, so a direction the fly is already holding reads as refused
for the measurement's reason and not the cartridge's.
2026-09-22 18:37:26 +00:00
..
.cargo flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00
crates probe: press at every battle menu to see which reading says it is accepting input 2026-09-22 18:37:26 +00:00
golden flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00
tools symbols: the four WRAM names the whole-map grid reads 2026-09-22 03:17:20 +00:00
vendor/binjgb flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00
Cargo.lock Merge feat/sf-contract-01: the fly-session-types crate, so the session slice builds on the shared contract types 2026-09-22 12:30:03 +00:00
Cargo.toml Merge feat/sf-contract-01: the fly-session-types crate, so the session slice builds on the shared contract types 2026-09-22 12:30:03 +00:00
flysim.toml.example flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00
rust-toolchain.toml flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00