Reported from a four-monitor pod: -tident filled the main screen green and did
nothing to the other three.
The first version opened each DirectDraw device with DDSCL_NORMAL and drew on
that device's primary surface. Under DDSCL_NORMAL a secondary device's primary
surface is not that monitor's framebuffer - it either fails to create or
resolves to the desktop primary - so every device painted the SAME screen, each
over the last. Green is acrFill[1], so device 1 painted last and devices 2 and 3
failed outright, which matches the report exactly.
Now does what the Windows Identify button does: one borderless topmost GDI
window per monitor, positioned from the rectangle that device's HMONITOR
reports, with a real message pump so the windows actually receive WM_PAINT.
Nothing takes exclusive mode and no display mode is changed, which was the point
of the original design and still holds.
Two things fall out of the rewrite:
* Devices resolving to the same rectangle are now grouped behind one window
labelled with both numbers ("1 & 2") instead of overpainting each other. That
was a parked item in CLAUDE.md - it happens when a driver presents one monitor
as two devices, which is common on a single-screen test PC.
* A device reporting no HMONITOR is the primary display driver alias and now
falls back to the primary monitor rectangle rather than being lost.
gos-displays.txt gains a painted size/position line per monitor, a
"shares a monitor with device N" line, and a summary count, so a failure to show
anything is visible in the log instead of silent.
Docs: this matters because RC2 told pod owners to run -tident and it did not
work. Added to the RC3 change list, corrected the now-obsolete known issue about
single-monitor overpainting, and rewrote checklist section 12 to lead with the
regression - all four monitors must be covered.
Co-authored-by: Claude Opus 5 (Anthropic) <noreply@anthropic.com>
Co-authored-by: GitHub Copilot <copilot@github.com>
593 lines
36 KiB
HTML
593 lines
36 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>BattleTech: FireStorm V5.1.0b_RC3 - 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; }
|
|
h2 { font-size: 14pt; color: #1F3864; border-bottom: 1px solid #BDD7EE; padding-bottom: 4px; margin-top: 28px; }
|
|
h3 { font-size: 12pt; color: #2E4D7B; margin-top: 20px; margin-bottom: 4px; }
|
|
.meta { color: #555; font-size: 10pt; margin-bottom: 28px; }
|
|
code { font-family: Consolas, "Courier New", monospace; font-size: 10pt; background: #F4F7FB; padding: 1px 4px; border-radius: 2px; color: #1a1a1a; }
|
|
pre { font-family: Consolas, "Courier New", monospace; font-size: 10pt; background: #F4F7FB; border: 1px solid #BDD7EE; border-left: 4px solid #2E4D7B; padding: 12px 16px; border-radius: 0 4px 4px 0; overflow-x: auto; line-height: 1.5; }
|
|
pre code { background: none; padding: 0; }
|
|
table { border-collapse: collapse; width: 100%; margin: 10px 0 18px 0; font-size: 10.5pt; }
|
|
th { background: #1F3864; color: white; padding: 7px 12px; text-align: left; font-weight: bold; font-size: 10pt; }
|
|
tr:nth-child(even) td { background: #EFF4FB; }
|
|
td { padding: 5px 12px; border-bottom: 1px solid #D0D9E8; vertical-align: top; }
|
|
td code { background: #E8EFF9; }
|
|
.warn { background: #FFF3CD; border: 1px solid #FFEAA0; border-left: 4px solid #F0B429; padding: 10px 14px; border-radius: 0 4px 4px 0; margin: 14px 0; font-size: 10.5pt; }
|
|
.warn strong { color: #7A4F00; }
|
|
.note { background: #E7F3FD; border: 1px solid #B8D9F5; border-left: 4px solid #1F3864; padding: 10px 14px; border-radius: 0 4px 4px 0; margin: 14px 0; font-size: 10.5pt; }
|
|
ul, ol { margin: 6px 0 10px 0; padding-left: 24px; }
|
|
li { margin-bottom: 4px; }
|
|
hr { border: none; border-top: 1px solid #D0D9E8; margin: 30px 0; }
|
|
@media print { body { margin: 40px; } pre, table, .warn, .note { page-break-inside: avoid; } }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>BattleTech: FireStorm — V5.1.0b_RC3</h1>
|
|
<div class="meta">Release notes for pod owners · 9 August 2026</div>
|
|
<p>This build covers everything since the <code>-tbaud</code> RIO update. It is a large release: 83 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 RC2? Here is what is new in RC3</h3>
|
|
<p>Everything in this list is a fix -- none of it needs configuring. The console lobby now reads
|
|
<strong><code>V5.1.0b3</code></strong>; use that to confirm a pod actually received the new build.</p>
|
|
<ul>
|
|
<li><strong><code>-tident</code> now actually works.</strong> In RC2 it painted a single coloured
|
|
rectangle on the main screen and nothing on the other monitors, so it could not be used for what
|
|
it was added for. See section 4.</li>
|
|
<li><strong>Damage paper dolls corrected on 22 'Mechs.</strong> The external MFD and Radar damage
|
|
displays were showing mirrored or misaligned zones. See section 5.</li>
|
|
<li><strong>Targeting a Zeus showed an Annihilator.</strong> Fixed, along with two other 'Mechs whose
|
|
target picture was missing. See section 4.</li>
|
|
<li><strong>Flying a Behemoth II could stop the game outright.</strong> Fixed. See section 5.</li>
|
|
<li><strong>High Explosive charges can now actually be fired.</strong> See section 5.</li>
|
|
<li><strong>Three long-standing 'Mech data faults corrected</strong> (Cauldron Born, Hellspawn,
|
|
Sunder). See section 5.</li>
|
|
<li><strong><code>mw4print -debug</code></strong> for diagnosing printer problems. See section 7.</li>
|
|
</ul>
|
|
<div class="warn"><p><strong>This build changes artwork as well as the executable.</strong> Copy the whole folder when
|
|
you upgrade -- see section 11. An old <code>hsh\</code> folder with a new <code>MW4.exe</code> gives wrong
|
|
damage displays.</p></div>
|
|
<h3>What was new in RC2</h3>
|
|
<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>
|
|
</ul>
|
|
<hr>
|
|
<h2>1. Read this first -- required on Windows 10 / 11</h2>
|
|
<h3>Run <code>set-appcompat.bat</code> after installing</h3>
|
|
<p>A new one-click tool ships in your install folder. <strong>Double-click <code>set-appcompat.bat</code></strong> once,
|
|
after copying the game to its final location.</p>
|
|
<p>FireStorm renders in 16-bit colour, and modern graphics cards no longer offer 16-bit display
|
|
modes. Windows can emulate them, but only if the game is registered for it -- and <strong>that
|
|
registration is tied to the exact folder the game sits in</strong>. Copying or moving an install
|
|
silently loses it.</p>
|
|
<p>Without it, the game fails to go fullscreen and reports:</p>
|
|
<div class="note"><p><em>"Another application is preventing use of full screen mode."</em></p></div>
|
|
<p>That message is misleading. It is not another application. It is this registration missing.
|
|
If you see it, run <code>set-appcompat.bat</code> and restart the game.</p>
|
|
<ul>
|
|
<li>Run it again any time you <strong>move, copy or reinstall</strong> the game to a different folder.</li>
|
|
<li>Right-click -> <strong>Run as administrator</strong> to apply it for every Windows account on the pod.</li>
|
|
<li>It reports what it changed and takes effect on the next game launch. No reboot needed.</li>
|
|
</ul>
|
|
<hr>
|
|
<h2>2. Multiplayer</h2>
|
|
<h3>16 pilots plus a cameraship now launch correctly</h3>
|
|
<p>Previously, a full 16-pilot game with a cameraship connected would silently fail to launch --
|
|
you pressed launch and nothing happened, with no error. Fixed. A cameraship no longer consumes
|
|
one of the 16 pilot slots.</p>
|
|
<p><strong>No configuration needed.</strong> This applies automatically.</p>
|
|
<h3>Load File -- set up a whole match from a file</h3>
|
|
<p>The console lobby can now load an entire match configuration -- game type, map, mission options
|
|
and all 16 player slots -- from a single file, instead of setting everything by hand.</p>
|
|
<p><strong>To enable it,</strong> edit <code>options.ini</code> in your game folder -- the same folder that contains
|
|
<code>MW4.exe</code>, for example <code>C:\MW4\options.ini</code> -- and add:</p>
|
|
<pre><code class="language-ini">[automaticmode]
|
|
automaticmode=1
|
|
automaticfile=matchsetup.ini
|
|
</code></pre>
|
|
<p><strong>Both keys are required:</strong></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Key</th>
|
|
<th>What it does</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>automaticmode</code></td>
|
|
<td><code>1</code> shows the <strong>Load File</strong> button in the console lobby. Any other value, or the key missing entirely, hides the button and the lobby behaves exactly as before.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>automaticfile</code></td>
|
|
<td>The match configuration file the button loads. If this key is missing, or points at a file that does not exist, the button appears but does nothing when pressed.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><code>automaticfile</code> can be either a plain file name, which is read from the game folder next to
|
|
<code>MW4.exe</code> (so <code>automaticfile=matchsetup.ini</code> reads <code>C:\MW4\matchsetup.ini</code>), or a full path if
|
|
you prefer to keep your match files somewhere else
|
|
(<code>automaticfile=C:\PodConfigs\friday-night.ini</code>).</p>
|
|
<ul>
|
|
<li>Full file format reference: <strong><code>BTFrstrm/autoconfig-file-spec.html</code></strong></li>
|
|
<li>Two ready-made examples -- copy one into your game folder and point <code>automaticfile</code> at it:
|
|
<strong><code>BTFrstrm/test-ffa-coliseum.ini</code></strong> and <strong><code>BTFrstrm/test-team-koth-centralpark.ini</code></strong></li>
|
|
</ul>
|
|
<div class="note"><p><strong>Read <code>BTFrstrm/autoconfig-file-spec.html</code> before writing your own match files.</strong> Open it in
|
|
any web browser. It documents every section and key, the accepted values for each, what happens
|
|
when a key or section is left out, and complete worked examples for both free-for-all and team
|
|
matches. It is the authoritative reference for the file format -- this page only covers turning
|
|
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 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>
|
|
<p>The throttle now reports a true zero position and clamps negative values correctly. Previously
|
|
the zero point could be skipped.</p>
|
|
<p><strong>Applies automatically.</strong></p>
|
|
<h3><code>-tbaud</code> -- support for high-speed replica RIO boards</h3>
|
|
<p>If you are running a <strong>replica RIO cockpit board with a faster UART</strong>, you can now set the COM1
|
|
speed without changing anything else about how the board talks to the game:</p>
|
|
<pre><code>MW4.exe -tbaud 115200
|
|
</code></pre>
|
|
<p>Accepts 9600 to 921600. <strong>Leave it off</strong> and the game uses the original speed, exactly as before --
|
|
existing original RIO boards need no change and should not use this switch.</p>
|
|
<p><strong>Whether a particular rate actually works is a hardware question, not a software one.</strong> The
|
|
game will happily set any rate in that range, but both ends have to support it: the serial
|
|
UART in the pod PC, and the RIO or replica RIO board itself. If a rate misbehaves -- garbled
|
|
input, dropped buttons, no response -- step down to a lower one.</p>
|
|
<p>This switch only changes the speed. The wire protocol is untouched. (The separate <code>-trio 1</code>
|
|
switch changes the whole protocol and is <em>not</em> what you want for a replica board.)</p>
|
|
<hr>
|
|
<h2>4. Displays and MFDs</h2>
|
|
<h3>Split MFD mode -- two separate 640x480 MFD monitors</h3>
|
|
<p>New display mode <strong><code>-tmfds 4</code></strong>, for pods using <strong>two separate 640x480 monitors</strong> for the MFDs
|
|
instead of one wide spanned display.</p>
|
|
<pre><code>MW4.exe -tmfds 4
|
|
</code></pre>
|
|
<p>Four displays total: main, radar, left MFD, right MFD. The original spanned modes (<code>-tmfds 1</code>
|
|
and <code>3</code>) are unchanged and remain the default for existing pods.</p>
|
|
<h3>Split MFD stutter -- fixed</h3>
|
|
<p>Early split-MFD builds had a constant rhythmic stutter across the whole game. Fixed. The two MFD
|
|
panels no longer force the graphics card to stall every frame cycle.</p>
|
|
<h3>Required dgVoodoo2 setting for any multi-display mode on Windows 10/11</h3>
|
|
<p><strong>On Windows 10 and 11, dgVoodoo2 is required for every mode that uses more than one display.</strong>
|
|
That means all of the MFD modes -- the original spanned display (<code>-tmfds 1</code> and <code>-tmfds 3</code>) as
|
|
well as the new split mode (<code>-tmfds 4</code>) -- <strong>and cameraship mode</strong>, which drives two monitors
|
|
without using MFDs at all.</p>
|
|
<p><strong>Console mode is the only configuration that does not need it</strong>, because it uses a single display.</p>
|
|
<p>The deciding factor is the number of displays, not which feature you are using: anything that
|
|
lights up a second monitor runs into the same Windows limitation. On Windows XP none of this
|
|
was needed.</p>
|
|
<div class="warn"><p><strong>dgVoodoo2 is not part of the build, and must NOT be installed on Windows XP pods.</strong>
|
|
XP uses the graphics support built into Windows and needs nothing extra -- adding dgVoodoo2
|
|
there will break it. It is a per-machine prerequisite that you install yourself, on
|
|
<strong>Windows 10 and 11 pods only</strong>. If your fleet is mixed, set it up per machine, not as part
|
|
of the game folder you copy around.</p></div>
|
|
<p>In the dgVoodoo2 control panel, on the <strong>General</strong> tab, set:</p>
|
|
<div class="note"><p><strong>Scaling mode: <code>Stretched, Keep Aspect Ratio</code></strong></p></div>
|
|
<p>This is not optional and not cosmetic.</p>
|
|
<ul>
|
|
<li>With <strong><code>Stretched</code></strong> (plain), the MFD monitors <strong>silently stay on the Windows desktop</strong> while
|
|
the main and radar screens go black. There is no error message of any kind. It simply does not work.</li>
|
|
<li>With <strong><code>Stretched, Keep Aspect Ratio</code></strong>, all panels come up correctly.</li>
|
|
</ul>
|
|
<p>The same setting also gives the correct picture geometry on 16:9 monitors. FireStorm renders in
|
|
4:3, so on a widescreen display it is either stretched out of shape or shown correctly with black
|
|
bars down the sides. Keep-aspect gives you the correct shape -- circles stay round and the
|
|
targeting reticle is accurate.</p>
|
|
<div class="note"><p><strong>Why dgVoodoo2 is still required:</strong> we tested running the multi-monitor MFD modes on Windows 10
|
|
with no dgVoodoo2 at all, using every available configuration. Modern Windows only permits one
|
|
display at a time to take exclusive fullscreen control, so the extra MFD panels are refused.
|
|
Windows XP allowed it; Windows 10 does not. dgVoodoo2 works around this. There is no setting
|
|
or switch that avoids it.</p></div>
|
|
<h3><code>-tident</code> -- find out which monitor is which</h3>
|
|
<p>Before using <code>-tmon</code>, use this to find out what numbers to type:</p>
|
|
<pre><code>MW4.exe -tident
|
|
</code></pre>
|
|
<p>Every monitor fills with a colour and shows, in large text, the number to use for it. Something
|
|
like:</p>
|
|
<pre><code> 3
|
|
use 3 in -tmon
|
|
device 2 currently: main
|
|
</code></pre>
|
|
<p>Walk the pod, write down what each screen says, then set <code>-tmon</code> in the order
|
|
<strong>main, radar, MFD 1, MFD 2</strong>. The game exits on its own when the time is up -- it does not start
|
|
a mission, and it does not change any display setting. The display lasts 20 seconds by default;
|
|
<code>-tident 45</code> gives you longer, and anything from 3 to 120 seconds is accepted.</p>
|
|
<div class="note"><p><strong>Why this exists.</strong> The monitor numbers Windows shows in Display Settings <strong>cannot be read by
|
|
any program</strong> -- Windows simply does not make them available. They often happen to match the
|
|
numbers <code>-tmon</code> wants, but on some machines they do not, and there is no way for the game to
|
|
tell the difference. This is the same reason Windows gives you an <em>Identify</em> button instead of
|
|
just telling you. <code>-tident</code> is the game's own Identify.</p></div>
|
|
<p><strong>Do not read monitor numbers off the Windows Display Settings screen and type them into
|
|
<code>-tmon</code>.</strong> That is the single most common way to get a wrong or non-working display setup, and
|
|
it can look like a hardware fault. Use <code>-tident</code>.</p>
|
|
<h3><code>-tmon</code> -- fix monitors coming up in the wrong order</h3>
|
|
<p>If your panels appear on the wrong physical monitors, you can assign them explicitly, in the
|
|
order <strong>main, radar, MFD 1, MFD 2</strong>:</p>
|
|
<pre><code>MW4.exe -tmfds 4 -tmon 1,2,3,4
|
|
</code></pre>
|
|
<p>Use the numbers <strong><code>-tident</code> showed you</strong> (see above), not the numbers in Windows Display Settings.</p>
|
|
<p>Use <code>0</code> in any position to leave that one on automatic -- <code>-tmon 2,1,0,0</code> swaps only main and radar.
|
|
<strong>Leave the switch off entirely and everything is detected automatically</strong>, which is correct on
|
|
most pods.</p>
|
|
<p><strong>Which positions apply depends on the MFD mode:</strong></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Position</th>
|
|
<th>Display</th>
|
|
<th><code>-tmfds 4</code> (split)</th>
|
|
<th><code>-tmfds 1</code> / <code>-tmfds 3</code> (spanned)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>1st</td>
|
|
<td>Main</td>
|
|
<td>applies</td>
|
|
<td>applies</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2nd</td>
|
|
<td>Radar</td>
|
|
<td>applies</td>
|
|
<td>applies</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3rd</td>
|
|
<td>MFD 1</td>
|
|
<td>applies</td>
|
|
<td>ignored</td>
|
|
</tr>
|
|
<tr>
|
|
<td>4th</td>
|
|
<td>MFD 2</td>
|
|
<td>applies</td>
|
|
<td>ignored</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>In the spanned modes the first two positions work normally, so you can still correct main and
|
|
radar. The 3rd and 4th positions are accepted but have no effect, because the spanned modes
|
|
drive both MFDs from a single wide display rather than two separate ones.</p>
|
|
<p><strong>The spanned MFD display itself cannot be assigned with <code>-tmon</code>.</strong> It is picked automatically
|
|
as the first display that reports a 1280x480 mode -- a distinctive signature that a spanned
|
|
MFD pair produces and ordinary monitors do not, so it normally lands on the right one. If you
|
|
ever need to force it, ask and it can be added.</p>
|
|
<p>If a display comes up in the wrong place, check <code>gos-displays.txt</code> next to the game (see
|
|
section 8). It lists every display found, which role each was given, and whether each <code>-tmon</code>
|
|
position was accepted or ignored.</p>
|
|
<h3>Two panels on one monitor -- now reported</h3>
|
|
<p>If <code>-tmon</code> accidentally puts two things on the same monitor, the second one cannot start: the
|
|
first already has that display. Previously this produced a confusing DirectDraw error naming
|
|
neither of them. <code>gos-displays.txt</code> now says so plainly:</p>
|
|
<pre><code>*** CLASH: main and mfd2 are BOTH on device 0 ***
|
|
</code></pre>
|
|
<h3>Panels are now released correctly when the display mode changes</h3>
|
|
<p>A fault that could stop the MFDs working after the game changed display mode, or recovered from
|
|
another program taking the screen. The panels were being re-opened without the previous ones
|
|
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>
|
|
<h3>The target picture on the MFD showed the wrong 'Mech</h3>
|
|
<p>The small image of your current target had room for only 64 'Mechs, one short of the roster. The
|
|
last one wrapped around to the start of the list, so <strong>targeting a Zeus displayed an
|
|
Annihilator</strong> -- a clean, convincing picture of the wrong 'Mech, which is why it was never
|
|
reported as a fault. The <strong>Assassin II</strong> had no picture at all.</p>
|
|
<p>Both fixed, with room for future 'Mechs. <strong>Applies automatically.</strong></p>
|
|
<p>If your graphics card refuses the larger image store the game falls back to the old behaviour
|
|
rather than losing every target picture, and records which it used in <code>gos-displays.txt</code>:</p>
|
|
<pre><code> [mfd] target atlas 1024x2048, 128 tiles, 65 chassis
|
|
</code></pre>
|
|
<p>If that line instead says the larger size was refused, the Zeus fault will still be present on
|
|
that machine -- please report it, as it has not been seen on any card tested so far.</p>
|
|
<hr>
|
|
<h2>5. 'Mechs and content</h2>
|
|
<h3>Six rookie 'Mechs instead of four</h3>
|
|
<p>The console lobby's default rookie 'Mech rotation now includes the <strong>Archer</strong> and <strong>Warhammer</strong>
|
|
alongside the original four. Right-click randomising picks from all six.</p>
|
|
<h3>Corrected loadouts</h3>
|
|
<ul>
|
|
<li><strong>Battlemaster (Inner Sphere)</strong> -- now carries its proper stock loadout: PPC, 6 medium lasers,
|
|
2 machine guns, and an SRM-6. It previously had only a single medium pulse laser.</li>
|
|
<li><strong>Battlemaster 2C (Clan)</strong> -- ER PPC, 6 ER medium lasers, 2 Clan Gauss rifles, Clan Streak SRM-6.</li>
|
|
<li><strong>Behemoth / Behemoth II</strong> -- Gauss rifles moved into the main weapon group so they fire with
|
|
the rest of the primary weapons.</li>
|
|
</ul>
|
|
<h3>Restored missing artwork</h3>
|
|
<p>Several 'Mechs were missing their MFD and cockpit display images, which showed as blank panels
|
|
in game. Restored: <strong>Assassin II, Behemoth, Behemoth II, Black Hawk, Longbow, Solitaire, Victor</strong>,
|
|
plus two missing lobby decals.</p>
|
|
<h3>Damage displays corrected on 22 'Mechs</h3>
|
|
<p>The external MFD and Radar damage figures -- the outline of your 'Mech that changes colour as
|
|
sections take damage -- were wrong on a large part of the roster. Two faults ran through them:</p>
|
|
<ul>
|
|
<li><strong>The figure was mirrored.</strong> Damage to the 'Mech's right side lit up on the wrong side
|
|
of the display.</li>
|
|
<li><strong>Zones did not line up with the artwork.</strong> Pieces floated in empty space, and leg
|
|
outlines ran past the feet.</li>
|
|
</ul>
|
|
<p>Separately, the <strong>Rifleman</strong> and <strong>Battlemaster</strong> had been using another 'Mech's
|
|
layout entirely (the Mad Cat's and the Atlas's), so their displays never matched their own artwork.</p>
|
|
<p>Corrected on: Annihilator, Archer, Ares, Argus, Assassin II, Atlas, Avatar, Battlemaster,
|
|
Battlemaster IIC, Behemoth, Behemoth II, Black Hawk, Fafnir, Flea, Gladiator, Hellspawn, Kodiak,
|
|
Longbow, Rifleman, Sunder, Victor and Warhammer. The remaining chassis were already correct and
|
|
are untouched.</p>
|
|
<p><strong>Applies automatically</strong>, but note the artwork travels as loose files, so the pod must get
|
|
a full deployment and not just a new <code>MW4.exe</code>.</p>
|
|
<h3>High Explosive charges now fire</h3>
|
|
<p>High Explosives could be fitted in the mechlab but never fired -- they were being given zero
|
|
rounds. They are ordinary one-shot weapons: assign them to a weapon group and pull the trigger.
|
|
They are <strong>not</strong> set off by ejecting.</p>
|
|
<p>Each charge does about 100 damage in a 30 metre radius, and about 200 damage to your own centre
|
|
torso. Put several in the same group and use Group Fire to set them all off at once.</p>
|
|
<p>Side effect of the same fix: the <strong>NARC Beacon</strong> shows its ammunition count in the mechlab
|
|
again.</p>
|
|
<div class="note"><p>If you have a saved variant that already carries a High Explosive, remove and refit the
|
|
charge once, in case it was saved with no rounds.</p></div>
|
|
<h3>Three content faults corrected</h3>
|
|
<p>Long-standing errors in the 'Mech data files, found while examining another build:</p>
|
|
<ul>
|
|
<li><strong>Cauldron Born</strong> -- its torso twist radius referred to a setting that does not exist, so
|
|
the engine quietly substituted a default. The correct value is now stated outright.
|
|
<strong>Behaviour is unchanged</strong>; the file simply now says what the game was already doing.</li>
|
|
<li><strong>Hellspawn</strong> and <strong>Sunder</strong> -- each had a malformed heat-sink entry. The game
|
|
tolerated it, but it would have broken any tool that reads these files strictly.</li>
|
|
</ul>
|
|
<h3>Mechlab label correction</h3>
|
|
<p>The mechlab turn rate now reads <strong>"Turn Rate (Top Speed Rad/Sec)"</strong>, which is what the number
|
|
actually means. It previously claimed degrees per second, which was wrong.</p>
|
|
<hr>
|
|
<h2>6. Arcade / console mode</h2>
|
|
<h3>Configurable Rookie Mission</h3>
|
|
<p>The quick-launch Rookie Mission was previously fixed in place. All of its settings can now be
|
|
changed from the same <code>options.ini</code> in your game folder, next to <code>MW4.exe</code>.</p>
|
|
<p>This is the mission the console loads when it opens, and the one restored when <strong>Default</strong> is
|
|
clicked in the lobby.</p>
|
|
<p><strong>Every entry is optional.</strong> Omit the section entirely and you get exactly the previous built-in
|
|
behaviour. The block below is ready to paste into <code>options.ini</code> as-is: every setting line is
|
|
commented out with <code>//</code>, so pasting it changes nothing until you uncomment the lines you want.</p>
|
|
<pre><code class="language-ini">[RookieMission]
|
|
// Default mission loaded when the console opens and when "Default" is clicked.
|
|
// All entries are optional - omit any to keep the hardcoded built-in default.
|
|
//
|
|
// MissionName - exact display name as it appears in the map dropdown
|
|
// default: ScarabStronghold - Attrition
|
|
// GameType - 0-based index into the game-type dropdown (2 = Attrition)
|
|
// default: 2
|
|
// TimeLimit - time limit in minutes; -1 means use the server's default time
|
|
// default: -1 (uses g_nTimeList_Value, currently 7 min)
|
|
// Visibility - 0=Clear 1=Light Fog 2=Medium Fog 3=Heavy Fog
|
|
// Weather - 0=Off 1=Rain
|
|
// TimeOfDay - 0=Day 1=Night
|
|
// Radar - 0=Novice 1=Off 2=Bars 3=Unlimited
|
|
// HeatOn - 0=Off 1=On
|
|
// FriendlyFire - 0=Off 100=Full (percentage)
|
|
// SplashDamage - 0=Off 1=On
|
|
// UnlimitedAmmo - 0=Off 1=On
|
|
// WeaponJam - 0=Off 1=On
|
|
// AdvanceMode - 0=Off 1=On
|
|
// ArmorMode - 0=Off 1=On
|
|
//
|
|
// Example: uncomment and edit lines below to customize
|
|
//MissionName=ScarabStronghold - Attrition
|
|
//GameType=2
|
|
//TimeLimit=-1
|
|
//Visibility=0
|
|
//Weather=0
|
|
//TimeOfDay=0
|
|
//Radar=0
|
|
//HeatOn=0
|
|
//FriendlyFire=0
|
|
//SplashDamage=0
|
|
//UnlimitedAmmo=1
|
|
//WeaponJam=0
|
|
//AdvanceMode=0
|
|
//ArmorMode=0
|
|
</code></pre>
|
|
<p>Two worth knowing:</p>
|
|
<ul>
|
|
<li><strong><code>MissionName</code></strong> must match the mission's display name <strong>exactly</strong> as it appears in the map
|
|
dropdown, including spacing and the <code>-</code> before the game type.</li>
|
|
<li><strong><code>TimeLimit=-1</code></strong> means "use whatever time limit the server is currently set to" rather than
|
|
forcing a fixed value.</li>
|
|
</ul>
|
|
<hr>
|
|
<h2>7. Match printer (mw4print) -- version 2.0</h2>
|
|
<h3>Custom banner text</h3>
|
|
<p>The line printed at the bottom of each score sheet is no longer fixed to <code>WWW.MECHJOCK.COM</code>.
|
|
Set your own via <strong>File -> Banner Setting...</strong>. It is saved to <code>banner.txt</code> next to the printer,
|
|
so you can also edit it directly.</p>
|
|
<h3>Database export (included, not yet field-tested)</h3>
|
|
<p>mw4print 2.0 can export match results -- scores, kills, player-versus-player results -- to an
|
|
external <strong>MySQL</strong> database after each print job, for league tables or long-term stats.</p>
|
|
<p>Configure via <strong>File -> Database Settings (Ctrl+D)</strong>, or the <code>[MySQLExport]</code> section of
|
|
<code>mw4print.ini</code>. The table layout is documented in <code>db_schema.sql</code>.</p>
|
|
<div class="warn"><p><strong>WARNING: this feature has not yet been tested against a live database server.</strong> It is off unless you
|
|
configure it, and printing works normally without it. If you try it, please report back.</p></div>
|
|
<h3>Diagnostic logging -- <code>-debug</code></h3>
|
|
<pre><code>mw4print.exe -debug
|
|
</code></pre>
|
|
<p>Writes a step-by-step log of what the printer is doing, including where it is looking for its
|
|
files. Use it when a score sheet comes out wrong or a print job fails silently. <code>/debug</code>
|
|
works too. <strong>Off unless you ask for it</strong>, and printing is unaffected when it is on.</p>
|
|
<hr>
|
|
<h2>8. Quality of life</h2>
|
|
<h3><code>mw4.exe -help</code></h3>
|
|
<p>Running <code>MW4.exe -help</code> now opens a <strong>complete reference for every command line switch</strong> -- around
|
|
76 of them, grouped by category with descriptions. It opens in Notepad and the game does not start.</p>
|
|
<h3>English error dialogs</h3>
|
|
<p>The crash and error dialog buttons previously appeared as <code>???</code> boxes on some systems, because
|
|
the shipped language file was a Korean build. They now read <strong>More Details / Continue / Exit</strong>.</p>
|
|
<h3>Performance measuring -- <code>-fps</code></h3>
|
|
<p>For diagnosing stutter or verifying a pod is running smoothly:</p>
|
|
<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
|
|
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
|
|
every monitor it found, which role each was assigned, and the exact reason any panel failed to
|
|
start. Previously such failures were completely silent. Include this file with any display fault report.</p>
|
|
<p>The log now follows the whole start-up sequence in order: what Windows reports is attached, what
|
|
the game found, how it matched the two up, which display it chose for each role and why, and what
|
|
each <code>-tmon</code> position did. Near the end it prints the monitors in left-to-right order with the
|
|
number to use for each -- the same numbers <code>-tident</code> puts on the screens:</p>
|
|
<pre><code> Desktop arrangement, left to right (compare with Display Settings):
|
|
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>
|
|
<h2>9. New command line switches at a glance</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Switch</th>
|
|
<th>Purpose</th>
|
|
<th>If you leave it off</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>-tmfds 4</code></td>
|
|
<td>Two separate 640x480 MFD monitors</td>
|
|
<td>Existing MFD mode unchanged</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>-tident [secs]</code></td>
|
|
<td>Show each monitor's number on the monitor itself, then exit. Use this to work out what to put in <code>-tmon</code></td>
|
|
<td>Game starts normally</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>-tmon a,b,c,d</code></td>
|
|
<td>Force monitor order: main, radar, MFD1, MFD2. Positions 3 and 4 apply only to <code>-tmfds 4</code></td>
|
|
<td>Automatic detection</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>-tbaud <rate></code></td>
|
|
<td>COM1 speed for replica RIO boards</td>
|
|
<td>Original board speed</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>-fps</code></td>
|
|
<td>Write a performance log</td>
|
|
<td>No log, no overhead</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>-help</code></td>
|
|
<td>Show the full switch reference and exit</td>
|
|
<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>
|
|
<li><strong>Any multi-display mode requires dgVoodoo2 on Windows 10/11</strong> -- every MFD mode (spanned
|
|
<code>-tmfds 1</code> / <code>-tmfds 3</code> and split <code>-tmfds 4</code>) and cameraship mode. Console mode, using a
|
|
single display, is the only exception. Scaling must be set to <code>Stretched, Keep Aspect Ratio</code>.
|
|
dgVoodoo2 works around a limitation on exclusive full-screen use of multiple displays on
|
|
platforms after Windows XP. It may be possible to fix this in a future release.</li>
|
|
<li><strong>The MySQL export in mw4print has not been tested against a live server.</strong></li>
|
|
<li><strong>The game renders in 4:3 only.</strong> There is no widescreen mode. On 16:9 monitors, use
|
|
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>If two device numbers land on one monitor, <code>-tident</code> now says so</strong> rather
|
|
than painting one number over the other. The monitor shows both numbers, e.g. <code>1 & 2</code>,
|
|
and either may be used in <code>-tmon</code>. This happens when a driver presents one monitor to the
|
|
game as two devices, which is common on single-screen test PCs and does not occur on a pod.</li>
|
|
</ul>
|
|
<hr>
|
|
<h2>11. Upgrade checklist</h2>
|
|
<ol>
|
|
<li>Back up your current install.</li>
|
|
<li>Copy in the new build. <strong>Copy the whole folder, not just <code>MW4.exe</code>.</strong> This build
|
|
changes the damage display artwork in <code>hsh\</code>, which is loose files rather than packaged
|
|
data, and three of the resource packages. A 'Mech will show the wrong damage figure if the
|
|
executable and the artwork come from different builds.</li>
|
|
<li><strong>Double-click <code>set-appcompat.bat</code></strong> (as administrator if the pod has multiple accounts).</li>
|
|
<li><strong>On Windows 10/11, confirm dgVoodoo2 is installed and its scaling mode is
|
|
<code>Stretched, Keep Aspect Ratio</code>.</strong> Required for <strong>any</strong> mode that uses more than one
|
|
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 <strong><code>V5.1.0b3</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>.
|
|
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>
|
|
</ol>
|
|
</body>
|
|
</html>
|