Skip to content

Onslaught CE V0.1.12

Choose a tag to compare

@dlprentice dlprentice released this 29 Oct 17:22

0.1.12 fixes the menu music playing twice for players who had saved a sound setting other than its default (details under What's new).

Getting 0.1.12

If you have 0.1.8, 0.1.9, 0.1.10 or 0.1.11: start Onslaught CE as usual. It finds this update, checks its signature and asks you; say yes and
it installs 0.1.12 inside its own folder and restarts. Your careers and settings are kept, and running the launcher with --rollback
(how) takes you back to the version you had if you need it. (On Linux the update check needs the system curl.)

On Linux, the 0.1.8 and 0.1.9 launchers can crash before they ask anything when zenity is not installed and the 32-bit libXrandr
is missing: the dialog they fall back to calls into that library without checking that it is there. If yours closes at once, install
zenity (or your distribution's 32-bit libXrandr) and start it again, or set update_check=0 in ce.ini (in your user folder, ~/.local/share/onslaught-ce by default; --no-update-check or
BEA_NO_UPDATE_CHECK=1 does the same) and download 0.1.12 by hand as below. The 0.1.10, 0.1.11 and 0.1.12 launchers check first, show their questions on the terminal when no dialog works, and otherwise never install
anything without your answer.

If you have 0.1.0 to 0.1.7: these cannot update themselves, so download 0.1.12 once by hand:

  1. Close Onslaught CE.
  2. Locate your launcher and game user-data folders. The default is $XDG_DATA_HOME/onslaught-ce on Linux (~/.local/share/onslaught-ce if unset or empty) or %APPDATA%\Onslaught CE on Windows. A custom or relative BEA_USER_DIR can put the two folders in different places. Follow the manual migration guide, copy each complete data folder to an independent safe location, and verify each backup before proceeding.
  3. Download the 0.1.12 package for your system below.
  4. Extract it into a new, empty folder.
  5. Before launching, keep the same default user-data location if you use the default, or follow the migration guide to prepare a separate working copy and set an absolute BEA_USER_DIR if you used a custom or relative folder. Then run onslaught-ce (Linux) or onslaught-ce.exe (Windows) from the new folder using the same account. Check that your careers and settings appear, keep the verified backups, and point your shortcut at the new folder.

Never run the old launcher again (why). From then on it updates itself.

New players: download the package for your system, extract it into a new empty folder and run it. You need your own PC
copy of Battle Engine Aquila (testing uses the Steam edition); no game files are included.

What's new

  • The menu music no longer plays twice. If you had saved a sound setting that differs from the game's default (for example Sound quality set to "High (44 Khz, 16 bit)"), the game
    started the front end's music twice: two copies of the track played out of step, and in levels the battle music then played over the menu music. A player on 0.1.10 reported it on Windows;
    in the log (onslaught-ce.log) the sign is outstanding_music_starts=2 just after the front end starts. The game's own start-up order does this: when it reads your saved options
    it brings the sound up once, before its window exists, and starts the front end's track; it then brings the sound up again, and the first copy of the music was never stopped. Onslaught CE
    now stops the first copy when the second one starts, so one track plays at a time. Only players whose saved options change a sound setting were affected, on Windows and on Linux; if you worked around it by putting the
    setting back to its default, you no longer need to. In a Windows 11 virtual machine with the saved sound rate set to "High (44 Khz, 16 bit)", 0.1.11 started the front end's track twice (outstanding_music_starts=2) and 0.1.12 starts it once. What was checked, on which system, and what was not, is under Validation and limits below.
  • The package's README.txt names mods and the save error message. The README.txt inside both packages now describes the experimental mods (Linux only, not active on Windows)
    and the save error message added in 0.1.11, as the project README does, so a player with only the package finds them.

Gameplay is the faithful port as before. Keep a custom BEA_USER_DIR separate from the original game, and avoid editing
ce.ini while Onslaught CE or another settings tool is running: concurrent settings writes can overwrite one another.

Fixes

  • Documents. The project README's "Last updated" dates were brought up to date, its "planned" line now says that mods exist (an early test on Linux, not active on Windows), and it lists the doubled
    menu music as corrected in 0.1.12.

Downloads

Linux needs the documented 32-bit Vulkan driver and system libraries. The Windows executable is unsigned, so SmartScreen may warn you (More info, then Run anyway).

Validation and limits

  • Both packages were built twice from the public source and are byte-identical; a third clean build, made from a fresh clone of the public repository at the commit this release is tagged at, reproduces them byte for byte.
  • Gameplay matches the original game on every available reference row of the recorded checks for levels 100, 200, 221, 400, 512, 521, 611, 800 and 860 (RC-REPORT.txt gives the row counts, including the rows the original's reference does not have). A longer recorded session of level 100 (8,882 frames) also matches on every compared value. It does not compare pointer values (834,626 of them are listed as unverified in RC-REPORT.txt) or the full CPU floating-point state, and it excludes the unused padding words of 32 matrix fields in the battle engine's data (295,658 bytes, one more than in 0.1.11, all in the same padding words): some of those words differ even between two runs of the original game, and an independent reviewer accounted for every excluded byte. The Windows build was checked under Wine in an isolated sandbox on level 100, directly (to frame 3,000) and through the launcher (to frame 600). The recorded runs hold the default sound settings, so they never take the start-up path the music fix changes: they show that nothing else moved, not that the fix works (the entry below says what was checked instead).
  • The music fix, checked on the packages. Linux (an ordinary run of the packaged game, offscreen; dummy audio, so the checks count music streams and nothing is played), with the game's options file changed only in its sound rate ("High (44 Khz, 16 bit)"): the published 0.1.11 package started a music stream at Present 0, before the settings line, set up a second stream at Present 1 without stopping the first, and the front end's start at Present 5 made outstanding_music_starts 2; this release's package stops the first stream when the second is set up (stream re-initialised: the earlier stream is shut down first, outstanding_music_starts back to 0), and the front end's one start leaves it at 1. Windows 11 virtual machine (offline, software rendering), the same saved sound rate in the user folder: the published 0.1.11 package shows the same sequence, at Presents 0, 1 and 5, outstanding_music_starts=2, and this release's package the fixed one (Presents 0, 1 and 6; never above 1; one start at the front end). With the default sound settings both packages set up one stream and start one track. The production music worker was also run in a test driver (8 of 8 cases; without the change two music buffers play at once), and the music and audio test suites pass (development checks, not part of the release-candidate list). Not checked: what a speaker plays, physical sound devices, and the original game under Windows' own DirectSound: the Windows run uses Onslaught CE's sound layer, so it says nothing about the original.
  • Moving from 0.1.11 and from 0.1.10 was tested on Linux (from 0.1.11) and on Windows 11 (from each, in a virtual machine, software rendering): with the old version's user folder and a real career save, 0.1.12 in a new folder found the game on its own and showed the careers in Load Game; on Linux it also took the game folder and the windowed setting from ce.ini. The save and ce.ini were byte-for-byte unchanged, and the old install and the folders, files, links and junctions beside it were untouched.
  • The update from 0.1.11, tested right after publishing, on Linux and on Windows 11 (in a virtual machine, online): the published 0.1.11 found this release's signed update, asked, and after Update downloaded it, checked its size and SHA-256 against the signed list and installed it beside 0.1.11; --version then showed 0.1.12 (build 1911463), and --rollback returned to 0.1.11. The career save and ce.ini were unchanged throughout (on Windows byte-identical after the update and after the rollback), and the old install's files were untouched (on Linux the folders beside it too). Updating from 0.1.8, 0.1.9 and 0.1.10 uses the same updater and signing key; it was not run against this release.
  • Career saves, checked on the release packages. Linux: the real game was driven through New Game with a name that exists both in the original game's savegames folder and in the Onslaught CE folder. It asked once; Yes wrote the new career into the Onslaught CE folder (10,004 bytes) and left the original byte-identical, and No went back to the name screen with both files unchanged. Windows 11 (virtual machine, NTFS): the same route gave one question, the message "A new game has been created.", the new career in the Onslaught CE folder (10,004 bytes) and the original byte-identical; and the replace code, whose sources are unchanged since 0.1.11, ran natively against NTFS in 38 cases (new and existing names, writes that fail, stop short or read back wrong, a rename refused while another program holds the file and then released, the process killed at each of seven steps, a reader and a writer on the same career at once): each left the new career or the old one whole, never a partial file, and no temporary file listed. Not exercised by a person: antivirus holding a career while it is saved, and a physical disk that fills or disappears.
  • Bonus levels. On Windows 11 (virtual machine), Aquila Prototype, Defence A and Defence B each loaded, paused and quit back to the menu (the co-op levels in split screen, drawn with the virtual machine's software renderer, so their terrain colours there are not what a graphics card shows); the career save and ce.ini were byte-for-byte unchanged afterwards.
  • Photo mode is unchanged since 0.1.10. On Windows it was tried again, only in a virtual machine with software rendering. On the release package, in level 100: F11 hid the cockpit and the HUD, F12 saved a 640 x 480 PNG without them or the on-screen note, and the second F11 brought everything back; the game then quit normally. It has not been seen on a physical Windows graphics card.
  • Not run again in the virtual machine: the sharper text, the mods refusal, the save-failed message and the tape stop of 0.1.11, because this release does not touch their code. On Linux, this release's package was run through them again: a missing tape, a tape set together with a recording and a probe file that cannot be written each printed their message and exited with status 3 and no crash record; with a read-only folder, the note at the bottom of a level and the French error box on a language change were drawn; and a mod that recolours the battle engine's hull turned it red in the frame (a run on the virtual clock leaves mods unloaded).
  • Offline, the launcher reaches nothing and installs nothing (Windows 11 network capture: no connection attempt and no traffic beyond DNS lookups, which get no answer offline; the firewall log has no row for the launcher or the game): --update-only reports that no feed was reached, and --apply is refused. A normal start with the update check on also looks up the feed's host (github.com), so such a lookup can appear in a capture; offline it goes unanswered.
  • The Windows 11 and update runs above were separate from the release-candidate checks that RC-REPORT.txt lists. Controllers were tested with simulated devices, with no window on a screen.

Not tested: physical gamepads, flight sticks and rumble motors, physical AMD, NVIDIA or Intel graphics on Windows, other Linux distributions with these packages, and audible sound on a real device. RC-REPORT.txt also lists what its runs did not exercise (fullscreen and the Wayland-only window path, the folder-picker and message-box dialogs, opening a browser from Report a problem, session recording and the log file on Windows); the Windows 11 runs above looked at the Windows log file and the normal game exit, not at those.

If a problem occurs, choose Onslaught CE > Report a problem (or open an issue on the Issues page), say what happened and roughly when, and attach onslaught-ce.log from your CE user folder (details). Look the log over before sharing it.

Related work: Companion, Godot rebuild, decompilation, preservation documentation.