Giter Site home page Giter Site logo

jamesdunne / wolf3d Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 9.58 MB

Modification of Wolf3D for DOS to use modern WASD control scheme

C 90.80% Assembly 9.19% Batchfile 0.01%
wolf3d dos wolfenstein-3d wolfenstein idsoftware borland-cpp c game 3d

wolf3d's Introduction

What is it?

This is a small modification of Wolf3D for DOS to use a more modern WASD control scheme.

The original Wolf3D title used a strafe modifier button system which meant you could not turn left and strafe left simultaneously. This modification removes the strafe modifier button in favor of two dedicated strafe left and strafe right buttons. These buttons can be mapped to any input controller: keyboard, mouse, or joystick.

WASD Movement Demo

WASD Movement Demo

Running

Download a recent version of DOSBox for your platform. I use the SVN version as the current 0.74-2 is too old.

Copy the contents of this repository verbatim to C:\WOLFSRC within your C drive mount in DOSBox.

You can use the provided OBJ/WOLF3D.EXE binary to run this modification in DOSBox using vanilla Wolf3D data files (*.WL6 from an official distribution of the original game).

However, you'll need to overwrite the following files:

VGADICT.WL6
VGAGRAPH.WL6
VGAHEAD.WL6

Download compatible versions from here. Extract that ZIP file and copy its *.WL6 files into C:\WOLFSRC.

Run the game with:

C:\WOLFSRC>OBJ\WOLF3D.EXE

Default key bindings are W - forward, S - backward, A - strafe left, D - strafe right.

Mouse vertical movement has no effect. Mouse button 1 fires and button 2 opens.

The original strafe modifier button has been removed in favor of explicit strafe left and right buttons.

These strafe L and R buttons should be available to map to keyboard, mouse, and joystick buttons but only keyboard buttons have been tested. I don't see why it wouldn't work with mice or joysticks unless DOS and gameport hardware limitations come into play.

Use the Controls ... Customize Controls menu to change the button mappings to your taste, though the defaults should suffice.

This modification will not work with CONFIG.WL6 files generated by the vanilla Wolf3D as the format has changed to allow defining the separate strafe buttons. If you see a strange button mapping in your Customize Controls menu, exit out of the game and DEL CONFIG.WL6 and restart to get the default correct mappings.

Building

Follow Fabien Sanglard's excellent build guide to build this modification under DOSBox.

Skip the step about the INSTALL of WOLFSRC and instead copy this repository's contents to C:\WOLFSRC in your DOSBox C mounted folder.

You must have PATH=C:\BORLANDC\BIN set to include the Borland C++ 3.1 compiler's distribution. This is its default install path.

Ignore the steps in the guide about modifying the project files as this repository's copy of WOLF3D.PRJ should work assuming you have the project in C:\WOLFSRC directory.

Building should be easy enough by running:

C:\> cd WOLFSRC
C:\WOLFSRC> bc /m

The /m switch to bc will quickly open the BC IDE in Make mode and will compile the project from scratch, resulting in OBJ\WOLF3D.EXE. Again, invoking bc will not work unless your PATH is set correctly to include the Borland C++ 3.1 compiler distribution's BIN directory.

Follow the steps in the Running section to get started after build success.

DOSBox version addendum

The latest SVN builds of DOSBox fix the IMGMOUNT command to allow mounting a series of floppy images for installing software from floppies. Previous versions of DOSBox disallow this for floppy images specifically and only allow mounting multiple CD images in sequence. This was relevant to me because I had trouble installing the Borland C++ 3.1 distribution from floppy images. This compiler is used to build the project.

However, Fabien Sanglard's guide has a download link to a specially prepared installation folder for the compiler which bypasses mounting floppy disk images, so this addendum becomes irrelevant mostly.

wolf3d's People

Contributors

jamesdunne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.