The host's command line
ChiakiNg.exe opens the console list when it is given no flag — the consoles on your network,
with a Connect on any that is registered. Every flag below is declared in one list in
app/Session/HostCommandLine.cs, and a name it does not declare is refused rather than ignored —
a mistyped flag does not silently open the window.
Both tables are generated from that list at build time. If a flag is renamed in the application, the rename lands here in the same commit.
For running it
Section titled “For running it”The ones the front page prints. Each does something a person running PPortal might want, and
none of them needs a checkout. --consoles is what running it with no flag at all does; it is
named here because a run that asked for a diagnostic screen instead can ask for this one back.
| Flag | Takes | What it does |
|---|---|---|
--selftest | run the host's own assertions and exit with the verdict | |
--controllers | print what SDL sees, for a pad that is plugged in now | |
--capture-controller | log presses for twenty seconds; add --analog for the sticks | |
--analog | with --capture-controller: include the axes, which flood the log | |
--map-controller | open the mapping screen against a real pad | |
--consoles | open the console list and connect to a registered console - what no flag does |
For working on the tree
Section titled “For working on the tree”The rest report on this repository rather than on the console. They are the reason this area
exists: they are documented nowhere a reader could reach, and --help is a line each.
| Flag | Takes | What it does |
|---|---|---|
--recount | check the sizes the backlog states, and print what corrects each | |
--apply | with --recount: run those corrections through roadkeep, stopping on a refusal | |
--select-corpus | <in> <out> | keep the entries a replay can expect, and report what was dropped |
--ratchet | [id] | list the shipped tasks no assertion names; with an id, where it is named |
--backlog | split the open lines into what can be started and what waits on something absent | |
--capture-mapping | [path] | render the mapping screen off-screen to a PNG |
--record | [path] | record this session's exchange to a file, for PP297's replay |
--capture-exchange | [path] | wake a registered console, run one session and record the exchange |
--capture-datagrams | [path] | the same session, recording takion's arrivals and their times |
--measure-decoder | [name] | the same session WITH a decoder, reporting how many frames it decoded |
--show-stream | [name] | open a window and put a console's picture in it, with the named decoder |
--microphone | with --show-stream: open a microphone and send it, which is off unless asked | |
--audio-prefill | [n] | with --show-stream: hold n decoded frames before the first, trading latency for a queue that does not run dry |
--capture-wire | [path] | with --show-stream --via relay: write BOTH directions of the relay, which the replay corpus never holds |
--console | [name] | with either capture: which registered console, by nickname |
--capture-seconds | [n] | with any run that takes a length: how long, which sets the hold too |
--via | [address|relay] | with --capture-datagrams: go through an address, or 'relay' to run one here and keep whole datagrams |
--record-json-oracle | [path] | write down what json-c answers, so PP33 can delete it and keep the comparison |
--record-takion-oracle | [path] | write down what takion's wrappers answer, so PP27 can delete them and keep the comparison |
--record-framepath-oracle | [path] | the same for fec, the frame processor and the video receiver, which PP27's deletion also reaches |
--replay-datagrams | <path> | replay a datagram capture through the managed receive path |
--timed | with --replay-datagrams: time the MAC gate against the C over the capture | |
--dcomp-demo | show what one window composes, which PP163 is answered by looking at | |
--topmost | with --dcomp-demo: the control, asking the visual to cover WPF instead | |
--layers | with --dcomp-demo: the overlay PP319 chose, over the video plane |
Two of them are worth naming here, because they are part of how work is committed rather than diagnostics you run once:
--recountchecks every size the backlog states against the files it states them about, and prints theroadkeepcall that corrects each. It writes nothing itself.--ratchetlists the shipped tasks that no assertion mentions. The count may fall and may not rise, so a task shipped with no test naming its id turns the suite red in the commit that ships it.
Both refuse rather than answer when the host running them is older than app/, and name the
source that moved. There is more than one ChiakiNg.exe on a machine that has built this tree —
compile.cmd builds one and prints where, and a publish leaves another behind — and a stale copy
reads the current backlog with rules the tree has moved past, which is a wrong answer that looks
exactly like a right one. Run the host compile.cmd names.
If --microphone makes the sound quiet
Section titled “If --microphone makes the sound quiet”Windows attenuates every other audio stream while a microphone on the communications endpoint is open — by 80% on the default setting. The console’s audio is one of those streams, so turning the microphone on quiets the game it is meant to accompany. Nothing in the run reports it as a fault: the attenuation happens in the system mixer, below anything the application counts, so the audio line still says every sample was played.
The host asks Windows not to do this, and prints what it got — ducking off where the request was
accepted, ducking ON where it was not. On Windows 11 26200 the request is accepted and the
attenuation happens anyway, measured against a console with a listener present. Where the sound
matters, the setting is the remedy: Control Panel → Sound → Communications → Do nothing.