|
1 | | -# DoomGeneric NTNative |
2 | | -This is a fork of ozkl's DoomGeneric which adds port to the BootExecute environment of Windows XP and later. |
| 1 | +# DoomGeneric NTDrv |
| 2 | +This ports DoomGeneric NTNative to kernel-mode driver environment. |
3 | 3 |
|
4 | | -# Requirements for building DoomGeneric NTNative |
5 | | -1. Visual Studio 2017 Windows XP toolset. |
6 | | -2. InbvShim (https://github.com/Cacodemon345/inbvbootdrv). |
7 | | -3. Windows 7 DDK (for building InbvShim and ntdll.lib). |
| 4 | +# Requirements for building DoomGeneric NTDrv |
| 5 | +1. Windows 7 DDK. |
8 | 6 |
|
9 | 7 | # Requirements for running |
10 | 8 | Only tested on Windows XP 32-bit. I don't know about later versions. |
11 | 9 |
|
12 | 10 | # Building |
13 | | -Note: Only 32-bit Debug builds are supported, anything else is broken. |
14 | | -Copy over the ntdll.lib file from \\path\to\WinDDK\7600.16385.1\lib\wxp\i386\ to the doomgeneric directory inside the project. Open the solution, right click "doomgeneric_nt" and select "Build". |
| 11 | +From the x86/x64 Free Build Environment, cd to the directory where you have cloned this repository, and type 'build' to build the driver. You will find the doomgeneric_ntdrv.sys file in the objfre_wxp_x86 (objfre_win7_x64 if building for x64) folder. |
15 | 12 |
|
16 | | -# Building InbvShim |
17 | | -From the x86/x64 Free Build Environment, cd to the directory where you have cloned InbvShim repository, and type 'build' to build the driver. You will find the inbvbootdrv.sys file in the objfre_wxp_x86 (objfre_win7_x64 if building for x64) folder. |
| 13 | +# Installing DoomGeneric NTDrv |
| 14 | +Copy it to your system32\Drivers directory of your Windows installation. And then grab the doomgenericntinst.reg from one of the releases and double-click it to install. |
18 | 15 |
|
19 | | -# Installing InbvShim |
20 | | -Copy it to your system32\Drivers directory of your Windows installation. And then grab the inbvbootdrvinst.reg from one of the releases and double-click it to install. |
| 16 | +# Running |
| 17 | +You need my fork of NativeShell to start DoomGeneric NTDrv. |
21 | 18 |
|
22 | | -# Installing DoomGeneric NTNative |
23 | | -Copy doomgeneric_nt.exe to C:\Windows\system32\ directory. |
24 | | -There are two ways of launching it: |
25 | | -1. Registry modification: |
26 | | - |
27 | | -**WARNING:** Backing up the registry is very important before going down this path. |
28 | | - |
29 | | -Open Registry Editor (regedit), go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\. Double-click BootExecute. |
30 | | - |
31 | | -Replace this: |
32 | | -``` |
33 | | -autocheck autochk * |
34 | | -``` |
35 | | - |
36 | | -with: |
37 | | -``` |
38 | | -autocheck autochk * |
39 | | -doomgeneric_nt -iwad \??\C:\Windows\doom2.wad -cdrom |
40 | | -``` |
41 | | - |
42 | | -Replace \\??\C:\Windows\doom2.wad with the location where the IWAD is installed (remember to prefix it with \\??\ before the full path). |
43 | | - |
44 | | -Note that I don't recommend this way because it can make input non-functional, making it impossible to quit the program and requiring a hard reset. |
45 | | - |
46 | | -2. Native Shell (assuming you installed it beforehand): |
47 | | - |
48 | | -cd to the directory where DoomGeneric NTNative is installed and type: |
49 | | -``` |
50 | | -doomgeneric_nt.exe -iwad \??\path\to\iwad.wad -cdrom |
51 | | -``` |
52 | | - |
53 | | -Replace \\path\to\ with the location where the IWAD is installed. |
54 | | - |
55 | | -# Extra bonuses: |
56 | | -1. 16-color mode for Windows GDI port activated with -4bit option. |
| 19 | +Type 'doomstart' to start it. It expects the Doom 2 IWAD to reside in C:\Windows\ at the moment. Command line arguments are ignored. |
57 | 20 |
|
58 | 21 | # Bugs: |
59 | 22 | 1. Savegames are broken. |
60 | | -2. Picking a weapon crashes the program (bug inherited from original DoomGeneric). |
| 23 | +2. Picking a weapon crashes the whole system (bug inherited from original DoomGeneric). |
61 | 24 | 3. It's slow as hell, probably could use FastDoom's EGA drawing code for it. |
62 | 25 |
|
63 | 26 | # License: |
|
0 commit comments