Giter Site home page Giter Site logo

wolf4rust's Introduction

Wolf4Rust v1.0.0

Description

This port is based on Wolf4SDL by Moritz "Ripper" Kroll and others:

Original Wolfenstein 3D by id Software:

This book helps understanding many of the internals of the original game:

Dependencies

Build and run

Install SDL2/SDL2-Mixer:

Ubuntu

sudo apt install libsdl2-2.0-0

sudo apt install libsdl2-dev

sudo apt install libsdl2-mixer-2.0-0

sudo apt install libsdl2-mixer-dev

CentOS

sudo dnf --enablerepo=powertools install SDL2

sudo dnf --enablerepo=powertools install SDL2-devel

sudo dnf --enablerepo=powertools install SDL2_mixer

sudo dnf --enablerepo=powertools install SDL2_mixer-devel

macOS

brew install sdl2

brew install sdl2_mixer

Compile and install fmopl:

$ cd src/mame

$ cc -c fmopl.c

Create Dynamic lib

$ cc -shared fmopl.o -o libfmopl.so

Create Static lib

$ ar rcs libfmopl.a fmopl.o

Ubuntu

# cp libfmopl.so /usr/lib/x86_64-linux-gnu

# cp libfmopl.a /usr/lib/x86_64-linux-gnu

CentOS

# cp libfmopl.so /usr/lib/

# cp libfmopl.a /usr/lib/

macOS

# cp libfmopl.so /usr/local/lib/

# cp libfmopl.a /usr/local/lib/

In Cargo, choose feature UPLOAD or GOODTIMES depending if you have the WL1 or WL6 files:

WL1 Files (Episode 1 Shareware provided here):

audiot.wl1 config.wl1 gamemaps.wl1 maphead.wl1 vgadict.wl1 vgagraph.wl1 vgahead.wl1 vswap.wl1

WL6 Files (Episodes 1 to 6):

audiot.wl6 config.wl6 gamemaps.wl6 maphead.wl6 vgadict.wl6 vgagraph.wl6 vgahead.wl6 vswap.wl6

cargo build --release

cargo run --release

BOSS Levels:

cargo run --release -- --easy --tedlevel 8
cargo run --release -- --easy --tedlevel 18
cargo run --release -- --easy --tedlevel 28
cargo run --release -- --easy --tedlevel 38
cargo run --release -- --easy --tedlevel 48
cargo run --release -- --easy --tedlevel 58

Controls

Key(s) Action
Up Arrow Move Forward
Down Arrow Move Backward
Left Arrow Turn Left
Right Arrow Turn Right
Shift + Up Arrow Run Forward
Shift + Down Arrow Run Backward
Shift + Left Arrow Fast Left Turn
Shift + Right Arrow Fast Right Turn
Alt + Left Arrow Strafe Left
Alt + Right Arrow Strafe Right
Ctrl Fire
Space Bar Open Doors
F12 Capture/Release Mouse

Screenshots (BOSS Levels)

Limitations

Use X11 instead of Wayland. SDL2 set_relative_mouse_mode doesn't work with Wayland.

If you use VMWare, set vmmouse.present = "FALSE", otherwise set_relative_mouse_mode doesn't work properly.

libsdl-org/SDL#1836

If you use VirtualBox, you need to capture the Mouse with Input/Mouse Integration.

Author

License

This project is licensed under the [MIT] License - see the LICENSE.md file for details

The Wolfenstein textures are copyrighted by id Software.

wolf4rust's People

Contributors

ccie18473 avatar

Stargazers

Damien Szczyt avatar Tim Zhamoidin avatar Joshua Sleeper avatar Girish Gopalakrishna Pillai avatar Pascal Schmitt avatar  avatar Kyle L. Davis avatar John avatar dankuri avatar Gyan Basyal avatar Joe Gasewicz avatar TaeHyun Kim avatar user137 avatar Kamil Sindi avatar Sviatoslav Getmann avatar Exxempt avatar Alexandre Hausen avatar Artur avatar Vitaliy Yermolenko avatar Daniel Hill avatar cyphersnake avatar Andrew Banchich avatar Pedro R. avatar Jan Vandepitte avatar Michele Federici avatar Krzysztof Dymanowski avatar Mohammed Maali avatar Milan Zivkovic avatar Fikri Firmansyah Akbar avatar Muhammad Rasheed avatar Mert Sefa AKGUN avatar Zach Nguyen avatar

Watchers

John avatar  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.