Mercurial > sdl-ios-xcode
annotate BUGS @ 632:85e104fe14c2
Date: Sun, 1 Jun 2003 15:38:45 -0700 (PDT)
From: Jeff Brown <jabrown@caida.org>
Subject: [patch] SDL-1.2.5 + FreeBSD joystick axes, hat fixes
Hello again! When I sent in some SDL fixes last December, I found out
they'd already been fixed in the CVS version. This time, I checked the
repository before bugging you. =)
I'm using SDL-1.2.5 on a FreeBSD 4.6.2-RELEASE system, and in the course
of getting my multi-analog-axis USB controller (with a hat switch!)
working with d2x-sdl -- the SDL port of the Descent 2 engine -- I came
across a few problems:
1) The second analog stick is reported as a slider in one direction, and
"Rz" in the other. SDL was ignoring the Rz axis, so I added Rx/Ry/Rz to
the set of things SDL considers to be axes.
2) After the above change, the set of JOYAXE_* axes for my gamepad was
{0,1,3,7}; however, d2x-sdl expects the axes to be contiguously numbered
from 0, which seems like a pretty reasonable expectation, rather than
having to scan the entire space of axes that SDL may or may not have.
So, I added a table lookup which maps the JOYAXE_* axis numbers to 0,1,...
in the order they're detected by SDL_SYS_JoystickOpen(), when reporting
them to the application. I also added a function "usage_to_joyaxe()"
which maps the USB HUG_* usage values to JOYAXE_values, since the repeated
case statements testing for HUG_* were getting out of hand.
3) The BSD joystick driver had no hat support, so I added it. It looks
like our USB library can only support one hat switch per device, which
makes life easy.
The patch against SDL-1.2.5 which implements these changes is at:
http://www.caida.org/~jabrown/patches/sdl-1.2.5-bsdhat.diff
After applying, SDL's "testjoystick" reports all activity from my gamepad
correctly, and d2x works too (though it needed some other fixes).
Moving on...
There is also a problem with slightly different USBHID library interfaces
on different versions of FreeBSD. I wasn't going to mention this since the
FreeBSD port for SDL-1.2.5 (and not SDL itself) was doing the FreeBSD
version-specific patching, so I e-mailed the port maintainer with this
change. However, I see that you've incorporated the FreeBSD
version-checking stuff into the CVS version of SDL, so now it's relevant
for you too.
The problem is, the FreeBSD #if tests don't work right for FreeBSD
4.6.2-RELEASE. There may be other versions with this problem, but I've
only tested 4.6.2-R. The following patch against your latest CVS version
fixes this:
--- SDL_sysjoystick.c-1.16 Tue Apr 15 09:02:08 2003
+++ SDL_sysjoystick.c Sun Jun 1 15:10:28 2003
@@ -420,6 +420,8 @@
# else
len = hid_report_size(rd, repinfo[repind].kind, r->rid);
# endif
+# elif (__FreeBSD_version == 460002)
+ len = hid_report_size(rd, r->rid, repinfo[repind].kind);
# else
len = hid_report_size(rd, repinfo[repind].kind, &r->rid);
#endif
I hope this is all useful to you. I've been getting myself dizzy playing
Descent 2 with it, all morning!
-Jeff Brown
P.S. My USB controller is a Thrustmaster Firestorm Dual Analog 2. That's
probably irrelevant, but I threw it in for completeness.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 02 Jun 2003 14:50:22 +0000 |
parents | 8e3ce997621c |
children | 8bedd6d61642 |
rev | line source |
---|---|
0 | 1 |
2 All: | |
3 Audio rate conversion is only implemented by multiplying or dividing | |
4 by a power of two. This is a side-effect of the requirement that the | |
5 raw audio buffer size be a power of two, and can hopefully be fixed. | |
6 This means 8 KHz audio converted to 22 KHz ends up being 16 KHz. :-/ | |
7 | |
8 When the implementation is writing directly to video memory the mouse | |
9 cursor doesn't work properly. Applications which do this should use | |
10 their own mouse cursor and call SDL_ShowCursor(0) to hide the system | |
11 cursor. | |
12 | |
13 Linux: | |
14 Wide UNICODE character input (Kanji, etc.) is not yet supported. | |
15 It requires handling of keyboard mapping events and using the XIM | |
16 input translation extension. I will implement it as requested. | |
17 Latin-1 keyboard input works fine. | |
18 | |
27
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
19 The keyboard modifiers are not set to the correct state on startup. |
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
20 |
0 | 21 The AAlib, GGI, and SVGAlib video drivers are not heavily tested. |
22 | |
23 Win32: | |
24 The MCI driver can't tell if the CD-ROM drive is paused or stopped. | |
25 | |
26 The SDL_INIT_EVENTTHREAD flag is not supported on Win32 | |
27 (Idea: create a separate DirectInput polling thread) | |
28 The main purpose of this flag is for smooth cursor motion in | |
29 fullscreen environments. | |
30 | |
31 Wide UNICODE character input (Kanji, etc.) is not yet supported. | |
32 This requires the ToUnicode() API which is only implemented on | |
33 Windows NT/2000, not on Windows 95/98. | |
34 Latin-1 keyboard input works fine. | |
35 | |
36 Joysticks are only supported under the Win32 MultiMedia API, | |
37 DirectInput support is not yet implemented. | |
38 | |
39 BeOS: | |
40 BePPC is not supported, apparently not even by Be Inc. | |
41 | |
42 SDL_WM_GrabInput() is not implemented. | |
43 Does anyone know how to do this? SDL_WM_GrabInput() is designed | |
44 to prevent the user from switching input and mouse focus away from | |
45 the SDL application. | |
46 | |
47 Continuous relative mouse motion is not implemented. | |
48 | |
49 Wide UNICODE character input (Kanji, etc.) has not been tested. | |
50 Latin-1 keyboard input works fine. | |
51 | |
52 MacOS: | |
53 Palette handling isn't implemented in windowed mode yet. | |
54 | |
55 Audio hasn't been extensively tested, in particular the locking | |
56 isn't implemented and mixer routines may not call malloc() or free() | |
57 because they are called at interrupt time. | |
58 | |
59 SDL_WM_GrabInput() is not implemented. | |
60 Does anyone know how to do this? SDL_WM_GrabInput() is designed | |
61 to prevent the user from switching input and mouse focus away from | |
62 the SDL application. | |
63 | |
64 Continuous relative mouse motion is not implemented. | |
65 | |
66 SDL_AddTimer() and SDL_RemoveTimer() haven't been implemented yet. | |
67 | |
68 Not all of the keys are properly recognized on the keyboard. | |
69 | |
70 MacOS X: | |
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
154
diff
changeset
|
71 CD-ROM functions are not implemented yet. |
0 | 72 |
172
37e3ca9254c7
Date: Sat, 8 Sep 2001 04:42:23 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
154
diff
changeset
|
73 Joystick code is not extensively tested yet. |
58
bd6b0a910a65
* Removed fullscreen menu option from the "Window" menu
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
74 |
bd6b0a910a65
* Removed fullscreen menu option from the "Window" menu
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
75 Resizeable windows aren't implemented yet. |
bd6b0a910a65
* Removed fullscreen menu option from the "Window" menu
Sam Lantinga <slouken@lokigames.com>
parents:
47
diff
changeset
|
76 |
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
77 Depth switching for windowed mode isn't implemented yet. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
78 |
0 | 79 Palette handling isn't implemented in windowed mode yet. |
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
80 |
390
19e73568a75c
Date: Sat, 1 Jun 2002 17:56:45 -0500
Sam Lantinga <slouken@libsdl.org>
parents:
279
diff
changeset
|
81 Command-line arguments dialog is not implemented yet. |
0 | 82 |
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
83 Fullscreen drawing has some artifacts. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
84 |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
85 Fullscreen OpenGL for the software renderer is broken. |
0 | 86 |
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
87 Some OpenGL parameters are not accounted for, for example color bits customization. |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
88 |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
89 Continuous mouse motion perhaps is not as smooth as it should be. |
0 | 90 |
47
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
91 SDL_WM_GrabInput() is implemented, but it "freezes" the hardware |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
92 cursor in the center of the window/screen. Also, mouse moved events |
45b1c4303f87
Added initial support for Quartz video (thanks Darrell!)
Sam Lantinga <slouken@lokigames.com>
parents:
27
diff
changeset
|
93 are not generated, and the keyboard cannot be grabbed. |
0 | 94 |
95 MacOS X seems to have a broken pthread_cancel() implementation. | |
96 | |
97 FreeBSD: | |
98 pthread_cancel() isn't supported by FreeBSD 3.X, so threads don't | |
99 work on versions of FreeBSD earlier than 4.0. | |
100 | |
101 The CD-ROM handling doesn't work completely. | |
102 | |
103 Wide UNICODE character input (Kanji, etc.) is not yet supported. | |
104 It requires handling of keyboard mapping events and using the XIM | |
105 input translation extension. I will implement it as requested. | |
106 Latin-1 keyboard input works fine. | |
107 | |
27
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
108 The keyboard modifiers are not set to the correct state on startup. |
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
109 |
0 | 110 Solaris: |
111 The joystick functions are not implemented yet. | |
112 | |
113 Wide UNICODE character input (Kanji, etc.) is not yet supported. | |
114 It requires handling of keyboard mapping events and using the XIM | |
115 input translation extension. I will implement it as requested. | |
116 Latin-1 keyboard input works fine. | |
117 | |
27
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
118 The keyboard modifiers are not set to the correct state on startup. |
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
119 |
0 | 120 IRIX: |
121 The CD-ROM handling doesn't work completely. | |
122 | |
123 The joystick functions are not implemented yet. | |
124 | |
125 Wide UNICODE character input (Kanji, etc.) is not yet supported. | |
126 It requires handling of keyboard mapping events and using the XIM | |
127 input translation extension. I will implement it as requested. | |
128 Latin-1 keyboard input works fine. | |
129 | |
27
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
130 The keyboard modifiers are not set to the correct state on startup. |
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
131 |
250
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
132 EPOC: |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
133 Only Crystal version of Epoc/SymbianOS is currently supported. |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
134 |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
135 SDL is implemented in static library only. SDL uses static/global |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
136 variables and that is not allowed in EPOC dll libraries. |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
137 |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
138 Sound is not yet supported. |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
139 |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
140 Joystick, OpenGL and cdrom is not supported (think about cdrom in a cell phone:-). |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
141 |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
142 No console output screen. Printing to stdout do not have any effect. |
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
143 |
0 | 144 OpenBSD: -= NOT YET SUPPORTED =- |
145 This is reported to work, but I haven't verified this. | |
146 | |
147 Wide UNICODE character input (Kanji, etc.) is not yet supported. | |
148 It requires handling of keyboard mapping events and using the XIM | |
149 input translation extension. I will implement it as requested. | |
150 Latin-1 keyboard input works fine. | |
151 | |
27
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
152 The keyboard modifiers are not set to the correct state on startup. |
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
153 |
0 | 154 OSF/Tru64: -= NOT YET SUPPORTED =- |
155 The audio functions are not implemented yet. | |
156 | |
157 Joysticks and CD-ROM functions are not implemented yet. | |
158 | |
159 Wide UNICODE character input (Kanji, etc.) is not yet supported. | |
160 It requires handling of keyboard mapping events and using the XIM | |
161 input translation extension. I will implement it as requested. | |
162 Latin-1 keyboard input works fine. | |
163 | |
27
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
164 The keyboard modifiers are not set to the correct state on startup. |
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
165 |
0 | 166 AIX: -= NOT YET SUPPORTED =- |
167 This port has only been tested with AIX 4.3.3 | |
168 | |
169 The OpenGL support doesn't work yet. | |
170 | |
171 The joystick subsystem isn't implemented yet. | |
172 | |
173 Endian detection doesn't work yet - needs a unique CPP symbol. | |
174 | |
175 Wide UNICODE character input (Kanji, etc.) is not yet supported. | |
176 It requires handling of keyboard mapping events and using the XIM | |
177 input translation extension. I will implement it as requested. | |
178 Latin-1 keyboard input works fine. | |
179 | |
27
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
180 The keyboard modifiers are not set to the correct state on startup. |
a7e598a8d8be
The keyboard modifiers are not set to the correct state on X11 startup.
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
181 |
0 | 182 The AIX port was done by Carsten.Griwodz@KOM.tu-darmstadt.de |
183 More information on this port is available at: | |
184 http://www.kom.e-technik.tu-darmstadt.de/~griff/SDL/ | |
185 | |
186 QNX: -= NOT YET SUPPORTED =- | |
187 Only static libraries are being made, no shared ones. | |
188 | |
189 The only hardware surface is the primary view surface. | |
190 | |
191 Fullscreen doesn't display correctly. | |
192 | |
193 AmigaOS: -= NOT YET SUPPORTED =- | |
194 The OpenGL support isn't implemented yet. | |
195 | |
196 SDL_WM_GrabInput() is not implemented. | |
197 Does anyone know how to do this? SDL_WM_GrabInput() is designed | |
198 to prevent the user from switching input and mouse focus away from | |
199 the SDL application. | |
200 | |
201 Continuous relative mouse motion is not implemented. | |
202 | |
203 The AmigaOS port was done by Gabriele.Greco@galactica.it | |
250
74a8f672f2f8
Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
172
diff
changeset
|
204 |