forked from yquake2/yquake2
-
Notifications
You must be signed in to change notification settings - Fork 11
/
README
843 lines (705 loc) · 35.5 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
* ****************************** *
* Yamagi Quake II *
* http://www.yamagi.org/quake2 *
* http://github.com/yquake2 *
* ****************************** *
===============================================================================
This is the Yamagi Quake II Client, an enhanced Version of id Software's Quake
II. The main focus is single player, the gameplay and the graphics are
unchanged, but many bugs were fixed. Unlike most other Quake II ports Yamagi
Quake II is full 64 bit clean so it works perfectly on modern amd64 (x86_64)
processors and operating systems. This code should run on Windows XP or later,
Mac OS X 10.6 or higher and on most unix-like operating systems
(only FreeBSD, Linux and OpenBSD are officially supported and tested, for other
systems you'd at least have to edit the Makefile), just type "make" or "gmake"
to compile.
This code is based upon Icculus Quake II, which itself is built upon id
Software's original code drop. Additional code and patches by many contributers
were used. It's released under the terms of the GPL version 2. See the LICENSE
file for further information.
===============================================================================
Content of this file:
--------------------
1. Installation on (Free|Open)BSD and Linux
1.1 Supported Systems
1.2 Retail Version
1.3 Demo Version
1.4 Addons
1.5 Compiling
1.6 Default Configuration
2. Installation on Microsoft Windows
2.1 Supported Systems
2.2 Retail Version
2.3 Demo Version
2.4 Addons
2.5 Binary Installation
2.6 Compiling
2.7 Default Configuration
3. Installation on OS X
3.1 Supported Systems
3.2 Retail Version
3.3 Demo Version
3.4 Addons
3.5 Compiling
3.6 Default Configuration
4. OGG/Vorbis playback
4.1 Setup for the original soundtrack
4.2 Setup for other music and playlists
4.3 Manual control
4.4 Console variables
5. Configuration
5.1 Video
5.2 Input
5.3 Sound
5.3.1 The classic sound system
5.3.2 The OpenAL sound system
6. Bugreports
7. FAQ
===============================================================================
1. Installation on (Free|Open)BSD and Linux
===========================================
Note: Some Linux distributions have packages of Yamagi Quake II that might even
assist you in installing the game data.
In Debian and Ubuntu it's called "yamagi-quake2", the package
"game-data-packager" should help you with installing the game data.
Note however that those packages are usually outdated a few versions, so if you
encounter any bugs in them it's possible that we have already fixed those bugs
in a later release.
1.1 Supported Systems:
----------------------
Officially, only FreeBSD, Linux and OpenBSD on i386 (x86), amd64 (x86_64),
sparc64 and compatible CPUs are supported. Other (Unix-like) Operating Systems
and hardware architectures are untested and may need small changes, at least in
the Makefile. Yamagi Quake II needs OpenGL 1.1 (better: 1.4) support in hardware
and libGL; OpenGL ES will not work. The only tested compilers are gcc 4.2 (or
later) and clang 3.0 (or later). Patches (or better Github pull request) for
other platforms are welcome. :-)
1.2 Retail Version:
-------------------
If you own Quake II, first get the official point release to Quake II 3.20:
ftp://ftp.idsoftware.com/idstuff/quake2/q2-3.20-x86-full-ctf.exe Use this and
only this file! Unofficial "linux pointreleases" or something like that will
not work and may crash your game!
Create a new directory "quake2/" and extract (with unzip) the file you just
downloaded into it. Even if the file extension is ".exe" it's a self-extracting
zip file. Now delete the following files and directories:
- 3.20_Changes.txt
- quake2.exe
- ref_gl.dll
- ref_soft.dll
- baseq2/gamex86.dll
- baseq2/maps.lst
- ctf/ctf2.ico
- ctf/gamex86.dll
- ctf/readme.txt
- ctf/server.cfg
- xatrix/gamex86.dll
- rogue/gamex86.dll
Now copy the file "pak0.pak" and the directory "video/" from the Quake II
CD-ROM to the "baseq2/" directory of your installation.
1.3 Demo Version:
-----------------
If you haven't got Quake II, try the demo version. Get it here:
ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe
Unzip this file (again, it's a self-extracting zip file). Create a new
"quake2/" directory with a "baseq2/" sub-directory and put the
"pak0.pak" and the "players/" sub-directory into it - you can find them
within the unzipped files in Install/Data/baseq2/ - in your "baseq2/"
directory. No patching is needed for the demo, in fact it would break
it.
1.4 Addons
----------
Due to license issues - Yamagi Quake II is covered by the GPL and the
addons are under the id Software SDK license - the addons are
distributed separately. You can get them at http://www.yamagi.org/quake2,
both contain installation instructions. But nevertheless you'll need an
installation of the full Quake II game with our client for playing them.
The same applies to the "ctf" capture the flag addon.
1.5 Compiling:
--------------
After you have set up the game data (from the full version or the
demo), you have to compile the Yamagi Quake II client.
You will need the following dependencies (by editing the Makefile
the requirement of most of this depencenies can be removed, but
it'll lead to the loss of features):
- A libGL implementation (Mesa3D, nVidia, AMD Catalyst, etc.)
- OpenGL system headers
- libogg with development headers
- libvorbis with development headers
- OpenAL with development headers
- SDL 1.2 or 2.0 (the latter is recommended) with development headers
and sdl-config(1)
- ZLib
Extract the source, change into the new created directory and type "make"
(Linux) or "gmake" (FreeBSD, OpenBSD). After the compilation finished, copy the
following files from "release/" to your installation directory preserving the
directory structure:
- q2ded
- quake2
- baseq2/game.so
1.6 Default Configuration
-------------------------
Quake II ships with an old and for today standards "insane" default
configuration. This is no problem since you can alter everything. To make your
life easier Yamagi Quake II contains an updated default configuration.
If you want to use it just copy "stuff/yq2.cfg" to your "baseq2/" folder.
Now you are ready to start your brand new Quake II. Have fun.
===============================================================================
2. Installation on Microsoft Windows
====================================
Yamagi Quake II has full support for Microsoft Windows. All features are
supported, including the IPv6 network code and the OpenAL sound backend.
Installation can be done by using the binary release (this is highly
recommended) or by compiling the source with MinGW.
2.1 Supported Systems
---------------------
Yamagi Quake II should run on Windows XP or higher, older versions are not
supported. You'll need a graphics card with support for at least OpenGL 1.1
(OpenGL 1.4 is recommended). Both x86 and x86_64 Windows installations are
supported, but x86 is much more tested.
2.2 Retail Version
------------------
If you own Quake II, first get the official point release to Quake II 3.20:
ftp://ftp.idsoftware.com/idstuff/quake2/q2-3.20-x86-full-ctf.exe
Use this and only this file! Unofficial pointreleases or something like
that will not work and may crash your game!
Extract the file into a new directory (we recommend quake2\) and remove
the following files and directories:
- 3.20_Changes.txt
- quake2.exe
- ref_gl.dll
- ref_soft.dll
- baseq2\gamex86.dll
- baseq2\maps.lst
- ctf\ctf2.ico
- ctf\gamex86.dll
- ctf\readme.txt
- ctf\server.cfg
- xatrix\gamex86.dll
- rogue\gamex86.dll
Now put the Quake II CD-ROM into your cd drive and cancel the installation.
Copy "pak0.pak" and the directory "video\" to the "baseq2\" directory of your
installation.
2.3 Demo Version
----------------
If you haven't got Quake II, try the demo version. Get it here:
ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe
Extract this file into a new directory and delete everything but
"baseq2\pak0.pak" and the "baseq2\players\" directory. No patching
is needed for the demo, in fact it would break it.
2.4 Addons
----------
Due to license issues - Yamagi Quake II is covered by the GPL and the
addons are under the id Software SDK license - the addons are
distributed separately. You can get them at http://www.yamagi.org/quake2,
both contain installation instructions. But nevertheless you'll need an
installation of the full Quake II game with our client for playing them.
The same applies to the "ctf" capture the flag addon. Please note, that
support for the addons is included in the binary release (see below).
2.5 Binary Installation
-----------------------
We highly recommend, that you use our binary release of Yamagi Quake 2.
Just extract it over the directory created in step 2.3 or 2.4. If you
want to copy the files by hand, just copy them over by preserving the
directory structure. Please make sure that openal32.dll is copied too.
Otherwise Yamagi Quake 2 may use a systemwide installed library, which
may cause problems including a non starting game.
2.6 Compiling
-------------
Compiling Yamagi Quake II from source is unnecessary as long as you do not
want to use the github version or want to develop on Windows. If you really
want to compile Yamagi Quake II by yourself follow these steps:
1. Grab an up to date version of the MinGW build environment from
http://deponie.yamagi.org/quake2/windows/build/, extract it to C:\MinGW
and start either the 32 bit or the 64 bit version by C:\MinGW\MSYS32
or C:\MinGW\MSYS64.
2. Navigate to your Yamagi Quake II source. If you need to check it out
from git, first install git from http://git-scm.com/. Type "make" to
compile. Please note, that compilation on network shares is somewhat
shaky.
After compiling, copy the following files from "release\" to your Quake II
installation preserving the directory structure:
- q2ded.exe
- quake2.exe
- baseq2\game.dll
You'll need an "openal32.dll". You can use and rename the OpenAL DLL that
that is provided by OpenAL Soft (see http://kcat.strangesoft.net/openal.html).
Please note that the name of the DLL is always "openal32.dll", even if it's
a 64 bit library.
2.7 Default Configuration
-------------------------
Quake II ships with an old and for today standards "insane" default
configuration. This is no problem since you can alter everything. To make your
life easier Yamagi Quake II contains an updated default configuration.
If you want to use it just copy "stuff\yq2.cfg" to your "baseq2\" folder.
Now you are ready to start your brand new Quake II. Have fun.
===============================================================================
3. Installation on OS X
=======================
Yamagi Quake II has full support for Apple OS X. All features are
supported, including the IPv6 network code and the OpenAL sound backend.
As there currently is no binary release for OS X, you need to compile the source.
3.1 Supported Systems
---------------------
Yamagi Quake II should run on every Mac with Intel CPU and OS X 10.6
or higher.
3.2 Retail Version
------------------
If you own Quake II, first get the official point release to Quake II 3.20:
ftp://ftp.idsoftware.com/idstuff/quake2/q2-3.20-x86-full-ctf.exe
Use this and only this file! Unofficial pointreleases or something like
that will not work and may crash your game!
Extract the file into a new directory (we recommend quake2\) and remove
the following files and directories:
- 3.20_Changes.txt
- quake2.exe
- ref_gl.dll
- ref_soft.dll
- baseq2\gamex86.dll
- baseq2\maps.lst
- ctf\ctf2.ico
- ctf\gamex86.dll
- ctf\readme.txt
- ctf\server.cfg
- xatrix\gamex86.dll
- rogue\gamex86.dll
Now put the Quake II CD-ROM into your cd drive and copy "pak0.pak" and
the directory "video\" to the "baseq2\" directory of your installation.
3.3 Demo Version
----------------
If you haven't got Quake II, try the demo version. Get it here:
ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe
Extract this file into a new directory and delete everything but
"baseq2\pak0.pak" and the "baseq2\players\" directory. No patching
is needed for the demo, in fact it would break it.
3.4 Addons
----------
Due to license issues - Yamagi Quake II is covered by the GPL and the
addons are under the id Software SDK license - the addons are
distributed separately. You can get them at http://www.yamagi.org/quake2,
both contain installation instructions. But nevertheless you'll need an
installation of the full Quake II game with our client for playing them.
The same applies to the "ctf" capture the flag addon.
3.5 Compiling
-------------
If you want to compile Yamagi Quake II on OS X follow these steps:
1. Make sure that you've installed XCode with the "Unix Develoment Tools".
Depending on your OS X version the name of these can be different.
At least on OS X 10.11 El Capitan it should be sufficient to enter "clang" in a
Terminal to be prompted for installation of the commandline development tools;
full XCode is not needed there.
2. Install dependencies using Homebrew (http://brew.sh). Once you have Homebrew
installed, run the following commands from the terminal to install dependencies:
brew install sdl2 --universal
brew install openal-soft --universal
brew install libogg --universal
brew install libvorbis --universal
3. Open a terminal and navigate to the Yamagi Quake II source code. Type
"make" to compile it. After that the binaries can be found in the release/
directory.
The binaries can be put into an app-bundle (see 3.5 Binary Installation) or
used in the classic classic unix way. An empty .App template is included in /stuff/osx.
In the latter case the game be started at the command line. Be aware that the app-bundle
support has to be deactivated in the Makefile, otherwise the game is unable to find it's
libraries!
3.6 Default Configuration
-------------------------
Quake II ships with an old and for today standards "insane" default
configuration. This is no problem since you can alter everything. To make your
life easier Yamagi Quake II contains an updated default configuration.
If you want to use it just copy "stuff\yq2.cfg" to your "baseq2\" folder.
Now you are ready to start your brand new Quake II. Have fun.
===============================================================================
4. OGG/Vorbis playback
======================
Since most modern CD-ROM and DVD drives don't have an analog audio output and
most sound codecs don't have the appropriate input header, it's not possible to
use CD audio as background music on such systems. With SDL 2.0 CD audio is
unsupported Therefore OGG/Vorbis music support has been added to Yamagi Quake
II.
4.1 Setup for the original soundtrack:
--------------------------------------
Put your Quake II CD-ROM into your drive, start your favorite CD extractor and
rip the audiotracks into OGG/Vorbis files. These files must be named after their
track number, beginning with 02, because the first track is data.
If everything is done correct, you should have: 02.ogg, 03.ogg, ..., 11.ogg.
Alternatively you can use a script which can be found in the folder "stuff/".
It needs cdparanoia and oggenc and should work with the main game and both
addons.
Drop these files in "baseq2/music/", start Quake II, enter the "Options" menu
and set "OGG music" to enabled. "CD music" will be automaticly disabled.
Quake II will now play the OGG/Vorbis files instead of the Audio-CD.
4.2 Setup for other music and playlists:
----------------------------------------
You can put any OGG/Vorbis files into "baseq2/music/" or "your_mod/music/".
If shuffle is enabled, Quake II will shuffle through all files, otherwise it
will loop through the track associated with the map.
A playlist is also supported. Just put the filenames into music/playlist
(a plain text file) and start the game.
4.3 Manual control:
-------------------
For manual control of ogg playback the following console commands are available:
- ogg_play {file | #n | ? | >n | <n}
Play a file, the argument can be one of (n is always a number, e.g. 42):
* A file in "music", without the path and ".ogg" extension.
* #n to play the n-th file in the playlist.
* ? which indicates to play a random file.
* >n which indicates to advance n positions (defaults to 1).
* <n which indicates to go back n positions (defaults to 1).
- ogg_stop
Stop playback
- ogg_pause
Pause playback
- ogg_resume
Resume playback
- ogg_seek {n | >n | <n}
Go to a determinated position of the current file in seconds, the argument can
be one of the following:
* n, which indicates to go to the n-th second.
* >n, which indicates to advance n seconds.
* <n, which indicates to go back n seconds.
You can use "ogg_seek >0" and "ogg_seek <0" to get the current position without
changing it.
- ogg_status
Display status ("playing a file", "paused", "stopped", etc).
4.4 Console variables:
----------------------
- ogg_enable {0 | 1}
Enables the Ogg Vorbis subsystem if set to "1". Defaults to "0".
- ogg_playlist {name}
Use "name" as a list of files instead of listing the contents of "music".
Note that the files must be in "music" and follow ogg_play's syntax for
files. Defaults to "playlist".
- ogg_sequence {next | prev | random | loop | none}
When a file ends, start playing another one, depending on the value:
* next: play the next file.
* prev: play the previous file.
* random: play a random file.
* loop: play the same file again.
* none: stop playing.
Defaults to "loop".
- ogg_volume
Volume of the music between 0 and 2. Defaults to "0.7".
===============================================================================
5. Configuration
================
While configuring Quake II is straight forward some rough edges can arise.
Before reporting bugs or mailing us please read this section all the hints
covered in it!
5.1 Video
---------
For most people the options in the "Video" menu are sufficent. But there
are some things that can and in some cases must be tuned via cvars. Here
the most common questions are answered.
- Yamagi Quake II has full support for widescreen setups. Just select your
favorite resolution via the video menu.
- If your resolution is not in the list, it's also possible to set custom
resolutions via the console: Set gl_customwidth and gl_customheight to the
desired values. Change gl_mode to -1 or enter the "Video" menu and select
"Custom" as video mode.
- Sync problems resulting in tearing and artifacts in the lower half of
the screen: These orginiate in the fact, that in 1997 LCD flat panels were not
widely used because they were very expensive and much too slow for gaming.
Thus Quake II has problems when played on most flat panel monitors.
The solution for this problem is simple: Just set "cl_maxfps" to about
95 FPS and enable the vsync by setting "gl_swapinterval" to 1.
This should supress all of the problems.
- Particle effects are broken. They're just squares and not perfectly
round: This is a problem by your graphics driver, not implementing
a special filter mode for "points". Set "gl_ext_pointparameters" to 0
to get better (but not perfect) particles.
- The game is bright enough but it's also washed out and dull: You need
more saturation. Just adjust the cvar "intensity". The default 2
should be enough for most cases, but some setups require higher
levels.
- If the colors look over-saturated try setting the cvar "intensity" to a lower
value, e.g. 1.
- Yamagi Quake II offers hardware gamma control in realtime in the "Video" menu.
If Quake II is still too dark, set the "vid_gamma" cvar by hand to values
above 1.5. If models and dynamic lights are too dark consider increasing the
"gl_modulate" cvar.
- Yamagi Quake II can draw shadows. Just set "gl_shadows" to 1. You most
likely want to set "gl_stecilshadow" to 1 too. This enables high
quality stencil buffer shadows.
- Yamagi Quake II has support for anisotropic filtering. Activating it
improves texture drawing over large distances a bit.
Enter "gl_anisotropic_avail" in your console for the maximum amount of
filtering supported by your video card and set the cvar "gl_anisotropic" to
the desired value. It must be a power of 2, in most cases 2, 4, 8 or 16.
- Yamagi Quake II has support for the high resolution retexturing pack, created
by the community. Installation is easy:
1. Download q2_textures.zip from http://deponie.yamagi.org/quake2/texturepack/
(There's also models.zip, but not all contained textures fit on the
original Quake II models and thus look broken.)
2. Extract the file into the "baseq2/" directory of your Quake II
installation, so that the new directories "baseq2/textures/" is created.
The retexturing pack is used by default if it's installed. It can be switched
off at any time by setting "gl_retexturing" to "0" and executing
"vid_restart" aftwards.
- Yamagi Quake II has support for antialiasing. Set gl_msaa_samples to the
desired antialiasing factor (most graphic cards support 2, 4, 8 and 16),
followd by a vid_restart. Please note that very old graphic cards may not
support antialiasing at all.
- It's possible to upscale nearly all 2D artwork. This is especially useful on
high resolution displays were the cosole and HUD can become very small or even
unreadable. Scaling support is devided into 3 parts which are controlled by
cvars:
- gl_consolescale: Scale the console and most in-game texts
- gl_menuscale: Scales the menu. Please note that the menu was never ment to
be scaled and slight disalignement (especially in the "Player
Setup" menu) are unavoidable. That's not considered a bug.
- gl_hudscale: Scales the in-game HUD
All 3 cvars work the same way. They're set to the scale factor. A factor of 1
(defaults) means no scaling at all. Values smaller than 1 but bigger than 0
downscale the artwork, it becomes smaller. A value of 0 means no artwork at
all. Values greater than 1 enlarge the artwork. Please note that full numbers
will give best results. For example 1.7 will lead to small distortions while
2 will not. Most users will set all 3 cvars to -1. In that case the game
calculates a more or less optimal scaling factor, matching the artwork size
at a resolution of 640x480.
5.2 Input
---------
Quake II had a rather simple input system, even back in 1997. It just mapped
Windows 95 mouse directly on movements. That was a very acurate way to do it,
Quake II was - like all other id Software games - much more acurate than most
games out there. But there were some problems. First the mouse input depends on
the operation systems mouse driver. Another operating system or even another
mouse and the input changed drastically. That sucked.
Yamagi Quake II features a from scratch rewritten mouse backend based on SDL.
It gives you the same mouse behavior, regardless of your operating system or
hardware. But sadly it can't emulate the old behavior in all cases.
There are some cvar to adjust:
- in_mouse -> Set to 0 to disable the mouse.
- sensitivity -> The sensistivity of the mouse. Adjust to your needs, via the
cvar or via the "Options" menu.
- m_filter -> A mouse filter. This was added in one of the countless point
releases but it was broken. We fixed it. The effect is the same as in
Quake III Arena, instead of using the raw movement signals, two of them are
combined, filtering vibrations and things like that out.
- exponential_speedup -> "0" is disabled. A very simple approach to mouse
acceleration, much simpler than modern mouse acceleration. Sadly it's nearly
impossible to add modern acceleration to Quake II since most of the needed data
isn't available to the input backend.
5.3 Sound
---------
Quake II featured one of the best sound systems of it's time (for example it had
support for realtime calculated stereo effects) but sadly it was totaly broken.
Therefore id Software rewrote it once, later it was rewritten again for the
linux port. That fixed the most visible problems, but the code was just crap and
broke again as time passed and sound on PCs evolved. For Yamagi Quake II 3.0 the
sound system was overhauled, featuring a complete code audit of the upper layers
with many bugfixes and memory leak plugs. The backend was rewritten from
scratch. This should solve most if not all problems. Yamagi Quake II 4.20
featured an optional OpenAL sound system, enabling better stereo calculations
and even surround support.
5.3.1 The classic sound system
------------------------------
This is the original sound implementation, as used in the first release of Quake
II in 1997. It featured stereo calculations for most samples. It's disabled by
default and can be reenabled by setting "s_openal" to "0", followed by
"snd_restart. Common problems with the classic sound system are:
- The earthquake sound sample is distorted
This is not a fault of the sound code but of the sound sample itself.
It's mostly made of very low frequency noices and sampled in only 22kHz,
bringing cheap onboard soundcards to the limit. The only solution would be to
change the sample...
- The sound is stuttering and cracking
This is most likely a problem on your side! First make sure that your SDL
sound backend is installed properly. Does the sound work in other SDL games
like ioquake3? If possible remove all sound servers from your stack and use
plain OSS or ALSA via libasound. If everything fails try create an ~/.asoundrc
with this contents:
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
5.3.2 The OpenAL sound system
-----------------------------
This is a sound system based upon the popular OpenAL audio library. It features
surround playback which gives a huge improvement in sound quality and gameplay
experience. It's enabled by default, but can be disabled by setting "s_openal"
to "0", followed by a "snd_restart". To work correctly it's in the need of a
correctly configured OpenAL implementation! On OS X and Windows the default
configuration is okay. On FreeBSD, Linux and OpenBSD OpenAL is configured in the
file ~/.alsoftrc (for the openal-soft implementation, other implementations may
vary). The most important options (tested with OpenAL Soft 1.14) are:
- channels = surround51 -> Enable 5.1 surround support. Other values are "mono",
"stereo", "quad", "surround61" and "surround71".
- stereodup = true -> If set to "true" all raw stereo samples (in Quake II the
background music and video sounds) are duplicated behind the listener.
Otherwise they're played only through the front speakers.
- resampler = cubic -> Use cubic resampling. While this requires more cpu power
than the default linear resamling it's highly recommended since Quake II has
several hard to resamples sound effects. Especially the earthquake sound can
distort if a low quality resampler is employed!
- hrtf = true -> When playing with headphones this gives a much better surround
experience, even with only two channels. But playback will sound "broken" on
normal speakers.
If the sound is distorted and cracking, most likely the ingame volume is set too
high. Lower it by setting the "s_volume" CVAR to 0.3 or even less and use the
system mixer instead! If everything failes set s_openal_maxgain to a lower value
like 0.3 to clamp the maximum preamplification gain. But beware! The side effect
is a limited dynamic range!
===============================================================================
6. Bugreports
=============
Something is not working as expected? An elevator is broken? An enemy doesn't
move? Or the whole game is just crashing? Just open a new github issue at
https://github.com/yquake2/yquake2. Please include a problem description and
- if possible - a screenshot of the problematic situation and the name of the
problematic map. In case of crashes, further helpful information (and
instructions) are printed to stdout (your terminal, ...\Documents\YamagiQ2\
stdout.txt on Windows).
But first, read this little FAQ:
My SDL sound is not working!
- Most reported sound problems exist between keyboard and chair. Please make
sure, the the correct SDL sound backend is installed and configured!
Does the sound work in other SDL games? Does your setup support at least five
virtual channels? In most cases it's better to not use sound servers like
Pulseaudio but the plain sound system like OSS or ALSA with libasound instead.
Also see the "Sound" section in this file!
My OpenGL is not working!
- Make sure, that OpenGL is working in other games. Use "glxinfo" and
"glxgears" to make sure, that hardware rendering is available.
Otherwise, fix your setup. If reporting OpenGL bugs please include a copy of
your xorg.conf (if available) and the Xorg.0.log.
The game is crashing!
- Make sure that your installation is complete. Missing files will crash Quake
II on random occasions and will produce strange backtraces! This just wastes
our time, so please check first and report then!
Valgrind reports many, many memory leaks!
- Yeah it does. But they're usually false positives due to Quake IIs caching
architecture. There are some real memory leaks in SDL, Mesa3D, X11 and so on
but they're out of our scope. So before reporting memory leaks please read
the code, understand the code and be sure that's a real leak!
===============================================================================
7. FAQ
======
How do I open the console?
- Press "^" or "~", depending on your keyboard layout.
How do I get the frame counter?
- Set "cl_drawfps" to 1
How do I make a benchmark?
- Set "timedemo" to 1 and play a demo.
How do I play demos?
- "demomap name.dm2". Note that the extension .dm2 is important!
How do I record a demo?
- "record name" and "stop" to stop.
When playing in window mode my cursor is locked onto the window. Can I change
that, so that Quake II behaves like a normal window?
- Open the console by pressing ~ or ^ or drop into the menu. If you want Quake
II to never grab the mouse set "in_grab" to 0, if Quake II should never
release the mouse set 1, for releasing the mouse when the console or the
menu is opened set to 2. The default is 2.
Hey, my screensaver crashes Quake II or I experience strange crashes after a
fixed amount of time!
- This is a known bug in some linux distributions. SDL fails to disable
the screensaver even if we tell him to do so. See this Ubuntu bugreport:
https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/32457
As a work around use the startscript in stuff/quake-start.sh It deactivates
the screensaver before starting Quake II and reenables it after exiting the
game.
Okay, Yamagi Quake II is for single player and coop. But what's with us
deathmatch and / or CTF freaks?
- Use another client. There are clients out there which offer far better multi-
player experiences. They're featuring greatly improved network code and a
better client<->server integration. Take a look at EGL, r1q2 or AprQ2. At
least r1q2 should work on unixlike operating systems.
The movement is fucked up! I can jump much higher and longer as it used
to be! What's wrong?
- You're experiencing the Quake II version of the famous Q3A 125hz bug.
When Quake II draws more than about 100 FPS the movement calculations go
wrong and you can jump much higher. To solve this set "cl_maxfps" to about
95 FPS. And no, we won't fix it since it would be very invasive and most
likely break a lot of other things.
I'm creating a package or port for my system. Is a system wide install
possible without patching the source?
- Yes. Just set -DSYSTEMWIDE. If you want to change the default
directory from /usr/share/games/quake2/, just set -DSYSTEMDIR
to the desired path. Also have a look into the Makefile.
How do I disable friendly fire in coop mode?
- The same way as in team deathmatch. Via the menu select "deathmatch options"
and set teamplay to "by skin" or by "by model" and friendly fire to disabled.
Make sure, that all players have the same model or skin! If you're using the
dedicated server or are already in the game, open the console and type
"dmflags 336" für skinbased teamplay and "dmflags 400" for modelbased
teamplay.
Can I connect to an IPv6 server?
- Yes, the same way as connecting to an IPv4 server. Since the Quake II console
has problems with the characters ":", "[" and "]" we suggest to submit the
connection command as command line argument:
./quake2 +connect "[2001:db8::1]"
If you want to connect to a server with a non-standard port use the following
syntax:
./quake2 +connect "[2001:db8::1]:12345"
For your server to show up in the server list you need to supply a multicast
interface to both the client and the server:
./q2ded +set multicast eth0
./quake2 +set multicast eth0
Normaly the server will listen to all IPv4 and IPv6 addresses. You can bind
it to an address with:
./q2ded +set ip "[2001:db8::1]"
Where can I find the configuartion file?
- It's located at ~/.yq2/game/config.cfg (FreeBSD, Linux, OpenBSD and OS X) or
...\Documents\YamagiQ2\game\config.cfg (Windows). Replace "game" by the mod
name, e.g. "baseq2/" for the main game.
My mod crashes at startup.
- This is known problem of some mods. A workaround is to create the working
directory by hand:
mkdir -p ~/.yq2/$moddir (FreeBSD, Linux, OpenBSD and OS X)
...\Documents\YamagiQ2\$moddir (Windows)
Only parts of the maps are rendered!
- By default the maximum view distance is 2300 units. You can widen it up
to 4096 units by setting "gl_farsee" to "1".
Why has Yamagi Quake II no support for joysticks?
- Because nobody has implemented it yet and egoshooters like Quake II
are not really meant to be played with joysticks, gamepads or anything
like that. If you really need joystick support you can use a joystick
to keyboard translator like joytran (for FreeBSD, Linux and OpenBSD):
http://chiselapp.com/user/beyert/repository/joytran/index
What is yq2.cfg for?
- yq2.cfg is an alternate startup script, used to override some bad
decisions in the original defaults.cfg. Please do not alter it,
unless you know what you're doing! It may beak the game!
Why is the FOV different than in id Softwares client?
- id Softwares client was designed to work an 4:3 screens only. Setting
the FOV kept the aspect ratio, expanded the view angle in height and
width. Setting a higher FOV on wider screens was common, but the image
distorted lightly. Yamagi Quake II calculates a correct FOV without
distortions. You can get the old behavior if you select an aspect
ratio other than "auto" in the video menu or by setting the "horplus"
cvar to "0".
Why doesn't gl_showtris work?
- gl_showtris requires gl_ext_multitexturing set to 0.
How do I disable the vsync?
- Set gl_swapinterval to 0 and type vid_restart. Beware that this may
not work with SDL 1.2 due to bugs in SDL.
==============================================================================
8. Stereo Support
======
Stereo support was added back.
3d crosshair was added, which requires a model 'models/crosshair/tris.md2' (look in stuff directory)
added cvars
-----------
- gl_stereo:
- 0 - none
- 1 - native opengl (not tested)
- 2 - anaglyph
- 3 - horizontal interleaved
- 4 - vertical interleaved
- 5 - pixel interleaved
- 6 - horizontal split
- 7 - vertical split
- gl_stereo_separation
- gl_stereo_convergence
- crosshair_3d - non-cheating 3d crosshair
it does not work as iron sights, as is positioned exactly
at the center of the view, similar to 2d crosshair
- crosshair_3d_glow (0 - ...) - radius of glow area, can be used without crosshair_3d enabled
- crosshair_3d_glow_r
- crosshair_3d_glow_g
- crosshair_3d_glow_b