GithubHelp home page GithubHelp logo

indigoparadox / uefidoom Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cacodemon345/uefidoom

0.0 1.0 0.0 4.24 MB

Port of Doom to UEFI.

License: GNU General Public License v2.0

Makefile 0.02% C++ 11.10% C 82.84% Objective-C 6.04%

uefidoom's Introduction

Cacodemon345's UEFI-DOOM (forked from warfish's DOOM repo)

A port of DOOM to UEFI systems. Tested with: QEMU with OVMF, MSI B150M-PRO-VD UEFI firmware, a HP Pavilion Coffee Lake laptop.

Building

Prerequisites:

  1. EDK II: https://github.com/tianocore/edk2
  2. Visual Studio 2015 toolset
  3. EDK II LibC (EADK): https://github.com/tianocore/edk2-libc

Instructions:

  1. Install the Visual Studio 2015 toolset.
  2. Clone the EDK II and EDK II LibC repo.
  3. Follow the instuctions for setting up the workspace. You also can just drop everything from the EDK II LibC repo to the main EDK II workspace.
  4. Edit the AppPkg.dsc; add the following line at the end of [LibraryClasses] list: SerialPortLib|PcAtChipsetPkg/Library/SerialIoLib/SerialIoLib.inf Also add the path to the inf file of this project in the [Components] list like this: AppPkg/Applications/uefidoom/doom.inf
  5. Move the "uefidoom" folder from this project inside Applications.
  6. Download the AudioDxe source code from https://github.com/FangJiaZhen/AudioPkg.
  7. Open a command prompt, type edksetup.bat (assuming you set up the environment properly) and then type build -t VS2015 -b DEBUG -a X64
  8. If everything goes well, look for a file called "doom.efi" inside this path: path\to\edk2\Build\AppPkg\DEBUG_VS2015\X64\
  9. Now just copy the Doom IWADs into it. This should make sure everything is ready for playing.

Running:

Make sure you have a UEFI environment in your real hardware. Also, make sure the executable resides inside a FAT32 partition and that the DOOM IWAD files resides in the same directory as the executable. You will also need UEFI command-line shell for that (binaries are available online). Steps:

  1. Build the UEFI Shell package (ShellPkg) using build -t VS2015 -a X64 -p ShellPkg/ShellPkg.dsc -b DEBUG (run edksetup.bat before that, once again assuming the environment is properly set). If everything goes well, look for Shell.efi inside path\to\edk2\Build\DEBUG_VS2015\X64\ShellPkg\Application\Shell\Shell\OUTPUT Alternative: Look for a EFI Shell binary online.
  2. Copy the shell binary into a FAT32-formatted USB key; make a folder named EFI, make another folder inside it named BOOT, and copy the shell binary into it.
  3. Rename it into BOOTX64.efi
  4. Boot your UEFI computer into the UEFI Shell environment.
  5. Change to the directory where the "doom.efi" exec is stored (change the current filesystem drive to the one that contains the exec e.g FS0:)
  6. Type "doom" to start DOOM.

Bugs:

  1. The "numsprites" variable in the sprite loading function will be decreased by 3 to allow it to load the sprites.
  2. Game is very slow.
  3. TICRATE constant remains 65 from the original DOOM UEFI port by warfish.
  4. In-game input doesn't work?

Planned:

  1. Audio support (using GoldFish64's AudioDxe driver).

Helping

Help is accepted! Please let me know of any problems. Thanks.

uefidoom's People

Contributors

cacodemon345 avatar

Watchers

James Cloos 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.