Quake case files: A sensitive subject

Should Quake engines attempt to load files with "incorrect" casing on Linux as they do on Windows?

  • Load them only on Windows

    Votes: 0 0.0%
  • Load them on Windows and Linux

    Votes: 3 60.0%
  • Do not load files with incorrectly-cased file names on any operating system

    Votes: 2 40.0%

  • Total voters
    5
  • This poll will close: .
Feb 11, 2026
44
14
8
I took part in the following quoted exchange and I would rather it be more visible. The topic: Case-sensitivity in the names of Quake resources.

The exchange:


A: Something ... that might be handy: If a resource such as a .bsp or .pak does not exist, do a case insensitive search for the file name in that directory and, if there is only one match, attempt to load it instead of failing. Edit: Even better might be to to load it and print a warning instead of failing with an error.​
B: ... it will inevitably lead creators to be even more careless on how resources are named, and this still won't load on regular QuakeSpasm / QSS. The engines can somehow workaround small inconsistencies, but careless naming is not one IMHO. Even if you have to be on Linux / MacOS to reveal it.​


My thoughts on the matter:

1. As Quake was made for a case insensitive operating system, it might be argued that failing to reproduce the original game's behavior reflects carelessness on the part of the engine's porter, not those making content for the engine. In other words, if Quake can load the resource in DOS, it should load the resource in other environments.

2. There are now three decades of player created content, with the bulk of it made without consideration for case-sensitive file systems. Much of that content is broken "out of the box" on Linux due to case sensitivity errors. At least some of the contents' authors may have shuffled off this mortal coil. Such dead Quakers have imposed their technical debt on the living. It is too late, now, to teach them to be careful about naming "progs.dat" "PROGS.DAT".

3. I do not believe it is "inevitable" that loading resources with inconsistently-cased names will lead creators to be more careless. First, if they have already made the error and released it into the world, it would be difficult to be more careless. Second, if the engine were to load the file and display a warning message it might draw creators' attention to the error and encourage them to care more. The current implementation already loads the file with incorrect casing silently on Windows. That might also encourage carelessness, since it makes Linux users the "whipping boy" for Windows users' character casing discrepancies.

I look forward to others' weighing in.
 
Lets' look at something different for inspiration: HTML. Incorrect HTML isn't a fail state: the browser ignores anything it doesn't understand and moves on. Same with CSS. This fault tolerance might not result in correct, valid code, but it's absolutely a core reason for the web's success.

We can't prevent people from being careless. But we can expect it, prepare for it and tolerate it.
 
problem solved: :)
fsutil.exe file SetCaseSensitiveInfo C:\path\to\quake_folder\ enable
 
problem solved: :)
fsutil.exe file SetCaseSensitiveInfo C:\path\to\quake_folder\ enable

This solves the problem by ensuring the same Quake content fails to load on Windows as on Linux.

However, it does not solve the problem of ensuring that Quake source ports can load content which the original id Software releases load successfully.
 
This solves the problem by ensuring the same Quake content fails to load on Windows as on Linux.
that was the intention. :) I think it requires installed WSL though.
All joking aside, this could be good test case for mod / map pack creators.
MacOS has also a switch to enable case-sensitivity. It was enabled by default on their server products.

However, it does not solve the problem of ensuring that Quake source ports can load content which the original id Software releases load successfully.
AFAIK only the pak files in id1 are affected. And this is a packaging mistake made by someone who prepared the files for digital distribution. Here is the original content from an original quake-1.01 cdrom.

Code:
$ ls -aln QUAKE101/
total 24020
dr-x------. 1 1000 1000     2048 Jul 31  1996 .
drwxr-x---+ 3    0    0       60 Aug  7 14:18 ..
-r--------. 1 1000 1000    36064 Jul 31  1996 deice.exe
-r--------. 1 1000 1000      330 Jul 31  1996 install.bat
-r--------. 1 1000 1000 15323555 Jul 31  1996 q101_int.1
-r--------. 1 1000 1000  9228516 Jul 31  1996 q101_int.2
-r--------. 1 1000 1000      228 Jul 31  1996 q101_int.dat
-r--------. 1 1000 1000     1559 Jul 31  1996 readintr.txt
dr-x------. 1 1000 1000     2048 Jul 31  1996 sw

join q101_int.1 and q101_int.2 into one archive q101_int.lha and list content


Code:
$ lha l /tmp/q101_int.lha
 PERMSSN    UID  GID      SIZE  RATIO     STAMP           NAME
---------- ----------- ------- ------ ------------ --------------------
[generic]  *****/*****   17408  46.1% Jul 12  1996 genvxd.dll
[generic]  *****/*****    9883  43.6% Jul 12  1996 mgenvxd.vxd
[generic]  *****/*****      65  93.9% Jul 12  1996 q95.bat
[generic]  *****/*****  314880  48.6% Jul 12  1996 qlaunch.exe
[generic]  *****/*****   32256  51.6% Jul 12  1996 quakeudp.dll
[generic]  *****/*****  396288  52.5% Jul 12  1996 quake.exe
[generic]  *****/*****   25920  64.7% Jul 12  1996 cwsdpmi.exe
[generic]  *****/*****   18892  39.7% Jul 31  1996 readme.txt
[generic]  *****/*****    4751  42.4% Jul 12  1996 help.txt
[generic]  *****/*****    4031  41.3% Jul 12  1996 licinfo.txt
[generic]  *****/*****   44326  38.6% Jul 12  1996 manual.txt
[generic]  *****/*****    3869  46.6% Jul 12  1996 order.txt
[generic]  *****/*****   76067  36.5% Jul 12  1996 techinfo.txt
[generic]  *****/*****   10862  41.1% Jul 12  1996 rlicnse.txt
[generic]  *****/*****   25462  36.4% Jul 12  1996 comexp.txt
[generic]  *****/*****   26511  39.2% Jul 12  1996 pdipx.com
[generic]  *****/***** 18276119  46.5% Jul 12  1996 id1/pak0.pak
[generic]  *****/***** 34257856  45.5% Jul 12  1996 id1/pak1.pak
---------- ----------- ------- ------ ------------ --------------------
 Total        18 files 53545446  45.9% Jul 31  1996

oh man, I also found an old cd-r with a backup of my installed quake folder from Feb 1998 ( ca. 10. Feb according to the timestamp of the quake / quakeworld config files.) It's still readable to some extent. Not bad for a almost 30years old cd recordable. From a time when Philips produced quality products.
The OS must have been probably win98se by that time. and all files are also lowercase.
 
When I wrote:

it does not solve the problem of ensuring that Quake source ports can load content which the original id Software releases load successfully.

I was not speaking only of content from id software. There is a plethora of user-created content in /idgames2 which the original id Software release loads without complaint, yet will not load in Quake ports for Linux / Mac.
I also found an old cd-r with a backup of my installed quake folder from Feb 1998 ( ca. 10. Feb according to the timestamp of the quake / quakeworld config files.) It's still readable to some extent. Not bad for a almost 30years old cd recordable. From a time when Philips produced quality products.

They don't make them like they used to.

diablo_disk.jpg
 
When I wrote:

I was not speaking only of content from id software. There is a plethora of user-created content in /idgames2 which the original id Software release loads without complaint, yet will not load in Quake ports for Linux / Mac.
I know that. I'm just teasing you.
Still this is easily preventable most of the time by extracting with unzip -L
Won't help if map/mod creators carelessly used different case in map packs linking to other maps or external resources.
The whole mess was created by MS with their brain-dead decision, like many other stupid decisions made by that corporation. That has created an army of monkeys...

Circuit City, had to consult wikipedia....
 
I know that. I'm just teasing you.
Forgive me if I mistake you as serious. Drollness is often lost in translation to text. Perhaps I read too fast and ruined your comedic timing. (That is why I disable subtitles when watching comedies.)

Still this is easily preventable most of the time by extracting with unzip -L
Implementing Quake's behavior would also be trivial for authors of source ports. It would be better to solve the problem once at its origin than to place the onus on Linux / Mac users. As your "most of the time" acknowledges, shifting the burden to users does not address all incarnations of the problem.

Won't help if map/mod creators carelessly used different case in map packs linking to other maps or external resources.
The whole mess was created by MS with their brain-dead decision
I disagree that this problem can be attributed to carelessness on the behalf of Quake modders / mappers. There was no reason to care about character casing when developing content for DOS / Windows, both case-insensitive environments. It is also reasonable to expect that, if vanilla Quake can locate a resource, a Quake source port will find it as well.

As I wrote in the top post (emphasis added):
failing to reproduce the original game's behavior reflects carelessness on the part of the engine's porter, not those making content for the engine.