nx_game_page_emit_sand_review.nx
buildroot/runtime/nx_game_page_emit_sand_review.nx
about
nx_game_page_emit.nx -- the SOVEREIGN game-page emitter. Until now the browser page for a wasm
game was assembled by printf blocks in _ops/nx_emit_game.sh -- real emission logic living in
SHELL, against the doctrine (shell only LAUNCHES sovereign ELFs). This organ owns it: reads the
.wasm, base64-encodes it (composes nx_base64 -- one encoder, not a coreutils dependency), and
emits the complete self-contained page (marker, shim, input forwarding, persistence bytes-mover).
usage: nx_game_page_emit <wasm> <out.html> <title> <native-client-name> <controls-html>
RECOVERED 2026-08-02 from buildroot/_build/nx_craft_emit.s (the 14:07 build's data section)
after a failed in-place rewrite TRUNCATED this file to 0 bytes and the damage was copied to
both trees. Every emitted chunk below is the exact byte sequence that build shipped, so the
recovered emitter is byte-equivalent to the last one that passed both gates.
license_tier: ORIGINAL
dependencies 12 imports · 0 importers
diagram shows first 10 each side; +2 more imports, +0 more importers in the complete lists below.
imports: nx_syscalls.nxnx_base64.nxnx_game_page_artifact_lib.nxnx_wasmfit.nxnx_hairdyn_lib.nxnx_audio_osc.nxnx_atmosphere.nxnx_glprobe_lib.nxnx_tool_run.nxnx_genp_allow_lib.nxnx_release_delta_lib.nxnx_tier_ladder_lib.nx
imported by: nobody (leaf or entry point)
structs
| none |
consts
| 46 | const GPE_MT_WSRC: *u8 = "const NXMT_WSRC=\"let ex=null;onmessage=async(e)=>{const d=e.data;try{if(d.t==='init'){const i=await WebAssembly.instantiate(d.mod,{env:{memory:d.mem}});ex=i.exports;postMessage({t:'ready'});}else if(d.t==='band'){ex.render_band(BigInt(d.y0),BigInt(d.y1),BigInt(d.wid));postMessage({t:'band'});}}catch(err){postMessage({t:'err',m:String(err)});}};\";\n" |
| 92 | const GPE_MAGIC_20260728: i64 = 20260728 |
| 138 | const GPE_EMIT_WEBGL: i64 = 1 |
| 139 | const GPE_WASM_CAP: i64 = 4194304 |
| 145 | const GPE_ALPHA_BEND_SOFT_Q12: i64 = 40960 // the gate-proven XG_ALPHA_BEND_SOFT_Q12 compliance |
| 146 | const GPE_UNITS_PER_178CM: i64 = 171530 // the page's own 1.78m-to-world-unit pairing |
| 147 | const GPE_G_DEN_60HZ: i64 = 640800 // that pairing carried to a per-tick accel at 60Hz |
| 148 | const GPE_OUT_CAP: i64 = 16777216 |
| 176 | const RK_WGSL_CAP: i64 = 65536 |
| 177 | const RK_WGSL_TMO_MS: i64 = 8000 |
| 178 | const RK_WGSL_ELF: *u8 = "./nx_wgsl.sov.elf.new" |
| 179 | const RK_WGSL_ELF_ABS: *u8 = "/volume1/homes/elderwesto/nishihost/nx_wgsl.sov.elf.new" // the emitter's CWD is not always the serving root |
| 180 | const RK_WGSL_BEGIN: *u8 = "--- WGSL ---\n" |
| 181 | const RK_WGSL_END: *u8 = "\nwgsl_bytes=" |
| 182 | const RK_KERNEL_N: i64 = 65536 // u32 lanes per probe (1024 workgroups at the backend's width of 64) |
| 245 | const RK_LAYOUT_BEGIN: *u8 = "struct U{" |
| 246 | const RK_LAYOUT_END: *u8 = "var<uniform> u:U;\n" |
| 247 | const RK_LAYOUT_SIZE_KEY: *u8 = "layoutraw_rc=" |
| 248 | const RK_LAYOUT_NAMES: i64 = 18 |
| 249 | const RK_FLOAT_BYTES: i64 = 4 |
| 339 | const RK_WORLD_FS_BEGIN: *u8 = "--- world_wgsl WGSL ---\n" |
| 340 | const RK_WORLD_FS_END: *u8 = "\nworld_wgsl_rc=" |
| 341 | const RK_WORLD_VS_BEGIN: *u8 = "--- worldvs_wgsl WGSL ---\n" |
| 342 | const RK_WORLD_VS_END: *u8 = "\nworldvs_wgsl_rc=" |
| 409 | const RK_CAST_VS_BEGIN: *u8 = "--- cast_wgsl WGSL ---\n" |
| 410 | const RK_CAST_VS_END: *u8 = "\ncast_wgsl_rc=" |
| 411 | const RK_CAST_FS_BEGIN: *u8 = "--- castfs_wgsl WGSL ---\n" |
| 412 | const RK_CAST_FS_END: *u8 = "\ncastfs_wgsl_rc=" |
| 556 | const GPE_GPU_TIMESTAMP_ENDPOINTS: i64 = 2 |
| 557 | const GPE_GPU_TIMESTAMP_BUFFERS: i64 = 2 |
| 558 | const GPE_GPU_SLOT_BUFFER_BYTES: i64 = GPE_GPU_TIMESTAMP_ENDPOINTS * GPE_GPU_TIMESTAMP_BUFFERS * __size_of(i64) |
| 560 | const GPE_GPU_POLICY_MAX_INTEGER: i64 = 9007199254740991 |
| 561 | const GPE_GPU_POLICY_RADIX: i64 = 10 |
| 962 | const GPE_HSTR_WORDS_PER_STRAND: i64 = 24 |
| 963 | const GPE_AXES: i64 = 3 |
| 969 | const GPE_HAIR_GUIDES: i64 = 900 |
| 1009 | const GPE_HAIR_CYC_FIRST: i64 = 1 |
| 1010 | const GPE_HAIR_CYC_LAST: i64 = 3 |
| 1013 | const GPE_HAIR_CYC_SKIP: i64 = 0 |
| 1014 | const GPE_HAIR_CYC_LEN: i64 = 1 |
| 1015 | const GPE_HAIR_CYC_SLOTS: i64 = 2 |
| 1072 | const GPE_HAIR_DRIVE_FRAMES: i64 = 24 |
| 1079 | const GPE_HAIR_DRIVE_AMP_Q8: i64 = 32 |
| 1082 | const GPE_HAIR_SETTLE_PERIODS_MAX: i64 = 40 |
| 1281 | const GPE_HAIR_AMP_CAP: i64 = 3400 |
| 1307 | const span=(ztop-zbot)||1; |
| 1445 | const GPE_RD_HTML_CAP: i64 = 262144 |
| 1446 | const GPE_RD_LAND_CAP: i64 = 131072 |
| 1447 | const GPE_RD_PLANS: i64 = 3 |
| 1448 | const GPE_RD_PLAN_GE: *u8 = "buildroot/knowledge/compare/gameengine.plan" |
| 1449 | const GPE_RD_PLAN_GR: *u8 = "buildroot/knowledge/compare/graphics.plan" |
| 1450 | const GPE_RD_PLAN_CS: *u8 = "buildroot/knowledge/compare/charsim.plan" |
functions
| 31 | func rk_tier_ladder() -> *u8 { return tl_emit() } |
| 48 | func gpe_mt_boot(out: *u8, p0: i64) -> i64 |
| 78 | func gpe_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } called by 5: gpe_pngpe_gpu_timing_policygpe_garment_drawgpe_rd_boardgpe_release_block calls 1: sys_write |
| 79 | func gpe_pn(v: i64) -> i64 |
| 150 | func gpe_slen(s: *u8) -> i64 { var k: i64 = 0; while s[k] != (0 as u8) { k = k + 1 } return k } |
| 151 | func gpe_ap(out: *u8, pos: i64, s: *u8) -> i64 |
| 157 | func gpe_ap_n(out: *u8, pos: i64, s: *u8, n: i64) -> i64 |
| 183 | func rk_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 184 | func rk_err(s: *u8) -> i64 { sys_write(2, s, rk_slen(s)); return 0 } called by 5: rk_uniform_blockrk_world_blockrk_layout_objrk_cast_blockrk_webgpu_door calls 2: sys_writerk_slen |
| 185 | func rk_num(out: *u8, pos: i64, v: i64) -> i64 called by 5: rk_uniform_blockrk_world_blockrk_layout_objrk_cast_blockrk_webgpu_door calls 2: sys_mmapsys_munmap |
| 196 | func rk_find(buf: *u8, n: i64, from: i64, needle: *u8) -> i64 |
| 209 | func rk_js_str(out: *u8, pos: i64, src: *u8, n: i64) -> i64 |
| 225 | func rk_capture_wgsl(buf: *u8, ol: *i64) -> i64 |
| 250 | func rk_capture_layout(buf: *u8, ol: *i64) -> i64 |
| 263 | func rk_int_after(buf: *u8, n: i64, needle: *u8) -> i64 |
| 280 | func rk_uniform_offset(buf: *u8, n: i64, name: *u8) -> i64 |
| 299 | func rk_uniform_block(out: *u8, pos: i64) -> i64 |
| 343 | func rk_capture_world(buf: *u8, ol: *i64) -> i64 |
| 356 | func rk_world_span(buf: *u8, n: i64, begin: *u8, end: *u8, bo: *i64) -> i64 |
| 368 | func rk_world_block(out: *u8, pos: i64) -> i64 |
| 413 | func rk_capture_cast(buf: *u8, ol: *i64) -> i64 |
| 430 | func rk_layout_obj(out: *u8, pos: i64, buf: *u8, n: i64, rowskey: *u8, sizekey: *u8, name: *u8) -> i64 |
| 467 | func rk_cast_block(out: *u8, pos: i64) -> i64 |
| 508 | func rk_webgpu_door(out: *u8, pos: i64) -> i64 |
| 562 | func gpe_gpu_timing_policy(out: *u8, pos: i64) -> i64 |
| 617 | func gpe_visitors_gpu(out: *u8,pos: i64) -> i64 |
| 621 | func gpe_emit_webgpu(out: *u8, pos: i64) -> i64 |
| 655 | func gpe_verify(out: *u8, n: i64) -> i64 |
| 827 | func gpe_num(out: *u8, pos: i64, v: i64) -> i64 |
| 849 | func gpe_sunt(out: *u8, pos: i64) -> i64 |
| 869 | func gpe_npcs_emit(out: *u8, pos: i64, vnum: i64) -> i64 |
| 929 | func gpe_build(wasm: *u8, wn: i64, title: *u8, native: *u8, ctrl: *u8, vnum: i64, out: *u8) -> i64 |
| 970 | func gpe_hstr_pts() -> i64 { return GPE_HSTR_WORDS_PER_STRAND/GPE_AXES } |
| 971 | func gpe_hair_nseg() -> i64 { return gpe_hstr_pts() - 1 } |
| 972 | func gpe_hair_seglen() -> i64 { return SD_Q8 } |
| 980 | func gpe_hair_seed(st: *i64, n: i64, rigid: i64) -> i64 |
| 1021 | func gpe_hair_cycle(out: *i64) -> i64 |
| 1054 | func gpe_hair_cycle_at(slot: i64) -> i64 |
| 1086 | func gpe_hair_drive(t: i64) -> i64 |
| 1091 | func gpe_hair_frames() -> i64 { return GPE_HAIR_DRIVE_FRAMES } |
| 1099 | func gpe_hair_chain_bake(tbl: *i64, rigid: i64) -> i64 |
| 1185 | func gpe_dress_runtime(out: *u8, pos: i64) -> i64 |
| 1212 | func gpe_hair_runtime(out: *u8, pos: i64) -> i64 |
| 1270 | func gpe_hair_npc_doors(out: *u8, pos: i64) -> i64 |
| 1286 | func gpe_hair_geometry(out: *u8, pos: i64) -> i64 |
| 1338 | func gpe_garment_draw(out: *u8, pos: i64) -> i64 |
| 1347 | func gpe_vb_find(b: *u8, n: i64, pat: *u8, from: i64) -> i64 |
| 1371 | func gpe_version_badge(out: *u8, pos: i64) -> i64 |
| 1451 | func gpe_rd_board(path: *u8, dom: *u8, since: *u8, land: *u8, lo: i64, counts: *i64, read: *i64) -> i64 |
| 1458 | func gpe_release_block(out: *u8, pos: i64) -> i64 |
| 1516 | func gpe_frame_hud(out: *u8, pos: i64) -> i64 |
| 1538 | func gpe_sky_atmos(out: *u8, p: i64, src: *u8) -> i64 |
| 1542 | func gpe_build_s(wasm: *u8, wn: i64, title: *u8, native: *u8, ctrl: *u8, vnum: i64, seed: i64, spec: *u8, out: *u8) -> i64 |