nemo's blog

DLC issues for Hedgewars 1.0.0 on Windows

[Update 2021-12-02] Thanks to sheepluva for a manual fix to our cert, 1.0.0 direct link should work again in Windows. However, the unit22 link will not, at least for now.

One of the interesting things about Windows is that almost all distribution is similar to the "Snap/Flatpak" model - instead of distros managing packaging and updating with a single library used by hundreds of apps, all libraries have to be included by the app, with hundreds of copies of the library instead. This lack of unified package management probably explains 20GB C:\Windows\Installer folders too.

It appears the version of OpenSSL in the 1.0.0 Hedgewars is no longer functioning with DLC. This could be due to: https://scotthelme.co.uk/lets-encrypt-old-root-expiration/

As a workaround pending a new release, Windows users can access the DLC page here (it's the exact same page that is shown in client):
https://hedgewars.org/content.html

You can then download the HWPs off that page and manually copy them to your Data folder which should be My Documents/Hedgewars/Data. The icon in the lower right on the DLC page should also open this folder and should still work.

how do i update it on mint

So at 1:07 in the morning my time, someone from the other side of the world posted this...
01:07 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint
01:09 < REDACTED> how do i update it on mint

Then quit...

Seemed like a good opportunity to cover your options when you are on linux.
First off, usually your package manager is responsible for this, not the people volunteering to bang code together (although we often end up doing distro tech support too).

Mint is an interesting case. It's loosely based off ubuntu, but without the "App Store" so installing packages is a bit more Debian-y.
Basically on Ubuntu/Mint in order of preference you should use:
1) Official release package if it is up to date
2) Backports/Updates package if it is up to date
https://help.ubuntu.com/community/UbuntuBackports
https://backports.debian.org/Instructions/

3) https://launchpad.net/~costamagnagianfranco/+archive/ubuntu/hedgewars (PPA by the current maintainer of the Debian/Ubuntu packages)

Debian/Devuan is about the same except (3) is manual and at your own risk.

If all else fails, you can try installing the .debs for the version of Debian or Ubuntu that most closely matches what your distro was derived from, or try our build instructions.
https://www.hedgewars.org/kb/BuildingOnLinux

I haven't brought up other distros here, but usually we don't have problems with them. Occasionally with Arch.

32bit linux now works again using pas2c.

A bit of history. With Hedgewars 0.9.23, we shifted to SDL2. While there were a fair # of SDL2 related issues that had to be addressed, there was one we didn't notice. Unbeknownst to us, FreePascal had an alignment bug. This was triggered by a CPU feature detection in SDL2 which could not be disabled, causing instant crashes.

It took a while for us to be aware of this since there aren't many 32 bit linux users, and many of them were on a long-term stable like Debian. Eventually they caught up and the error report feedback flooded in, this year in particular with 0.9.24.
I did reply to many of these feedbacks, but Google tends to send my emails to the Spam folder (which GMail users never check), so I got few responses.

With 0.9.25, we reenabled pas2c. What is pas2c? It was a tokeniser written in Haskell long ago by unc0rr to support the emscripten toolchain. At the time it went something like this. Pascal source —(Haskell tokeniser)→ C sources —(Clang)→ LLVM —(Emscripten)→ Javascript.
This worked, and we got an actual playable hedgewars in web browsers. Unfortunately the project has not been maintained.

Fortunately, pas2c still exists, so after some tweaking of the source code and fixing a few errors, it was usable once more for build purposes. You can use it to target any platform clang supports, extending the supported platforms for distros quite a bit.
We also attempted to force-enable it in CMakeLists.txt for 32 bit linux - you can see that here:
https://hg.hedgewars.org/hedgewars/file/06672690d71b/CMakeLists.txt#l72

The upshot is that Haskell is now a required dependency for 32 bit linux builds. The good news is that clang is a bit better at optimisation than FreePascal, so in general things load and run faster if you build using pas2c.

0.9.23 tries to catch files that might crash the game early. A few bad HWPs have been floating around that could cause this.

• Any that have an old version of the Beach theme - beach is now an official theme and they are likely to mismatch.

• Hedgecraft - unfortunately the Hedgecraft HWP was badly packaged and overrides rubber globally, instead of just in the mod.

Any lua script that modifies key images that could change the map like girder, rubber or theme objects needs to be packaged like this:
MAIN.HWP → script.lua, script.hwp

With the override graphics of the script.hwp kept safely tucked away.

That way script.hwp will only be loaded when script.lua is launched.

Anyone feel like testing a beta?

As usual w/ betas, we haven't added much content yet, art might change etc. If anyone has content they totally feel should be included, feel free to package something up. Ideally as a proper hwp for easy testing/inclusion.

Anyway, after firing up the Windows VM and issuing the usual imprecations, the following was produced:
Windows 0.9.22-BETA2

As usual, Linux users are hopefully using:
Building on Linux
to stay up to date, and OSX users are SOL until an OSX user does a build.

To do your own build, please use revision 599bb42d7448 (hg pull -u;hg up -r 599bb42d7448;cmake .;make install)

*beta bump - few bug fixes, techracer changes, nothing too dramatic. we are slackers.

Syndicate content

User login

Copyright © 2004-2024 Hedgewars Project. All rights reserved. [ contact ]