Files
firestorm/testing-checklist-5.1.0b_RC2.txt
T
8bfaf9b9ad Publish V5.1.0b_RC2: rebuilt binaries, repacked props, RC2 documentation
RC2 build, verified to launch on the Windows box and copied back into the
deployment at MW4/. Supersedes RC1 (a0331e78), which predates everything in
sections 12-17 of the test checklist.

Binaries and content
--------------------
* MW4.exe / MW4pro.exe rebuilt from CoreTech GameOS + MW4Application. Carries
  the display work that landed after the RC1 build: -tident, the full
  gos-displays.txt start-up trace with the CLASH and CTCL-type reports, the
  HSH_EnterFullScreen2 panel re-entry fix, the -tmr cameraship ladder, and the
  updated -help text.
* Launcher / autoconfig / mw4print / ctcls / MissionLang / ScriptStrings
  relinked in the same pass.
* props.mw4 + props.dep fully repacked (deleted first, not incremental), so the
  23-entry time list, the restored 7-minute default and the V5.1.0b2 console
  title are actually in the package rather than only in the source tree.
* mw4-help.txt regenerated from the new exe; the diff is the proof the built
  binary carries the documentation changes.

Documentation, renamed to RC2
-----------------------------
* RELEASE-NOTES-5.1.0b_RC1.{md,html} -> ..._RC2.{md,html}, both hand-maintained
  in step, ASCII + CRLF so they open correctly in Notepad on a pod.
  - New "Already testing RC1?" block at the top. RC1's notes already described
    -tident and the CLASH report, but the RC1 BINARY does not contain them, so
    anyone comparing the two needed that stated explicitly.
  - Time limits corrected to 23 entries (1-15, 20, 25, 30, 45, 60, 120, 180,
    240) with the 7-minute default restoration called out.
  - New section on the cameraship Map/Armor screen: background but no overlays
    is -ctcltype 2 on a cameraship, not a video card. Includes the
    "CTCL type =" log line and -tmr 3 as the follow-up check.
  - -fps description corrected: the per-second column is a 5% low and the 1% /
    0.1% lows are in the session summary. The old text described behaviour that
    had already been changed.
  - Switch table gained -tmr; known issues gained stereo-only audio and the
    single-monitor -tident caveat; upgrade checklist now names V5.1.0b2.
* testing-checklist-5.1.0b1.txt -> testing-checklist-5.1.0b_RC2.txt, with a
  build-requirements header and new sections 12-17 covering -tident, the
  display trace (including a deliberate -tmon clash to exercise the CLASH
  report), the panel re-entry fix, cameraship/-tmr, 240-minute missions and a
  -help verification pass.
* OPTIONS-INI.md: TimeList_Index is documented as no longer driving the console
  lobby default (the script uses a literal since the list was expanded) while
  TimeList_Value remains live; added a table of the files the game writes next
  to MW4.exe. Also repaired the CP949/CP1252 damage in that file - it carried
  literal 0xA1 0xE6 arrows, 0x97 em dashes and ~20 '?' characters where dashes
  had been lost. Now pure ASCII.
* README.md points at the RC2 notes.

Source
------
MW4Application.cpp help text: -fps now matches what gos-fps.txt actually
prints, and -ctcltype states that a cameraship must use 3 and what goes wrong
when it does not. Audited all 80 switches parsed in the file against the help
array - none missing, and no game-facing switch is parsed anywhere else.

Deployment housekeeping
-----------------------
* dgVoodoo.conf: ScalingMode = stretched_ar, which is the setting the release
  notes require and which fails SILENTLY when wrong. FPSLimit was left at 20
  from bench testing and would have shipped a 20 fps cap to every Win10/11 pod
  - raised to 60.
* banner.txt reset from a test string to the shipped placeholder.
* Removed two stray screen000*.bmp captures and the duplicate dbstruct.txt
  (db_schema.sql is the current name, per b4089291).
* .gitignore: gos-displays.txt and gos-fps.txt are truncated on every launch
  and are per-machine, so they are no longer mirrored.

Not yet done: multi-monitor pod testing of this binary. -tident, the re-entry
fix and -tmr have not been exercised on real MFD hardware - that is what the
new checklist sections are for.

Co-authored-by: Claude Opus 5 (Anthropic) <noreply@anthropic.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
2026-08-07 13:07:43 -05:00

221 lines
12 KiB
Plaintext

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 = <n>" 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)