https://fabiensanglard.net/Compile_Like_Its_1992/index.php
Setup filesystem
cd ~
mkdir system
cd system
mkdir c
mkdir a
cd ~
Download
cd system/a
curl -O http://fabiensanglard.net/Compile_Like_Its_1992/tools/BCPP31.zip
http://fabiensanglard.net/Compile_Like_Its_1992/tools/BCPP31.zip
cd ../c
curl -O http://fabiensanglard.net/Compile_Like_Its_1992/tools/wolfsrc.zip
curl -O http://fabiensanglard.net/Compile_Like_Its_1992/tools/vgafiles.zip
http://fabiensanglard.net/Compile_Like_Its_1992/tools/wolfsrc.zip
http://fabiensanglard.net/Compile_Like_Its_1992/tools/vgafiles.zip
cd ..
find ~/system
Decompress everything
cd ~/system/a
unzip BCPP31.zip
jar xvf BCPP31.zip
sudo apt install openjdk-17-jdk-headless
cd ~/system/c
unzip vgafiles.zip
unzip wolfsrc.zip
Download and start DosBox:
https://www.dosbox.com/
sudo apt-get install dosbox
https://blog.csdn.net/weixin_42361495/article/details/116691919
Mount the filesystem, one folder for each drive :
Z:/> mount c ~/system/c
Z:/> mount a ~/system/a
Install the compiler
Now is time to install Borland C++ 3.1 :
Z:\> a:
A:\> cd BCPP31
A:\> install
Install Wolfenstein 3D source code
We have a system running and a compiler on it: Time to decompress (again) the source code.
A:\> c:
C:\> cd\
C:\> install
Type 'C'
Keep the default path: \WOLFSRC
Y to create the directory.
Installing !
Compiling
Start Borland C++ 3.1:
C:\> cd\
C:\> cd borlandc
C:\> cd bin
C:\> bc.exe
After pressing OK, use the mouse or the shortcuts to Project -> Open Project ..\..\WOLFSRC\WOLF3D.PRJ:
Select Options -> Directories and change the value as follow :
Include Directories: C:\BORLANDC\INCLUDE
Library Directories: C:\BORLANDC\LIB
Ouptput Directories: OBJ
Source Directories: C:\WOLFSRC
Let's try to compile: Compile -> Build All
We get an error: "Cannot find executable TASM"
Exit Borland C++, we need to set the PATH:
C:\> CD ..
C:\> PATH=C:\BORLANDC\BIN
C:\> BC.EXE
Try to compile again (Compile -> Build All):
Compiling did work but the linking failed: "Unable to find OBJ file" because the path of SIGNON.OBJ and GAMEPAL.OBJ in wrong in the project: They are marked in C:\SOURCE\WOLF\ :
Delete them from the project (Select and the Projext -> Delete item). Add them again via PROJECT -> Add Item... . Add WOLFSRC\OBJ\SIGNON.OBJ and WOLFSRC\OBJ\GAMEPAL.OBJ
Try to compile again via (Compile -> Build All)
IT WORKED ! But will it run ?
Getting the assets
Download the shareware version or even better: Purchase as full version on Wolfenstein 3D.
cd ~/system/c
curl -O http://fabiensanglard.net/Compile_Like_Its_1992/tools/1wolf14.zip
unzip 1wolf14.zip
Go back to DosBox and install the game to C:\WOLF3D.
C:\> c:
C:\> cd \
C:\> cd 1wolf14
C:\1WOLF14> install
After installation of the game, copy the .EXE we just compiled to the game folder,
C:\> c:
C:\> cd wolf3d
C:\WOLF3D> copy WOLF3D.EXE WOLF3D.OLD
C:\WOLF3D> copy ..\WOLFSRC\WOLF.EXE .
Running the game
Try to run it:
C:\> cd wolf3d
C:\WOLF3D> copy WOLF3D.EXE WOLF3D.OLD
C:\WOLF3D> copy ../WOLRSRC/OBJ/WOLF3D.EXE .
C:\WOLF3D> WOLF3D.EXE
解决显示错误问题:
C:\> copy C:\vgafiles\VGADICT.WL6 C:\WOLF3D\VGADICT.WL1
C:\> copy C:\vgafiles\VGAGRAPH.WL6 C:\WOLF3D\VGAGRAPH.WL1
C:\> copy C:\vgafiles\VGAHEAD.WL6 C:\WOLF3D\VGAHEAD.WL1
not work
vi ~/Library/Preferences/DOSBox\ 0.74\ Preferences
(Linux) ~/.dosbox/dosbox-0.74.conf
(MAC OS X) ~/Library/Preferences/"DOSBox 0.74 Preferences"
vi ~/.dosbox/dosbox-0.74.conf
[render]
# frameskip: How many frames DOSBox skips before drawing one.
# aspect: Do aspect correction, if your output method doesn't support scaling this can slow things down!.
# scaler: Scaler used to enlarge/enhance low resolution modes.
# If 'forced' is appended, then the scaler will be used even if the result might not be desired.
# Possible values: none, normal2x, normal3x, advmame2x, advmame3x, advinterp2x, advinterp3x, ...
frameskip=0
aspect=false
scaler=normal2x
Change that aspect to true:
Try again :
C:\WOLF3D> WOLF3D.EXE
Finally, IT WORKS !
安装好环境,可以继续学习黑皮书
GitHub - jagregory/abrash-black-book: Markdown source for Michael Abrash's Graphics Programming Black Book
Game Engine Black Book