Mercurial > sdl-ios-xcode
annotate src/joystick/mint/SDL_sysjoystick.c @ 1643:51038e80ae59
More general fix for bug #189
The clipping is done at a higher level, and the low level functions are
passed clipped rectangles. Drivers which don't support source clipping
have not been changed, so the image will be squished instead of clipped,
but at least they will no longer crash when the destination rect was out
of bounds.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 17 Apr 2006 06:47:23 +0000 |
parents | 92947e3a18db |
children | 782fd950bd46 c121d94672cb 28db418c7573 |
rev | line source |
---|---|
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 /* |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 SDL - Simple DirectMedia Layer |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1079
diff
changeset
|
3 Copyright (C) 1997-2006 Sam Lantinga |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 This library is free software; you can redistribute it and/or |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1079
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
7 License as published by the Free Software Foundation; either |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1079
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 This library is distributed in the hope that it will be useful, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1079
diff
changeset
|
13 Lesser General Public License for more details. |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1079
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1079
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1079
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 Sam Lantinga |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 slouken@libsdl.org |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 */ |
1402
d910939febfa
Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents:
1361
diff
changeset
|
22 #include "SDL_config.h" |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 |
1635
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1412
diff
changeset
|
24 #ifdef SDL_JOYSTICK_MINT |
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1412
diff
changeset
|
25 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
26 /* |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
27 * Atari Joystick/Joypad drivers |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
28 * |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
29 * Patrice Mandin |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
30 */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
31 |
557
0ce5a68278fd
Updated Atari port for new system headers (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
507
diff
changeset
|
32 #include <mint/cookie.h> |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
33 #include <mint/osbind.h> |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
34 |
1350
adc8ff3c9597
Fixes for new SDL embedded libc stuff
Patrice Mandin <patmandin@gmail.com>
parents:
1338
diff
changeset
|
35 #include "SDL_events.h" |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1358
diff
changeset
|
36 #include "../SDL_sysjoystick.h" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1358
diff
changeset
|
37 #include "../SDL_joystick_c.h" |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
38 |
1412 | 39 #include "../../video/ataricommon/SDL_ikbdinterrupt_s.h" |
40 #include "../../video/ataricommon/SDL_xbiosevents_c.h" | |
41 #include "../../video/ataricommon/SDL_xbiosinterrupt_s.h" | |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
42 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
43 /*--- Const ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
44 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
45 /* We can have: |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
46 1 joystick on IKBD port 1, read via hardware I/O |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
47 or same joystick on IKBD port 1, read via xbios |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
48 2 joypads on ports A,B |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
49 or 4 joysticks on joypads ports A,B |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
50 or 1 lightpen on joypad port A |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
51 or 2 analog paddles on joypads ports A,B |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
52 2 joysticks on parallel port |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
53 */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
54 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
55 enum { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
56 IKBD_JOY1=0, |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
57 XBIOS_JOY1, |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
58 PORTA_PAD, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 PORTB_PAD, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
60 PORTA_JOY0, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
61 PORTA_JOY1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
62 PORTB_JOY0, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
63 PORTB_JOY1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
64 PORTA_LP, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
65 PORTA_ANPAD, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
66 PORTB_ANPAD, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
67 #if 0 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
68 PARA_JOY0, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 PARA_JOY1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
70 #endif |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
71 MAX_JOYSTICKS |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 enum { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 MCH_ST=0, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
76 MCH_STE, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
77 MCH_TT, |
1054
e89d7f826b4a
Add support for ARAnyM Atari emulator
Patrice Mandin <patmandin@gmail.com>
parents:
963
diff
changeset
|
78 MCH_F30, |
1079
39b5606fa543
Forgot enumeration value for Atari clones
Patrice Mandin <patmandin@gmail.com>
parents:
1054
diff
changeset
|
79 MCH_CLONE, |
1054
e89d7f826b4a
Add support for ARAnyM Atari emulator
Patrice Mandin <patmandin@gmail.com>
parents:
963
diff
changeset
|
80 MCH_ARANYM |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
81 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
82 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
83 /* Joypad buttons |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
84 * Procontroller note: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
85 * L,R are connected to 4,6 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
86 * X,Y,Z are connected to 7,8,9 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
87 */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
88 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
89 enum { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
90 JP_UP=0, JP_DOWN, JP_LEFT, JP_RIGHT, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
91 JP_KPMULT, JP_KP7, JP_KP4, JP_KP1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
92 JP_KP0, JP_KP8, JP_KP5, JP_KP2, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
93 JP_KPNUM, JP_KP9, JP_KP6, JP_KP3, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
94 JP_PAUSE, JP_FIRE0, JP_UNDEF0, JP_FIRE1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
95 JP_UNDEF1, JP_FIRE2, JP_UNDEF2, JP_OPTION |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
96 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
97 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
98 #define JP_NUM_BUTTONS 17 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
99 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
100 #define PORT_JS_RIGHT (1<<0) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
101 #define PORT_JS_LEFT (1<<1) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
102 #define PORT_JS_DOWN (1<<2) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
103 #define PORT_JS_UP (1<<3) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
104 #define PORT_JS_FIRE (1<<4) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
105 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
106 /*--- Types ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
107 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
108 typedef struct { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
109 SDL_bool enabled; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
110 unsigned char *name; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
111 Uint32 prevstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
112 } atarijoy_t; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
113 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
114 /*--- Variables ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
115 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
116 static atarijoy_t atarijoysticks[MAX_JOYSTICKS]={ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
117 {SDL_FALSE,"IKBD joystick port 1",0}, |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
118 {SDL_FALSE,"Xbios joystick port 1",0}, |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
119 {SDL_FALSE,"Joypad port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
120 {SDL_FALSE,"Joypad port B",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
121 {SDL_FALSE,"Joystick 0 port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
122 {SDL_FALSE,"Joystick 1 port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
123 {SDL_FALSE,"Joystick 0 port B",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
124 {SDL_FALSE,"Joystick 1 port B",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
125 {SDL_FALSE,"Lightpen port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
126 {SDL_FALSE,"Analog paddle port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
127 {SDL_FALSE,"Analog paddle port B",0} |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
128 #if 0 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
129 ,{SDL_FALSE,"Joystick 0 parallel port",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
130 {SDL_FALSE,"Joystick 1 parallel port",0} |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
131 #endif |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
132 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
133 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
134 static const int jp_buttons[JP_NUM_BUTTONS]={ |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
135 JP_FIRE0, JP_FIRE1, JP_FIRE2, JP_PAUSE, |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
136 JP_OPTION, JP_KPMULT, JP_KPNUM, JP_KP0, |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
137 JP_KP1, JP_KP2, JP_KP3, JP_KP4, |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
138 JP_KP5, JP_KP6, JP_KP7, JP_KP8, |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
139 JP_KP9 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
140 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
141 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
142 static SDL_bool joypad_ports_enabled=SDL_FALSE; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
143 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
144 /* Updated joypad ports */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
145 static Uint16 jp_paddles[4]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
146 static Uint16 jp_lightpens[2]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
147 static Uint16 jp_directions; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
148 static Uint16 jp_fires; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
149 static Uint32 jp_joypads[2]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
150 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
151 /*--- Functions prototypes ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
152 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
153 static int GetEnabledAtariJoystick(int index); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
154 static void UpdateJoypads(void); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
155 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
156 /*--- Functions ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
157 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
158 int SDL_SYS_JoystickInit(void) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
159 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
160 int i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
161 unsigned long cookie_mch; |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
162 const char *envr=SDL_getenv("SDL_JOYSTICK_ATARI"); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
163 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
164 #define TEST_JOY_ENABLED(env,idstring,num) \ |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
165 if (SDL_strstr(env,idstring"-off")) { \ |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
166 atarijoysticks[num].enabled=SDL_FALSE; \ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
167 } \ |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
168 if (SDL_strstr(env,idstring"-on")) { \ |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
169 atarijoysticks[num].enabled=SDL_TRUE; \ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
170 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
171 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
172 /* Cookie _MCH present ? if not, assume ST machine */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
173 if (Getcookie(C__MCH, &cookie_mch) != C_FOUND) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
174 cookie_mch = MCH_ST << 16; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
175 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
176 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
177 /* Enable some default joysticks */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
178 if ((cookie_mch == MCH_ST<<16) || ((cookie_mch>>16) == MCH_STE) || |
1054
e89d7f826b4a
Add support for ARAnyM Atari emulator
Patrice Mandin <patmandin@gmail.com>
parents:
963
diff
changeset
|
179 (cookie_mch == MCH_TT<<16) || (cookie_mch == MCH_F30<<16) || |
e89d7f826b4a
Add support for ARAnyM Atari emulator
Patrice Mandin <patmandin@gmail.com>
parents:
963
diff
changeset
|
180 (cookie_mch == MCH_ARANYM<<16)) { |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
181 atarijoysticks[IKBD_JOY1].enabled=(SDL_AtariIkbd_enabled!=0); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
182 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
183 if ((cookie_mch == MCH_STE<<16) || (cookie_mch == MCH_F30<<16)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
184 atarijoysticks[PORTA_PAD].enabled=SDL_TRUE; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
185 atarijoysticks[PORTB_PAD].enabled=SDL_TRUE; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
186 } |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
187 if (!atarijoysticks[IKBD_JOY1].enabled) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
188 atarijoysticks[XBIOS_JOY1].enabled=(SDL_AtariXbios_enabled!=0); |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
189 } |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
190 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
191 /* Read environment for joysticks to enable */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
192 if (envr) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
193 /* IKBD on any Atari, maybe clones */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
194 if ((cookie_mch == MCH_ST<<16) || ((cookie_mch>>16) == MCH_STE) || |
1054
e89d7f826b4a
Add support for ARAnyM Atari emulator
Patrice Mandin <patmandin@gmail.com>
parents:
963
diff
changeset
|
195 (cookie_mch == MCH_TT<<16) || (cookie_mch == MCH_F30<<16) || |
e89d7f826b4a
Add support for ARAnyM Atari emulator
Patrice Mandin <patmandin@gmail.com>
parents:
963
diff
changeset
|
196 (cookie_mch == MCH_ARANYM<<16)) { |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
197 if (SDL_AtariIkbd_enabled!=0) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
198 TEST_JOY_ENABLED(envr, "ikbd-joy1", IKBD_JOY1); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
199 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
200 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
201 /* Joypads ports only on STE and Falcon */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
202 if ((cookie_mch == MCH_STE<<16) || (cookie_mch == MCH_F30<<16)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
203 TEST_JOY_ENABLED(envr, "porta-pad", PORTA_PAD); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
204 if (!atarijoysticks[PORTA_PAD].enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
205 TEST_JOY_ENABLED(envr, "porta-joy0", PORTA_JOY0); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
206 TEST_JOY_ENABLED(envr, "porta-joy1", PORTA_JOY1); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
207 if (!(atarijoysticks[PORTA_JOY0].enabled) && !(atarijoysticks[PORTA_JOY1].enabled)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
208 TEST_JOY_ENABLED(envr, "porta-lp", PORTA_LP); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
209 if (!atarijoysticks[PORTA_LP].enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
210 TEST_JOY_ENABLED(envr, "porta-anpad", PORTA_ANPAD); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
211 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
212 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
213 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
214 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
215 TEST_JOY_ENABLED(envr, "portb-pad", PORTB_PAD); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
216 if (!atarijoysticks[PORTB_PAD].enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
217 TEST_JOY_ENABLED(envr, "portb-joy0", PORTB_JOY0); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
218 TEST_JOY_ENABLED(envr, "portb-joy1", PORTB_JOY1); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
219 if (!(atarijoysticks[PORTB_JOY0].enabled) && !(atarijoysticks[PORTB_JOY1].enabled)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
220 TEST_JOY_ENABLED(envr, "portb-anpad", PORTB_ANPAD); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
221 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
222 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
223 } |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
224 |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
225 if (!atarijoysticks[IKBD_JOY1].enabled) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
226 if (SDL_AtariXbios_enabled!=0) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
227 TEST_JOY_ENABLED(envr, "xbios-joy1", XBIOS_JOY1); |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
228 } |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
229 } |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
230 #if 0 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
231 /* Parallel port on any Atari, maybe clones */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
232 if ((cookie_mch == MCH_ST<<16) || ((cookie_mch>>16) == MCH_STE) || |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
233 (cookie_mch == MCH_TT<<16) || (cookie_mch == MCH_F30<<16)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
234 TEST_JOY_ENABLED(envr, "para-joy0", PARA_JOY0); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
235 TEST_JOY_ENABLED(envr, "para-joy1", PARA_JOY1); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
236 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
237 #endif |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
238 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
239 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
240 /* Need to update joypad ports ? */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
241 joypad_ports_enabled=SDL_FALSE; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
242 for (i=PORTA_PAD;i<=PORTB_ANPAD;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
243 if (atarijoysticks[i].enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
244 joypad_ports_enabled=SDL_TRUE; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
245 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
246 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
247 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
248 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
249 SDL_numjoysticks = 0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
250 for (i=0;i<MAX_JOYSTICKS;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
251 if (atarijoysticks[i].enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
252 ++SDL_numjoysticks; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
253 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
254 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
255 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
256 return(SDL_numjoysticks); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
257 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
258 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
259 static int GetEnabledAtariJoystick(int index) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
260 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
261 int i,j; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
262 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
263 /* Return the nth'index' enabled atari joystick */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
264 j=0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
265 for (i=0;i<MAX_JOYSTICKS;i++) { |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
266 if (!atarijoysticks[i].enabled) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
267 continue; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
268 } |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
269 |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
270 if (j==index) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
271 break; |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
272 } |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
273 |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
274 ++j; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
275 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
276 if (i==MAX_JOYSTICKS) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
277 return -1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
278 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
279 return i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
280 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
281 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
282 const char *SDL_SYS_JoystickName(int index) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
283 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
284 int numjoystick; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
285 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
286 numjoystick=GetEnabledAtariJoystick(index); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
287 if (numjoystick==-1) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
288 return NULL; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
289 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
290 return(atarijoysticks[numjoystick].name); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
291 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
292 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
293 int SDL_SYS_JoystickOpen(SDL_Joystick *joystick) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
294 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
295 int numjoystick; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
296 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
297 numjoystick=GetEnabledAtariJoystick(joystick->index); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
298 if (numjoystick==-1) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
299 return -1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
300 |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
301 joystick->naxes=0; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
302 joystick->nhats=0; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
303 joystick->nballs=0; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
304 |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
305 switch(numjoystick) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
306 case PORTA_PAD: |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
307 case PORTB_PAD: |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
308 joystick->nhats=1; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
309 joystick->nbuttons=JP_NUM_BUTTONS; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
310 break; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
311 case PORTA_LP: |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
312 case PORTA_ANPAD: |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
313 case PORTB_ANPAD: |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
314 joystick->naxes=2; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
315 joystick->nbuttons=2; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
316 break; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
317 default: |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
318 joystick->nhats=1; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
319 joystick->nbuttons=1; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
320 break; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
321 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
322 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
323 return(0); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
324 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
325 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
326 void SDL_SYS_JoystickUpdate(SDL_Joystick *joystick) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
327 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
328 int numjoystick; |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
329 Uint8 hatstate; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
330 Uint32 curstate,prevstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
331 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
332 numjoystick=GetEnabledAtariJoystick(joystick->index); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
333 if (numjoystick==-1) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
334 return; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
335 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
336 prevstate = atarijoysticks[numjoystick].prevstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
337 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
338 if (joypad_ports_enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
339 Supexec(UpdateJoypads); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
340 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
341 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
342 switch (numjoystick) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
343 case IKBD_JOY1: |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
344 case XBIOS_JOY1: |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
345 { |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
346 curstate = 0; |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
347 |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
348 if (numjoystick==IKBD_JOY1) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
349 curstate = SDL_AtariIkbd_joystick & 0xff; |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
350 } |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
351 if (numjoystick==XBIOS_JOY1) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
352 curstate = SDL_AtariXbios_joystick & 0xff; |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
353 } |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
354 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
355 if (curstate != prevstate) { |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
356 hatstate = SDL_HAT_CENTERED; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
357 if (curstate & IKBD_JOY_LEFT) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
358 hatstate |= SDL_HAT_LEFT; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
359 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
360 if (curstate & IKBD_JOY_RIGHT) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
361 hatstate |= SDL_HAT_RIGHT; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
362 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
363 if (curstate & IKBD_JOY_UP) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
364 hatstate |= SDL_HAT_UP; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
365 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
366 if (curstate & IKBD_JOY_DOWN) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
367 hatstate |= SDL_HAT_DOWN; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
368 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
369 SDL_PrivateJoystickHat(joystick, 0, hatstate); |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
370 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
371 /* Button */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
372 if ((curstate & IKBD_JOY_FIRE) && !(prevstate & IKBD_JOY_FIRE)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
373 SDL_PrivateJoystickButton(joystick,0,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
374 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
375 if (!(curstate & IKBD_JOY_FIRE) && (prevstate & IKBD_JOY_FIRE)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
376 SDL_PrivateJoystickButton(joystick,0,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
377 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
378 } |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
379 atarijoysticks[numjoystick].prevstate = curstate; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
380 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
381 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
382 case PORTA_PAD: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
383 case PORTB_PAD: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
384 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
385 int numjoypad,i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
386 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
387 numjoypad=0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
388 if (numjoystick==PORTB_PAD) numjoypad=1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
389 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
390 curstate=jp_joypads[numjoypad]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
391 if (curstate!=prevstate) { |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
392 hatstate = SDL_HAT_CENTERED; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
393 if (curstate & (1<<JP_LEFT)) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
394 hatstate |= SDL_HAT_LEFT; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
395 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
396 if (curstate & (1<<JP_RIGHT)) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
397 hatstate |= SDL_HAT_RIGHT; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
398 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
399 if (curstate & (1<<JP_UP)) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
400 hatstate |= SDL_HAT_UP; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
401 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
402 if (curstate & (1<<JP_DOWN)) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
403 hatstate |= SDL_HAT_DOWN; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
404 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
405 SDL_PrivateJoystickHat(joystick, 0, hatstate); |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
406 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
407 /* Buttons */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
408 for (i=0;i<JP_NUM_BUTTONS;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
409 int button; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
410 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
411 button=1<<jp_buttons[i]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
412 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
413 if ((curstate & button) && !(prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
414 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
415 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
416 if (!(curstate & button) && (prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
417 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
418 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
419 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
420 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
421 atarijoysticks[numjoystick].prevstate = curstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
422 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
423 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
424 case PORTA_JOY0: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
425 case PORTA_JOY1: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
426 case PORTB_JOY0: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
427 case PORTB_JOY1: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
428 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
429 int fire_shift=0,dir_shift=0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
430 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
431 if (numjoystick==PORTA_JOY0) { fire_shift=0; dir_shift=0; } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
432 if (numjoystick==PORTA_JOY1) { fire_shift=1; dir_shift=4; } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
433 if (numjoystick==PORTB_JOY0) { fire_shift=2; dir_shift=8; } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
434 if (numjoystick==PORTB_JOY1) { fire_shift=3; dir_shift=12; } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
435 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
436 curstate = (jp_directions>>dir_shift) & 15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
437 curstate |= ((jp_fires>>fire_shift) & 1)<<4; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
438 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
439 if (curstate != prevstate) { |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
440 hatstate = SDL_HAT_CENTERED; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
441 if (curstate & PORT_JS_LEFT) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
442 hatstate |= SDL_HAT_LEFT; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
443 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
444 if (curstate & PORT_JS_RIGHT) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
445 hatstate |= SDL_HAT_RIGHT; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
446 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
447 if (curstate & PORT_JS_UP) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
448 hatstate |= SDL_HAT_UP; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
449 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
450 if (curstate & PORT_JS_DOWN) { |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
451 hatstate |= SDL_HAT_DOWN; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
452 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
453 SDL_PrivateJoystickHat(joystick, 0, hatstate); |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
454 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
455 /* Button */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
456 if ((curstate & PORT_JS_FIRE) && !(prevstate & PORT_JS_FIRE)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
457 SDL_PrivateJoystickButton(joystick,0,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
458 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
459 if (!(curstate & PORT_JS_FIRE) && (prevstate & PORT_JS_FIRE)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
460 SDL_PrivateJoystickButton(joystick,0,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
461 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
462 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
463 atarijoysticks[numjoystick].prevstate = curstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
464 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
465 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
466 case PORTA_LP: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
467 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
468 int i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
469 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
470 curstate = jp_lightpens[0]>>1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
471 curstate |= (jp_lightpens[1]>>1)<<15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
472 curstate |= (jp_fires & 3)<<30; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
473 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
474 if (curstate != prevstate) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
475 /* X axis */ |
507
7853b6af5957
Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents:
305
diff
changeset
|
476 SDL_PrivateJoystickAxis(joystick,0,jp_lightpens[0] ^ 0x8000); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
477 /* Y axis */ |
507
7853b6af5957
Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents:
305
diff
changeset
|
478 SDL_PrivateJoystickAxis(joystick,1,jp_lightpens[1] ^ 0x8000); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
479 /* Buttons */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
480 for (i=0;i<2;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
481 int button; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
482 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
483 button=1<<(30+i); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
484 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
485 if ((curstate & button) && !(prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
486 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
487 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
488 if (!(curstate & button) && (prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
489 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
490 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
491 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
492 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
493 atarijoysticks[numjoystick].prevstate = curstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
494 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
495 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
496 case PORTA_ANPAD: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
497 case PORTB_ANPAD: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
498 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
499 int numpaddle, i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
500 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
501 numpaddle=0<<1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
502 if (numjoystick==PORTB_ANPAD) numpaddle=1<<1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
503 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
504 curstate = jp_paddles[numpaddle]>>1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
505 curstate |= (jp_paddles[numpaddle+1]>>1)<<15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
506 curstate |= ((jp_fires>>numpaddle) & 3)<<30; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
507 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
508 if (curstate != prevstate) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
509 /* X axis */ |
507
7853b6af5957
Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents:
305
diff
changeset
|
510 SDL_PrivateJoystickAxis(joystick,0,jp_paddles[numpaddle] ^ 0x8000); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
511 /* Y axis */ |
507
7853b6af5957
Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents:
305
diff
changeset
|
512 SDL_PrivateJoystickAxis(joystick,1,jp_paddles[numpaddle+1] ^ 0x8000); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
513 /* Buttons */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
514 for (i=0;i<2;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
515 int button; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
516 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
517 button=1<<(30+i); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
518 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
519 if ((curstate & button) && !(prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
520 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
521 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
522 if (!(curstate & button) && (prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
523 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
524 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
525 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
526 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
527 atarijoysticks[numjoystick].prevstate = curstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
528 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
529 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
530 #if 0 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
531 case PARA_JOY0: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
532 case PARA_JOY1: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
533 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
534 #endif |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
535 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
536 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
537 return; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
538 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
539 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
540 void SDL_SYS_JoystickClose(SDL_Joystick *joystick) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
541 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
542 return; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
543 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
544 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
545 void SDL_SYS_JoystickQuit(void) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
546 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
547 SDL_numjoysticks=0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
548 return; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
549 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
550 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
551 /*--- Joypad I/O read/write interface ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
552 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
553 #define JOYPAD_IO_BASE (0xffff9200) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
554 struct JOYPAD_IO_S { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
555 Uint16 fires; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
556 Uint16 directions; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
557 Uint16 dummy1[6]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
558 Uint16 paddles[4]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
559 Uint16 dummy2[4]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
560 Uint16 lightpens[2]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
561 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
562 #define JOYPAD_IO ((*(volatile struct JOYPAD_IO_S *)JOYPAD_IO_BASE)) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
563 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
564 static void UpdateJoypads(void) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
565 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
566 Uint16 tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
567 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
568 /*--- This function is called in supervisor mode ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
569 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
570 /* Update joysticks */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
571 jp_fires = (~(JOYPAD_IO.fires)) & 15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
572 jp_directions = (~(JOYPAD_IO.directions)); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
573 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
574 /* Update lightpen */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
575 tmp = JOYPAD_IO.lightpens[0] & 1023; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
576 jp_lightpens[0] = (tmp<<6) | (tmp>>4); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
577 tmp = JOYPAD_IO.lightpens[1] & 1023; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
578 jp_lightpens[1] = (tmp<<6) | (tmp>>4); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
579 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
580 /* Update paddles */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
581 tmp = (JOYPAD_IO.paddles[0] & 255); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
582 jp_paddles[0] = (tmp<<8) | tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
583 tmp = (JOYPAD_IO.paddles[1] & 255); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
584 jp_paddles[1] = (tmp<<8) | tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
585 tmp = (JOYPAD_IO.paddles[2] & 255); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
586 jp_paddles[2] = (tmp<<8) | tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
587 tmp = (JOYPAD_IO.paddles[3] & 255); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
588 jp_paddles[3] = (tmp<<8) | tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
589 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
590 /* Update joypad 0 */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
591 JOYPAD_IO.directions=0xfffe; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
592 jp_joypads[0]=((~(JOYPAD_IO.fires)) & 3)<<(16); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
593 JOYPAD_IO.directions=0xfffe; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
594 jp_joypads[0] |= ((~(JOYPAD_IO.directions))>>8) & 15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
595 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
596 JOYPAD_IO.directions=0xfffd; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
597 jp_joypads[0] |= ((~(JOYPAD_IO.fires)) & 3)<<(16+2); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
598 JOYPAD_IO.directions=0xfffd; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
599 jp_joypads[0] |= (((~(JOYPAD_IO.directions))>>8) & 15)<<4; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
600 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
601 JOYPAD_IO.directions=0xfffb; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
602 jp_joypads[0] |= ((~(JOYPAD_IO.fires)) & 3)<<(16+4); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
603 JOYPAD_IO.directions=0xfffb; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
604 jp_joypads[0] |= (((~(JOYPAD_IO.directions))>>8) & 15)<<8; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
605 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
606 JOYPAD_IO.directions=0xfff7; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
607 jp_joypads[0] |= ((~(JOYPAD_IO.fires)) & 3)<<(16+6); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
608 JOYPAD_IO.directions=0xfff7; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
609 jp_joypads[0] |= (((~(JOYPAD_IO.directions))>>8) & 15)<<12; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
610 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
611 /* Update joypad 1 */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
612 JOYPAD_IO.directions=0xffef; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
613 jp_joypads[1]=((~(JOYPAD_IO.fires)) & (3<<2))<<(16-2); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
614 JOYPAD_IO.directions=0xffef; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
615 jp_joypads[1] |= ((~(JOYPAD_IO.directions))>>12) & 15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
616 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
617 JOYPAD_IO.directions=0xffdf; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
618 jp_joypads[1] |= ((~(JOYPAD_IO.fires)) & (3<<2))<<(16); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
619 JOYPAD_IO.directions=0xffdf; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
620 jp_joypads[1] |= (((~(JOYPAD_IO.directions))>>12) & 15)<<4; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
621 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
622 JOYPAD_IO.directions=0xffbf; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
623 jp_joypads[1] |= ((~(JOYPAD_IO.fires)) & (3<<2))<<(16+2); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
624 JOYPAD_IO.directions=0xffbf; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
625 jp_joypads[1] |= (((~(JOYPAD_IO.directions))>>12) & 15)<<8; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
626 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
627 JOYPAD_IO.directions=0xff7f; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
628 jp_joypads[1] |= ((~(JOYPAD_IO.fires)) & (3<<2))<<(16+4); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
629 JOYPAD_IO.directions=0xff7f; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
630 jp_joypads[1] |= (((~(JOYPAD_IO.directions))>>12) & 15)<<12; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
631 } |
1635
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1412
diff
changeset
|
632 |
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1412
diff
changeset
|
633 #endif /* SDL_JOYSTICK_MINT */ |