diff --git a/game/btl4main.cpp b/game/btl4main.cpp index 8f40bcd..c677ce0 100644 --- a/game/btl4main.cpp +++ b/game/btl4main.cpp @@ -197,6 +197,17 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine ? (std::ios::out | std::ios::app) : std::ios::out); std::cout.rdbuf(logfile.rdbuf()); + // FIRST-BREATH line, flushed IMMEDIATELY (field 2026-07-23: a player's + // exe died repeatedly with a 0-byte join.log -- indistinguishable from + // "never ran"). After this line, an empty log can only mean the exe was + // killed before WinMain (antivirus / loader) -- an external cause, not + // ours. Cheap forensics: version, PID, args, generation markers. + std::cout << "[boot] btl4 " << BT_VERSION_STRING << " pid=" + << (unsigned)GetCurrentProcessId() + << " args='" << (lpCmdLine ? lpCmdLine : "") << "'" + << (getenv("BT_FE_LOOP") ? " (relaunched generation)" : " (first process)") + << std::endl << std::flush; + // BT_JOYCONFIG=1: the generic-joystick capture wizard (flight sticks / // HOTAS / pedals -- L4JOY.h). Console prompts detect which device/axis // the player moves for each pod control and write the joystick section diff --git a/players/join.bat b/players/join.bat index 9147767..91f531a 100644 --- a/players/join.bat +++ b/players/join.bat @@ -9,7 +9,11 @@ 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 diff --git a/players/join_lan.bat b/players/join_lan.bat index 9a5e1e7..0b4e245 100644 --- a/players/join_lan.bat +++ b/players/join_lan.bat @@ -12,7 +12,11 @@ set BT_PLATFORM=glass if not exist "build\Release\btl4.exe" goto badpath if not exist "content\OPERATOR.EGG" goto badpath set BT_RELAY=10.0.0.46: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 diff --git a/players/joyconfig.bat b/players/joyconfig.bat index f104838..d1719f1 100644 --- a/players/joyconfig.bat +++ b/players/joyconfig.bat @@ -13,7 +13,11 @@ if not exist "content\OPERATOR.EGG" goto badpath set BT_JOYCONFIG=1 set BT_START_INSIDE=1 set BT_DEV_GAUGES=1 +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_FE_SOLO=1 cd content ..\build\Release\btl4.exe diff --git a/players/play_solo.bat b/players/play_solo.bat index 8a9e58c..1a09300 100644 --- a/players/play_solo.bat +++ b/players/play_solo.bat @@ -12,7 +12,11 @@ if not exist "build\Release\btl4.exe" goto badpath if not exist "content\OPERATOR.EGG" goto badpath set BT_START_INSIDE=1 set BT_DEV_GAUGES=1 +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_FE_SOLO=1 cd content ..\build\Release\btl4.exe diff --git a/players/play_steam.bat b/players/play_steam.bat index 5d915f8..6223714 100644 --- a/players/play_steam.bat +++ b/players/play_steam.bat @@ -9,7 +9,9 @@ if not exist "build\Release\btl4.exe" goto badpath if not exist "content\BTL4.RES" goto badpath set BT_PLATFORM=glass set BT_STEAM_NET=1 +if exist content\steam.log del content\steam.log set BT_LOG=steam.log +set BT_LOG_APPEND=1 rem Cockpit view + MFD gauges -- the same client flags the join bats set rem (field report: players booted 3rd-person without them). Inherited by rem the menu's mission relaunch.