Skip to content

memlog ​

Tool tools/live/memlog.py (program, The running game). Read a recording made by memrec.py: a summary, a CSV table, or one sample by time.

Run it with ./gameframe run memlog ARGS or python3 tools/live/memlog.py. Source on GitHub.

Its own help ​

This is the help text in the tool itself, as ./gameframe tool memlog prints it.

text
Read a recording made by memrec.py: a summary, a CSV table, or one sample by time.

Usage: memlog.py summary FILE
       memlog.py csv FILE [--fields NAME,NAME] [--fixed NAME,NAME] [--out FILE]
       memlog.py at FILE SECONDS

  FILE      a JSON Lines recording: one sample a line, {"t": seconds, "n": sample, NAME: value}
            (tools/live/memrec.py record)
  summary   the samples, the time they span and the rate, then each value: its type, the
            smallest and largest value, and how many times it changed
  csv       a table with one column per value; an array NAME becomes NAME[0], NAME[1] ...
  --fields  only these values (default: all, in the recording's order)
  --fixed   print these values as 16.16 fixed point (value / 65536, six decimals); the
            recording itself keeps the raw integers
  at        the sample nearest to SECONDS, as JSON

Why: a recording is the reference run a port is checked against
(docs/knowhow/record-a-run-from-memory.md). Spreadsheets and plots want CSV; a quick look
wants the ranges, and a stuck or never-changing value shows at once in the summary.

It does not print values the game's own way (a game's time format, say): write that in the
project, beside the port, and test it against the game's screens. Standard library only.

Named by ​

Skills: re-observe.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.