Mercurial > sdl-ios-xcode
annotate src/joystick/mint/SDL_sysjoystick.c @ 3850:28db418c7573 SDL-1.2
Add teamtap support (4 joypads adapter on 1 port)
author | Patrice Mandin <patmandin@gmail.com> |
---|---|
date | Wed, 02 Aug 2006 21:26:31 +0000 |
parents | 92947e3a18db |
children | de46a1bfcbdb |
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 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
47 or same joystick on IKBD port 1, read via xbios |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
48 1 joypad on port A (up to 4 with teamtap) |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
49 or 2 joysticks on joypad port A |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
50 or 1 analog paddle on joypad port A |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
51 or 1 lightpen on joypad port A |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
52 1 joypad on port B (up to 4 with teamtap) |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
53 or 2 joysticks on joypad port B |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
54 or 1 analog paddle on joypad port B |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
55 2 joysticks on parallel port |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
56 */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
57 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
58 enum { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
59 IKBD_JOY1=0, |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
60 XBIOS_JOY1, |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
61 PORTA_PAD0, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
62 PORTA_PAD1, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
63 PORTA_PAD2, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
64 PORTA_PAD3, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
65 PORTB_PAD0, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
66 PORTB_PAD1, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
67 PORTB_PAD2, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
68 PORTB_PAD3, |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
69 PORTA_JOY0, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
70 PORTA_JOY1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
71 PORTB_JOY0, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
72 PORTB_JOY1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
73 PORTA_LP, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
74 PORTA_ANPAD, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
75 PORTB_ANPAD, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
76 #if 0 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
77 PARA_JOY0, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
78 PARA_JOY1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
79 #endif |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
80 MAX_JOYSTICKS |
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 enum { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
84 MCH_ST=0, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
85 MCH_STE, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
86 MCH_TT, |
1054
e89d7f826b4a
Add support for ARAnyM Atari emulator
Patrice Mandin <patmandin@gmail.com>
parents:
963
diff
changeset
|
87 MCH_F30, |
1079
39b5606fa543
Forgot enumeration value for Atari clones
Patrice Mandin <patmandin@gmail.com>
parents:
1054
diff
changeset
|
88 MCH_CLONE, |
1054
e89d7f826b4a
Add support for ARAnyM Atari emulator
Patrice Mandin <patmandin@gmail.com>
parents:
963
diff
changeset
|
89 MCH_ARANYM |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
90 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
91 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
92 /* Joypad buttons |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
93 * Procontroller note: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
94 * L,R are connected to 4,6 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
95 * X,Y,Z are connected to 7,8,9 |
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 enum { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
99 JP_UP=0, JP_DOWN, JP_LEFT, JP_RIGHT, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
100 JP_KPMULT, JP_KP7, JP_KP4, JP_KP1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
101 JP_KP0, JP_KP8, JP_KP5, JP_KP2, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
102 JP_KPNUM, JP_KP9, JP_KP6, JP_KP3, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
103 JP_PAUSE, JP_FIRE0, JP_UNDEF0, JP_FIRE1, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
104 JP_UNDEF1, JP_FIRE2, JP_UNDEF2, JP_OPTION |
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 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
107 #define JP_NUM_BUTTONS 17 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
108 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
109 #define PORT_JS_RIGHT (1<<0) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
110 #define PORT_JS_LEFT (1<<1) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
111 #define PORT_JS_DOWN (1<<2) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
112 #define PORT_JS_UP (1<<3) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
113 #define PORT_JS_FIRE (1<<4) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
114 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
115 /*--- Types ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
116 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
117 typedef struct { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
118 SDL_bool enabled; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
119 unsigned char *name; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
120 Uint32 prevstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
121 } atarijoy_t; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
122 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
123 /*--- Variables ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
124 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
125 static atarijoy_t atarijoysticks[MAX_JOYSTICKS]={ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
126 {SDL_FALSE,"IKBD joystick port 1",0}, |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
127 {SDL_FALSE,"Xbios joystick port 1",0}, |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
128 {SDL_FALSE,"Joypad 0 port A",0}, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
129 {SDL_FALSE,"Joypad 1 port A",0}, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
130 {SDL_FALSE,"Joypad 2 port A",0}, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
131 {SDL_FALSE,"Joypad 3 port A",0}, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
132 {SDL_FALSE,"Joypad 0 port B",0}, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
133 {SDL_FALSE,"Joypad 1 port B",0}, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
134 {SDL_FALSE,"Joypad 2 port B",0}, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
135 {SDL_FALSE,"Joypad 3 port B",0}, |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
136 {SDL_FALSE,"Joystick 0 port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
137 {SDL_FALSE,"Joystick 1 port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
138 {SDL_FALSE,"Joystick 0 port B",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
139 {SDL_FALSE,"Joystick 1 port B",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
140 {SDL_FALSE,"Lightpen port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
141 {SDL_FALSE,"Analog paddle port A",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
142 {SDL_FALSE,"Analog paddle port B",0} |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
143 #if 0 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
144 ,{SDL_FALSE,"Joystick 0 parallel port",0}, |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
145 {SDL_FALSE,"Joystick 1 parallel port",0} |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
146 #endif |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
147 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
148 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
149 static const int jp_buttons[JP_NUM_BUTTONS]={ |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
150 JP_FIRE0, JP_FIRE1, JP_FIRE2, JP_PAUSE, |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
151 JP_OPTION, JP_KPMULT, JP_KPNUM, JP_KP0, |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
152 JP_KP1, JP_KP2, JP_KP3, JP_KP4, |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
153 JP_KP5, JP_KP6, JP_KP7, JP_KP8, |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
154 JP_KP9 |
302
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 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
157 static SDL_bool joypad_ports_enabled=SDL_FALSE; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
158 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
159 /* Updated joypad ports */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
160 static Uint16 jp_paddles[4]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
161 static Uint16 jp_lightpens[2]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
162 static Uint16 jp_directions; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
163 static Uint16 jp_fires; |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
164 static Uint32 jp_joypads[8]; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
165 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
166 /*--- Functions prototypes ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
167 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
168 static int GetEnabledAtariJoystick(int index); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
169 static void UpdateJoypads(void); |
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 /*--- Functions ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
172 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
173 int SDL_SYS_JoystickInit(void) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
174 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
175 int i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
176 unsigned long cookie_mch; |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
177 const char *envr=SDL_getenv("SDL_JOYSTICK_ATARI"); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
178 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
179 #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
|
180 if (SDL_strstr(env,idstring"-off")) { \ |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
181 atarijoysticks[num].enabled=SDL_FALSE; \ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
182 } \ |
1336
3692456e7b0f
Use SDL_ prefixed versions of C library functions.
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
183 if (SDL_strstr(env,idstring"-on")) { \ |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
184 atarijoysticks[num].enabled=SDL_TRUE; \ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
185 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
186 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
187 /* Cookie _MCH present ? if not, assume ST machine */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
188 if (Getcookie(C__MCH, &cookie_mch) != C_FOUND) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
189 cookie_mch = MCH_ST << 16; |
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 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
192 /* Enable some default joysticks */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
193 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
|
194 (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
|
195 (cookie_mch == MCH_ARANYM<<16)) { |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
196 atarijoysticks[IKBD_JOY1].enabled=(SDL_AtariIkbd_enabled!=0); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
197 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
198 if ((cookie_mch == MCH_STE<<16) || (cookie_mch == MCH_F30<<16)) { |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
199 atarijoysticks[PORTA_PAD0].enabled = |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
200 atarijoysticks[PORTA_PAD1].enabled = |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
201 atarijoysticks[PORTA_PAD2].enabled = |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
202 atarijoysticks[PORTA_PAD3].enabled = |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
203 atarijoysticks[PORTB_PAD0].enabled = |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
204 atarijoysticks[PORTB_PAD1].enabled = |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
205 atarijoysticks[PORTB_PAD2].enabled = |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
206 atarijoysticks[PORTB_PAD3].enabled = SDL_TRUE; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
207 } |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
208 if (!atarijoysticks[IKBD_JOY1].enabled) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
209 atarijoysticks[XBIOS_JOY1].enabled=(SDL_AtariXbios_enabled!=0); |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
210 } |
302
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 /* Read environment for joysticks to enable */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
213 if (envr) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
214 /* IKBD on any Atari, maybe clones */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
215 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
|
216 (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
|
217 (cookie_mch == MCH_ARANYM<<16)) { |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
218 if (SDL_AtariIkbd_enabled!=0) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
219 TEST_JOY_ENABLED(envr, "ikbd-joy1", IKBD_JOY1); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
220 } |
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 /* Joypads ports only on STE and Falcon */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
223 if ((cookie_mch == MCH_STE<<16) || (cookie_mch == MCH_F30<<16)) { |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
224 TEST_JOY_ENABLED(envr, "porta-pad", PORTA_PAD0); |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
225 if (!atarijoysticks[PORTA_PAD0].enabled) { |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
226 TEST_JOY_ENABLED(envr, "porta-joy0", PORTA_JOY0); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
227 TEST_JOY_ENABLED(envr, "porta-joy1", PORTA_JOY1); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
228 if (!(atarijoysticks[PORTA_JOY0].enabled) && !(atarijoysticks[PORTA_JOY1].enabled)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
229 TEST_JOY_ENABLED(envr, "porta-lp", PORTA_LP); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
230 if (!atarijoysticks[PORTA_LP].enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
231 TEST_JOY_ENABLED(envr, "porta-anpad", PORTA_ANPAD); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
232 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
233 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
234 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
235 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
236 TEST_JOY_ENABLED(envr, "portb-pad", PORTB_PAD0); |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
237 if (!atarijoysticks[PORTB_PAD0].enabled) { |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
238 TEST_JOY_ENABLED(envr, "portb-joy0", PORTB_JOY0); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
239 TEST_JOY_ENABLED(envr, "portb-joy1", PORTB_JOY1); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
240 if (!(atarijoysticks[PORTB_JOY0].enabled) && !(atarijoysticks[PORTB_JOY1].enabled)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
241 TEST_JOY_ENABLED(envr, "portb-anpad", PORTB_ANPAD); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
242 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
243 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
244 } |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
245 |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
246 if (!atarijoysticks[IKBD_JOY1].enabled) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
247 if (SDL_AtariXbios_enabled!=0) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
248 TEST_JOY_ENABLED(envr, "xbios-joy1", XBIOS_JOY1); |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
249 } |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
250 } |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
251 #if 0 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
252 /* Parallel port on any Atari, maybe clones */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
253 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
|
254 (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
|
255 TEST_JOY_ENABLED(envr, "para-joy0", PARA_JOY0); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
256 TEST_JOY_ENABLED(envr, "para-joy1", PARA_JOY1); |
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 #endif |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
259 } |
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 /* Need to update joypad ports ? */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
262 joypad_ports_enabled=SDL_FALSE; |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
263 for (i=PORTA_PAD0;i<=PORTB_ANPAD;i++) { |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
264 if (atarijoysticks[i].enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
265 joypad_ports_enabled=SDL_TRUE; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
266 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
267 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
268 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
269 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
270 SDL_numjoysticks = 0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
271 for (i=0;i<MAX_JOYSTICKS;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
272 if (atarijoysticks[i].enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
273 ++SDL_numjoysticks; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
274 } |
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 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
277 return(SDL_numjoysticks); |
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 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
280 static int GetEnabledAtariJoystick(int index) |
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 int i,j; |
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 /* Return the nth'index' enabled atari joystick */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
285 j=0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
286 for (i=0;i<MAX_JOYSTICKS;i++) { |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
287 if (!atarijoysticks[i].enabled) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
288 continue; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
289 } |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
290 |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
291 if (j==index) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
292 break; |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
293 } |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
294 |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
295 ++j; |
302
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 if (i==MAX_JOYSTICKS) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
298 return -1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
299 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
300 return i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
301 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
302 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
303 const char *SDL_SYS_JoystickName(int index) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
304 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
305 int numjoystick; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
306 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
307 numjoystick=GetEnabledAtariJoystick(index); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
308 if (numjoystick==-1) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
309 return NULL; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
310 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
311 return(atarijoysticks[numjoystick].name); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
312 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
313 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
314 int SDL_SYS_JoystickOpen(SDL_Joystick *joystick) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
315 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
316 int numjoystick; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
317 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
318 numjoystick=GetEnabledAtariJoystick(joystick->index); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
319 if (numjoystick==-1) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
320 return -1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
321 |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
322 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
|
323 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
|
324 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
|
325 |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
326 switch(numjoystick) { |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
327 case PORTA_PAD0: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
328 case PORTA_PAD1: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
329 case PORTA_PAD2: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
330 case PORTA_PAD3: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
331 case PORTB_PAD0: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
332 case PORTB_PAD1: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
333 case PORTB_PAD2: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
334 case PORTB_PAD3: |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
335 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
|
336 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
|
337 break; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
338 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
|
339 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
|
340 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
|
341 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
|
342 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
|
343 break; |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
344 default: |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
345 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
|
346 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
|
347 break; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
348 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
349 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
350 return(0); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
351 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
352 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
353 void SDL_SYS_JoystickUpdate(SDL_Joystick *joystick) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
354 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
355 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
|
356 Uint8 hatstate; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
357 Uint32 curstate,prevstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
358 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
359 numjoystick=GetEnabledAtariJoystick(joystick->index); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
360 if (numjoystick==-1) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
361 return; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
362 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
363 prevstate = atarijoysticks[numjoystick].prevstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
364 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
365 if (joypad_ports_enabled) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
366 Supexec(UpdateJoypads); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
367 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
368 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
369 switch (numjoystick) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
370 case IKBD_JOY1: |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
371 case XBIOS_JOY1: |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
372 { |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
373 curstate = 0; |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
374 |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
375 if (numjoystick==IKBD_JOY1) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
376 curstate = SDL_AtariIkbd_joystick & 0xff; |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
377 } |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
378 if (numjoystick==XBIOS_JOY1) { |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
379 curstate = SDL_AtariXbios_joystick & 0xff; |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
380 } |
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
381 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
382 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
|
383 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
|
384 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
|
385 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
|
386 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
387 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
|
388 hatstate |= SDL_HAT_RIGHT; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
389 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
390 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
|
391 hatstate |= SDL_HAT_UP; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
392 } |
963
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 & 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
|
394 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
|
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 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
|
397 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
398 /* Button */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
399 if ((curstate & IKBD_JOY_FIRE) && !(prevstate & IKBD_JOY_FIRE)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
400 SDL_PrivateJoystickButton(joystick,0,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
401 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
402 if (!(curstate & IKBD_JOY_FIRE) && (prevstate & IKBD_JOY_FIRE)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
403 SDL_PrivateJoystickButton(joystick,0,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
404 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
405 } |
305
9c6613983e85
Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents:
302
diff
changeset
|
406 atarijoysticks[numjoystick].prevstate = curstate; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
407 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
408 break; |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
409 case PORTA_PAD0: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
410 case PORTA_PAD1: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
411 case PORTA_PAD2: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
412 case PORTA_PAD3: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
413 case PORTB_PAD0: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
414 case PORTB_PAD1: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
415 case PORTB_PAD2: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
416 case PORTB_PAD3: |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
417 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
418 int numjoypad,i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
419 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
420 numjoypad = 0; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
421 switch(numjoystick) { |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
422 case PORTA_PAD0: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
423 numjoypad = 0; break; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
424 case PORTA_PAD1: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
425 numjoypad = 1; break; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
426 case PORTA_PAD2: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
427 numjoypad = 2; break; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
428 case PORTA_PAD3: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
429 numjoypad = 3; break; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
430 case PORTB_PAD0: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
431 numjoypad = 4; break; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
432 case PORTB_PAD1: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
433 numjoypad = 5; break; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
434 case PORTB_PAD2: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
435 numjoypad = 6; break; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
436 case PORTB_PAD3: |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
437 numjoypad = 7; break; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
438 } |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
439 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
440 curstate=jp_joypads[numjoypad]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
441 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
|
442 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
|
443 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
|
444 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
|
445 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
446 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
|
447 hatstate |= SDL_HAT_RIGHT; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
448 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
449 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
|
450 hatstate |= SDL_HAT_UP; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
451 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
452 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
|
453 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
|
454 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
455 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
|
456 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
457 /* Buttons */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
458 for (i=0;i<JP_NUM_BUTTONS;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
459 int button; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
460 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
461 button=1<<jp_buttons[i]; |
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 if ((curstate & button) && !(prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
464 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
465 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
466 if (!(curstate & button) && (prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
467 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
468 } |
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 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
471 atarijoysticks[numjoystick].prevstate = curstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
472 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
473 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
474 case PORTA_JOY0: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
475 case PORTA_JOY1: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
476 case PORTB_JOY0: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
477 case PORTB_JOY1: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
478 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
479 int fire_shift=0,dir_shift=0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
480 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
481 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
|
482 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
|
483 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
|
484 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
|
485 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
486 curstate = (jp_directions>>dir_shift) & 15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
487 curstate |= ((jp_fires>>fire_shift) & 1)<<4; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
488 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
489 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
|
490 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
|
491 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
|
492 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
|
493 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
494 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
|
495 hatstate |= SDL_HAT_RIGHT; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
496 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
497 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
|
498 hatstate |= SDL_HAT_UP; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
499 } |
963
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
500 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
|
501 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
|
502 } |
92c247cec42d
No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents:
769
diff
changeset
|
503 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
|
504 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
505 /* Button */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
506 if ((curstate & PORT_JS_FIRE) && !(prevstate & PORT_JS_FIRE)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
507 SDL_PrivateJoystickButton(joystick,0,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
508 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
509 if (!(curstate & PORT_JS_FIRE) && (prevstate & PORT_JS_FIRE)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
510 SDL_PrivateJoystickButton(joystick,0,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
511 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
512 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
513 atarijoysticks[numjoystick].prevstate = curstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
514 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
515 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
516 case PORTA_LP: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
517 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
518 int i; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
519 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
520 curstate = jp_lightpens[0]>>1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
521 curstate |= (jp_lightpens[1]>>1)<<15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
522 curstate |= (jp_fires & 3)<<30; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
523 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
524 if (curstate != prevstate) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
525 /* X axis */ |
507
7853b6af5957
Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents:
305
diff
changeset
|
526 SDL_PrivateJoystickAxis(joystick,0,jp_lightpens[0] ^ 0x8000); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
527 /* Y axis */ |
507
7853b6af5957
Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents:
305
diff
changeset
|
528 SDL_PrivateJoystickAxis(joystick,1,jp_lightpens[1] ^ 0x8000); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
529 /* Buttons */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
530 for (i=0;i<2;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
531 int button; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
532 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
533 button=1<<(30+i); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
534 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
535 if ((curstate & button) && !(prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
536 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
537 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
538 if (!(curstate & button) && (prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
539 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
540 } |
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 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
543 atarijoysticks[numjoystick].prevstate = curstate; |
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 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
546 case PORTA_ANPAD: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
547 case PORTB_ANPAD: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
548 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
549 int numpaddle, i; |
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 numpaddle=0<<1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
552 if (numjoystick==PORTB_ANPAD) numpaddle=1<<1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
553 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
554 curstate = jp_paddles[numpaddle]>>1; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
555 curstate |= (jp_paddles[numpaddle+1]>>1)<<15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
556 curstate |= ((jp_fires>>numpaddle) & 3)<<30; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
557 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
558 if (curstate != prevstate) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
559 /* X axis */ |
507
7853b6af5957
Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents:
305
diff
changeset
|
560 SDL_PrivateJoystickAxis(joystick,0,jp_paddles[numpaddle] ^ 0x8000); |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
561 /* Y axis */ |
507
7853b6af5957
Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents:
305
diff
changeset
|
562 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
|
563 /* Buttons */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
564 for (i=0;i<2;i++) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
565 int button; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
566 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
567 button=1<<(30+i); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
568 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
569 if ((curstate & button) && !(prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
570 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
571 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
572 if (!(curstate & button) && (prevstate & button)) { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
573 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
574 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
575 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
576 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
577 atarijoysticks[numjoystick].prevstate = curstate; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
578 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
579 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
580 #if 0 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
581 case PARA_JOY0: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
582 case PARA_JOY1: |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
583 break; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
584 #endif |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
585 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
586 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
587 return; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
588 } |
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 void SDL_SYS_JoystickClose(SDL_Joystick *joystick) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
591 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
592 return; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
593 } |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
594 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
595 void SDL_SYS_JoystickQuit(void) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
596 { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
597 SDL_numjoysticks=0; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
598 return; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
599 } |
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 I/O read/write interface ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
602 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
603 #define JOYPAD_IO_BASE (0xffff9200) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
604 struct JOYPAD_IO_S { |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
605 Uint16 fires; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
606 Uint16 directions; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
607 Uint16 dummy1[6]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
608 Uint16 paddles[4]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
609 Uint16 dummy2[4]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
610 Uint16 lightpens[2]; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
611 }; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
612 #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
|
613 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
614 static const Uint16 joypad_masks[8*4]={ |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
615 0xfffe, 0xfffd, 0xfffb, 0xfff7, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
616 0xfff0, 0xfff1, 0xfff2, 0xfff3, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
617 0xfff4, 0xfff5, 0xfff6, 0xfff8, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
618 0xfff9, 0xfffa, 0xfffc, 0xffff, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
619 0xffef, 0xffdf, 0xffbf, 0xff7f, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
620 0xff0f, 0xff1f, 0xff2f, 0xff3f, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
621 0xff4f, 0xff5f, 0xff6f, 0xff8f, |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
622 0xff9f, 0xffaf, 0xffcf, 0xffff |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
623 }; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
624 |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
625 static void UpdateJoypads(void) |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
626 { |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
627 Uint16 tmp, i, j; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
628 Uint32 cur_fire, cur_dir; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
629 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
630 /*--- This function is called in supervisor mode ---*/ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
631 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
632 /* Update joysticks */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
633 jp_fires = (~(JOYPAD_IO.fires)) & 15; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
634 jp_directions = (~(JOYPAD_IO.directions)); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
635 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
636 /* Update lightpen */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
637 tmp = JOYPAD_IO.lightpens[0] & 1023; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
638 jp_lightpens[0] = (tmp<<6) | (tmp>>4); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
639 tmp = JOYPAD_IO.lightpens[1] & 1023; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
640 jp_lightpens[1] = (tmp<<6) | (tmp>>4); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
641 |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
642 /* Update paddles */ |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
643 tmp = (JOYPAD_IO.paddles[0] & 255); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
644 jp_paddles[0] = (tmp<<8) | tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
645 tmp = (JOYPAD_IO.paddles[1] & 255); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
646 jp_paddles[1] = (tmp<<8) | tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
647 tmp = (JOYPAD_IO.paddles[2] & 255); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
648 jp_paddles[2] = (tmp<<8) | tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
649 tmp = (JOYPAD_IO.paddles[3] & 255); |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
650 jp_paddles[3] = (tmp<<8) | tmp; |
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
651 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
652 /* Update joypads on teamtap port A */ |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
653 for (i=0; i<4; i++) { |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
654 jp_joypads[i] = 0; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
655 for (j=0; j<4; j++) { |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
656 JOYPAD_IO.directions = joypad_masks[(i*4)+j]; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
657 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
658 cur_fire = (~(JOYPAD_IO.fires) & 3)<<16; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
659 cur_dir = (~(JOYPAD_IO.directions)>>8) & 15; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
660 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
661 jp_joypads[i] |= cur_fire<<(j*2); |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
662 jp_joypads[i] |= cur_dir<<(j*4); |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
663 } |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
664 } |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
665 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
666 /* Update joypads on teamtap port B */ |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
667 for (i=4; i<8; i++) { |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
668 jp_joypads[i] = 0; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
669 for (j=0; j<4; j++) { |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
670 JOYPAD_IO.directions = joypad_masks[(i*4)+j]; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
671 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
672 cur_fire = (~(JOYPAD_IO.fires) & 0xc)<<14; |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
673 cur_dir = (~(JOYPAD_IO.directions)>>12) & 15; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
674 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
675 jp_joypads[i] |= cur_fire<<(j*2); |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
676 jp_joypads[i] |= cur_dir<<(j*4); |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
677 } |
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
678 } |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
679 |
3850
28db418c7573
Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents:
1635
diff
changeset
|
680 JOYPAD_IO.directions=0xffff; |
302
8a86bdf34f0f
Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
681 } |
1635
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1412
diff
changeset
|
682 |
92947e3a18db
Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents:
1412
diff
changeset
|
683 #endif /* SDL_JOYSTICK_MINT */ |