A port of DOOM to UEFI systems. Tested with: QEMU with OVMF, MSI B150M-PRO-VD UEFI firmware, a HP Pavilion 8th Gen laptop.
Prerequisites:
- EDK II: https://github.com/tianocore/edk2
- Visual Studio 2015 toolset
- EDK II LibC (EADK): https://github.com/tianocore/edk2-libc
Instructions:
- Install the Visual Studio 2015 toolset.
- Clone the EDK II and EDK II LibC repo.
- 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.
- 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
- Move the "uefidoom" folder from this project inside Applications.
- Download the AudioDxe source code from https://github.com/FangJiaZhen/AudioPkg.
- Open a command prompt, type
edksetup.bat
(assuming you set up the environment properly) and then typebuild -t VS2015 -b DEBUG -a X64
- If everything goes well, look for a file called "doom.efi" inside this path:
path\to\edk2\Build\AppPkg\DEBUG_VS2015\X64\
- Now just copy the Doom IWADs into it. This should make sure everything is ready for playing.
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:
- 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 forShell.efi
insidepath\to\edk2\Build\DEBUG_VS2015\X64\ShellPkg\Application\Shell\Shell\OUTPUT
Alternative: Look for a EFI Shell binary online. - 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.
- Rename it into
BOOTX64.efi
- Boot your UEFI computer into the UEFI Shell environment.
- 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:
) - Type "doom" to start DOOM.
- The "numsprites" variable in the sprite loading function will be decreased by 3 to allow it to load the sprites.
Game is very slow.TICRATE constant remains 65 from the original DOOM UEFI port by warfish.In-game input doesn't work?
- Audio support (using GoldFish64's AudioDxe driver).
Help is accepted! Please let me know of any problems. Thanks.