Commit Graph
436 Commits
Author SHA1 Message Date
Simon McVittie dc00968bc1 client: Remove i386 GNU assembler version of S_WriteLinearBlastStereo16()
This was the last remaining GNU assembler code that was in its own
independent source file, as opposed to being embedded in C code with
GNU `__asm__ volatile` or MSVC `__asm` (which tends to be much easier
to deal with in a modern build system).

When the Quake 3 engine was originally written, this might have been
an "expensive" function when written in portable C, but after 25 years
of CPU development it's less likely to matter (and modern compilers
might produce faster results from the C code anyway).

Resolves: https://github.com/ioquake/ioq3/issues/778
Signed-off-by: Simon McVittie <smcv@debian.org>
2025-08-23 21:23:03 +01:00
Simon McVittie 9f0280bca1 Remove unused matha.S
Before commit a7d33b1c "(bug #3639) BoxOnPlaneSide rewrite" there
was more code here, but since then the only thing left is the
Invert24To16 function, to which I couldn't find any references since
the beginning of ioquake3's git history.

Resolves: https://github.com/ioquake/ioq3/issues/774
Signed-off-by: Simon McVittie <smcv@debian.org>
2025-08-23 21:23:03 +01:00
Tim Angus 3aee97dfab Fix GCC x86 build 2025-08-22 18:38:46 +01:00
Tim Angus 2c893f2fc2 Warn users that the Makefile is now deprecated (#750)
For now it's a skippable message, with REQUIRE_DEPRECATION_ACK=1 it
becomes a hard error that the user must explicitly acknowledge.
2025-08-12 20:37:05 +01:00
Tim Angus 0912659484 Move responsibility for defining NO_VM_COMPILED from build system to q_platform.h 2025-08-07 15:10:24 +01:00
Tim Angus 2c91b38899 Simplify VM sources for old architectures 2025-08-07 15:10:24 +01:00
Tim Angus 282bd6513e Move third party code to code/thirdparty 2025-08-02 20:01:03 +01:00
Tim Angus 8976973d3b Move puff.* to renderercommon 2025-08-01 22:36:51 +01:00
Tim Angus 92fb145f43 Merge identical tr_subs.c into renderercommon 2025-08-01 22:36:51 +01:00
Tim Angus d07bf88ce9 Add USE_ARCHLESS_FILENAMES 2025-08-01 22:36:51 +01:00
Tim Angus cb11c5e339 Make client.html and Autotools style input file 2025-07-31 11:02:38 +01:00
Tim Angus b512b786ec Move Linux ARCH_STRING definition out of Makefile 2025-07-29 21:53:21 +01:00
Tim Angus d2f209fbda Remove USE_LOCAL_HEADERS 2025-07-29 18:12:31 +01:00
Pan7 96fefcb7c9 Replace USE_LOCAL_HEADERS with USE_INTERNAL_* 2025-07-29 17:32:18 +01:00
Tim Angus 7962686d2d Adjust resource path to quake3.ico
I'm aware this probably breaks the MSVC build, but

a) I think it's probably broken already
b) I have good reasons that will hopefully make this a non-issue anyway
2025-07-29 16:26:40 +01:00
J.Ingram 934e7b9372 Call SHGetFolderPathA directly
Removing shfolder.h satisfies MSVC, and calling the function directly makes PFNSHGETFOLDERPATHA unnecessary.
2025-07-29 14:41:57 +01:00
Tim Angus 69ad3699ea Update SDL 2025-07-24 20:29:53 +01:00
Tim Angus a4d4b1743e Remove macOS ppc support 2025-07-24 18:41:52 +01:00
Tim Angus 1a256983ad Update OpenAL (headers) 2025-07-24 12:23:43 +01:00
Zack Middleton 3d255758ff Fix server compile flags for unzip.c and ioapi.c 2025-07-24 09:41:35 +01:00
Tim Angus 9814f5f42f Implement WinINet based HTTP downloads 2025-07-22 14:57:01 +01:00
Tim Angus 8fb30de7af Disable USE_HTTP on Emscripten 2025-07-22 14:57:01 +01:00
Tim Angus 1cbba07fc3 Add abstract frontend to HTTP support and stop using curl on Windows 2025-07-22 14:57:01 +01:00
Tim Angus dfa0e23395 Update curl 2025-07-22 14:57:01 +01:00
Tim Angus 2dc5fc674e Add CC_VERSION to info message 2025-07-14 17:42:18 +01:00
Tim Angus 124000104e Treat unzip.c and ioapi.c as third party code 2025-07-14 17:42:18 +01:00
Tim Angus 7095006414 Update libjpeg 2025-07-14 17:42:14 +01:00
Tim Angus 3978a5078e Separate out CFLAGS so that third party code is compiled with warnings disabled 2025-07-14 17:41:53 +01:00
Tim Angus 7af17542d2 Update zlib 2025-07-14 13:17:17 +01:00
Tim Angus 28929ad213 Update xiph.org internal libs 2025-07-13 22:57:32 +01:00
Zack Middleton c1ab47a764 Rename client-config.json based on CLIENTBIN
Also make viewing client.html directly use client-config.json in the
same directory so it's possible to "live edit" both the files without
having to run make.
2024-06-11 04:40:08 -04:00
Zack Middleton 2660bb4a03 Add support for overriding basegame to web client
List files for multiple games in a single client-config.json file so
that com_basegame argument can pick different game data.

Use ioquake3.html?com_basegame=demoq3 (or tademo) to run the Quake 3 or
Team Arena demo. They require new QVMs from baseq3/missionpack to run.
2024-06-11 04:40:08 -04:00
Zack Middleton 8365ea7ed2 Customize the web client HTML file
Modify the client HTML file when copying it to the build directory to
apply current CLIENTBIN and BASEGAME. It always loads engine/data from
the current directory (no need to try to locate the build directory).
2024-06-11 04:40:08 -04:00
Zack Middleton e6c0776d98 Allow web client to use unzipped QVMs
Compile the QVMs and automatically uses them when not using --preload-file.
2024-06-11 04:40:08 -04:00
Zack Middleton 41ec9ae05f Make emscripten --preload-file opt-in 2024-06-11 04:40:08 -04:00
Zack Middleton ab8f7eb0bd Clean up emscripten in Makefile
- Remove emscripten build steps from Makefile (see readme)
- USE_CURL=0 has no effect
- HAVE_VM_COMPILED=false has no effect
- WebGL 1 and 2 are supported by the OpenGL2 renderer
- FULL_ES2 (client-side arrays) isn't needed
- Rename EMSCRIPTENOBJ to GENERATEDTARGETS and separate it from
  TARGETS so it's more readable.
2024-06-11 04:40:08 -04:00
Zack Middleton b14c5a3d9c Add BUILD_RENDERER_OPENGL1 to disable opengl1
Have emscripten disable BUILD_RENDERER_OPENGL1 instead of hardcoded to
disable opengl1 client.
2024-06-11 04:40:08 -04:00
Zack Middleton 198c92b9f8 Add DEPEND_MAKEFILE to disable rebuild on Makefile edit 2024-06-11 04:40:08 -04:00
James Darpinian f2169ed0b4 Support debug Emscripten build 2024-06-09 22:10:52 -04:00
James Darpinian 9348dbf643 Silence compiler warnings 2024-06-09 22:10:52 -04:00
James Darpinian 6fe061c36e Fix build when specifying PLATFORM=emscripten manually instead of using emmake 2024-06-09 22:10:52 -04:00
James Darpinian 2765cd5398 Get rid of "Nothing to be done for _.zip" message 2024-06-09 22:10:52 -04:00
James Darpinian db24dfe13f ioquake3.html replaces Emscripten-generated HTML shell
This enables several things:
* Optionally load pk3 files from a web server at runtime instead of bundling them with Emscripten at build time
* Set command line arguments via URL param
* It's not ugly
2024-06-09 22:10:52 -04:00
James Darpinian e247b316a7 Rebuild every target if Makefile changes 2024-06-09 22:10:52 -04:00
Zack MiddletonandJames Darpinian 413be19a8d Add -ffast-math for emscripten to match other platforms
Co-authored-by: James Darpinian <jdarpinian@gmail.com>
2024-06-09 22:10:52 -04:00
Zack MiddletonandJames Darpinian 25a680ab6e Allow building for emscripten with "emmake make"
Co-authored-by: James Darpinian <jdarpinian@gmail.com>
2024-06-09 22:10:52 -04:00
Zack MiddletonandJames Darpinian 17cadb5369 Fix using emscripten 3.1.27+
emscripten 3.1.27 reduced the stack size from 5MB to 64KB. This caused
run-time errors: Uncaught RuntimeError: index out of bounds

Co-authored-by: James Darpinian <jdarpinian@gmail.com>
2024-06-09 22:10:52 -04:00
Zack Middleton 6f5c038947 Use BASEGAME for emscripten assets 2024-06-08 23:28:09 -04:00
Zack Middleton 4fc059b940 Fix emscripten build directions 2024-06-07 19:11:40 -04:00
Zack Middleton f41bd37fde Add minimal emscripten support 2024-06-06 20:51:44 -04:00