2019-07-28 18:06:45 +00:00
|
|
|
Introduction
|
|
|
|
============
|
|
|
|
|
|
|
|
These are my port notes for Quake. This runs, of course, on our SDL
|
2019-08-03 16:30:40 +00:00
|
|
|
port. See <https://www.rockbox.org/wiki/SdlPluginPort> for more.
|
2019-07-28 18:06:45 +00:00
|
|
|
|
|
|
|
Port Lineage
|
|
|
|
============
|
|
|
|
|
|
|
|
This port stems from SDLQuake
|
|
|
|
(https://www.libsdl.org/projects/quake/), which was built on top of id
|
|
|
|
Software's source release.
|
|
|
|
|
|
|
|
How is <X> done?
|
|
|
|
================
|
|
|
|
|
|
|
|
Custom settings: This is implemented through a modification to
|
|
|
|
Cmd_Exec_f and Key_Bind_f, in cmd.c and keys.c.
|
|
|
|
|
|
|
|
Sound mixing: There is a handwritten assembly sound mixing routine in
|
|
|
|
snd_mix_arm.S, using the ARMv5 DSP extensions for saturating
|
|
|
|
addition. Disable that if you run into sound issues.
|
|
|
|
|
|
|
|
File caching: There is an automatic caching layer in sys_sdl.c which
|
|
|
|
loads files over 1 MB into memory. Quake only uses about 8 MB of heap
|
|
|
|
when running, so there's plenty of space for this on some targets
|
|
|
|
(e.g. ipods).
|
|
|
|
|
|
|
|
Known bugs
|
|
|
|
==========
|
|
|
|
|
2019-08-03 16:30:40 +00:00
|
|
|
SOLVED: Setting the sample rate to 44.1 KHz leads to all sorts of
|
|
|
|
weird crashes, which stem (probably) from the same underlying memory
|
2019-07-28 18:06:45 +00:00
|
|
|
corruption issue. Only thing is, it seems to occur only on hardware so
|
|
|
|
it's a huge pain to debug.
|
|
|
|
|
2019-08-03 16:30:40 +00:00
|
|
|
This issue turned out to be a synchronization issue when loading files
|
|
|
|
from multiple threads. Fixed with some mutex locks. - 8/2/19
|
|
|
|
|
|
|
|
There is a weird crash that occurs on simulator only when playing the
|
|
|
|
first demo. I've inserted a splash statement so we can watch for it on
|
|
|
|
target.
|
|
|
|
|
2019-07-28 18:06:45 +00:00
|
|
|
Optimization targets
|
|
|
|
====================
|
|
|
|
|
|
|
|
D_DrawZSpans, D_DrawSpans8, and Turbulent8 (in d_scan.c) should be
|
|
|
|
fairly straightforward to write in assembly and are big time
|
|
|
|
hogs. Make them fast!
|