Xash3D (pronounced [ksɑʂ]
) FWGS is a game engine, aimed to provide compatibility with Half-Life Engine and extend it. This is a Dreamcast port of the engine.
- KallistiOS (KOS) development environment
- GLDC
- FatFs
- libbz2
- Create a development directory (e.g.,
Xash3D_DC
) - Clone the following repositories in the same directory:
git clone https://github.com/maximqaxd/xash3d-fwgs_dc
- Modify KOS
include/kos/opts.h
:// Change this line #define FS_CD_MAX_FILES 48
- Modify KOS environ.sh:
# Optimization Level # # Controls the baseline optimization level to use when building. # Typically this is -Og (debugging), -O0, -O1, -O2, or -O3. # NOTE: For our target, -O4 is a valid optimization level that has # been seen to have some performance impact as well. # //set export KOS_CFLAGS="${KOS_CFLAGS} -Os" # Stack Protector # # Controls whether GCC emits extra code to check for buffer overflows or stack # smashing, which can be very useful for debugging. -fstack-protector only # covers vulnerable objects, while -fstack-protector-strong provides medium # coverage, and -fstack-protector-all provides full coverage. You may also # override the default stack excepton handler by providing your own # implementation of "void __stack_chk_fail(void)." # // disable stack protector #export KOS_CFLAGS="${KOS_CFLAGS} -fstack-protector-all"
- Rebuild KOS
- Build GLDC:
# Modify texture.c line 1700: Replace FASTCPY(targetData, conversionBuffer, destBytes); With memcpy(targetData, conversionBuffer, destBytes); # In include/GL/glext.h Remove or comment #define GL_TEXTURE_LOD_BIAS 0x8501 # In GL/config.h replace #define MAX_TEXTURE_COUNT to 1536
This will build:
- Filesystem
- GL renderer
- Main engine (1ST_READ.BIN)
- HLSDK
- Copy engine binaries to a directory
- Copy Half-Life game data (contents of valve folder) to the build/valve directory don't overwrite when prompted.
- Build the engine and all components (make all)
- Run on your Dreamcast
Currently we support multiplayer. It requires BBA. Modem tested, but seems it won't work for now.
You can support the port development for acquiring dev tools at https://boosty.to/maximqad
- This is a work in progress
- Some features may be unstable or missing
- Performance optimizations are ongoing
- Original Xash3D Engine by Uncle Mike
- FWGS team for Xash3D FWGS fork
- Kazade for GLdc
- KallistiOS team