Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Ironwail compatible with The Immortal Lock #324

Open
mikae1 opened this issue Jul 20, 2024 · 8 comments
Open

Make Ironwail compatible with The Immortal Lock #324

mikae1 opened this issue Jul 20, 2024 · 8 comments

Comments

@mikae1
Copy link

mikae1 commented Jul 20, 2024

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

@andrei-drexler
Copy link
Owner

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 (bdb8f7b).

@mikae1
Copy link
Author

mikae1 commented Jul 24, 2024

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. 🫤

@0strodamus
Copy link

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!

@mikae1
Copy link
Author

mikae1 commented Sep 5, 2024

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?

@cykoder
Copy link

cykoder commented Sep 7, 2024

@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

@mikae1
Copy link
Author

mikae1 commented Sep 7, 2024

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
Copy link
Author

mikae1 commented Sep 8, 2024

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.

@Mac2309
Copy link

Mac2309 commented Sep 9, 2024

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants