nx_games_publish.nx
buildroot/runtime/nx_games_publish.nx
about
nx_games_publish.nx -- sovereign emitter: content/games.cards ->
dist/games/index.html (the arcade page).
Data-driven sibling of nx_hub_emit (see [[project-nishi-hub-games-publish-2026-06-30]]).
Each published game renders with a version badge (the value the game-
update API channels off) + a Play CTA; "soon" games render disabled.
File-I/O only -> imports the leaf x86_64 syscalls ONLY (builds clean).
Run from the nishi-pages checkout; dist/games must exist.
Build: ./nxc2.exe --target x86_64 runtime/nx_games_publish.nx > /tmp/gp.s
wsl bash -c "gcc -no-pie /tmp/gp.s -o /tmp/nx_games_publish"
Run: cd nishi-pages && mkdir -p dist/games && /tmp/nx_games_publish
nx_capability_claims:
needs: [x86_64_syscalls, pipe_delimited_parse]
provides: [games_arcade_emit, version_badge, data_driven_publish]
safety: [html_escape_text_fields, no_floating_point, fixed_output_path]
verdict: [exit_0_ok]
license: ORIGINAL
kind: nishi_pages_specialist
layer: L3
raci: [R=nishi_pages_builder, A=elder_west, C=games_cards_owner, I=conductor]
dependencies 1 imports · 0 importers
imports: nx_syscalls_x86_64.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 25 | const K_MAGIC_262144: i64 = 262144 |
functions
| 27 | func gp_puts(buf: *u8, off: i64, s: *u8) -> i64 |
| 38 | func gp_putb(buf: *u8, off: i64, src: *u8, n: i64) -> i64 called by 1: main |
| 49 | func gp_put_esc(buf: *u8, off: i64, src: *u8, n: i64) -> i64 |
| 73 | func gp_eq(buf: *u8, off: i64, n: i64, lit: *u8) -> i64 called by 1: main |
| 84 | func gp_split(buf: *u8, ls: i64, le: i64, foff: *i64, flen: *i64) -> i64 called by 1: main |
| 107 | func main() -> i64 |