code wiki / _hdl_build / nx_gamefeel_oracle_gate.nx

nx_gamefeel_oracle_gate.nx

buildroot/runtime/_hdl_build/nx_gamefeel_oracle_gate.nx

11973 B201 linesdepth 6pulls 34 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_gamefeel_oracle_gate.nx -- FEEL PROVES AGAINST BANKED REFERENCES (operator 2026-08-02: "mine the modding communities and published work as oracles to SKIP guess-and-test"). The crypto lane's KAT law applied to game feel: every tunable the engine ships must sit inside a band banked in ../knowledge/gamefeel_oracle.conf WITH its sources named; a tunable whose row is MISSING is RED by construction (no unbanked numbers), and every compare is CROSS-MULTIPLIED (the banked truncation law). Values are read from the LIVE symbols the engine itself uses (wc_spec arena + the lib/engine constants) -- the gate cannot drift from the game because they share one definition. license_tier: ORIGINAL No hw writes (Rule 26). expect_exit: 0

dependencies 3 imports · 0 importers

nx_wasm_craft.nx nx_gate_verdict.nx nx_oracleband_lib.nx nx_gamefeel_oracle_gate.nx

imports: nx_wasm_craft.nxnx_gate_verdict.nxnx_oracleband_lib.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gv_ctr sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_head gv_puts sys_write ↻ gf_load ob_load sys_mmap ↻ sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_munmap sys_close gv_puts ↻ gv_check gv_puts ↻ gv_verdict gv_note_bare_rate gv_bare_rate gv_at gv_obj_has_n gv_at ↻ gv_puts ↻

structs

none

consts

13const GF_MAGIC_4096: i64 = 4096
15const GF_CONF: *u8 = "../knowledge/gamefeel_oracle.conf"

functions

21func gf_load() -> i64 { return ob_load("../knowledge/gamefeel_oracle.conf\x00" as *u8) }
called by 1: main calls 1: ob_load
23func gf_eq(a: *u8, b: *u8) -> i64 { return ob_eq(a, b) }
calls 1: ob_eq
25func gf_find(key: *u8) -> i64 { return ob_find(key) }
called by 1: main calls 1: ob_find
27func gf_band(name: *u8, key: *u8, val: i64, ctr: *i64) -> i64 { return ob_band(name, key, val, ctr) }
called by 1: main calls 1: ob_band
29func main() -> i64