Skip to content

objdiff-cli: Blank display/menus in interactive diff #404

Description

@abelbriggs1

I've been working on getting a objdiff workflow going in one of my PS2 decomps, replacing the use of asm-differ.

I've set up an auto-generated config file which correctly matches up in-progress TUs with their original counterparts. The truncated config looks like:

{
  "$schema": "https://raw.githubusercontent.com/encounter/objdiff/main/config.schema.json",
  "custom_make": "ninja",
  "custom_args": [],
  "build_target": true,
  "build_base": true,
  "watch_patterns": [],
  "units": [
    {
      "name": "tmb/file",
      "target_path": "build/asm/tmb/file.s.o",
      "base_path": "build/src/tmb/file.cpp.o",
      "metadata": {
        "progress_categories": [
          "tmb"
        ],
        "complete": true,
        "source_path": "src/tmb/file.cpp"
      }
    }
  ],
  "progress_categories": [
    {
      "id": "data",
      "name": "data"
    },
    {
      "id": "sdk",
      "name": "sdk"
    },
    {
      "id": "tmb",
      "name": "tmb"
    },
    {
      "id": "newlib",
      "name": "newlib"
    },
    {
      "id": "gcc",
      "name": "gcc"
    }
  ]
}

Running the latest objdiff-cli in non-interactive mode with --format json-pretty, I can see that objdiff is definitely reading/parsing the objects, and report generate's output also matches up with my previous progress reports from mapfile_parser.

However, when I run a diff using interactive mode (invocation example: ./tools/objdiff/objdiff-cli-linux-x86_64 diff -u tmb/file fileReadf__FPcPv), I get a blank display. Menus also appear to generate with blank text:

Image

This happens regardless of which terminal I use (gnome-terminal in the screenshot, but VSCode's integrated terminal produces the same results). My best guess is that this is some system-level incompatibility issue with the TUI libraries objdiff-cli is using.

Some info that will hopefully help:

  • Headless Debian 11 (bullseye) server
    • Linux [redacted] 5.10.0-46-amd64 #1 SMP Debian 5.10.262-1 (2026-07-31) x86_64 GNU/Linux
  • Tested with latest objdiff-cli-linux-x86_64 (v3.8.1)
    • Sanity checked v3.6.0, it also produed the same result.

I'm not sure how to get log output out of objdiff-cli; non-interactive paths seem to ignore my --log-level entirely, while the interactive mode can't output the logs to stdout properly.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions