OpenBSD, EDuke32 and Ion Fury

This is a guide to install EDuke32 on OpenBSD at the right version to be able to play Ion Fury ##Instructions

Configure Ports

EDuke32’s licence prevents it from being installed from pkg_add but there is a port for it.

  1. Download ports.tar.gz from a mirror and extract it into /usr

    # curl -O ${MIRROR}/pub/OpenBSD/6.6/ports.tar.gz
    # doas tar zxf ports.tar.gz -C /usr
    
  2. Fix the ownership and mode

    # doas chgrp -R wsrc /usr/ports
    # doas find /usr/ports -type d -exec chmod 755 {} \;
    # doas find /usr/ports -type f -exec chmod 664 {} \;
    
  3. Add the current user to the wsrc group

    # doas user mod -G wsrc $(id -u -n)
    
  4. Re-login to apply new group

Build EDuke32

The version of EDuke32 in ports is very old however there is a patch available on the openbsd-misc mailing list. The trick is to use the raw version to avoid formatting issues in patch.

  1. Save and apply EDuke32 patch

    # curl "https://marc.info/?l=openbsd-misc&m=156628733132075&q=raw" | sed -n '32,$p' > eduke32.patch 
    # patch -b -d /usr/ports/games/eduke32 -p0 < eduke32.patch
    
  2. Build EDuke32 as non-root

    # (cd /usr/ports/games/eduke32 && make)
    
  3. Install EDuke32 as root

    # (cd /usr/ports/games/eduke32 && doas make install)
    

Setup and play Ion Fury

For Ion Fury to work with EDuke32 only the fury.grp, fury.grpinfo and fury.def are required.

  1. Place required files in a dir by themselves

    # mkdir -p ~/games/ion_fury
    # cp ${ION_FURY_DIR}/fury.{grp,grpinfo,def} ~/games/ion_fury/
    
  2. Run EDuke32 in Ion Fury dir

    # cd ~/games/ion_fury && eduke32
    

Troubleshooting

bash: /usr/local/bin/eduke32: Cannot allocate memory

The data seg size is too low and needs to be raised above 2GB.

The following command will last for the remaining session.

# ulimit -d 2097152