This is a fork of a the original Alicorn repository. See the original README there. The name ALAL stands for ALicorn Again Launcher.
ALAL is not compatible with Alicorn Legacy. The data file format is updated and containers have changed a lot. No backward compatibility is guaranteed.
Many packages of the original author is not possible to update in a few commits, they might get updated soon to avoid
vulnerabilities, but with no warranty. All NPM packages are now up-to-date, though at the cost of considerable amount
of breaking changes.
The fork is made to keep the software alive, not a follow-up or series. The updates are made out of good intentions, but still, with no warranty.
We attempt to make ALAL a modern launcher with latest features integrated. Therefore we've made several changes to the dependencies and code. Naming some:
-
No longer supports Windows 7, 8 and 8.1, macOS 10.13, 10.14.
-
No longer supports 32-bit OS.
-
Add support to aarch64 / arm64 architectures.
-
Improve UI.Redesign UI. -
Improve performance.
-
Improve mod resolution system.
The following build steps should work for most targets. They are already tested on local machine, but with only a little coverage. Run the following scripts with care and open an issue if they refuse to work.
We're continue using webpack for script bundling, but the distribution has changed to electron-builder. We've configured several targets for the new build system:
-
Debug - Development build for realtime testing and running. Used actively during the code-and-test process. This target contains source map for tracing.
-
Autotest - Newly introduced build for automated testing. Test modules are embedded into the application by a specially designed test entry. The test system runs parallely with the application, reflects the most realistic and convincing test results. This target builds using development config, but without a source map.
-
Release - Production build for releases. This is not the final version handed to users, but being part of the ingredients.
-
Node.js 18+
-
Git
-
Node.js toolchain (If building native libraries on Windows ARM)
We've created seperated all-in-one scripts for the build. Below is an example of running the autotest build, but * debug* and release are also similar.
Please note that this is not stable and may change at any time.
-
Clone the repository.
git clone https://github.com/skjsjhb/ALAL.git --depth 1
If you're trying to contribute, please consider fork first, rather than cloning directly.
-
Enable corepack and install deps:
corepack enable && yarn
You may encounter build failures for this step. If you see anything related to
lzma-native
, this is OK - Your platform does not have prebuilt binaries and nor can the build tools create one. See Hints below for details about this. -
Bundle scripts:
yarn bundle-autotest
-
Run test with ALAL Test Tool:
yarn test
-
Optionally pack the autotest build for distribution. Autotest and debug builds are not targeted towards users, but their bundles may have other particular usages.
yarn make-autotest
Output files locates in
dist/<target>
.
-
lzma-native
is disabled by default for platformwin32-arm64
anddarwin-arm64
(and other platforms not officially supported), as the library does not came with a valid prebuilt (either missing or malfunctioned). ALAL uses a JS-based implementation under this case. Usages of LZMA are also reduced.However, the software version is comparably slow and (more importantly) unreliable due to the lack of maintenance of the package. You might want to enable
lzma-native
manually. To do that:-
Confirm that
lzma-native
has been built successfully (yarn
and check for any errors). -
Rebuild libraries using
@electron/rebuild
(yarn electron-rebuild
will work). -
Edit
resources/build/feature-matrix.json
, and add an entry:{ "enable": true, "platform": "^win32-arm64$", // Or your platform name "value": [ "lzma-native" ] }
-
Edit
resource/build/resource-map.json
, and add a field:"<source/to/your/build>": "natives/lzma/${platform}/electron.napi.node"
Where
<source/to/your/build>
should be the path to the rebuilt binaries for electron. If there are any dependencies (e.g.liblzma.dll
), add extra entries to make the copy plugin realize them. -
Run to check whether these modifications work.
-
-
The package script only builds the same output as the runner's platform. i.e. On macOS only macOS packges are built, etc. However, architecture of the host does not matter. (x64 packages can be built on arm64 and vice versa)
-
If you're using yarn v1, do not run
yarn
directly. It will refuse to install.
Copyright (C) 2020 - 2022 Annie K Rarity Sparklight (ThatRarityEG). For Alicorn Launcher.
Copyright (C) 2023 Ted "skjsjhb" Gao (skjsjhb). For Alicorn Again Launcher.