summaryrefslogtreecommitdiff
path: root/apps/plugins/sdl/progs/quake/d_ifacea.h
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2018-02-11 15:34:30 -0500
committerFranklin Wei <git@fwei.tk>2019-07-19 22:37:40 -0400
commit5d05b9d3e920a6aa5fcb553758e98ed0da8c91e4 (patch)
tree84406e21639529a185556a33e5de7f43cffc277b /apps/plugins/sdl/progs/quake/d_ifacea.h
parentb70fecf21ddc21877ec1ae7888d9c18a979e37ad (diff)
downloadrockbox-5d05b9d3e920a6aa5fcb553758e98ed0da8c91e4.tar.gz
rockbox-5d05b9d3e920a6aa5fcb553758e98ed0da8c91e4.zip
Quake!
This ports id Software's Quake to run on the SDL plugin runtime. The source code originated from id under the GPLv2 license. I used https://github.com/ahefner/sdlquake as the base of my port. Performance is, unsurprisingly, not on par with what you're probably used to on PC. I average about 10FPS on ipod6g, but it's still playable. Sound works well enough, but in-game music is not supported. I've written ARM assembly routines for the inner sound loop. Make sure you turn the "brightness" all the way down, or colors will look funky. To run, extract Quake's data files to /.rockbox/quake. Have fun! Change-Id: I4285036e967d7f0722802d43cf2096c808ca5799
Diffstat (limited to 'apps/plugins/sdl/progs/quake/d_ifacea.h')
-rw-r--r--apps/plugins/sdl/progs/quake/d_ifacea.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/apps/plugins/sdl/progs/quake/d_ifacea.h b/apps/plugins/sdl/progs/quake/d_ifacea.h
new file mode 100644
index 0000000000..241952af6f
--- /dev/null
+++ b/apps/plugins/sdl/progs/quake/d_ifacea.h
@@ -0,0 +1,98 @@
1/*
2Copyright (C) 1996-1997 Id Software, Inc.
3
4This program is free software; you can redistribute it and/or
5modify it under the terms of the GNU General Public License
6as published by the Free Software Foundation; either version 2
7of the License, or (at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19*/
20//
21// d_ifacea.h
22//
23// Include file for asm driver interface.
24//
25
26//
27// !!! note that this file must match the corresponding C structures in
28// d_iface.h at all times !!!
29//
30
31// !!! if this is changed, it must be changed in r_shared.h too !!!
32#define ALIAS_ONSEAM 0x0020
33
34// !!! if this is changed, it must be changed in d_iface.h too !!!
35#define TURB_TEX_SIZE 64 // base turbulent texture size
36
37// !!! if this is changed, it must be changed in d_iface.h too !!!
38#define CYCLE 128
39
40// !!! if this is changed, it must be changed in r_shared.h too !!!
41#define MAXHEIGHT 1024
42
43// !!! if this is changed, it must be changed in quakedef.h too !!!
44#define CACHE_SIZE 32 // used to align key data structures
45
46// particle_t structure
47// !!! if this is changed, it must be changed in d_iface.h too !!!
48// driver-usable fields
49#define pt_org 0
50#define pt_color 12
51// drivers never touch the following fields
52#define pt_next 16
53#define pt_vel 20
54#define pt_ramp 32
55#define pt_die 36
56#define pt_type 40
57#define pt_size 44
58
59#define PARTICLE_Z_CLIP 8.0
60
61// finalvert_t structure
62// !!! if this is changed, it must be changed in d_iface.h too !!!
63#define fv_v 0 // !!! if this is moved, cases where the !!!
64 // !!! address of this field is pushed in !!!
65 // !!! d_polysa.s must be changed !!!
66#define fv_flags 24
67#define fv_reserved 28
68#define fv_size 32
69#define fv_shift 5
70
71
72// stvert_t structure
73// !!! if this is changed, it must be changed in modelgen.h too !!!
74#define stv_onseam 0
75#define stv_s 4
76#define stv_t 8
77#define stv_size 12
78
79
80// trivertx_t structure
81// !!! if this is changed, it must be changed in modelgen.h too !!!
82#define tv_v 0
83#define tv_lightnormalindex 3
84#define tv_size 4
85
86// affinetridesc_t structure
87// !!! if this is changed, it must be changed in d_iface.h too !!!
88#define atd_pskin 0
89#define atd_pskindesc 4
90#define atd_skinwidth 8
91#define atd_skinheight 12
92#define atd_ptriangles 16
93#define atd_pfinalverts 20
94#define atd_numtriangles 24
95#define atd_drawtype 28
96#define atd_seamfixupX16 32
97#define atd_size 36
98