From 38b08c96d1f94317e44a19d784526a8c2751b392 Mon Sep 17 00:00:00 2001 From: Joe DiPrima Date: Thu, 6 Aug 2026 11:35:38 -0500 Subject: [PATCH] podprobe: run-compatibility verdict + XP-safe .bat fallback The crash cart may BE the period pod PC (that is where NVIDIA Horizontal Span still exists), in which case the first question is not the display map but whether btl4.exe can launch at all -- a modern MSVC toolset needs Win7 SP1+. The probe now states the verdict outright, and podprobe.bat covers the case where PowerShell/.NET is not present to run the probe in the first place (wmic + dxdiag, both XP-era tools). Co-Authored-By: Claude Fable 5 --- tools/podprobe.bat | 46 ++++++++++++++++++++++++++++++++++++++++++++++ tools/podprobe.ps1 | 19 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 tools/podprobe.bat diff --git a/tools/podprobe.bat b/tools/podprobe.bat new file mode 100644 index 0000000..ad8ce04 --- /dev/null +++ b/tools/podprobe.bat @@ -0,0 +1,46 @@ +@echo off +REM podprobe.bat -- XP-SAFE fallback probe for the pod / crash cart. +REM +REM Use this when tools\podprobe.ps1 will not run (no PowerShell, or an +REM XP/2003-era box where .NET/PS is absent). Uses only tools that shipped +REM with Windows XP. Writes podprobe_bat.txt next to itself. +REM +REM podprobe.bat +REM +REM It answers the first question that matters: WHAT IS THIS MACHINE, and can +REM our build run on it at all? (Modern MSVC toolset => Windows 7 SP1+.) + +setlocal +set OUT=%~dp0podprobe_bat.txt +echo ==================== BT411 POD PROBE (bat fallback) ====================> "%OUT%" +echo host: %COMPUTERNAME% session: %SESSIONNAME%>> "%OUT%" +date /t >> "%OUT%" +time /t >> "%OUT%" +echo.>> "%OUT%" + +echo ---- OS ---->> "%OUT%" +ver >> "%OUT%" +wmic os get Caption,Version,BuildNumber,OSArchitecture /format:list >> "%OUT%" 2>&1 +echo.>> "%OUT%" + +echo ---- GPUs / drivers ---->> "%OUT%" +wmic path Win32_VideoController get Name,DriverVersion,DriverDate,CurrentHorizontalResolution,CurrentVerticalResolution /format:list >> "%OUT%" 2>&1 +echo.>> "%OUT%" + +echo ---- Monitors (attached) ---->> "%OUT%" +wmic path Win32_DesktopMonitor get DeviceID,Name,ScreenWidth,ScreenHeight,Availability /format:list >> "%OUT%" 2>&1 +echo.>> "%OUT%" + +echo ---- Serial ports (RIO board) ---->> "%OUT%" +wmic path Win32_SerialPort get DeviceID,Name /format:list >> "%OUT%" 2>&1 +echo.>> "%OUT%" + +echo ---- Full DirectX report (monitor rects, D3D caps) ---->> "%OUT%" +echo (dxdiag is writing podprobe_dxdiag.txt -- may take ~30s)>> "%OUT%" +dxdiag /whql:off /t "%~dp0podprobe_dxdiag.txt" + +type "%OUT%" +echo. +echo Wrote %OUT% +echo Wrote %~dp0podprobe_dxdiag.txt (send BOTH back) +endlocal diff --git a/tools/podprobe.ps1 b/tools/podprobe.ps1 index 46161eb..7cbec03 100644 --- a/tools/podprobe.ps1 +++ b/tools/podprobe.ps1 @@ -26,6 +26,25 @@ W ("when : {0}" -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss')) W ("windows : {0}" -f (Get-CimInstance Win32_OperatingSystem).Caption) W "" +W "---- WILL OUR BUILD EVEN RUN HERE? ----" +try { + $os = Get-CimInstance Win32_OperatingSystem + $ver = [Version]$os.Version + W (" OS version : {0} (build {1})" -f $os.Version, $os.BuildNumber) + W (" architecture: {0}" -f $os.OSArchitecture) + if ($ver.Major -lt 6) { + W " *** STOP: this is Windows XP/2003-era. btl4.exe is built with a modern MSVC" + W " toolset and WILL NOT LAUNCH here (CRT + API requirements). Options:" + W " (a) put a newer Windows on the cart, or (b) rebuild with the v141_xp" + W " toolset (VS2017), or (c) drive the panels from a modern PC instead." + } elseif ($ver.Major -eq 6 -and $ver.Minor -lt 1) { + W " *** WARNING: Vista-era. Untested; Win7 SP1+ is the practical minimum." + } else { + W " OK: modern enough for the current build." + } +} catch { W " (OS query failed: $_)" } +W "" + W "---- GPUs ----" try { Get-CimInstance Win32_VideoController | ForEach-Object {