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, perb4089291). * .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>
This commit is contained in:
co-authored by
Claude Opus 5
GitHub Copilot
parent
9bf49a8084
commit
8bfaf9b9ad
@@ -15,3 +15,7 @@ FS507D_20161015/
|
||||
|
||||
# player-created mechlab variants in the game deploy (local test/play data, per-machine)
|
||||
MW4/Resource/Variants/
|
||||
|
||||
# GameOS run-time reports: rewritten on every launch, per-machine
|
||||
MW4/gos-displays.txt
|
||||
MW4/gos-fps.txt
|
||||
|
||||
@@ -937,6 +937,11 @@ static const char* const g_apszCommandLineHelp[] =
|
||||
" -ctcltype <1-3> CTCL role for this machine:",
|
||||
" -ctcl <1-3> 1 = console, 2 = game pod, 3 = cameraship.",
|
||||
" Default when absent: console.",
|
||||
" A cameraship MUST use 3. With 2 its Map/Armor",
|
||||
" screen still opens and paints its background, but",
|
||||
" draws no overlays at all, which looks like a video",
|
||||
" card fault. The role in use is reported in",
|
||||
" gos-displays.txt as 'CTCL type ='.",
|
||||
" -dragon Disable CTCL entirely and run standalone.",
|
||||
" -coop Co-operative arcade mode. Implies 1 coin per game",
|
||||
" and the game-pod role.",
|
||||
@@ -997,10 +1002,11 @@ static const char* const g_apszCommandLineHelp[] =
|
||||
" newer .rpt format.",
|
||||
" -fps Write a per-second frame pacing report to",
|
||||
" gos-fps.txt next to the executable: average fps,",
|
||||
" 1% low, worst frame in ms, and a count of frames",
|
||||
" taking over twice the average (hitches). Useful",
|
||||
" for confirming smooth pacing on the MFD modes.",
|
||||
" Off unless this switch is given.",
|
||||
" 5% low, worst frame in ms, and a count of frames",
|
||||
" taking over twice the average (hitches). A summary",
|
||||
" written at exit gives the whole-session 1% and",
|
||||
" 0.1% lows. Useful for confirming smooth pacing on",
|
||||
" the MFD modes. Off unless this switch is given.",
|
||||
" -gamestats Save game statistics.",
|
||||
" -help Show this reference and exit without starting.",
|
||||
"",
|
||||
|
||||
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
TEST123
|
||||
CHANGEME IN YOUR MW4PRINT APPLICATION!
|
||||
LFS
BIN
Binary file not shown.
@@ -28,7 +28,7 @@ OutputAPI = bestavailable
|
||||
Adapters = all
|
||||
FullScreenOutput = default
|
||||
FullScreenMode = true
|
||||
ScalingMode = unspecified
|
||||
ScalingMode = stretched_ar
|
||||
ProgressiveScanlineOrder = false
|
||||
EnumerateRefreshRates = false
|
||||
|
||||
@@ -37,7 +37,7 @@ Color = 100
|
||||
Contrast = 100
|
||||
InheritColorProfileInFullScreenMode = true
|
||||
|
||||
KeepWindowAspectRatio = true
|
||||
KeepWindowAspectRatio = false
|
||||
CaptureMouse = true
|
||||
CenterAppWindow = false
|
||||
DisableScreenSaver = false
|
||||
@@ -119,11 +119,11 @@ DisplayROI =
|
||||
Resampling = bilinear
|
||||
PresentationModel = auto
|
||||
ColorSpace = appdriven
|
||||
WatermarkDisplayDuration = 0
|
||||
WatermarkDisplayDuration = 30
|
||||
FreeMouse = false
|
||||
WindowedAttributes =
|
||||
FullscreenAttributes =
|
||||
FPSLimit = 0
|
||||
FPSLimit = 60
|
||||
Environment =
|
||||
SystemHookFlags =
|
||||
|
||||
@@ -198,8 +198,8 @@ DitherOrderedMatrixSizeScale = 0
|
||||
|
||||
DisableAndPassThru = false
|
||||
|
||||
VideoCard = internal3D
|
||||
VRAM = 256
|
||||
VideoCard = geforce_9800_gt
|
||||
VRAM = 1024
|
||||
Filtering = appdriven
|
||||
Mipmapping = appdriven
|
||||
KeepFilterIfPointSampled = false
|
||||
|
||||
+39
-4
@@ -27,7 +27,28 @@ DISPLAY AND VIDEO
|
||||
value of 0 leaves that slot auto-detected.
|
||||
Separators may be ',' '/' or ':'.
|
||||
MFD1 and MFD2 only apply with -tmfds 4.
|
||||
|
||||
These are DirectDraw device numbers. They are NOT
|
||||
the numbers shown in Windows Display Settings, and
|
||||
on many machines the two do not match. Do not read
|
||||
them off the Settings screen.
|
||||
|
||||
To find the right values: launch the game once,
|
||||
then open gos-displays.txt next to MW4.exe and read
|
||||
the 'Desktop arrangement, left to right' list. It
|
||||
gives each monitor's position, size and device
|
||||
number. Add 1 to the device number for -tmon.
|
||||
Example: -tmon 1,2,4,3 swaps the two MFD panels.
|
||||
-tident [seconds] Identify the displays, then exit. Each monitor is
|
||||
filled with a colour and the number to use for it
|
||||
in -tmon. Write the numbers down, then set -tmon in
|
||||
the order main,radar,MFD1,MFD2.
|
||||
This is the reliable way to map the monitors: the
|
||||
numbers Windows Display Settings shows cannot be
|
||||
read by any program, so they cannot be trusted to
|
||||
match. Default 20 seconds; accepts 3 to 120.
|
||||
No display mode is changed and the game does not
|
||||
start - it exits when the time is up.
|
||||
-tcoop <0-5> How the radar/MFD panels claim their displays.
|
||||
0 = legacy single call (as shipped; works on XP
|
||||
and under dgVoodoo2, fails on Windows 10).
|
||||
@@ -41,6 +62,14 @@ DISPLAY AND VIDEO
|
||||
panels never contend for it.
|
||||
5 = as 4, plus ALLOWREBOOT.
|
||||
Results are reported in gos-displays.txt.
|
||||
-tmr <0-3> Cameraship Map/Armor screen diagnostics.
|
||||
0 = normal.
|
||||
1 = wait for the background blit to finish before
|
||||
drawing the overlays.
|
||||
2 = skip the background image entirely.
|
||||
3 = as 2, plus a solid magenta test rectangle.
|
||||
Use when that screen shows its background but no
|
||||
overlay graphics or text.
|
||||
-mechview <1|2> Show the rotating mech view. 1 = on the radar
|
||||
-mv <1|2> screen, 2 = on the main screen. Default: off.
|
||||
-3dt Draw the MFD target as a live 3D model instead of
|
||||
@@ -62,6 +91,11 @@ POD HARDWARE AND ARCADE (CTCL)
|
||||
-ctcltype <1-3> CTCL role for this machine:
|
||||
-ctcl <1-3> 1 = console, 2 = game pod, 3 = cameraship.
|
||||
Default when absent: console.
|
||||
A cameraship MUST use 3. With 2 its Map/Armor
|
||||
screen still opens and paints its background, but
|
||||
draws no overlays at all, which looks like a video
|
||||
card fault. The role in use is reported in
|
||||
gos-displays.txt as 'CTCL type ='.
|
||||
-dragon Disable CTCL entirely and run standalone.
|
||||
-coop Co-operative arcade mode. Implies 1 coin per game
|
||||
and the game-pod role.
|
||||
@@ -122,10 +156,11 @@ LOGGING AND DIAGNOSTICS
|
||||
newer .rpt format.
|
||||
-fps Write a per-second frame pacing report to
|
||||
gos-fps.txt next to the executable: average fps,
|
||||
1% low, worst frame in ms, and a count of frames
|
||||
taking over twice the average (hitches). Useful
|
||||
for confirming smooth pacing on the MFD modes.
|
||||
Off unless this switch is given.
|
||||
5% low, worst frame in ms, and a count of frames
|
||||
taking over twice the average (hitches). A summary
|
||||
written at exit gives the whole-session 1% and
|
||||
0.1% lows. Useful for confirming smooth pacing on
|
||||
the MFD modes. Off unless this switch is given.
|
||||
-gamestats Save game statistics.
|
||||
-help Show this reference and exit without starting.
|
||||
|
||||
|
||||
LFS
BIN
Binary file not shown.
+1
-1
@@ -109,7 +109,7 @@ timescoringatend=10.0
|
||||
secmissionreplay=30.0
|
||||
secmissionreport=15.0
|
||||
MinShift=-180
|
||||
lrpt=252026072ab4b906fabd1c154d3d8fd77942028e
|
||||
lrpt=072003082ab4b906fabd1c154d3d8fd77942028e
|
||||
TimeList_Index=5
|
||||
TimeList_Value=10
|
||||
RuleBook=1
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+33
-22
@@ -23,7 +23,7 @@ page->GetEntry("bitdepth", &Environment.bitDepth);
|
||||
|
||||
Consequences of this design that matter in practice:
|
||||
|
||||
- **Section and key lookup is by name.** A misspelled key is not an error ? `GetEntry`
|
||||
- **Section and key lookup is by name.** A misspelled key is not an error -- `GetEntry`
|
||||
simply returns false and the compiled-in default is kept. **There is no warning.** This
|
||||
is why several shipped keys silently do nothing (see "Dead settings" below).
|
||||
- **The file is read at startup**, in `GetGameOSEnvironment` / `InitializeGameEngine`.
|
||||
@@ -32,7 +32,7 @@ Consequences of this design that matter in practice:
|
||||
host UI, and `[special commands] killgame` is cleared on use. Hand edits to those
|
||||
sections can be overwritten.
|
||||
- A few sections are read via the Win32 profile API (`GetPrivateProfileInt` /
|
||||
`GetPrivateProfileString`) instead ? noted per section.
|
||||
`GetPrivateProfileString`) instead -- noted per section.
|
||||
|
||||
### Related but separate files
|
||||
|
||||
@@ -44,6 +44,17 @@ Consequences of this design that matter in practice:
|
||||
| `c:\ctcl.ini` | Arcade console configuration (pod IP list, launch command lines, voice macros). Hardcoded path. Not covered here. |
|
||||
| `banner.txt` | mw4print bottom-of-sheet banner text. Plain text, first line only. |
|
||||
|
||||
### Files the game writes next to `MW4.exe`
|
||||
|
||||
Not configuration -- these are outputs, listed here because they are the first place to look
|
||||
when something is misconfigured.
|
||||
|
||||
| File | Written when | Contents |
|
||||
|---|---|---|
|
||||
| `gos-displays.txt` | Every launch (truncated each time) | Full display start-up trace: Windows topology, DirectDraw enumeration, role selection with reasons, `-tmon` overrides, desktop left-to-right order, the CTCL role, and an explicit CLASH warning if two roles land on one device. Copy it before relaunching after a failure. |
|
||||
| `gos-fps.txt` | Only with `-fps` | Per-second frame pacing (average, 5% low, worst frame, hitch count) plus a whole-session summary with 1% / 0.1% lows. Buffered, so a hard crash loses the tail. |
|
||||
| `mw4-help.txt` | Only with `-help` | The full command-line reference; opened in Notepad, and the game then exits. |
|
||||
|
||||
---
|
||||
|
||||
## `[graphics options]`
|
||||
@@ -57,11 +68,11 @@ Read in `MW4Application.cpp` (`GetGameOSEnvironment`) and `MWOptions.cpp`.
|
||||
| `screenwidth` | int | 800 | Horizontal resolution, read by `MWOptions`. |
|
||||
| `screenheight` | int | 600 | Vertical resolution. |
|
||||
|
||||
**Read but overridden in this build ? editing has no effect:**
|
||||
**Read but overridden in this build -- editing has no effect:**
|
||||
|
||||
| Key | Why |
|
||||
|---|---|
|
||||
| `videodriverindex` | The `GetEntry` call is commented out and `Environment.FullScreenDevice` is forced to `0`. Use the `-tmon` command-line switch to assign display devices instead — run `MW4.exe -tident` first to find out which number is which monitor, as Windows Display Settings numbers do not match. |
|
||||
| `videodriverindex` | The `GetEntry` call is commented out and `Environment.FullScreenDevice` is forced to `0`. Use the `-tmon` command-line switch to assign display devices instead -- run `MW4.exe -tident` first to find out which number is which monitor, as Windows Display Settings numbers do not match. |
|
||||
|
||||
**Present in the shipped file and consumed by renderer subsystem initialisers**
|
||||
(`MidLevelRenderer::InitializeClasses`, `gosFX`, `ElementRenderer`, `Compost`), which are
|
||||
@@ -95,7 +106,7 @@ time.
|
||||
| `killgame` | bool | false | **Self-clearing kill switch.** If true at startup, the game sets it back to false, saves `options.ini`, and immediately calls `ExitGameOS()`. Intended as a remote "do not start" flag for a pod. |
|
||||
| `autotorsocenter` | int | 2 | Torso auto-centring mode (`VehicleInterface::perminateTorsoMode`). 0 = off, 1 = slow, 2 = fast. |
|
||||
|
||||
**Read but overridden in this build ? editing has no effect:**
|
||||
**Read but overridden in this build -- editing has no effect:**
|
||||
|
||||
| Key | Why |
|
||||
|---|---|
|
||||
@@ -106,7 +117,7 @@ time.
|
||||
|
||||
## `[server]`
|
||||
|
||||
Multiplayer host defaults. **This section is written back** by the host configuration UI ?
|
||||
Multiplayer host defaults. **This section is written back** by the host configuration UI --
|
||||
do not hand-edit it while the game is running.
|
||||
|
||||
Verified read: `playerlimit` (`Adept/Application.cpp`, both `GetEntry` and `SetEntry`).
|
||||
@@ -125,7 +136,7 @@ one-to-one with the in-game host options:
|
||||
|
||||
Notes:
|
||||
|
||||
- `allowed*1` / `allowed*2` are 32-bit hex masks covering items 0?31 and 32?63
|
||||
- `allowed*1` / `allowed*2` are 32-bit hex masks covering items 0-31 and 32-63
|
||||
respectively. `ffffffff` = everything permitted.
|
||||
- `maxplayers` and `maxbots` are serialised to clients as **5-bit fields**, so the maximum
|
||||
usable value is **31**. Writing 32 truncates to 0. See `RAISING-PLAYER-CAP.md`.
|
||||
@@ -198,24 +209,24 @@ all offsets are axis offsets applied to the camera or its look-at point.
|
||||
## `[Battle Tech Misc]`
|
||||
|
||||
Read by `CamerashipParams::LoadOptions` (`VehicleInterface.cpp`). **Several key names in
|
||||
this section do not describe what they do** ? they appear to be deliberately obscured. The
|
||||
this section do not describe what they do** -- they appear to be deliberately obscured. The
|
||||
mapping below is from the source and is the authoritative meaning.
|
||||
|
||||
| Key | Type | Range / clamp | Actually sets |
|
||||
|---|---|---|---|
|
||||
| `SecsMissionReplay` | int | `<0` or `>=100` ¡æ 60 | `g_nSecsMissionReplay` ? mission replay duration. |
|
||||
| `SecsMissionReport` | float | `<0` or `>=30` ¡æ 15 | `g_fSecsMissionReport` ? mission report screen duration. |
|
||||
| `AutoPowerUpLevel` | float | clamped to 0.0?1.0 | `g_fAutoPowerUpLevel` ? auto power-up threshold. |
|
||||
| `NeedFlushLevel` | float | clamped to 0.0?1.0 | `g_fNeedFlushLevel` ? heat level at which flush is advised. |
|
||||
| `TimeMsgSender` | float | clamped to 0.1?5.0 | `g_fTimeMsgSender` ? how long a message sender name is shown. |
|
||||
| `TimeList_Index` | int | `<0` ¡æ 0, `>=20` ¡æ 3 | `g_nTimeList_Index` ? selected entry in the lobby time-limit dropdown. |
|
||||
| `TimeList_Value` | int | `<0` or `>=100` ¡æ 7 | `g_nTimeList_Value` ? lobby time limit in minutes. |
|
||||
| `RuleBook` | int | 0 or 1 | ?? **`g_nMechVariant`** ? mech variant feature flag. Nothing to do with a rule book. |
|
||||
| `DawnWar` | int | 0 or 1 | ?? **`g_nMechLabOp`** ? mechlab operation flag. |
|
||||
| `BiggieSizeIt` | int | 0 or 1 | ?? **`g_nMechPodNum`** ? mech pod count flag, used by the console lobby to enable the larger roster (`USE_O_MORE_PODS`). |
|
||||
| `CanYouHearTheFootSteps` | int | 0 or 1 | ?? **`g_nBlackMech`** ? black mech flag. |
|
||||
| `SecsMissionReplay` | int | `<0` or `>=100` -> 60 | `g_nSecsMissionReplay` -- mission replay duration. |
|
||||
| `SecsMissionReport` | float | `<0` or `>=30` -> 15 | `g_fSecsMissionReport` -- mission report screen duration. |
|
||||
| `AutoPowerUpLevel` | float | clamped to 0.0-1.0 | `g_fAutoPowerUpLevel` -- auto power-up threshold. |
|
||||
| `NeedFlushLevel` | float | clamped to 0.0-1.0 | `g_fNeedFlushLevel` -- heat level at which flush is advised. |
|
||||
| `TimeMsgSender` | float | clamped to 0.1-5.0 | `g_fTimeMsgSender` -- how long a message sender name is shown. |
|
||||
| `TimeList_Index` | int | `<0` -> 0, `>=20` -> 3 | `g_nTimeList_Index` -- selected entry in the lobby time-limit dropdown. **No longer used by the console lobby:** since the list was expanded to 23 entries (1-15, 20, 25, 30, 45, 60, 120, 180, 240) `ConLobbyMission.script` uses a literal index for the 7-minute default, so the script stays independent of the exe. Still read by the legacy non-MSL path. |
|
||||
| `TimeList_Value` | int | `<0` or `>=100` -> 7 | `g_nTimeList_Value` -- lobby time limit in minutes. Still live: it is the mission length handed to the host, and what `[RookieMission] TimeLimit=-1` resolves to. |
|
||||
| `RuleBook` | int | 0 or 1 | **(!)** **`g_nMechVariant`** -- mech variant feature flag. Nothing to do with a rule book. |
|
||||
| `DawnWar` | int | 0 or 1 | **(!)** **`g_nMechLabOp`** -- mechlab operation flag. |
|
||||
| `BiggieSizeIt` | int | 0 or 1 | **(!)** **`g_nMechPodNum`** -- mech pod count flag, used by the console lobby to enable the larger roster (`USE_O_MORE_PODS`). |
|
||||
| `CanYouHearTheFootSteps` | int | 0 or 1 | **(!)** **`g_nBlackMech`** -- black mech flag. |
|
||||
|
||||
### ?? The shipped file misspells two of these
|
||||
### WARNING -- the shipped file misspells two of these
|
||||
|
||||
The shipped `options.ini` contains:
|
||||
|
||||
@@ -289,7 +300,7 @@ Text block: `TextMarginL`, `TextMarginT`, `TextMarginR`, `TextMarginB`, `TextHei
|
||||
These appear in the shipped `options.ini` but are **not read by any code** in this tree.
|
||||
They are stock MechWarrior 4 leftovers. Editing them does nothing.
|
||||
|
||||
### `[network options]` ? entire section is dead
|
||||
### `[network options]` -- entire section is dead
|
||||
|
||||
`connectiontype`, `connectionspeed`, `packetsize`, `defaultconnection`, `playericon`,
|
||||
`teamicon`.
|
||||
@@ -313,7 +324,7 @@ populated from the multiplayer connection wizard, not from this file.
|
||||
## Practical notes
|
||||
|
||||
- **Back up `options.ini` before experimenting.** The game rewrites parts of it, and an
|
||||
unknown key is silently ignored rather than reported, so a typo produces no diagnostic ?
|
||||
unknown key is silently ignored rather than reported, so a typo produces no diagnostic --
|
||||
just default behaviour.
|
||||
- **Per-role files.** On a pod, the launcher copies `options-game.ini`, `options-cam.ini`
|
||||
or `options-mr.ini` over `options.ini` depending on the machine's role. Edit the role file,
|
||||
|
||||
@@ -82,7 +82,7 @@ release, producing the **V5.1.x** series maintained in this repository.
|
||||
- **Full build reconstruction** — the complete toolchain (VC6, DX 7.0a, DX Media 6) is
|
||||
self-contained in `build-env\`; the game and editor build from source with 0 errors
|
||||
|
||||
See `RELEASE-NOTES-5.1.0b_RC1.md` for pod-owner change details, and `CLAUDE.md` for the full
|
||||
See `RELEASE-NOTES-5.1.0b_RC2.md` for pod-owner change details, and `CLAUDE.md` for the full
|
||||
engineering history.
|
||||
|
||||
---
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>BattleTech: FireStorm V5.1.0b_RC1 - Release Notes</title>
|
||||
<title>BattleTech: FireStorm V5.1.0b_RC2 - Release Notes</title>
|
||||
<style>
|
||||
body { font-family: Calibri, Arial, sans-serif; font-size: 11pt; margin: 60px 72px; color: #1a1a1a; max-width: 900px; }
|
||||
h1 { font-size: 20pt; color: #1F3864; border-bottom: 3px solid #1F3864; padding-bottom: 8px; margin-top: 0; }
|
||||
@@ -27,14 +27,31 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>BattleTech: FireStorm — V5.1.0b_RC1</h1>
|
||||
<div class="meta">Release notes for pod owners · 25 July 2026</div>
|
||||
<p>This build covers everything since the <code>-tbaud</code> RIO update. It is a large release: 58 changes
|
||||
<h1>BattleTech: FireStorm — V5.1.0b_RC2</h1>
|
||||
<div class="meta">Release notes for pod owners · 7 August 2026</div>
|
||||
<p>This build covers everything since the <code>-tbaud</code> RIO update. It is a large release: 75 changes
|
||||
spanning multiplayer, cockpit hardware, displays, 'Mech content, the console lobby and the
|
||||
match printer.</p>
|
||||
<div class="note"><p><strong>The most important thing to know:</strong> if you change nothing in your configuration, this build
|
||||
behaves like your current one. Every new feature listed here is either a fix that applies
|
||||
automatically, or an option you have to switch on deliberately. Nothing new is enabled by default.</p></div>
|
||||
<h3>Already testing RC1? Here is what is new in RC2</h3>
|
||||
<p>Everything else in this document was already in RC1 and is unchanged.</p>
|
||||
<ul>
|
||||
<li><strong><code>-tident</code></strong> -- the game now identifies your monitors for you, so you can set
|
||||
<code>-tmon</code> correctly. See section 4.</li>
|
||||
<li><strong><code>gos-displays.txt</code> now traces the whole display start-up</strong>, including a
|
||||
plain-English <strong>CLASH</strong> warning when two panels land on the same monitor, and a line
|
||||
stating this machine's CTCL role. See section 8.</li>
|
||||
<li><strong>Panels are now released correctly when the display mode changes</strong> -- a real fault
|
||||
that could stop the MFDs from restarting. See section 4.</li>
|
||||
<li><strong><code>-tmr</code></strong> -- diagnostics for a cameraship Map/Armor screen that shows its
|
||||
background but no overlays, plus the field check that usually explains it. See section 4.</li>
|
||||
<li><strong>Match time limits now go up to 240 minutes</strong>, and the default is 7 minutes again
|
||||
(it had silently become 4). See section 2.</li>
|
||||
<li><strong>The console lobby now reads <code>V5.1.0b2</code>.</strong> Use this to confirm a pod actually
|
||||
received the new content packages.</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>1. Read this first -- required on Windows 10 / 11</h2>
|
||||
<h3>Run <code>set-appcompat.bat</code> after installing</h3>
|
||||
@@ -104,8 +121,13 @@ matches. It is the authoritative reference for the file format -- this page only
|
||||
the feature on.</p></div>
|
||||
<p>The <strong>Default</strong> button restores standard settings, so you can always get back to a clean lobby.</p>
|
||||
<h3>Longer match times</h3>
|
||||
<p>The multiplayer time limit list has been expanded from 9 options to 18:
|
||||
<strong>1 through 15 minutes, plus 20, 25 and 30.</strong> The dropdown scrolls to fit them.</p>
|
||||
<p>The multiplayer time limit list has been expanded from 9 options to 23:
|
||||
<strong>1 through 15 minutes, plus 20, 25, 30, 45, 60, 120, 180 and 240.</strong> The dropdown scrolls
|
||||
to fit them. Long-format events no longer need a mission restarted part way through.</p>
|
||||
<p><strong>The default time limit is 7 minutes again.</strong> While the list was being extended it had
|
||||
silently become 4 minutes, because the default was stored as a position in the list rather than as
|
||||
a number of minutes. Fixed.</p>
|
||||
<p>This is console and content only -- it arrives with the resource packages, not with <code>MW4.exe</code>.</p>
|
||||
<hr>
|
||||
<h2>3. Cockpit and RIO hardware</h2>
|
||||
<h3>Throttle zero fix</h3>
|
||||
@@ -258,6 +280,20 @@ another program taking the screen. The panels were being re-opened without the p
|
||||
being closed first, so they collided with themselves. Most pods never saw it; it showed up
|
||||
reliably on machines where one of the panels was on the monitor Windows treats as primary.</p>
|
||||
<p><strong>Applies automatically.</strong> No configuration needed.</p>
|
||||
<h3>Cameraship Map/Armor screen shows its background but nothing else</h3>
|
||||
<p>If the second screen on a cameraship lights up, shows the correct background artwork, and then
|
||||
draws <strong>no armour, score or map overlays at all</strong>, check the pod's launch line first:</p>
|
||||
<div class="warn"><p><strong>A cameraship must be launched with <code>-ctcltype 3</code>.</strong>
|
||||
<code>-ctcltype 2</code> is a game pod.</p></div>
|
||||
<p>With the wrong role the screen still opens and still paints its background -- that part does not
|
||||
depend on the role -- but the overlay drawing is skipped entirely. The result looks exactly like a
|
||||
graphics card or driver fault, which is how it has been misdiagnosed in the past. It is not.</p>
|
||||
<p>The game now records this for you: <code>gos-displays.txt</code> contains a line reading
|
||||
<code>CTCL type = 3 (cameraship - overlays WILL be drawn)</code>, or the equivalent warning
|
||||
if the role is wrong. Check that before suspecting hardware.</p>
|
||||
<p>If the role is correct and the overlays are still missing, <code>-tmr 3</code> draws a solid magenta
|
||||
test rectangle on that screen. If the magenta appears, the display and 3D device are working and
|
||||
the problem is elsewhere; include <code>gos-displays.txt</code> with the report.</p>
|
||||
<hr>
|
||||
<h2>5. 'Mechs and content</h2>
|
||||
<h3>Six rookie 'Mechs instead of four</h3>
|
||||
@@ -359,7 +395,8 @@ the shipped language file was a Korean build. They now read <strong>More Details
|
||||
<pre><code>MW4.exe -fps
|
||||
</code></pre>
|
||||
<p>Writes <code>gos-fps.txt</code> next to the game with a per-second breakdown -- average frame rate, the
|
||||
slowest frames, and a count of stutters -- plus a summary at the end. <strong>Off unless you ask for it</strong>,
|
||||
worst 5% of frames, the single worst frame, and a count of stutters -- plus a whole-session summary
|
||||
at the end giving the true 1% and 0.1% lows. <strong>Off unless you ask for it</strong>,
|
||||
and it costs nothing when unused.</p>
|
||||
<h3>Display troubleshooting log</h3>
|
||||
<p>When display problems occur, the game now writes <strong><code>gos-displays.txt</code></strong> next to the exe listing
|
||||
@@ -373,6 +410,10 @@ number to use for each -- the same numbers <code>-tident</code> puts on the scre
|
||||
position 1 : device 0 -> \\.\DISPLAY1 800x600 at 0,0 [WINDOWS PRIMARY]
|
||||
position 2 : device 3 -> \\.\DISPLAY4 640x480 at 800,122
|
||||
</code></pre>
|
||||
<p>It also records the role this machine was launched as, which is worth checking on any cameraship
|
||||
that is not drawing its overlays (section 4):</p>
|
||||
<pre><code> CTCL type = 3 (cameraship - overlays WILL be drawn)
|
||||
</code></pre>
|
||||
<div class="note"><p>The file is rewritten every time the game starts. If you have a failure worth reporting, copy
|
||||
the file before launching again.</p></div>
|
||||
<hr>
|
||||
@@ -417,12 +458,20 @@ the file before launching again.</p></div>
|
||||
<td>Game starts normally</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>-tmr <0-3></code></td>
|
||||
<td>Cameraship Map/Armor screen troubleshooting only</td>
|
||||
<td>Normal behaviour (0)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>-tcoop <0-5></code></td>
|
||||
<td>Display troubleshooting only -- <strong>do not change</strong></td>
|
||||
<td>Standard behaviour (0)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><code>-ctcltype <1-3></code> is not new, but it is worth repeating: <strong>1 = console, 2 = game pod,
|
||||
3 = cameraship</strong>, and getting it wrong on a cameraship is the usual cause of a blank Map/Armor
|
||||
screen (section 4).</p>
|
||||
<hr>
|
||||
<h2>10. Known issues and limitations</h2>
|
||||
<ul>
|
||||
@@ -436,6 +485,12 @@ the file before launching again.</p></div>
|
||||
keep-aspect scaling for correct geometry with black bars at the sides.</li>
|
||||
<li><strong>The AppCompat registration is tied to the install folder.</strong> Move the game, re-run
|
||||
<code>set-appcompat.bat</code>.</li>
|
||||
<li><strong>Sound output is two-speaker stereo.</strong> Surround and quad speaker rigs are downmixed.
|
||||
This is how the game has always behaved; making use of more speakers is being investigated for a
|
||||
later release.</li>
|
||||
<li><strong><code>-tident</code> is only meaningful on a machine with more than one monitor.</strong> On a
|
||||
single-screen test PC it may briefly paint one number over another, because Windows can present a
|
||||
single monitor to the game as two devices. Harmless, and it cannot happen on a real pod.</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>11. Upgrade checklist</h2>
|
||||
@@ -448,9 +503,11 @@ the file before launching again.</p></div>
|
||||
display: all MFD modes (spanned <code>-tmfds 1</code> / <code>-tmfds 3</code>, split <code>-tmfds 4</code>) and cameraship
|
||||
mode. Only console mode, on a single display, does without it. Windows XP pods never
|
||||
need it.</li>
|
||||
<li>Launch and confirm the console lobby reads the new version.</li>
|
||||
<li>Launch and confirm the console lobby reads <strong><code>V5.1.0b2</code></strong>. If it still shows an
|
||||
older version, the resource packages did not get copied.</li>
|
||||
<li>If your pod uses MFDs or a cameraship, run <code>MW4.exe -tident</code> once and check each monitor
|
||||
shows the role you expect. If any are wrong, note the numbers shown and correct <code>-tmon</code>.</li>
|
||||
shows the role you expect. If any are wrong, note the numbers shown and correct <code>-tmon</code>.
|
||||
On a cameraship, also confirm the launch line uses <code>-ctcltype 3</code>.</li>
|
||||
<li>Play one mission end to end before putting the pod back into service.</li>
|
||||
<li>Optional: add <code>[automaticmode]</code> and <code>[RookieMission]</code> to <code>options.ini</code> if you want the new
|
||||
Load File button or custom rookie missions.</li>
|
||||
@@ -1,8 +1,8 @@
|
||||
# BattleTech: FireStorm -- V5.1.0b_RC1
|
||||
# BattleTech: FireStorm -- V5.1.0b_RC2
|
||||
|
||||
**Release notes for pod owners**
|
||||
|
||||
This build covers everything since the `-tbaud` RIO update. It is a large release: 58 changes
|
||||
This build covers everything since the `-tbaud` RIO update. It is a large release: 75 changes
|
||||
spanning multiplayer, cockpit hardware, displays, 'Mech content, the console lobby and the
|
||||
match printer.
|
||||
|
||||
@@ -10,6 +10,24 @@ match printer.
|
||||
> behaves like your current one. Every new feature listed here is either a fix that applies
|
||||
> automatically, or an option you have to switch on deliberately. Nothing new is enabled by default.
|
||||
|
||||
### Already testing RC1? Here is what is new in RC2
|
||||
|
||||
Everything else in this document was already in RC1 and is unchanged.
|
||||
|
||||
- **`-tident`** -- the game now identifies your monitors for you, so you can set `-tmon`
|
||||
correctly. See section 4.
|
||||
- **`gos-displays.txt` now traces the whole display start-up**, including a plain-English
|
||||
**CLASH** warning when two panels land on the same monitor, and a line stating this machine's
|
||||
CTCL role. See section 8.
|
||||
- **Panels are now released correctly when the display mode changes** -- a real fault that could
|
||||
stop the MFDs from restarting. See section 4.
|
||||
- **`-tmr`** -- diagnostics for a cameraship Map/Armor screen that shows its background but no
|
||||
overlays, plus the field check that usually explains it. See section 4.
|
||||
- **Match time limits now go up to 240 minutes**, and the default is 7 minutes again (it had
|
||||
silently become 4). See section 2.
|
||||
- **The console lobby now reads `V5.1.0b2`.** Use this to confirm a pod actually received the
|
||||
new content packages.
|
||||
|
||||
---
|
||||
|
||||
## 1. Read this first -- required on Windows 10 / 11
|
||||
@@ -87,8 +105,15 @@ The **Default** button restores standard settings, so you can always get back to
|
||||
|
||||
### Longer match times
|
||||
|
||||
The multiplayer time limit list has been expanded from 9 options to 18:
|
||||
**1 through 15 minutes, plus 20, 25 and 30.** The dropdown scrolls to fit them.
|
||||
The multiplayer time limit list has been expanded from 9 options to 23:
|
||||
**1 through 15 minutes, plus 20, 25, 30, 45, 60, 120, 180 and 240.** The dropdown scrolls to fit
|
||||
them. Long-format events no longer need a mission restarted part way through.
|
||||
|
||||
**The default time limit is 7 minutes again.** While the list was being extended it had silently
|
||||
become 4 minutes, because the default was stored as a position in the list rather than as a
|
||||
number of minutes. Fixed.
|
||||
|
||||
This is console and content only -- it arrives with the resource packages, not with `MW4.exe`.
|
||||
|
||||
---
|
||||
|
||||
@@ -270,6 +295,25 @@ reliably on machines where one of the panels was on the monitor Windows treats a
|
||||
|
||||
**Applies automatically.** No configuration needed.
|
||||
|
||||
### Cameraship Map/Armor screen shows its background but nothing else
|
||||
|
||||
If the second screen on a cameraship lights up, shows the correct background artwork, and then
|
||||
draws **no armour, score or map overlays at all**, check the pod's launch line first:
|
||||
|
||||
> **A cameraship must be launched with `-ctcltype 3`.** `-ctcltype 2` is a game pod.
|
||||
|
||||
With the wrong role the screen still opens and still paints its background -- that part does not
|
||||
depend on the role -- but the overlay drawing is skipped entirely. The result looks exactly like
|
||||
a graphics card or driver fault, which is how it has been misdiagnosed in the past. It is not.
|
||||
|
||||
The game now records this for you: `gos-displays.txt` contains a line reading
|
||||
`CTCL type = 3 (cameraship - overlays WILL be drawn)`, or the equivalent warning if the role is
|
||||
wrong. Check that before suspecting hardware.
|
||||
|
||||
If the role is correct and the overlays are still missing, `-tmr 3` draws a solid magenta test
|
||||
rectangle on that screen. If the magenta appears, the display and 3D device are working and the
|
||||
problem is elsewhere; include `gos-displays.txt` with the report.
|
||||
|
||||
---
|
||||
|
||||
## 5. 'Mechs and content
|
||||
@@ -405,8 +449,9 @@ MW4.exe -fps
|
||||
```
|
||||
|
||||
Writes `gos-fps.txt` next to the game with a per-second breakdown -- average frame rate, the
|
||||
slowest frames, and a count of stutters -- plus a summary at the end. **Off unless you ask for it**,
|
||||
and it costs nothing when unused.
|
||||
worst 5% of frames, the single worst frame, and a count of stutters -- plus a whole-session
|
||||
summary at the end giving the true 1% and 0.1% lows. **Off unless you ask for it**, and it costs
|
||||
nothing when unused.
|
||||
|
||||
### Display troubleshooting log
|
||||
|
||||
@@ -425,6 +470,13 @@ number to use for each -- the same numbers `-tident` puts on the screens:
|
||||
position 2 : device 3 -> \\.\DISPLAY4 640x480 at 800,122
|
||||
```
|
||||
|
||||
It also records the role this machine was launched as, which is worth checking on any cameraship
|
||||
that is not drawing its overlays (section 4):
|
||||
|
||||
```
|
||||
CTCL type = 3 (cameraship - overlays WILL be drawn)
|
||||
```
|
||||
|
||||
> The file is rewritten every time the game starts. If you have a failure worth reporting, copy
|
||||
> the file before launching again.
|
||||
|
||||
@@ -440,8 +492,13 @@ number to use for each -- the same numbers `-tident` puts on the screens:
|
||||
| `-tbaud <rate>` | COM1 speed for replica RIO boards | Original board speed |
|
||||
| `-fps` | Write a performance log | No log, no overhead |
|
||||
| `-help` | Show the full switch reference and exit | Game starts normally |
|
||||
| `-tmr <0-3>` | Cameraship Map/Armor screen troubleshooting only | Normal behaviour (0) |
|
||||
| `-tcoop <0-5>` | Display troubleshooting only -- **do not change** | Standard behaviour (0) |
|
||||
|
||||
`-ctcltype <1-3>` is not new, but it is worth repeating: **1 = console, 2 = game pod,
|
||||
3 = cameraship**, and getting it wrong on a cameraship is the usual cause of a blank Map/Armor
|
||||
screen (section 4).
|
||||
|
||||
---
|
||||
|
||||
## 10. Known issues and limitations
|
||||
@@ -456,6 +513,12 @@ number to use for each -- the same numbers `-tident` puts on the screens:
|
||||
keep-aspect scaling for correct geometry with black bars at the sides.
|
||||
- **The AppCompat registration is tied to the install folder.** Move the game, re-run
|
||||
`set-appcompat.bat`.
|
||||
- **Sound output is two-speaker stereo.** Surround and quad speaker rigs are downmixed. This is
|
||||
how the game has always behaved; making use of more speakers is being investigated for a
|
||||
later release.
|
||||
- **`-tident` is only meaningful on a machine with more than one monitor.** On a single-screen
|
||||
test PC it may briefly paint one number over another, because Windows can present a single
|
||||
monitor to the game as two devices. Harmless, and it cannot happen on a real pod.
|
||||
|
||||
---
|
||||
|
||||
@@ -469,9 +532,11 @@ number to use for each -- the same numbers `-tident` puts on the screens:
|
||||
display: all MFD modes (spanned `-tmfds 1` / `-tmfds 3`, split `-tmfds 4`) and cameraship
|
||||
mode. Only console mode, on a single display, does without it. Windows XP pods never
|
||||
need it.
|
||||
5. Launch and confirm the console lobby reads the new version.
|
||||
5. Launch and confirm the console lobby reads **`V5.1.0b2`**. If it still shows an older
|
||||
version, the resource packages did not get copied.
|
||||
6. If your pod uses MFDs or a cameraship, run `MW4.exe -tident` once and check each monitor
|
||||
shows the role you expect. If any are wrong, note the numbers shown and correct `-tmon`.
|
||||
On a cameraship, also confirm the launch line uses `-ctcltype 3`.
|
||||
7. Play one mission end to end before putting the pod back into service.
|
||||
8. Optional: add `[automaticmode]` and `[RookieMission]` to `options.ini` if you want the new
|
||||
Load File button or custom rookie missions.
|
||||
@@ -1,110 +0,0 @@
|
||||
Testing Checklist -- eaa5fd3 through 2026-07-23
|
||||
Branch: 5.1.0b-in-progress
|
||||
Last known-good pod test: before eaa5fd3
|
||||
================================================
|
||||
|
||||
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
|
||||
|
||||
@@ -0,0 +1,220 @@
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user