ironwail icon indicating copy to clipboard operation
ironwail copied to clipboard

Make Ironwail compatible with The Immortal Lock

Open mikae1 opened this issue 1 year ago • 8 comments

The Immortal Lock (made for vkQuake) can work in Ironwail with some modifications. Please make those modifications if possible.

mikae1 avatar Jul 20 '24 17:07 mikae1

You might want to try the latest dev build (scroll to the bottom for downloads) :)

The only relevant modification in the Slipseer build is an increased default memory size, which is wasteful for pretty much all other maps in existence. Instead, I've changed the memory allocator to request more memory when needed (https://github.com/andrei-drexler/ironwail/commit/bdb8f7bda1509554db2f179eb40af174a0cf22e3).

andrei-drexler avatar Jul 20 '24 18:07 andrei-drexler

Instead, I've changed the memory allocator to request more memory when needed (bdb8f7b).

Oh, way cool! Thanks for patching so fast! 🙌

You might want to try the latest dev build (scroll to the bottom for downloads) :)

Thanks, but sadly I need a Linux build. 🫤

mikae1 avatar Jul 24 '24 21:07 mikae1

I was able to build and play The Immortal Lock on Linux. If you're using Arch Linux, the following PKGBUILD should work.

pkgname=ironwail-git
_pkgname=ironwail
pkgver=20240724
_commit=070c1642e6e06f199f33fe49f6d1760ba0b1e06b
pkgrel=1
pkgdesc="A modern Quake 1 engine forked from QuakeSpasm."
arch=('i686' 'x86_64')
url="https://github.com/andrei-drexler/ironwail"
license=('GPL2')
depends=('curl' 'glibc' 'hicolor-icon-theme' 'libglvnd' 'libmad' 'libogg' 'libvorbis' 'sdl2')
provides=('ironwail' "ironwail=${pkgver}")
conflicts=('ironwail')
install=ironwail.install
source=(${_pkgname}-${_commit}.tar.gz::"https://github.com/andrei-drexler/ironwail/archive/${_commit}.tar.gz"
        'ironwail.desktop')
sha256sums=('212bef9d2b0c739a36f9750a835b427cbb16a70b45033962577ded5f58a0cb3a'
            '556d325f06dd77e17fe0419122a3636ee9fde06465589aed8b12254f6471a9be')

build() {
  cd "${srcdir}"/${_pkgname}-${_commit}/Quake
  make DO_USERDIRS=1 USE_SDL2=1
}

package() {
  cd "${srcdir}"/${_pkgname}-${_commit}
  install -Dm0755 Quake/ironwail "${pkgdir}"/usr/bin/${_pkgname}
  install -Dm0644 Misc/QuakeSpasm_512.png "${pkgdir}"/usr/share/icons/hicolor/512x512/apps/${_pkgname}.png
  install -Dm0644 "${srcdir}"/${_pkgname}.desktop "${pkgdir}"/usr/share/applications/${_pkgname}.desktop
}

Here's the desktop file.

[Desktop Entry]
Type=Application
Name=Ironwail Quake
Icon=ironwail
Exec=ironwail
Categories=Game;Shooter;
Comment=Quake (ironwail engine)
Terminal=false
StartupNotify=false

And here's the ironwail.install file.

post_install() {
  echo -e "\x1B[01;93m==>\x1B[0m"
  echo -e "\x1B[01;93m==>\x1B[0m\033[1m To play Quake, copy the pak0.pak and pak1.pak game data files to '~/.ironwail/id1'.\x1B[0m"
  echo -e "\x1B[01;93m==>\x1B[0m\033[1m To play Quake mission packs, copy the hipnotic, impel, and rogue game data directories to '~/.ironwail'.\x1B[0m"
  echo -e "\x1B[01;93m==>\x1B[0m"
  echo -e "\x1B[01;93m==>\x1B[0m\033[1m Also copy srcdir/ironwail-_commit/Quake/ironwail.pak to '~/.ironwail/id1'.\x1B[0m"
  echo -e "\x1B[01;93m==>\x1B[0m\033[1m If this file is missing, the Quake logo and textures will be absent from the main menu.\x1B[0m"
  echo -e "\x1B[01;93m==>\x1B[0m"
}

Hope this helps!

0strodamus avatar Jul 26 '24 04:07 0strodamus

If you're using Arch Linux, the following PKGBUILD should work.

I’m not. But thanks anyways. Perhaps there’s time for a new release with binaries for the three big OSs soon. 🙂

Or would it be possible to automate the generation of artifacts for Linux?

mikae1 avatar Sep 05 '24 16:09 mikae1

@mikae1 the engine is very simple to compile, just pull the latest github source then:

mkdir build && cd build
cmake ..
make

and itll be done very quickly

i think this issue can be closed, i was able to play TAL in latest master

cykoder avatar Sep 07 '24 02:09 cykoder

mkdir build && cd build cmake .. make

Thanks. I did this and it built fine. But I’m getting an error message in the console when running The Immortal Lock with the master downloaded today: WARNING: 2922 MODELS EXCEEDS QS LIMIT OF 2048 (MAX = 4096). Seems to run though.

Also… Basic Linux operations perhaps, but considering how seldom stable builds are produced (and the number of new Linux users), perhaps it would be nice to add build guide to the readme?


  • cmake and make may need to be installed via the package manager of your distro.
  • Download the ironwail master.zip
  • Extract it to /a_dir/ironwail-master/ (just an example directory)
  • mkdir /another_dir/build/ (just an example directory)
  • cd /another_dir/build/
  • cmake /a_dir/ironwail-master/
  • make
  • The ironwail file in /another_dir/build/ is your freshly built binary.

mikae1 avatar Sep 07 '24 09:09 mikae1

I have another observation…

I’m getting an error message in the console when running The Immortal Lock with the master downloaded today: WARNING: 2922 MODELS EXCEEDS QS LIMIT OF 2048 (MAX = 4096).

The above message is for the second level named “The Immortal Lock”. For this level taking screenshots doesn’t work (or works intermittently). The screenshots mostly just turn out black.

For the first level, named “Falling Into Dream (start)”, I don’t get the above console error message and taking screenshots works fine.

mikae1 avatar Sep 08 '24 09:09 mikae1

Is there any possibility of this getting fixed and a new version released? My system struggles badly running it with vkQuake, I'm down to 640 x 480... very retro! (a week later)...eventually found the dev build mentioned above and it works perfectly, many thanks!

Mac2309 avatar Sep 09 '24 11:09 Mac2309