Name: open-hpl Version: 1.3.30 Release: 1%{?dist} Summary: Native aarch64 port of Frictional Games' HPL engine License: GPL-3.0-or-later URL: https://github.com/lacamar/open-hpl Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz ExclusiveArch: aarch64 BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: perl-interpreter BuildRequires: ImageMagick BuildRequires: desktop-file-utils BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glu) BuildRequires: pkgconfig(zlib) BuildRequires: DevIL-devel BuildRequires: glew-devel BuildRequires: assimp-devel BuildRequires: libtheora-devel BuildRequires: libvorbis-devel BuildRequires: libogg-devel BuildRequires: openal-soft-devel BuildRequires: libjpeg-turbo-devel BuildRequires: angelscript-devel BuildRequires: fltk-devel BuildRequires: libX11-devel BuildRequires: libXext-devel BuildRequires: libXft-devel BuildRequires: fontconfig-devel Requires: hicolor-icon-theme %description Unofficial aarch64 Linux port of Frictional Games' GPLv3 HPL2 engine and Amnesia: The Dark Descent. Not affiliated with Frictional Games. Game data is not included: the launchers run against your Steam install. Experimental launchers for Amnesia: A Machine for Pigs, SOMA, Amnesia: Rebirth and Amnesia: The Bunker are included. %prep %autosetup -p1 %build cd HPL2/dependencies/newton-dynamics %cmake \ -DCMAKE_BUILD_TYPE=Release \ -DNEWTON_BUILD_CORE_ONLY=ON \ -DNEWTON_BUILD_SANDBOX_DEMOS=OFF \ -DNEWTON_BUILD_SHARED_LIBS=OFF \ -DNEWTON_WITH_AVX_PLUGIN=OFF \ -DNEWTON_WITH_REFERENCE_GPU_PLUGIN=OFF %cmake_build cd - newton=HPL2/dependencies/newton-dynamics/redhat-linux-build/lib install -Dpm0644 -t HPL2/dependencies/lib/linux/lib $newton/libdgCore.a $newton/libdgPhysics.a install -Dpm0644 $newton/libnewton.a HPL2/dependencies/lib/linux/lib/libNewton.a cd amnesia/src %cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DUSE_GAMEPAD=ON \ -DAMNESIA_WITH_SERIAL=OFF %cmake_build --target Amnesia --target Launcher --target Soma --target Rebirth --target Bunker cd - magick 'amnesia/src/game/Lux.ico[0]' %{name}.png %install pkgdir=%{buildroot}%{_libexecdir}/%{name} for b in Amnesia Launcher Soma Rebirth Bunker; do install -Dpm0755 -t $pkgdir amnesia/src/redhat-linux-build/$b.bin.%{_target_cpu} done install -Dpm0644 -t $pkgdir/compat soma/data/compat/*.dae install -Dpm0644 -t %{buildroot}%{_datadir}/%{name}/soma soma/data/script_api.txt install -Dpm0644 /dev/stdin $pkgdir/steam-common.sh <<'EOF' set -eu PKGDIR=%{_libexecdir}/%{name} # oh_gamedir : sets $gamedir oh_gamedir() { for steam in "$HOME/.steam/steam" "$HOME/.local/share/Steam" ""; do [ -n "$steam" ] || { echo "Open HPL: no Steam install found" >&2; exit 1; } [ -d "$steam/steamapps/common" ] && break done # Same size as the packaged placeholder, so the Steam icon wins the theme lookup. icon="${XDG_DATA_HOME:-$HOME/.local/share}/icons/hicolor/128x128/apps/$3.png" if [ ! -e "$icon" ]; then src=$(find "$steam/appcache/librarycache/$1" -maxdepth 1 -regextype posix-extended \ -regex '.*/[0-9a-f]{40}\.jpg' 2>/dev/null | head -n1) [ -z "$src" ] || install -Dm0644 "$src" "$icon" fi gamedir="$steam/steamapps/common/$2" [ -d "$gamedir" ] || { echo "Open HPL: install $2 via Steam first" >&2; exit 1; } } # The engine resolves data relative to its own binary. oh_deploy() { cmp -s "$PKGDIR/$1" "$gamedir/$2" || cp -f "$PKGDIR/$1" "$gamedir/$2" } # HPL3 depots ship only the .msh cache of these core meshes. oh_deploy_compat() { mkdir -p "$gamedir/core/models" for f in "$PKGDIR"/compat/*.dae; do [ -e "$gamedir/core/models/${f##*/}" ] || cp -f "$f" "$gamedir/core/models/" done } EOF launcher() { install -Dpm0755 /dev/stdin %{buildroot}%{_bindir}/open-hpl-$1 < - 1.3.30-1 - SOMA: spot shadows, box lights, light probes - SOMA: HDR tone mapping, colour grading, SSAO, depth of field - SOMA: terrain geometry and collision - SOMA: skybox colour, material sway, specular gobos - SOMA: FBX skeletons, bone sockets, animation events - SOMA: FMOD events, soundscapes, music - SOMA: terminal and GUI screens, hints, screen text - SOMA: props, critters, agents, step climbing - SOMA: gamepad profiles, fullscreen resolution, game mode panel - SOMA: 01_02 vent robot sequence, 01_03 intro - Source from GitHub - Drop unused upstream tools and sources * Wed Sep 30 2026 Lachlan Marie - 1.3.29-1 - SOMA: entity collide groups (bed no longer blocks the player) - Fix build with GCC 15 * Wed Sep 30 2026 Lachlan Marie - 1.3.28-1 - SOMA: run the game's own scripts (recovered script API) - SOMA: script player, input, interaction, doors, drawers, terminals - SOMA: voice, dialog, FMOD event sounds - SOMA: checkpoint and in-place saves - SOMA: official main menu and boot splash - Install script_api.txt * Thu Sep 24 2026 Lachlan Marie - 1.3.27-1 - SOMA: fix lighting shifting while turning (fog depth) - SOMA: fix blue lighting buffer - SOMA: hide inactive map entities (detached legs) - SOMA: fix oversized skinned meshes - SOMA: FXAA anti-aliasing - SOMA: phone ring and pickup sounds - SOMA: re-enable mesh cache * Wed Sep 23 2026 Lachlan Marie - 1.3.26-1 - SOMA: fix invisible drawers and doors (joint axis) - SOMA: pin jointed props, restoring frame rate * Wed Sep 23 2026 Lachlan Marie - 1.3.25-1 - SOMA: fix all meshes loading 100x too large - SOMA: drop mesh cache (caused a blue cast) * Mon Sep 21 2026 Lachlan Marie - 1.3.24-1 - SOMA: fix lighting (G-buffer sampling, per-light falloff/brightness) - SOMA: load normal maps (ATI2/BC5U) - SOMA: load decals, billboards, particles, fog areas, detail meshes, FBX meshes - SOMA: all 29 maps boot; several crash fixes - SOMA: mesh cache under XDG cache dir - Add assimp dependency * Sat Sep 12 2026 Lachlan Marie - 1.3.23-1 - No user-facing changes - internal diagnostics and documentation only, ahead of continued work on SOMA's real apartment map still rendering too dark. * Thu Sep 10 2026 Lachlan Marie - 1.3.22-1 - SOMA: fixed a crash loading the real apartment map right after the intro slideshow. * Wed Sep 09 2026 Lachlan Marie - 1.3.21-1 - SOMA: fixed a real bug that could cause the game to hang on a black screen right after launch instead of showing the boot splash. * Wed Sep 09 2026 Lachlan Marie - 1.3.20-1 - SOMA: fixed a real bug that could rewrite files inside your Steam install directory on launch, which could trigger a "files failed to validate" repair in Steam. * Wed Sep 09 2026 Lachlan Marie - 1.3.19-1 - SOMA: fixed real-time lights being silently culled and never rendered in the apartment map. The room still renders darker than intended - a further fix is in progress. * Wed Sep 09 2026 Lachlan Marie - 1.3.18-1 - SOMA: fixed a crash loading the real apartment map (collision-only meshes like block_box's could read a negative array index). * Wed Sep 09 2026 Lachlan Marie - 1.3.17-2 - SOMA: fixed an instant crash on launch ("Could not load vertex buffer from mesh 'core_box.dae'") by deploying the same compat meshes the Rebirth/Bunker launchers already deploy. * Wed Sep 09 2026 Lachlan Marie - 1.3.17-1 - SOMA: fixed a real bug causing the game to rewrite its own real Steam files on every launch, which could trigger repeated file-validation failures. - Engine binaries can now run against game data anywhere, without needing to be copied into the game's own install folder. * Tue Sep 08 2026 Lachlan Marie - 1.3.16-1 - SOMA: fixed the boot splash order, added the animated loading icon, and made loading genuinely gate skipping. - SOMA: fixed missing sounds (phone ring, car horns, and other ambient sounds) and added audio pause when the window loses focus. - SOMA: the intro slideshow now paces correctly, and Simon's phone call waits for the player to actually answer it. - SOMA: added a player HUD, a real in-game pause menu, and a difficulty select screen for New Game. * Mon Sep 07 2026 Lachlan Marie - 1.3.15-1 - Fixed a bug that could corrupt the real Steam game files during testing; test tooling now refuses to run against a real install. - SOMA: real animated loading icon, fixed menu music/ambience lingering into gameplay, fixed overlapping intro voice-over, real Options toggle switches and gamma-screen instructions, live resolution changes, and a new in-game pause menu (Escape). - SOMA: added the apartment map's phone-call scene. * Sun Sep 06 2026 Lachlan Marie - 1.3.14-1 - SOMA: fixed the remaining HDR-precision bug affecting box lights and fog areas (matches the earlier point-light/transparency fix). * Sun Sep 06 2026 Lachlan Marie - 1.3.13-1 - SOMA: fixed severe map-rendering corruption and invisible New Game intro slides/subtitles. - SOMA: real Options settings now actually work (resolution, anti-aliasing, field of view, subtitles, mouse sensitivity, rebindable keys). - SOMA: fixed the loading-bar's position/size on the boot screen. * Sat Sep 05 2026 Lachlan Marie - 1.3.12-1 - SOMA: real boot/splash sequence with loading bar, floating debris effect, custom cursor, real Options menu widgets and working menu sounds, and a New Game intro slideshow. - Partial fix for a window-resize rendering bug (still open for SOMA specifically; fixed for Amnesia: The Dark Descent). * Sat Sep 05 2026 Lachlan Marie - 1.3.10-1 - SOMA: menu music, a first-boot gamma calibration screen, a real Options menu (volume/gamma/vsync/fullscreen), and a real player controller (gravity, walking, jumping, collision) on gameplay maps. * Fri Sep 04 2026 Lachlan Marie - 1.3.9-1 - Fixed a window-resize bug (e.g. a tiling compositor fullscreening the window) that left rendering pinned to a stale-sized corner with the rest of the screen black. - Fixed the Launcher writing its config/log outside the XDG Base Directory spec. - SOMA: New Game now loads the real declared start map instead of a hardcoded wrong one. * Fri Sep 04 2026 Lachlan Marie - 1.3.8-1 - SOMA: rewrote the main menu to match the real game's own menu logic, read directly out of its shipped AngelScript source and debug-info binary - correct 1280x720-scaled layout, real background/dirt-corner art, an animated glitch title and cathedral ghost-trail effect, and real text-based menu buttons with the real teal highlight bar. * Fri Sep 04 2026 Lachlan Marie - 1.3.7-1 - SOMA: the main menu now uses SOMA's own real background/title art instead of a generic placeholder. * Fri Sep 04 2026 Lachlan Marie - 1.3.6-1 - SOMA: fixed the splash logos (wrong texture format, oversized second logo) and added a real interactive main menu (New Game / Quit). * Fri Sep 04 2026 Lachlan Marie - 1.3.5-1 - SOMA: added OPENHPL_SOMA_MAP env var to load a real map on normal boot. - Trimmed this file and README.md. * Fri Sep 04 2026 Lachlan Marie - 1.3.4-1 - SOMA now renders real lit, textured, correctly-exposed geometry: fixed missing light/skybox/fog shader uniforms, applied SOMA's own per-area exposure data, and fixed an HDR precision bug in glass/translucent materials. See PORTING_NOTES.md for details. - Headless test runs no longer wake the screen, play sound, or run more than one instance at once (dev/CI tooling only, no effect on normal play). * Thu Sep 03 2026 Lachlan Marie - 1.3.3-1 - Added a regression test suite (CTest) covering string/path helpers and SOMA's shader transpiler. - Added a "Show FPS" checkbox to Options > Graphics. - Minor rendering optimization: skip redundant texture-unit rebinds. - Wayland: exclusive fullscreen now degrades correctly; Launcher window now has a proper app-id. - Fixed two headless-automation-server crashes/bugs (dev tooling only). - SOMA/Rebirth/Bunker: extended the shader transpiler, added entity/area loaders for Rebirth, fixed Bunker's spawn point. All three remain tech-preview, pre-alpha. * Wed Sep 02 2026 Lachlan Marie - 1.3.2-1 - Save games, config, logs, map caches, and screenshots now follow the XDG Base Directory spec instead of scattering across ~/.frictionalgames, the Steam game directory, and ~/Desktop. Existing saves are migrated automatically on first run. * Wed Sep 02 2026 Lachlan Marie - 1.3.1-12 - Fixed the in-game UI Scale setting at 2x/3x/4x: several screens (loading screen, HUD, inventory, journal, credits) rendered oversized and spilled off-screen. Also fixed a crash in the headless test server hit while verifying this. * Wed Sep 02 2026 Lachlan Marie - 1.3.1-11 - Fixed desktop-entry icons often showing the generic placeholder instead of each game's real Steam thumbnail. - Added "Open HPL" branding/keywords to all desktop entries. * Wed Sep 02 2026 Lachlan Marie - 1.3.1-10 - Fixed the splash/pre-menu screens not skipping on most keypresses. - Added an opt-in hidden-window mode to the headless automation server. - Added three more EXPERIMENTAL desktop entries (SOMA, Amnesia: Rebirth, Amnesia: The Bunker), each a native aarch64 Phase 0 scaffold: boots the engine against that game's real data and shows one map via a free-fly debug camera, no player/menu/scripts yet. * Tue Sep 01 2026 Lachlan Marie - 1.3.1-9 - Fixed the UI Scale setting (added in 1.3.1-7): most menus and the splash screen were unusable at 2x/3x/4x. * Tue Sep 01 2026 Lachlan Marie - 1.3.1-8 - The Launcher and game windows now run as native Wayland clients instead of through XWayland. * Tue Sep 01 2026 Lachlan Marie - 1.3.1-7 - Fixed the resolution dropdown dropping options shared between two displays. - Added an in-game UI Scale control (Options > Graphics). * Tue Sep 01 2026 Lachlan Marie - 1.3.1-6 - Fixed a real engine bug: teleporting the player mid-fall could tunnel through floor collision at the destination. * Mon Aug 31 2026 Lachlan Marie - 1.3.1-5 - Re-added an experimental "Amnesia: A Machine for Pigs" entry, this time running Dark Descent's real native binary against AMFP's data (no x86_64 emulation). Level data loads and scripts run; some collision/gameplay bugs remain. * Mon Aug 31 2026 Lachlan Marie - 1.3.1-4 - Removed the box64-based Machine for Pigs entry - this project is native-aarch64-only, no emulation fallback. * Mon Aug 31 2026 Lachlan Marie - 1.3.1-3 - Source refresh only; no shipped-binary changes. Picks up early reverse-engineering work on AMFP and SOMA. * Sun Aug 30 2026 Lachlan Marie - 1.3.1-2 - Split the desktop entry into per-game entries; added a soft box64 dependency for the (since-removed) Machine for Pigs entry. - Fixed the Launcher hardcoding the wrong binary name on non-x86 targets. * Sun Aug 30 2026 Lachlan Marie - 1.3.1-1 - Renamed from amnesia-dark-descent to open-hpl. No functional changes.