f3ae3beacd
BraXi (2): renders: fix BSPX lightmaps Rename functions r_dlightframecount parameter to lightframecount David Carlier (1): models_md5 few memory related fixes Denis Pauk (58): client: add custom protocol with short model index client: bump protocol and game version / unstable compatibility render: sync count of images with protocol max image count models: md5 do not copy token before use models: md5 partial COM_Parse in ReadMD5Anim models: md5 partial COM_Parse usage in ReadMD5Model models: ReadMD5Anim use strtol for parse models: ReadMD5Model get rid of sscanf usage models: ReadMD5Model more strict validation models: ReadMD5Anim get rid sscanf usage models: md5 call R_CompressNormalMDL only once for vertex soft: reuse R_LerpVerts code soft: move R_LerpVerts upper by call stack refresh/files: cppcheck warning clean up gl3/gl4: fix count lightmap in mgu5m2 gl1: cppcheck fixes models: md3/md5 show count of verts and tris models: show number commands in model models: md3 compress commands models: remove static buffers for commands compress models: prepare command compress to share logic models: md5 rearrange glcommands generation models: save triangles ofs/num in each mesh soft: fix multi mesh models render client: fix pickup message in demo models: md5 tris compress before compress gl commands. models: apply md3 compress tris logic models: revert slow vect compress logic models: md3/md5 share command generation code models: mdl compress triangles models: mdl support grouped frames models: make mdl count frames detect separate function models: mdl separate function for image load models: mdl fix texture coordinates models: dkm Daikatana, md2 Anachronox generate normals models: dkm split model to meshes models: add mdx / Kingpin models support renders: load mdx/Kingpin models support models: MDX mesh split by subobj value soft: fix cppcheck warnings, remove unused isflattop soft: fix cppcheck warning and remove unused fullscreen property cin: support tga/jpg/png static image models: fix md5 replacement load without md2 model filesystem: add support of Anachronox DAT archive format filesystem: Anachronox fix load sky filesystem: support longer path in archives (up to 128) client: add xatrix demo protocol check Add windows 32bit build releases small build clean up Add readme note about SiN maps protocol: share configstring convert logic server: convert config string to protocol range server: support of load original game library server: QII97 protocol version check unification server: extend count of sound indexes server: extend gun frame and index to short soft: fix original Quake 2 map lights regression renders: split R_BuildLightMap to two function Feels Duck Man (4): Added a speedometer that displays the player's speed in QU/s. Wasn't quite sure how to implement it without adding GetPlayerSpeed() to pmove.c. Unsure if there is a cleaner way to do this while keeping it inside cl_screen.c Removed 'Speed' label for speedometer when being displayed Added an option to draw speed under the crosshair with cl_showspeed 2, fixed drawing the speedometer when the game wasn't playing. Added documentation for 'cl_showspeed' in 040_cvarlist.md Guilherme Nemeth (1): berserker: slam attack, running club attack Sajt (1): models: add gl command compress code from qwalk apartfromtime (3): Texture filtering option Texture filtering options for OpenGL and Software video modes Fix software dithering |
||
---|---|---|
.github/workflows | ||
doc | ||
src | ||
stuff | ||
.gitignore | ||
CHANGELOG | ||
LICENSE | ||
Makefile | ||
README.md |
Yamagi Quake II Remaster
This is an experimental fork of Yamagi Quake II with ongoing work to add support for Quake II Enhanced aka Q2 Remaster(ed). This enhanced version has a lot non trivial changes, adding support isn't easy and takes time. Feel free to try this code but you mileage may vary.
Have a look at the yquake2 repository for the "normal" Yamagi Quake II: https://github.com/yquake2/yquake2
Alpha windows 64 bit binaries.
State:
- GL1/GL3/GLES3/VK:
- base1: no known issies
- base2: no known issies
- q64/outpost: no known issies
- mguhub: loaded, sometimes broken logic for surface fall in next maps
- GL4:
- base1: unchecked
- base2: unchecked
- q64/outpost: unchecked
- mguhub: unchecked
- SOFT:
- base1: broken wall light
- base2: broken wall light
- q64/outpost: no known issies
- mguhub: broken wall light, sometimes broken logic for surface fall in next maps
Monsters:
- incorrect dead animation for Arachnid,
- broken fire effect for Guardian.
Models support:
Format | Original Game | Frame vertex | Meshes | Comments |
---|---|---|---|---|
mdl | Quake 1 | 8 bit | Single | Unsupported grouped textures |
md2 | Quake 2 | 8 bit | Single | |
md2 | Anachronox | 8/10/16 bit | Single | No tagged surfaces, unchecked with game |
mdx | Kingpin | 8 bit | Many | No sfx support, unchecked with game |
fm | Heretic 2 | 8 bit | Many | |
dkm | Daikatana DKM1 | 8 bit | Many | Unchecked with game |
dkm | Daikatana DKM2 | 10 bit | Many | Unchecked with game |
md3 | Quake 3 | 16 bit | Many | No tags support |
md5 | Doom 3/Quake 4 | float | Many | Requires md2 for skins |
All models support only single texture for all meshes and only up to 255 frames.
Texture support:
Format | Original Game | Comments |
---|---|---|
wal | Quake 2 | 8 bit |
wal | Daikatana | 8 bit |
m8 | Heretic 2 | 8 bit |
m32 | Heretic 2 | 24 bit |
pcx | Quake2 | 24 bit |
tga | Quake2 | 24 bit |
png | retexturing | 24 bit |
jpg | retexturing | 24 bit |
bmp | Daikatana | 24 bit |
Maps support:
Format | Version | Game |
---|---|---|
IBSP | 39 | Quake 2 / Anachronox / Kingpin / Heretic 2 |
IBSP | 41 | Daikatana |
QBSP | 39 | Quake 2 ReRelease |
BSPX | 39 | Quake 2 ReRelease (Extension to IBSP) |
Note:
- SiN Gold has IBSP/41 format but has different size of lump and is unsupported.
- Non Quake 2 maps are limmited mostly view only, and could have issues with tranparency or some animations flags and properties.
Goals (finished):
- BSPX DECOUPLEDLM light map support (base1),
- QBSP map format support (mguhub),
- Use ffmpeg for load any video,
- RoQ and Theora cinematic videos support.
- Cinematic videos support in smk, mpeg, ogv format,
- Daikatana/Heretic 2 map partial format support,
- md5 improve load speed,
- support Anachronox .dat format,
- add debug progress loading code for maps.
Goals (none of it finished):
- Single player support,
- support surface flags for Daikatana, Heretic 2, Anachronox,
- modified ReRelease game code support with removed KEX only related code.
Bonus goals:
- Use shared model cache in client code insted reimplemnet in each render,
- Check load soft colormap as 24bit color,
- Use separete texture hi-color buffer for ui in soft render,
- Convert map surface flag by game type,
- Cleanup function declarations in game save code,
- Use 3 bytes vertex normal,
- Support scalled textures for models and walls in soft render and fix lighting with remastered maps.
Not a goal:
- multiplayer protocol support with KEX engine,
- support KEX engine features (inventary, compass and so on),
- KEX game library support.
Code tested with such maps.
Yamagi Quake II
Yamagi Quake II is an enhanced client for id Software's Quake II with focus on offline and coop gameplay. Both the gameplay and the graphics are unchanged, but many bugs in the last official release were fixed and some nice to have features like widescreen support and a modern OpenGL 3.2 renderer were added. Unlike most other Quake II source ports Yamagi Quake II is fully 64-bit clean. It works perfectly on modern processors and operating systems. Yamagi Quake II runs on nearly all common platforms; including FreeBSD, Linux, NetBSD, OpenBSD, Windows and macOS (experimental).
This code is built upon Icculus Quake II, which itself is based on Quake II 3.21. Yamagi Quake II is released under the terms of the GPL version 2. See the LICENSE file for further information.
Documentation
Before asking any question, read through the documentation! The current version can be found here: doc/010_index.md
Releases
The official releases (including Windows binaries) can be found at our homepage: https://www.yamagi.org/quake2 Unsupported preview builds for Windows can be found at https://deponie.yamagi.org/quake2/misc/