Running White Day on Linux
It is possible to run White Day near flawlessly on Linux using Lutris & Wine. Here's how to do it.
This was performed on both Linux Mint 21 Cinnamon Edition, and Fedora 41 KDE, with an Nvidia GTX 1080.
- Install Lutris and open it.
- Download the latest version of White Day Repackaged.
- In Lutris go to Settings > Runners, find Wine, and click the package icon (next to the cog icon).
- Install the latest "lutris-GE-Proton" (as of August 2023 this is 8.13), then click OK and close out the Settings window.
- In Lutris click the + button then "Install a Windows game from media".
- Set the "Game name" to "White Day" and click Continue, then click Install, and Install again.
- Click Browse and select the White Day Repackaged installer you downloaded earlier, then Continue.
- Wait for the installer to open and proceed normally.
- Once Installed just close out the White Day Repackaged launcher. If Lutris hangs, click Cancel, uncheck "Remove game files", then click Yes.
- Next we need to install Korean locale to your system. These steps might vary between different Linux distros. This was done on Mint so should be similar for any Debian based distro (Ubuntu, Pop, etc.).
- Open Terminal and enter
sudo nano /etc/locale.gen
- Find
# ko_KR.EUC-KR EUC-KR
and remove the hashtag and space that comes before it (#
). - Press Ctrl+O, then Enter to save the file, then Ctrl+X to exit the file.
- Run
sudo locale-gen
and wait for it to finish. - Close Terminal.
- Open Terminal and enter
- Go back into Lutris and click the + button again, then select "Add locally installed game".
- Under the "Game info" tab:
- Set the Name to "White Day".
- Set the Runner to Wine.
- Set Release year to 2001.
- Under the "Game options" tab:
- Click Browse next to "Executable" and select
whiteday.exe
under~/Games/white-day/drive_c/Program Files (x86)/whiteday/
. - Set Working directory to
~/Games/white-day
. - Set Wine prefix to
~/Games/white-day
.
- Click Browse next to "Executable" and select
- Under the "Runner options" tab:
- Set Wine version to the version of lutris-GE-Proton we installed earlier.
- Under the "System options" tab:
- Set Locale to "ko_KR".
- Click "Save" in the top right hand corner.
- Select the White Day entry in Lutris and click Play.
- The launcher will open as a black window. (Unfortunately I don't know how to make the options visible, but you can still click them just fine.) Start by clicking on where the "START WHITE DAY" button would be (at the top of the window, off to the right slightly).
- You will be prompted to set device settings. Set your resolution here and click OK.
- Click where the "START WHITE DAY" button would be again, then click "Launch Game".
- Hopefully White Day should now open in Korean locale and run smoothly.
- When closing White Day, sometimes the process hangs. To close it completely just click "Stop" in Lutris.
Optional - Set the game's icon in Lutris:
- Right click the White Day entry in Lutris, and select "Configure".
- Click on the Lutris icon and select icon.png (which you can grab here and save somewhere). This will set the game to use the White Day icon. Feel free to set the banners too, although I don't have anything prepared for those.
Optional - Add White Day shortcut to app menu, desktop & Steam:
- You can create application menu, desktop and Steam shortcuts from the context menu by right clicking the White Day entry in Lutris. This saves even having to open Lutris at all, and makes White Day feel like it's any other application on your system.
White Day 2001 modding guide
For purveyors of my website who don't know what this is, I am an ethusiast, modder, speedrunner, translator and overall long-time fan of a Korean horror game from the early 2000s called White Day. You can check out my work on the game here and here.
This guide is a work in progress and I'll be expanding it every now and again with new information.
You can find all the relevant tools & programs in this repository: Mega.nz - it will be referenced a lot in this guide so keep it handy.
NOP files
You can find the NOP tools in the nop tools folder in the repository.
How the nop tools work:
When opened, nopunpack.exe
looks in the current directory for any .nop
files called whitedayXXX.nop
, where XXX is a number between 000-999. You can have multiple nop files (e.g. whiteday000.nop
, whiteday178.nop
, whiteday840.nop
, etc.) and it will go through all of them and extract them accumulatively.
noppack.exe
packs files & folders into a nop file. You can drag files & folders into it, or use a batch script or command line to pack things instead.
Important note: You will need to run the nop tools with a Korean locale to make sure the packed / unpacked files have correct Korean text & file names.
How to run nop tools with Korean locale:
To run nopunpack.exe
in Korean, use the included nopunpack.bat
file. When opened, the batch script tells Locale Emulator (LEProc.exe
) to run nopunpack.exe
, and Locale Emulator automatically uses the application specific settings in nopunpack.exe.le.config
(which tell Locale Emulator to use Korean).
Alternatively you can download & install Locale Emulator on your system, right click nopunpack.exe
, then click Locale Emulator → Run with Application Profile and that will do the same thing.
To run noppack.exe
in Korean, use the included noppack.bat
file. Just make sure that the unpacked data, script or custom folders that White Day recognises are in the same directory and then run the bat file.
Inside the noppack.bat
file there is an extra bit of code which waits for the noppack.exe
process to exit before continuing. This allows you to add more code to run after noppack has finished, perhaps to rename the nop file or copy it somewhere.
It turns out you can also use the "Pangya Pak File Manager" made by Seddi to open and create nop files! Pangya is another game series made by Sonnori that shares similar file types. For White Day, the tool only works when you run it with a Korean locale, and change settings to XOR and low compression.
If you like you can download it from my repository, where I've included extra files (locale emulator + batch script) to allow you to directly open nop files using the software by default, and with the correct locale. (nop tools/Pangya Pak File Manager). Read the included readme.txt
to set it up.
Asset overview
File & folder structure
Inside the nop files are all the main assets of the game. There are three main folders at the root of White Day's nop files:
data
: contains text, textures, audio, models, animation, fonts, and more.script
: contains most of the scripting in the game.custom
: special folder that allows users to make custom face textures for the main cast of characters.
It's also worth noting that White Day doesn't only look in nop files for these assets. In fact, if you place any of these folders in the main installation directory, White Day will use what it finds there too. This can be useful for when you're testing things, as you don't have to keep packing nop files to apply changes.
File formats
Moving on... Let's talk about what files there are, and what can be modified. Unfortunately for us, many of the files in White Day are either unique variants of existing file formats, or totally proprietary. On top of that, a lot of code and even some text that appears in-game is hidden inside dll files outside of nop files. Modifying certain things can be tricky. Here's a list of the unique formats you can expect:
WDB
- Old Microsoft Works Database file, can be opened like a text file. I recommend using Notepad++ with a User Defined Language (UDL) that adds syntax highlighting (I uploaded my own in the repository: /wdb tools/sonnoriwdb.xml).
- WDB files contain sheets of data that are usually referenced in scripting. The first line defines the number of columns and rows (this must be updated if the number of columns or rows is changed). The first column is the ID of the data which can be referenced elsewhere in scripts - it must be kept unique. Everything else is the actual data, which is all separated by quote marks.
- Be careful: Syntax errors can cause White Day to crash, and it won't usually be obvious where the syntax errors are. Fortunately I made a small program which can detect syntax errors (/wdb tools/wdbvalidator.exe) - just drag wdb files onto it and enter the number of columns, and it will tell you if any errors come up, and where.
langtable.wdb
is significant because it contains nearly all text in the game and can be easily expanded to add more text. Strings fromlangtable.wdb
are referenced elsewhere withGetString("example")
, where "example" is the ID (first column in the wdb file).- Syntax:
\n
= new line|
= new page\1
and\0
= highlight text\<img src=example.bmp size=128 128 rect=0 0 128 128 scale=0.5 offset=0 0>
= embed bmp image from\data\misc\image\diary_docs\
<cut00>
etc. = dialogue options
WEP
,WED
- Stands for WangReal Engine... P-something. These can be opened like text files. They define where objects, textures, etc. are inside levels. You can add and remove models (
.PET
files) or change their location by adding different coordinates. The map (.BSP
) and textures for that map (.WAD
) are also defined here.
- Stands for WangReal Engine... P-something. These can be opened like text files. They define where objects, textures, etc. are inside levels. You can add and remove models (
SCP
- Script files which can be opened like text files. Seem to be some variant of C, and references functions from the WangReal engine (for which there is no official documentation).
BSP
,ENT
- Map files which share the same file format as Half Life 1, and therefore can be opened with some HL1 map tools such as BSP Viewer (repository: /map tools/BSP Viewer). There are some unused BSP maps in the game's assets which are interesting to look at.
- Crafty by Nem can also view BSP, and has been reported to be able to convert White Day's BSP files to OBJ files. (/map tools/Crafty)
- ENT files list all the entities in the BSP file and can be edited with BSPEdit (/map tools/BSPEdit), or extracted from a BSP using GCFScape (/map tools/GCFScape) and edited like a text file.
LSF
,LTS
,NLF
- Unknown, possibly something to do with map lighting.
WND
,WYP
- Unknown, my best guess is waypoint / pathing information for NPCs.
MM
,MMP
,WMAP
- Definitely data for the maps you can find and view in-game, but there's no known way to open these files.
WAD
- Essentially a package of textures used by maps. Like BSP files, this format is used by Half Life so it can be opened / modified by some of the same tools. However... If you want to modify the textures inside these files, it's best not to edit them directly as this has been known to cause loading issues. Instead, you can extract the textures out using wad2bmp (repository: /map tools/wad2bmp), and then simply place the ones you modified in
\data\map\texture\
. The game will use those textures instead of the ones in the WAD. - If you really want to edit WAD files directly, you can try using HL Texture Tools, Wally or Slade.
- Essentially a package of textures used by maps. Like BSP files, this format is used by Half Life so it can be opened / modified by some of the same tools. However... If you want to modify the textures inside these files, it's best not to edit them directly as this has been known to cause loading issues. Instead, you can extract the textures out using wad2bmp (repository: /map tools/wad2bmp), and then simply place the ones you modified in
WFT
,FNT
- Old 4 bit bitmap font files. Contains the fonts for pretty much all in-game text.
- The main reason you would probably want to modify these files is to add additional symbols for other languages. This is because the fonts in this game have no support for symbols other than Korean, English and some very limited Japanese, so translating to other languages is a problem.
- Despite "FNT" being a common extension for old Windows bitmap fonts, no program intended for FNT files has been able to open or modify the ones found in White Day (at least, not the ones I've tried).
- A good program I have found for displaying these fonts is 7yuv. It's a program which is able to open raw data as pixels, and lets you define the bit depth, width, etc. yourself. For these fonts, the correct settings in 7yuv are usually 4 bpp and whatever pixel width is indicated by the file name (9, 18, 36).
- When it comes to actually editing these font files, I have developed my own tool - the White Day Font Editor, or WDFE. (repository: /font editing/wdfe). Version 1.0+ of the tool currently allows you to view and edit the 36px and 18px FNT files. The symbols you edit using this tool must be reimported in the same format they were exported - that is, 4 bit (4bpp), 16 colour, grayscale, BMP3 bitmap files. If you're having issues preserving that format after editing the bitmap, try using Corbi's imagemagick script (found in repository: /font editing/wdfe/corbi's script).
- Additional information: The font family White Day uses is HYGothic (a TTF version is provided in the repository: /font editing/HYGothic).
PET
- 3D models. They share the same format as Sonnori's other game, Pangya, which uses version 2 of the WangReal engine.
- There is a tool by HSReina that can display Pangya models which has been modified to also work with White Day's models. It needs to be opened with a Korean locale to work properly with White Day's models. (repository: /model tools/pangya models view).
- HSReina also developed a 3DSMax plugin which can import PET files. (/model tools/pangya puppet import).
- Retreev is a series of tools made for games by Ntreev (formerly Sonnori), including Pangya. Much of the documentation found there may apply to this game as well. Anyway, among those tools there is a script made by John Chadwick which is able to import Pangya MPET files into Blender. At HSReina's request he would later make a modified version of one of the files, mpet.py, which allows using White Day's PET files. You can find this version of the script in my repository: /model tools/io_scene_mpet.
- Worth noting that not all of the objects in White Day are PET models. A few are part of the map file itself (.BSP) and can't be viewed or modified the same way.
MTN
,FUT
- Something to do with animation? No known way to open / edit them.
SAV
- Save files, found in the saves folder in the installation directory (or in the Windows VirtualStore folder if running the game without admin mode on Windows Vista or higher)