Another Quake 2 engine game stuck with hardcoded resolutions.
Resolution locations
320x240
B47D4 is the horizontal resolution for gl_mode 0 (4 byte unsigned int, little endian)
B47D8 is the vertical resolution for gl_mode 0 (4 byte unsigned int, little endian)
(40 01 00 00 F0 00 00 00) to
400x300
B47E4 is the horizontal resolution for gl_mode 1 (4 byte unsigned int, little endian)
B47E8 is the vertical resolution for gl_mode 1 (4 byte unsigned int, little endian)
(90 01 00 00 2C 01 00 00) to
512x384
B47F4 is the horizontal resolution for gl_mode 2 (4 byte unsigned int, little endian)
B47F8 is the vertical resolution for gl_mode 2 (4 byte unsigned int, little endian)
(00 02 00 00 80 01 00 00 to
640x480
B4804 is the horizontal resolution for gl_mode 3 (4 byte unsigned int, little endian)
B4808 is the vertical resolution for gl_mode 3 (4 byte unsigned int, little endian)
(80 02 00 00 E0 01 00 00) to
800x600
B4814 is the horizontal resolution for gl_mode 4 (4 byte unsigned int, little endian)
B4818 is the vertical resolution for gl_mode 4 (4 byte unsigned int, little endian)
(20 03 00 00 58 02 00 00) to
960x720
B4824 is the horizontal resolution for gl_mode 5 (4 byte unsigned int, little endian)
B4828 is the vertical resolution for gl_mode 5 (4 byte unsigned int, little endian)
(C0 03 00 00 D0 02 00 00) to
1024x768
B4834 is the horizontal resolution for gl_mode 6 (4 byte unsigned int, little endian)
B4838 is the vertical resolution for gl_mode 6 (4 byte unsigned int, little endian)
(00 04 00 00 00 03 00 00) to
1152x0864
B4844 is the horizontal resolution for gl_mode 7 (4 byte unsigned int, little endian)
B4848 is the vertical resolution for gl_mode 7 (4 byte unsigned int, little endian)
(80 04 00 00 60 03 00 00) to
1280x0960
B4854 is the horizontal resolution for gl_mode 8 (4 byte unsigned int, little endian)
B4858 is the vertical resolution for gl_mode 8 (4 byte unsigned int, little endian)
(00 05 00 00 C0 03 00 00) to
1600x1200
B4864 is the horizontal resolution for gl_mode 9 (4 byte unsigned int, little endian)
B4868 is the vertical resolution for gl_mode 9 (4 byte unsigned int, little endian)
(40 06 00 00 B0 04 00 00) to
Here's what I changed them to in Quake 2, can do the same with Daikatana
gl_mode 9 7680 4320 8k (4x UHD) (00 1E 00 00 E0 10 00 00)
gl_mode 8 5120 2880 5k (4x QHD) (00 14 00 00 40 0B 00 00)
gl_mode 7 3840 2160 4k UHD (4x FHD) (00 0F 00 00 70 08 00 00)
gl_mode 6 2560 1440 3k QHD (4x HD) (00 0A 00 00 A0 05 00 00)
gl_mode 5 1920 1080 2k FHD (~50% use this) (80 07 00 00 38 04 00 00)
gl_mode 4 1600 0900 (~5% use this) (40 06 00 00 84 03 00 00)
gl_mode 3 1366 0768 (~20% use this) (56 05 00 00 00 03 00 00)
gl_mode 2 1280 0720 HD (YouTube popular) (00 05 00 00 D0 02 00 00)
gl_mode 1 0960 0540 (1/4 of FHD) (C0 03 00 00 1C 02 00 00)
gl_mode 0 0640 0360 (1/4 of HD) (80 02 00 00 68 01 00 00)
Resolution text strings
A59E8 to A59F3 (12bytes) gl_mode 9 text string ending with 00 (1600x1200)
A59F4 to A59FF (12bytes) gl_mode 8 text string ending with 00 (1280x0960)
A5A00 to A5A0B (12bytes) gl_mode 7 text string ending with 00 (1152x0864)
A5A0C to A5A17 (12bytes) gl_mode 6 text string ending with 00 (1024x768)
A5A18 to A5A23 (12bytes) gl_mode 5 text string ending with 00 (960x720)
A5A24 to A5A2F (12bytes) gl_mode 4 text string ending with 00 (800x600)
A5A30 to A5A3B (12bytes) gl_mode 3 text string ending with 00 (640x480)
A5A3C to A5A47 (12bytes) gl_mode 2 text string ending with 00 (512x384)
A5A48 to A5A53 (12bytes) gl_mode 1 text string ending with 00 (400x300)
A5A54 to A5A5D (??bytes) gl_mode 0 text string ending with 00 (320x240)
Post edited August 14, 2017 by whatsgoingon