David's failures leave a 0-byte (or absent) join.log -- the exe can't testify about a death before WinMain. The bats now bracket it from OUTSIDE: launch_report.txt records the launch timestamp, the exe's EXIT CODE (fingerprints the failure class: 0xC0000135 DLL-not-found, 0xC0000005 AV, AV-kill signatures, our clean exits), whether join.log was ever created (never-created = blocked before our first instruction), and its size. Verified with a synthetic -1073741819 exit. The 'exited' message now asks players to send BOTH files. With this + the 507 first-breath line + the crash self-report, every failure mode now leaves evidence somewhere: bat report (pre-WinMain), first-breath (WinMain reached), [crash] stack (anything after). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
53 lines
2.3 KiB
Batchfile
53 lines
2.3 KiB
Batchfile
@echo off
|
|
rem BT411 -- join 107.202.218.169's game (internet). Seat/mech assigned
|
|
rem by the operator. Keep this file next to content\ + build\.
|
|
cd /d %~dp0
|
|
rem ONE unified build (2026-07-21): the exe carries every layer; the GLASS
|
|
rem platform env arms the desktop cockpit (clickable MFD buttons, trigger
|
|
rem config, bindings.txt keymap).
|
|
set BT_PLATFORM=glass
|
|
if not exist "build\Release\btl4.exe" goto badpath
|
|
if not exist "content\OPERATOR.EGG" goto badpath
|
|
set BT_RELAY=107.202.218.169:1500
|
|
rem one fresh log per bat run; the menu->game relaunch chain APPENDS
|
|
rem so every generation's lines survive (0-byte logs = killed pre-start)
|
|
if exist content\join.log del content\join.log
|
|
set BT_LOG=join.log
|
|
set BT_LOG_APPEND=1
|
|
set BT_START_INSIDE=1
|
|
set BT_DEV_GAUGES=1
|
|
cd content
|
|
rem JOIN-GAME menu (2026-07-22): pick your CALLSIGN + MECH, click JOIN --
|
|
rem your choice is sent to the operator and lands in the mission roster.
|
|
set BT_FE_JOIN=1
|
|
rem LAUNCH FORENSICS (#41): bracket the exe from outside -- if it dies
|
|
rem before it can write its own log, this report still records when it
|
|
rem ran, how it exited, and whether it ever created its log at all.
|
|
echo [%DATE% %TIME%] launching btl4.exe > launch_report.txt
|
|
..\build\Release\btl4.exe
|
|
set BT_EXITCODE=%ERRORLEVEL%
|
|
echo [%DATE% %TIME%] btl4.exe exited with code %BT_EXITCODE% >> launch_report.txt
|
|
if not exist join.log echo join.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
|
if exist join.log for %%A in (join.log) do echo join.log size: %%~zA bytes >> launch_report.txt
|
|
echo.
|
|
echo The game has exited. If you did NOT quit on purpose
|
|
echo (crash, or it never connected), send the operator BOTH files:
|
|
echo content\join.log and content\launch_report.txt
|
|
echo Otherwise the session may not be up yet -- try again.
|
|
pause
|
|
exit /b
|
|
:badpath
|
|
echo.
|
|
echo ==================================================
|
|
echo ERROR: this file is not in the right place.
|
|
echo.
|
|
echo It must sit in the EXTRACTED game folder, next to
|
|
echo the 'content' and 'build' folders.
|
|
echo.
|
|
echo Fix: right-click the .zip - Extract All, open the
|
|
echo extracted folder, and run this file from THERE.
|
|
echo (Do NOT run it from inside the zip.)
|
|
echo ==================================================
|
|
echo.
|
|
pause
|