Testing Checklist -- V5.1.0b_RC2 (eaa5fd3 through 2026-08-07) Branch: 5.1.0b-in-progress Last known-good pod test: before eaa5fd3 Sections 1-11 were already in RC1; sections 12-17 are new in RC2. Build requirements for RC2: * MW4.exe (Release + Profile) -- CoreTech GameOS and MW4Application changed (-tident, display trace, panel re-entry fix, -tmr, help text). * Resource repack -- ConLobby.script / ConLobbyMission.script / the mech subsystems live in props.mw4. Delete resource\props.mw4 and props.dep, then run build-env\build-resources.ps1 so the repack is full, not incremental. * Redeploy with build-env\deploy-mw4.ps1, then run set-appcompat.bat at the install path. ================================================ 1. DUAL MFD (mode 4) -- right device stagger fix [ ] In a pod with two MFD screens (mode 4), verify right MFD shows correct channel data (channels 3-4) and does not flash blank/grid-only frames [ ] Left MFD still shows channels 0-2 correctly at all times [ ] Radar display unaffected [ ] Mode 1 (single MFD) still works normally (code path unchanged) 2. SERIAL RIO / -tbaud BAUD RATE SCALING [ ] Default 9600 baud RIO board: poll timeout is 50 ms (same as before) [ ] High-speed board at 115200 baud: poll timeout is ~5 ms (faster response) [ ] Custom -tbaud 31250: timeout is ceil(480000/31250) = 16 ms [ ] Verify no regression in button/lamp/analog response at all three rates [ ] Verify game launches normally without -tbaud flag 3. MULTIPLAYER -- 16 PILOTS + 1 CAMERASHIP [ ] Host a 16-player game; a 17th connection as cameraship can join without "Too many player/bots" error [ ] The cameraship slot does not count against the pilot cap in the lobby [ ] Standard 16-pilot session (no cameraship) still works normally [ ] Player limit slider in lobby still functions correctly at runtime [ ] COOP mode unaffected (still caps at 9 pilots + bots) 4. MECH LOADOUTS [ ] Battlemaster IS: spawns with PPC, 6x ML (3 RT/3 LT), 2x MG (200 rds), SRM6 (15 rds) [ ] Battlemaster IS: all weapons in group 1 except SRM6 (group 2) [ ] Battlemaster Clan 2C: spawns with ER PPC, 6x ER ML, 2x Clan Gauss (16 rds each), Clan SSRM6 (15 rds) [ ] Behemoth / Behemoth II: Gauss rifles fire with group 1 (not group 3) 5. CONLOBBY -- V5.1.0b2 / SUPER6 MECH ROTATION [ ] Console title displays "BattleTech Console V5.1.0b2" [ ] Rookie mech cycle shows 6 mechs: Archer, Loki, Madcat, Thor, Vulture, Warhammer [ ] Right-click random mech picks from all 6 (not 5) [ ] MP time-limit dropdown shows 23 entries (1-15, 20, 25, 30, 45, 60, 120, 180, 240 min) and scrolls correctly [ ] MP time-limit defaults to 7 min (was wrongly defaulting to 4) [ ] Lobby launches correctly with 1-16 players 6. MW4PRINT v2.0 [ ] Print job completes normally; version banner shows "2.0 / 2026" [ ] File -> Database Settings (Ctrl+D) dialog opens; MySQL host/user/pass/db fields editable [ ] With a MySQL server configured, a print job exports match data to the database [ ] Without MySQL configured (or libmysql.dll absent), print job completes silently with no crash [ ] File -> Banner Setting... opens; changing the text updates the printed bottom-of-sheet URL [ ] Banner setting persists after closing and reopening mw4print 7. LANGUAGE DLL -- ENGLISH BUTTON LABELS [ ] After a game crash/exception, the GameOS error dialog shows English button labels (More Details / Continue / Exit) instead of Korean ??? characters 8. SOURCE ENCODING / BUILD HEALTH [ ] Full Release build completes 0 errors (the min/max fix was the last issue) [ ] No new warnings introduced beyond the pre-existing 384 ------------------------------------------------ Added 2026-07-23 (commit 5813aeb6) ------------------------------------------------ 9. ROOKIE MISSION -- CONFIGURABLE DEFAULTS VIA options.ini These defaults are read by CTCL_SetCDSP at startup and exposed as gosScript globals (g_szRookieMission, g_nRookieGameType, g_nRookieTimeLimit, etc.). The console script reads them instead of hardcoded values when "Default" is clicked or when the Rookie mission auto-loads. [ ] Without [RookieMission] section in options.ini: Rookie mission defaults to "ScarabStronghold - Attrition", game type Attrition, unlimited ammo on, all other params at zero/off -- same behavior as before [ ] Add [RookieMission] section to options.ini with MissionName and GameType overridden; restart game; "Default" button in console loads the specified mission and game type correctly [ ] TimeLimit=-1 in options.ini: lobby uses the server's default time setting (g_nTimeList_Value); TimeLimit=5 sets the lobby time limit to 5 minutes [ ] All 12 overridable params work individually: Visibility, Weather, TimeOfDay, Radar, HeatOn, FriendlyFire, SplashDamage, UnlimitedAmmo, WeaponJam, AdvanceMode, ArmorMode [ ] Game launches and functions normally when [RookieMission] section is absent (no crash, no STOP on missing keys) [ ] Requires rebuild: MW4.exe (Release + Profile); ScriptStrings.dll 10. MECHLAB -- TURN RATE LABEL (StringResource.rc) IDS_ML_CH_TURNRATE changed from "Turn Rate (Degrees/Sec.):" to "Turn Rate (Top Speed Rad/Sec):". ScriptStrings.dll must be rebuilt. [ ] In mechlab, the turn rate stat row label reads "Turn Rate (Top Speed Rad/Sec):" [ ] No other mechlab labels affected [ ] Requires rebuild: ScriptStrings.dll (part of normal MW4Application build) 11. HSH ASSET FILE RENAMES -- MFD AND MECHS PORTRAITS Several hsh/ BMP files were misnamed relative to what the game loads. Filenames now match the canonical stems used in huddamage.cpp texturename[] (hsh/MFD, hsh/hud, hsh/radar/hud) and GetLocString DNL strings (hsh/Mechs). hsh/MFD/ -- in-game target MFD damage display (uses texturename[] canonical): [ ] Assassin II: MFD shows correct silhouette during combat (was assassinii.bmp, now assassin2.bmp -- matches M_Assassin2 entry) [ ] All other MFD silhouettes display correctly in combat for all 65 mechs (bulk refresh from 5.0.7D release; verify no missing/black MFD panels) hsh/Mechs/ -- mw4print post-match scorecard portraits: [ ] Print a post-match scorecard featuring a Battlemaster IIc pilot; portrait image appears (was battlemasteriic.bmp, now "battlemaster iic.bmp") [ ] Print a scorecard featuring a Behemoth II pilot; portrait appears (was behemothii.bmp, now "behemoth ii.bmp") [ ] Print a scorecard featuring a Mad Cat MKII pilot; portrait appears (was "mad cat mk.ii.bmp", now "mad cat mkii.bmp") [ ] Scorecards for all other mechs still show portraits correctly ------------------------------------------------ Added for RC2 (2026-07-25 through 2026-08-07) ------------------------------------------------ 12. -tident DISPLAY IDENTIFY MODE (new switch) MW4.exe -tident [3..120, default 20] paints every display with a colour, its -tmon number, its DirectDraw device index and its current role, then exits. Uses DDSCL_NORMAL + GDI: no exclusive mode, no display mode change. [ ] MW4.exe -tident on a 4-monitor pod: every monitor shows a distinct colour and a large number; no monitor is left on the desktop [ ] The role shown on each monitor (main / radar / mfd1 / mfd2) matches what that monitor actually displays during a mission [ ] The game exits on its own when the timer expires, and does NOT start [ ] -tident 5 exits after ~5 s; -tident 200 clamps to the accepted range [ ] After -tident, the desktop is unchanged: same resolution, colour depth and monitor arrangement as before (nothing to restore by hand) [ ] Works on a pod where the MFD modes are currently failing (that is the case it exists for) [ ] Everything painted on screen also appears in gos-displays.txt [ ] Typing those numbers into -tmon puts each panel on the intended monitor 13. gos-displays.txt FULL START-UP TRACE Startup-only logging; no frame-loop cost. File is truncated each launch. [ ] File is created next to MW4.exe on every launch, including launches that fail during panel bring-up (open-append-close, survives a crash) [ ] Header shows the exe path, the full command line, and -tmfds / -tmon converted to 0-based device indices [ ] Windows desktop topology section lists every \\.\DISPLAYn with its friendly name, attached/primary state and current mode [ ] Each enumeration callback is logged with GUID and resolved monitor [ ] Device table appears three times (before merge, after merge, final) and the adapter grouping lists devices sharing one card [ ] Role selection prints the chosen device AND the reason each skipped device was skipped [ ] Each -tmon override reports APPLIED or REJECTED with what auto-detect had chosen [ ] "Desktop arrangement, left to right" block matches the physical layout [ ] CLASH check: deliberately run -tmon with the same device twice (e.g. -tmon 1,1,3,4) and confirm the report names the clash explicitly [ ] "CTCL type = " line is present and correct on console, game pod and cameraship [ ] Startup time is not noticeably longer than the previous build 14. PANEL RE-ENTRY FIX (HSH_EnterFullScreen2 releases before re-opening) Panels used to be re-opened without the previous DirectDraw objects being released, leaking the exclusive claim. Bites hardest when a panel sits on the monitor Windows treats as primary. [ ] Full MFD pod (-tmfds 4) survives an Alt-Tab out and back with all panels still drawing [ ] Panels still work after a display mode change (shell -> mission -> shell, and mission restart) [ ] gos-displays.txt shows HSH_EnterFullScreen2 running more than once with NO DDERR_EXCLUSIVEMODEALREADYSET / DDERR_NOCOOPERATIVELEVELSET on the later entries [ ] Cameraship (mr_device) path: same Alt-Tab / mode-change test [ ] Test at least once on a machine where a panel IS on the Windows primary monitor -- that is the configuration that used to fail 15. CAMERASHIP MAP/ARMOR SCREEN AND -tmr Field report root cause was -ctcltype 2 (game pod) on a cameraship, not a video card. Overlays are gated on the CTCL role; the background is not. [ ] Cameraship launched with -ctcltype 3: Map/Armor screen shows background AND armour/score/map overlays [ ] gos-displays.txt reads "CTCL type = 3 (cameraship - overlays WILL be drawn)" [ ] Launch the same machine with -ctcltype 2 and confirm the documented symptom (background only, no overlays) and the matching log line -- this is the triage rule, worth seeing once [ ] -tmr 0 (default / switch absent): behaviour identical to the previous build [ ] -tmr 3 paints a magenta test rectangle on the Map/Armor screen [ ] -tmr 1 and -tmr 2 run without crashing [ ] Draw-call counts are reported for the first 5 frames when -tmr is set 16. MP TIME LIMITS TO 240 MIN -- IN-MISSION BEHAVIOUR Extends section 5, which covers the lobby dropdown, the 7-minute default and the console title. Content only (props.mw4). Requires a full repack: delete resource\props.mw4 and props.dep first, then run build-env\build-resources.ps1. [ ] Default button returns the time limit to 7 minutes [ ] Select 240 minutes, launch, and confirm the in-mission timer starts at 240:00 and counts down correctly [ ] Mission ends on time expiry at a long setting (spot-check one, e.g. 45) [ ] PC host lobby (HostLobbyMission) time list shows the same 23 entries and does not crash when opened -- the else-branch re-brace 17. -help AND DOCUMENTATION [ ] MW4.exe -help writes mw4-help.txt and opens it; game does not start [ ] -tident, -tmr, -tcoop, -tbaud, -tmfds 4, -tmon and -fps all appear with correct ranges [ ] -tmon entry states these are NOT Windows Display Settings numbers [ ] -ctcltype entry states a cameraship must use 3 [ ] -fps entry describes the per-second 5% low and the session 1% / 0.1% summary (matches what gos-fps.txt actually prints)