annotate src/joystick/mint/SDL_sysjoystick.c @ 4156:de46a1bfcbdb SDL-1.2

Aranym now has Joypad emulation. Also mask bits for joypad state, for bits only used for buttons, to avoid generating events when dummy bits are set
author Patrice Mandin <patmandin@gmail.com>
date Wed, 05 Nov 2008 20:08:17 +0000
parents 28db418c7573
children a1b03ba2fcd0
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
a8181c4040b8 Fixed include files
Patrice Mandin <patmandin@gmail.com>
parents: 1402
diff changeset
39 #include "../../video/ataricommon/SDL_ikbdinterrupt_s.h"
a8181c4040b8 Fixed include files
Patrice Mandin <patmandin@gmail.com>
parents: 1402
diff changeset
40 #include "../../video/ataricommon/SDL_xbiosevents_c.h"
a8181c4040b8 Fixed include files
Patrice Mandin <patmandin@gmail.com>
parents: 1402
diff changeset
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 }
4156
de46a1bfcbdb Aranym now has Joypad emulation. Also mask bits for joypad state, for bits only used for buttons, to avoid generating events when dummy bits are set
Patrice Mandin <patmandin@gmail.com>
parents: 3850
diff changeset
222 /* Joypads ports on STE, Falcon and maybe others */
de46a1bfcbdb Aranym now has Joypad emulation. Also mask bits for joypad state, for bits only used for buttons, to avoid generating events when dummy bits are set
Patrice Mandin <patmandin@gmail.com>
parents: 3850
diff changeset
223 if ((cookie_mch == MCH_STE<<16) || (cookie_mch == MCH_F30<<16) ||
de46a1bfcbdb Aranym now has Joypad emulation. Also mask bits for joypad state, for bits only used for buttons, to avoid generating events when dummy bits are set
Patrice Mandin <patmandin@gmail.com>
parents: 3850
diff changeset
224 (cookie_mch == MCH_ARANYM<<16)) {
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
225 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
226 if (!atarijoysticks[PORTA_PAD0].enabled) {
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
227 TEST_JOY_ENABLED(envr, "porta-joy0", PORTA_JOY0);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
228 TEST_JOY_ENABLED(envr, "porta-joy1", PORTA_JOY1);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
229 if (!(atarijoysticks[PORTA_JOY0].enabled) && !(atarijoysticks[PORTA_JOY1].enabled)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
230 TEST_JOY_ENABLED(envr, "porta-lp", PORTA_LP);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
231 if (!atarijoysticks[PORTA_LP].enabled) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
232 TEST_JOY_ENABLED(envr, "porta-anpad", PORTA_ANPAD);
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 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
236
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
237 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
238 if (!atarijoysticks[PORTB_PAD0].enabled) {
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
239 TEST_JOY_ENABLED(envr, "portb-joy0", PORTB_JOY0);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
240 TEST_JOY_ENABLED(envr, "portb-joy1", PORTB_JOY1);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
241 if (!(atarijoysticks[PORTB_JOY0].enabled) && !(atarijoysticks[PORTB_JOY1].enabled)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
242 TEST_JOY_ENABLED(envr, "portb-anpad", PORTB_ANPAD);
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 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
245 }
305
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
246
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
247 if (!atarijoysticks[IKBD_JOY1].enabled) {
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
248 if (SDL_AtariXbios_enabled!=0) {
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
249 TEST_JOY_ENABLED(envr, "xbios-joy1", XBIOS_JOY1);
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
250 }
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
251 }
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
252 #if 0
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
253 /* Parallel port on any Atari, maybe clones */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
254 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
255 (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
256 TEST_JOY_ENABLED(envr, "para-joy0", PARA_JOY0);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
257 TEST_JOY_ENABLED(envr, "para-joy1", PARA_JOY1);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
258 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
259 #endif
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
262 /* Need to update joypad ports ? */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
263 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
264 for (i=PORTA_PAD0;i<=PORTB_ANPAD;i++) {
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
265 if (atarijoysticks[i].enabled) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
266 joypad_ports_enabled=SDL_TRUE;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
267 break;
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
271 SDL_numjoysticks = 0;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
272 for (i=0;i<MAX_JOYSTICKS;i++) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
273 if (atarijoysticks[i].enabled) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
274 ++SDL_numjoysticks;
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
278 return(SDL_numjoysticks);
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
281 static int GetEnabledAtariJoystick(int index)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
282 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
283 int i,j;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
284
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
285 /* Return the nth'index' enabled atari joystick */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
286 j=0;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
287 for (i=0;i<MAX_JOYSTICKS;i++) {
305
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
288 if (!atarijoysticks[i].enabled) {
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
289 continue;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
290 }
305
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
291
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
292 if (j==index) {
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
293 break;
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
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
296 ++j;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
297 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
298 if (i==MAX_JOYSTICKS)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
299 return -1;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
300
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
301 return i;
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
304 const char *SDL_SYS_JoystickName(int index)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
305 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
306 int numjoystick;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
307
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
308 numjoystick=GetEnabledAtariJoystick(index);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
309 if (numjoystick==-1)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
310 return NULL;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
311
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
312 return(atarijoysticks[numjoystick].name);
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
315 int SDL_SYS_JoystickOpen(SDL_Joystick *joystick)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
316 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
317 int numjoystick;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
318
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
319 numjoystick=GetEnabledAtariJoystick(joystick->index);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
320 if (numjoystick==-1)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
321 return -1;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
322
963
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->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
324 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
325 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
326
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
327 switch(numjoystick) {
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
328 case PORTA_PAD0:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
329 case PORTA_PAD1:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
330 case PORTA_PAD2:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
331 case PORTA_PAD3:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
332 case PORTB_PAD0:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
333 case PORTB_PAD1:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
334 case PORTB_PAD2:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
335 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
336 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
337 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
338 break;
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_LP:
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 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
341 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
342 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
343 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
344 break;
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
345 default:
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->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
347 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
348 break;
302
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
351 return(0);
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
354 void SDL_SYS_JoystickUpdate(SDL_Joystick *joystick)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
355 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
356 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
357 Uint8 hatstate;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
358 Uint32 curstate,prevstate;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
359
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
360 numjoystick=GetEnabledAtariJoystick(joystick->index);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
361 if (numjoystick==-1)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
362 return;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
363
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
364 prevstate = atarijoysticks[numjoystick].prevstate;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
365
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
366 if (joypad_ports_enabled) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
367 Supexec(UpdateJoypads);
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
370 switch (numjoystick) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
371 case IKBD_JOY1:
305
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
372 case XBIOS_JOY1:
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
373 {
305
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
374 curstate = 0;
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
375
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
376 if (numjoystick==IKBD_JOY1) {
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
377 curstate = SDL_AtariIkbd_joystick & 0xff;
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
378 }
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
379 if (numjoystick==XBIOS_JOY1) {
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
380 curstate = SDL_AtariXbios_joystick & 0xff;
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
381 }
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
382
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
383 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
384 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
385 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
386 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
387 }
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
388 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
389 hatstate |= SDL_HAT_RIGHT;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
390 }
963
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
391 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
392 hatstate |= SDL_HAT_UP;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
393 }
963
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
394 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
395 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
396 }
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
397 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
398
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
399 /* Button */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
400 if ((curstate & IKBD_JOY_FIRE) && !(prevstate & IKBD_JOY_FIRE)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
401 SDL_PrivateJoystickButton(joystick,0,SDL_PRESSED);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
402 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
403 if (!(curstate & IKBD_JOY_FIRE) && (prevstate & IKBD_JOY_FIRE)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
404 SDL_PrivateJoystickButton(joystick,0,SDL_RELEASED);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
405 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
406 }
305
9c6613983e85 Atari port cleanups from Patrice
Sam Lantinga <slouken@libsdl.org>
parents: 302
diff changeset
407 atarijoysticks[numjoystick].prevstate = curstate;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
408 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
409 break;
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
410 case PORTA_PAD0:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
411 case PORTA_PAD1:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
412 case PORTA_PAD2:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
413 case PORTA_PAD3:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
414 case PORTB_PAD0:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
415 case PORTB_PAD1:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
416 case PORTB_PAD2:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
417 case PORTB_PAD3:
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
418 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
419 int numjoypad,i;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
420
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
421 numjoypad = 0;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
422 switch(numjoystick) {
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
423 case PORTA_PAD0:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
424 numjoypad = 0; break;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
425 case PORTA_PAD1:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
426 numjoypad = 1; break;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
427 case PORTA_PAD2:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
428 numjoypad = 2; break;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
429 case PORTA_PAD3:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
430 numjoypad = 3; break;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
431 case PORTB_PAD0:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
432 numjoypad = 4; break;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
433 case PORTB_PAD1:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
434 numjoypad = 5; break;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
435 case PORTB_PAD2:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
436 numjoypad = 6; break;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
437 case PORTB_PAD3:
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
438 numjoypad = 7; break;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
439 }
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
440
4156
de46a1bfcbdb Aranym now has Joypad emulation. Also mask bits for joypad state, for bits only used for buttons, to avoid generating events when dummy bits are set
Patrice Mandin <patmandin@gmail.com>
parents: 3850
diff changeset
441 curstate=jp_joypads[numjoypad] & 0xabffff;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
442 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
443 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
444 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
445 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
446 }
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
447 if (curstate & (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
448 hatstate |= SDL_HAT_RIGHT;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
449 }
963
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
450 if (curstate & (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
451 hatstate |= SDL_HAT_UP;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
452 }
963
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
453 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
454 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
455 }
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
456 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
457
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
458 /* Buttons */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
459 for (i=0;i<JP_NUM_BUTTONS;i++) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
460 int button;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
461
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
462 button=1<<jp_buttons[i];
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
463
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
464 if ((curstate & button) && !(prevstate & button)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
465 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
466 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
467 if (!(curstate & button) && (prevstate & button)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
468 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED);
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 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
472 atarijoysticks[numjoystick].prevstate = curstate;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
473 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
474 break;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
475 case PORTA_JOY0:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
476 case PORTA_JOY1:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
477 case PORTB_JOY0:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
478 case PORTB_JOY1:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
479 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
480 int fire_shift=0,dir_shift=0;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
481
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
482 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
483 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
484 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
485 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
486
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
487 curstate = (jp_directions>>dir_shift) & 15;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
488 curstate |= ((jp_fires>>fire_shift) & 1)<<4;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
489
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
490 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
491 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
492 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
493 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
494 }
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
495 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
496 hatstate |= SDL_HAT_RIGHT;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
497 }
963
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
498 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
499 hatstate |= SDL_HAT_UP;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
500 }
963
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
501 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
502 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
503 }
92c247cec42d No need to try to emulate analog axis when SDL support digital hats
Patrice Mandin <patmandin@gmail.com>
parents: 769
diff changeset
504 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
505
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
506 /* Button */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
507 if ((curstate & PORT_JS_FIRE) && !(prevstate & PORT_JS_FIRE)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
508 SDL_PrivateJoystickButton(joystick,0,SDL_PRESSED);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
509 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
510 if (!(curstate & PORT_JS_FIRE) && (prevstate & PORT_JS_FIRE)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
511 SDL_PrivateJoystickButton(joystick,0,SDL_RELEASED);
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 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
514 atarijoysticks[numjoystick].prevstate = curstate;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
515 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
516 break;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
517 case PORTA_LP:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
518 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
519 int i;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
520
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
521 curstate = jp_lightpens[0]>>1;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
522 curstate |= (jp_lightpens[1]>>1)<<15;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
523 curstate |= (jp_fires & 3)<<30;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
524
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
525 if (curstate != prevstate) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
526 /* X axis */
507
7853b6af5957 Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents: 305
diff changeset
527 SDL_PrivateJoystickAxis(joystick,0,jp_lightpens[0] ^ 0x8000);
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
528 /* Y axis */
507
7853b6af5957 Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents: 305
diff changeset
529 SDL_PrivateJoystickAxis(joystick,1,jp_lightpens[1] ^ 0x8000);
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
530 /* Buttons */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
531 for (i=0;i<2;i++) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
532 int button;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
533
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
534 button=1<<(30+i);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
535
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
536 if ((curstate & button) && !(prevstate & button)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
537 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
538 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
539 if (!(curstate & button) && (prevstate & button)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
540 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED);
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 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
544 atarijoysticks[numjoystick].prevstate = curstate;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
545 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
546 break;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
547 case PORTA_ANPAD:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
548 case PORTB_ANPAD:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
549 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
550 int numpaddle, i;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
551
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
552 numpaddle=0<<1;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
553 if (numjoystick==PORTB_ANPAD) numpaddle=1<<1;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
554
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
555 curstate = jp_paddles[numpaddle]>>1;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
556 curstate |= (jp_paddles[numpaddle+1]>>1)<<15;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
557 curstate |= ((jp_fires>>numpaddle) & 3)<<30;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
558
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
559 if (curstate != prevstate) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
560 /* X axis */
507
7853b6af5957 Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents: 305
diff changeset
561 SDL_PrivateJoystickAxis(joystick,0,jp_paddles[numpaddle] ^ 0x8000);
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
562 /* Y axis */
507
7853b6af5957 Atari joystick fixes contributed by Patrice Mandin
Sam Lantinga <slouken@libsdl.org>
parents: 305
diff changeset
563 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
564 /* Buttons */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
565 for (i=0;i<2;i++) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
566 int button;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
567
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
568 button=1<<(30+i);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
569
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
570 if ((curstate & button) && !(prevstate & button)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
571 SDL_PrivateJoystickButton(joystick,i,SDL_PRESSED);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
572 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
573 if (!(curstate & button) && (prevstate & button)) {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
574 SDL_PrivateJoystickButton(joystick,i,SDL_RELEASED);
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 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
578 atarijoysticks[numjoystick].prevstate = curstate;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
579 }
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
580 break;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
581 #if 0
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
582 case PARA_JOY0:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
583 case PARA_JOY1:
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
584 break;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
585 #endif
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
588 return;
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
591 void SDL_SYS_JoystickClose(SDL_Joystick *joystick)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
592 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
593 return;
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
596 void SDL_SYS_JoystickQuit(void)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
597 {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
598 SDL_numjoysticks=0;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
599 return;
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
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
602 /*--- Joypad I/O read/write interface ---*/
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
603
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
604 #define JOYPAD_IO_BASE (0xffff9200)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
605 struct JOYPAD_IO_S {
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
606 Uint16 fires;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
607 Uint16 directions;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
608 Uint16 dummy1[6];
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
609 Uint16 paddles[4];
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
610 Uint16 dummy2[4];
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
611 Uint16 lightpens[2];
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
612 };
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
613 #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
614
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
615 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
616 0xfffe, 0xfffd, 0xfffb, 0xfff7,
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
617 0xfff0, 0xfff1, 0xfff2, 0xfff3,
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
618 0xfff4, 0xfff5, 0xfff6, 0xfff8,
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
619 0xfff9, 0xfffa, 0xfffc, 0xffff,
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
620 0xffef, 0xffdf, 0xffbf, 0xff7f,
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
621 0xff0f, 0xff1f, 0xff2f, 0xff3f,
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
622 0xff4f, 0xff5f, 0xff6f, 0xff8f,
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
623 0xff9f, 0xffaf, 0xffcf, 0xffff
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
624 };
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
625
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
626 static void UpdateJoypads(void)
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
627 {
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
628 Uint16 tmp, i, j;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
629 Uint32 cur_fire, cur_dir;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
630
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
631 /*--- This function is called in supervisor mode ---*/
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
632
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
633 /* Update joysticks */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
634 jp_fires = (~(JOYPAD_IO.fires)) & 15;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
635 jp_directions = (~(JOYPAD_IO.directions));
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
636
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
637 /* Update lightpen */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
638 tmp = JOYPAD_IO.lightpens[0] & 1023;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
639 jp_lightpens[0] = (tmp<<6) | (tmp>>4);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
640 tmp = JOYPAD_IO.lightpens[1] & 1023;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
641 jp_lightpens[1] = (tmp<<6) | (tmp>>4);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
642
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
643 /* Update paddles */
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
644 tmp = (JOYPAD_IO.paddles[0] & 255);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
645 jp_paddles[0] = (tmp<<8) | tmp;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
646 tmp = (JOYPAD_IO.paddles[1] & 255);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
647 jp_paddles[1] = (tmp<<8) | tmp;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
648 tmp = (JOYPAD_IO.paddles[2] & 255);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
649 jp_paddles[2] = (tmp<<8) | tmp;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
650 tmp = (JOYPAD_IO.paddles[3] & 255);
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
651 jp_paddles[3] = (tmp<<8) | tmp;
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
652
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
653 /* 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
654 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
655 jp_joypads[i] = 0;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
656 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
657 JOYPAD_IO.directions = joypad_masks[(i*4)+j];
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
658
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
659 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
660 cur_dir = (~(JOYPAD_IO.directions)>>8) & 15;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
661
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
662 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
663 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
664 }
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
665 }
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
666
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
667 /* 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
668 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
669 jp_joypads[i] = 0;
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
670 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
671 JOYPAD_IO.directions = joypad_masks[(i*4)+j];
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
672
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
673 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
674 cur_dir = (~(JOYPAD_IO.directions)>>12) & 15;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
675
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
676 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
677 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
678 }
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
679 }
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
680
3850
28db418c7573 Add teamtap support (4 joypads adapter on 1 port)
Patrice Mandin <patmandin@gmail.com>
parents: 1635
diff changeset
681 JOYPAD_IO.directions=0xffff;
302
8a86bdf34f0f Added Atari joystick support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
682 }
1635
92947e3a18db Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents: 1412
diff changeset
683
92947e3a18db Make sure code is only compiled if the appropriate subsystem is enabled
Sam Lantinga <slouken@libsdl.org>
parents: 1412
diff changeset
684 #endif /* SDL_JOYSTICK_MINT */