Say in nx2navi.ini.example's header which settings cut a comment after the value and which take the switch words.

The review found that the header promised more than cfg.c does in two places. It said a blank then '#' or ';' after
any number starts a comment, but cfg.c cut_comment cuts only for a row with a set of values, so the settings that
take any number (gpu_index, compute_keep, tex_released_max, floor_probe, floor_scan) keep the comment in the value:
"compute_keep = 256 # less" reads the default 512. And it said a setting of 0 or 1 takes off, false and no, but
switch_word maps the words only for a row whose set is exactly 0|1; a setting with choices 0, 1 or 2 such as
async_preempt or tex_disuse reads "off" as its default, on, with no line in the log. The header now says the comment
is cut after the value of a setting with a list of choices or a range, names those five number settings among what
keeps its whole text, and gives the words to the settings whose only values are 0 and 1. docs/building.md's paragraph
on tests/cfg_parse_check.py now also names the low-end switch's case and make_game.py's tests added by the previous
commit. Comments and docs only; cfg_rows_check reports 0 problems.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
chrg6
2026-11-13 19:35:54 -05:00
parent 8c9011d56f
commit 4fe1339189
2 changed files with 10 additions and 6 deletions

View File

@@ -918,9 +918,11 @@ A change to how nx2navi.ini and the environment are read (`runtime/cfg.c` `cfg_l
`cfg_bool`, `check_value`) passes `python tests\cfg_parse_check.py`, which builds `cfg.c` with stand-ins for what it
links with and loads scratch files: a comment after a value of a setting with a set of values is cut and logged once
with its line, free text, a value in double quotes and the environment keep theirs; switches written as words read as
0 or 1 through every reader; values outside their sets are logged with their line, at most 16 lines and a count; a
full settings table logs one line at load and one for the menu. The launcher's reader (`launcher/gameini.py`) has the
same comment lines in `tests\launcher_test.py` `PlayerIniTest`. No game files.
0 or 1 through every reader, the low-end mode's switch (`lowend_of`, read apart from `cfg_get`) included; values
outside their sets are logged with their line, at most 16 lines and a count; a full settings table logs one line at
load and one for the menu. The launcher's reader (`launcher/gameini.py`) has the same comment lines in
`tests\launcher_test.py` `PlayerIniTest`, and `tools/make_game.py`'s own reads of `shader_carry` and `low_end_gpu`
(`shader_carry`, `guest_opt_ini`) theirs in `MakeGameTest`. No game files.
The lifter (`recomp/`) and the CPU headers (`runtime/cpu.h`, `runtime/simd.h`) are checked against Unicorn. Every lifter
change passes these, all run with `.venv`: