-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
This page covers the failures most likely to matter during real RGH/JTAG use.
Expected behavior in the current release is fast failure, not long silent hangs.
Checks:
- confirm the console IP is still reachable
- confirm XBDM is listening on the expected port
- run
rgh targetto verify the saved IP and port
Useful commands:
rgh target
rgh ping
rgh status --quickIf status --quick works and full status is slow, the problem is usually in optional JRPC or user/drive probes rather than XBDM itself.
That can be correct at the Title ID level while still being unhelpful to an operator.
XeCLI tries to improve that by using the running XEX path as a fallback display name. If you still need a custom name, add an entry to:
%APPDATA%\XeCLI\titleids.local.csv
Possible reasons:
- you used
status --quick - JRPC2 is not deployed or enabled on the console yet
- JRPC2 is deployed but not healthy
Useful checks:
rgh jrpc2 title-id
rgh jrpc2 dashboard
rgh jrpc2 tempsThis is the main reason the pending-verification flow exists.
Use:
rgh modules load --path Hdd:\HvP2.xex --system --reboot-expectedThen after reboot:
rgh modules pendingDo not treat a disconnect as proof of success unless the post-reboot state confirms it.
XeCLI requires --force because unload can destabilize the target.
Use:
rgh modules unload --name HvP2.xex --forceIf the module handle cannot be resolved:
- confirm the module is actually loaded with
rgh modules list - try unloading by explicit handle if you already know it
Check:
- the console is running a visible title or shell
- the frame buffer format is being decoded into the selected output format
- the output file size is reasonable
A healthy BMP capture should produce a non-trivial file with dimensions matching the decoded frame-buffer metadata emitted by the command.
Use more specific filters:
rgh save list --titleid 415608C3 --profile E00012AA8D7879B4
rgh content list --titleid 415608C3Dashboard content trees can be very large if you query them broadly.
Run:
rgh ghidra verify --dir .\decompIf the output contains widespread bad-instruction placeholders, the problem is usually with import/loader quality rather than a terminal formatting issue.
That is expected. They hit different console services.
If FTP commands fail while XBDM commands succeed:
- verify the FTP service is enabled
- verify username, password, and port
- verify the path format you are using
Use the published setup executable, not a CLI command.
The full installer wizard is intentionally skipped or simplified when:
- input is redirected
- you are running a scripted or very silent install
- Windows policy suppresses interactive setup pages
Manual fallback:
.\XeCLI-1.0.8-setup-win-x64.exeIf the post-install console prompt did not appear, XeCLI either did not detect a console fast enough or you skipped it. Use:
rgh start
rgh connect <console-ip>
rgh statusThe published win-x64 release should not require a separate .NET install. If you see a runtime-missing error:
- you are probably using an older framework-dependent build
- or you are running a source build instead of the packaged release
Use the latest release archive from GitHub Releases. The release folder should contain:
rgh.exe- bundled runtime files beside it
ConsoleDependencies/Assets/ghidra_scripts/
If you are intentionally running from source, install the .NET 10 SDK/runtime and use:
dotnet run --project src/Xbox360.Remote.Cli -- --helpThe zip release is the portable build. The setup executable is the installer.
Use the setup executable when you want:
- PATH registration
- Start menu and uninstall integration
- the installer-owned language selection step
Use the zip release when you want:
- a portable folder you can run directly
- no installation changes on the machine
- manual control over where the files live
XeCLI documentation for the rgh command. For release downloads, use the latest release.