// Deterministic, hands-off benchmark mode. // // Activated by KOBO_BENCH=1 in the environment. When on, the game: // * skips the intro/menu sequence and drops straight into stage 0 // * seeds gamerand and pubrand from KOBO_BENCH_SEED (default 12345) // * enables cmd_indicator (collisions register but neither side takes // damage — true invulnerability for deterministic workload), // cmd_cheat (skip score recording), and always_fire (auto-fire) // * defaults KOBO_STRESS=1500 unless overridden, for a steady workload // * dumps the profiler table and exits after KOBO_BENCH_FRAMES // run_game frames (default 1800 = ~60s at the game's tick rate) // // Together this makes a single command (`KOBO_BENCH=1 ./kobodl`) produce a // reproducible profiler dump across phases — no menu navigation, no keyboard // input, identical RNG and spawn pattern run-to-run. #ifndef KOBO_BENCH_H #define KOBO_BENCH_H #include "sdl_compat.h" #ifdef __cplusplus extern "C" { #endif extern int kobo_bench_enabled; extern int kobo_bench_frames; extern Uint32 kobo_bench_seed; void kobo_bench_init_env(void); #ifdef __cplusplus } #endif #endif // KOBO_BENCH_H