Important
This is a beta, technology preview, or whatever other label you have in mind for a pre-release software.
This fork tracks upstream and additionally carries the following work:
- Dialogue text scaling and a resizable window (see Configuration).
- Optional FFmpeg-based Bink movie playback on macOS and Linux, including support for high-resolution (upscaled) movies (see Building from source).
- The following upstream pull requests, merged ahead of upstream:
The game is ready, but I haven't tested everything - just the speedrun - and that was about three months ago, so things might have changed since then.
Regarding the source code, about half of the modules (not half of the code) are in good shape. All APIs have meaningful names, along with brief documentation, annotations, and explanations (see skill.c and quest.c as examples). The other half may have cryptic names, little to no symbols , and no documentation at all (anim.c is extremely large and hard to understand).
You must own the game to play. Purchase your copy on GOG or Steam.
Minimum installation
```
.
├── arcanum1.dat
├── arcanum2.dat
├── arcanum3.dat
├── arcanum4.dat
├── modules
│ ├── Arcanum
│ │ ├── movies
│ │ │ ├── 00069.bik
│ │ │ ├── 01138.bik
│ │ │ ├── 02112.bik
│ │ │ ├── 50000.bik
│ │ │ ├── 51169.bik
│ │ │ ├── 91568.bik
│ │ │ ├── A0021.bik
│ │ │ ├── G0021.bik
│ │ │ └── movies.mes
│ │ └── sound
│ │ └── music
│ │ ├── Arcanum.mp3
│ │ ├── Caladon.mp3
│ │ ├── Caladon_Catacombs.mp3
│ │ ├── Cities.mp3
│ │ ├── Combat 1.mp3
│ │ ├── Combat 2.mp3
│ │ ├── Combat 3.mp3
│ │ ├── Combat 4.mp3
│ │ ├── Combat 5.mp3
│ │ ├── Combat 6.mp3
│ │ ├── CombatMusic.mp3
│ │ ├── Dungeons.mp3
│ │ ├── DwarvenMusic.mp3
│ │ ├── Interlude.mp3
│ │ ├── Isle_of_Despair.mp3
│ │ ├── Kerghan.mp3
│ │ ├── Mines.mp3
│ │ ├── Qintara.mp3
│ │ ├── Tarant.mp3
│ │ ├── Tarant_Sewers.mp3
│ │ ├── Towns.mp3
│ │ ├── Tulla.mp3
│ │ ├── Vendegoth.mp3
│ │ ├── Villages.mp3
│ │ ├── Void.mp3
│ │ └── Wilderness.mp3
│ ├── Arcanum.PATCH0
│ ├── Arcanum.dat
│ └── Vormantown.dat
└── tig.dat
```
Download and copy arcanum-ce.exe to your Arcanum folder. It serves as a drop-in replacement for arcanum.exe.
-
Use the Windows installation as a base - it contains the data assets needed to play. Copy the
Arcanumfolder somewhere, for example/home/john/Desktop/Arcanum. -
Alternatively, you can extract the required files from the GOG installer:
$ sudo apt install innoextract
$ innoextract ~/Downloads/setup_arcanum.exe -I app
$ mv app Arcanum-
Download and copy
arcanum-ceto this folder. -
Run
./arcanum-ce.
Note
macOS 10.13 (High Sierra) or higher is required. Runs natively on Intel-based Macs and Apple Silicon.
-
Use the Windows installation as a base - it contains the data assets needed to play. Copy the
Arcanumfolder somewhere, for example/Applications/Arcanum. -
Alternatively, if you have Homebrew installed, you can extract the required files from the GOG installer:
$ brew install innoextract
$ innoextract ~/Downloads/setup_arcanum.exe -I app
$ mv app /Applications/Arcanum-
Download and copy
Arcanum Community Edition.appto this folder. -
Run
Arcanum Community Edition.app.
These ports are not currently intended for players. Touch controls are not yet implemented, and window management is subpar. No further instructions will be provided until these issues are resolved (but you can easily figure it out, it's not rocket science).
Check ci-build.yml for details on how the project is compiled.
Bink movies (the intro and cutscenes) are decoded through RAD's binkw32.dll on
Windows. That DLL is Windows-only, so on other platforms movies are skipped by
default.
Configuring with -DARCANUM_BINK_FFMPEG=ON enables an FFmpeg-based decoder so
movies play on macOS and Linux. It requires the FFmpeg shared libraries
(libavcodec, libavformat, libavutil, libswscale, libswresample) to be
installed, for example brew install ffmpeg or apt install libavcodec-dev libavformat-dev libswscale-dev libswresample-dev. The libraries are loaded at
runtime, so if they are missing the game still starts and simply skips movies.
FFmpeg is used under the LGPL and is not linked at build time.
Several configuration options are available as command-line switches (admittedly not very user-friendly):
-
-4637: Enable cheat level 3 -
-window: Run in windowed mode (default is fullscreen) -
-geometry=1280x720: Set window size (default is 800x600)
When HighRes/config.ini from the Unofficial Arcanum Patch is present in the game directory, Community Edition also imports Width, Height, Windowed, ShowFPS, ScrollFPS, ScrollDist, Logos, and Intro at startup.
In windowed mode the window is resizable. The framebuffer is scaled with nearest-neighbor filtering, so the picture stays sharp when the window is enlarged.
DialogScale (in HighRes/config.ini) enlarges conversation text, which is helpful on high-DPI displays where the original bitmap fonts render very small. It accepts a float in the range 1.0 to 3.0 (values above are clamped); 1.0 (the default) keeps the original size. Both the player's dialogue options and the NPC reply are scaled, the reply bubble is widened so long lines wrap sensibly, and the reply is kept clear of the options box to avoid overlap. Example:
Width=1024
Height=768
Windowed=1
DialogScale=2.0Play the game and file bugs if any (there are likely many). Attach a save game for investigation. Suggestions for quality of life improvements are also welcome. The major objective for 25H2 is to clarify remaining functions.
The source code is this repository is available under the Sustainable Use License.