BTW, Quake and Quake2 works on Linux/SH with no change.
DC Quake has three parts. - newlib with kos - OpenGL API mostly rewritten kgl - Quake source code -- machine depend code for Quake -- Quake source change additionary, some modify of kos. newlib with kos newlib is famous free standard C library for embedded use. - use newlib instead of kos's libc - change some defines and typedef of kos to same value of newlib, for example, O_RDONLY etc, - make alternative unix like systemcall functions (open/read/etc) instead of newlib/libc/sys/sh/syscalls.c link: - use kos's startup code instead of newlib's one - use new syscalls code instead of newlib's one syscalls code: map unix like open,read,write,close calls to kos's fs_xxxx - open functions return -1 but fs_open return 0 if failed. - in newlib file fuctions, use "if (retval<0)" instead of "if (retval==-1)" kos's file handle is realy pointer address of file structure. so it point 8c0010000 - memory end, this value is always minus. resolve these problem using wrapper library. OpenGL API implement only used in quake functions and defines near/far clipping is not yet impremented. Quake source change: in Quake code, used very large static/global variable area. - working area -> malloc or alloca - change some MAX_ defines to small. so big map may not load. Hexen2 and Quake2 use more large area, so more modified. in orignal glquake code, use opaqe texture as GL_COLORINDEX texture with GL_COLOR_INDEX8_EXT internal format and transluecnt texture as GL_RGBA texture. Dreamcast have translucent paletted texture. so use GL_COLORINDEX for both texture. and GL_LUMINANCE texture used by lightmap treat as 8bit paletted texture internally,it has own palette. in this change, use 8bit paletted texture insted of 16bit ARGB4444 texture. so texture memory usage is half size. I don't use VQ compressed texture because quake dynamically rewrite texture using glTexSubImag2D. max texture size is 256x256 for less memory. mipmap isn't support by memory reason. DC Quake2 has one more parts: - to support mod game/renderer change, dynamic load library support for sh-elf static objectHosted by: