Repository navigation
MJOLNIR CLI cli-v0.4.0
Classic map lightmaps re-solved on your GPU, at any resolution
Re-solve a classic Halo CE map's lightmaps with its original radiosity, at several times the shipped resolution and on your GPU, plus per-game-type vehicles.
This release brings the lighting behind the re-lit classic maps: the CLI now
solves a classic map's lightmaps itself, the way the original level tools
did, at a resolution of your choosing. It also carries the converted maps'
per-game-type vehicles and scenery that stops bullets.
Added
mjolnir level lightmaps <staging> <scene.gltf> <out>solves a
classic map's lightmaps with Halo CE's own radiosity: the sky's sun and
fill, the light that glowing surfaces give off, and the light bouncing
between surfaces. It writes pages at a multiple of the shipped pages' size
(--scale autopicks the largest that stays within budget, up to 2048 a
side), drawing the sun and fill at every texel so shadow edges stay crisp.
Two companion pages per lightmap page record where the sun reaches and the
light without the sun, for the converted maps' Unreal lighting.- It runs on your GPU. The rays go through the graphics card's ray
tracing hardware where it has some (Vulkan), otherwise through a compute
shader (Vulkan, DirectX 12 or Metal), and the solve falls back to the CPU
when there is no usable graphics card. On an RTX 5090 Blood Gulch solves
in 9 seconds and Gephyrophobia in about 2 minutes (under 5 on 32 CPU
threads).--cpukeeps everything on the processor. - Options for the curious:
--comparescores a solve against the
map's shipped lightmaps,--batchtrades a little fidelity for speed,
--texel-elementsstops patches from getting finer than the page can
show,--element-edgesdraws the patches over each page, and--verbose
reports where the time and the light went. mjolnir megalo write --vehicle-label-pooland--require-label
write game types that place each team's vehicles the way Halo CE's game
variants did, so a converted map no longer spawns every game type's
vehicles at once.
Changed
- Scenery blocks bullets.
mjolnir level collisionnow builds a placed
object's collision into the level's collision tree, so projectiles hit
Covenant shields and similar scenery that players and vehicles already
collided with.
Install
Windows
scoop bucket add mjolnir https://github.com/devnull9090/mjolnir-core
scoop install mjolnirmacOS and Linux (Homebrew)
brew tap devnull9090/core https://github.com/devnull9090/mjolnir-core
brew install mjolnirDebian, Ubuntu — sudo dpkg -i mjolnir_0.4.0_amd64.deb
Fedora, RHEL, CentOS, openSUSE — sudo rpm -i mjolnir-0.4.0-1.x86_64.rpm
Or take an archive below, unpack it anywhere, and put that folder on
your PATH. The Linux binary is statically linked, so it runs on any
distribution without installing anything alongside it.
Downloads
| File | SHA-256 |
|---|---|
| mjolnir-0.4.0-windows-x64.zip | 1ad1337e303e3d8b5e19ff53c99ae544e8e4aa290e9f0bc11424a22ae59da83a |
| mjolnir-0.4.0-linux-x64.tar.gz | 79241cd6a03e3f24e7ffa534b6ce81affaebe3bd341ddcd069998ca9cbd0bf34 |
| mjolnir-0.4.0-macos-universal.tar.gz | c3814058661e08d5c7adf500cb38d2dc222acc7551451bed004bb4ba8103c79c |
The macOS build is a universal binary — the same file runs on Intel
and on Apple Silicon. .deb and .rpm checksums are in the
checksums file attached below.
Verify your download
(Get-FileHash .\mjolnir-*.zip -Algorithm SHA256).Hashshasum -a 256 mjolnir-*.tar.gzCompare the output with the checksum above. They must match exactly.