Posted April 13, 2022
As everybody knows, when you leave Quake 2 running alone, demos of gameplay will show. The expansion packs have 3 of these instead of the 2 on "baseq2", and the last one from Ground Zero is very "particular", since it shows the player using a "defender sphere" but there is a textureless cube instead of the sphere, like if there are models missing / not loading in the game.
This has bothered me since I got this Mission Pack on Steam many years ago. I believed the Steam package was missing stuff (like with the music), and having it also missing here on GOG bothered my OCD. So I started investigating, and found out a tool called "Little Movie Processing Centre" by Uwe Girlich (http://demospecs.half-empty.de/lmpc-alpha/), which reads a demo file and translates the included in-game assets and actions into text.
First, I extracted the original demos/demo3.dm2 file from the Rogue pak0.pak file. Using LMPC, converted it to a text file.
Then, I recorded a demo of myself playing in rdm6, the same map of that demo, using a defender sphere, and also converted that to text.
Making a diff between both files, something came up. My demo had this:
packetentity {
entity 285;
modelindex 89; // models/items/defender/tris.md2
modelindex2 91; // models/items/shell/tris.md2
frame 1;
...
While the original 'glitched' demo had this:
packetentity {
entity 266;
modelindex 89; // models/items/defender/tris.md2
modelindex2 219;
frame 9;
...
Searching for the "modelindex 91" I found this in both files:
configstring {
index 123; // model[91]
string "models/items/shell/tris.md2";
}
This is the transparent shell that covers the sphere powerups in Ground Zero.
There was nothing on either file for a "modelindex 219", since "models" reach 126 on both files. Not even the tool found anything, since it adds the model it references to, to the comment at the right. Then, it is the demo file which was wrong, since it refers to an unexistent model. I assume this was a bug on the demo recording that was fixed after Ground Zero came up.
Replacing "219" to "91", and using LMPC to transform the text file back to a .dm2, makes the demo play as intended.
The following are xdelta3 patches for the original demo3.dm2, AND for the entire pak0.pak in the rogue directory:
[url]https://drive.google.com/drive/folders/1ij0qfrLpNfzM4oyxp4MRPLZuEzTVYv5m?usp=sharing[/url]
You don't have to apply both, it's one OR the other.
Note: the xdelta3 patches also changes the "CD track" from '1' to '2'. The demo plays music now.
All of this was tested using Yamagi. You may have some trouble with source ports that give priority to files inside the .pak file, but by changing its name and typing "demomap newname.dm2" you'll see it works.
I know this doesn't change anything and most people won't care... but I did, and wanted to leave the info at least for my future self. Or the guy who makes the remaster.
This has bothered me since I got this Mission Pack on Steam many years ago. I believed the Steam package was missing stuff (like with the music), and having it also missing here on GOG bothered my OCD. So I started investigating, and found out a tool called "Little Movie Processing Centre" by Uwe Girlich (http://demospecs.half-empty.de/lmpc-alpha/), which reads a demo file and translates the included in-game assets and actions into text.
First, I extracted the original demos/demo3.dm2 file from the Rogue pak0.pak file. Using LMPC, converted it to a text file.
Then, I recorded a demo of myself playing in rdm6, the same map of that demo, using a defender sphere, and also converted that to text.
Making a diff between both files, something came up. My demo had this:
packetentity {
entity 285;
modelindex 89; // models/items/defender/tris.md2
modelindex2 91; // models/items/shell/tris.md2
frame 1;
...
While the original 'glitched' demo had this:
packetentity {
entity 266;
modelindex 89; // models/items/defender/tris.md2
modelindex2 219;
frame 9;
...
Searching for the "modelindex 91" I found this in both files:
configstring {
index 123; // model[91]
string "models/items/shell/tris.md2";
}
This is the transparent shell that covers the sphere powerups in Ground Zero.
There was nothing on either file for a "modelindex 219", since "models" reach 126 on both files. Not even the tool found anything, since it adds the model it references to, to the comment at the right. Then, it is the demo file which was wrong, since it refers to an unexistent model. I assume this was a bug on the demo recording that was fixed after Ground Zero came up.
Replacing "219" to "91", and using LMPC to transform the text file back to a .dm2, makes the demo play as intended.
The following are xdelta3 patches for the original demo3.dm2, AND for the entire pak0.pak in the rogue directory:
[url]https://drive.google.com/drive/folders/1ij0qfrLpNfzM4oyxp4MRPLZuEzTVYv5m?usp=sharing[/url]
You don't have to apply both, it's one OR the other.
Note: the xdelta3 patches also changes the "CD track" from '1' to '2'. The demo plays music now.
All of this was tested using Yamagi. You may have some trouble with source ports that give priority to files inside the .pak file, but by changing its name and typing "demomap newname.dm2" you'll see it works.
I know this doesn't change anything and most people won't care... but I did, and wanted to leave the info at least for my future self. Or the guy who makes the remaster.