--- /dev/null
+--- Atari800/src/input.c.orig Mon Nov 5 00:30:10 2001
++++ Atari800/src/input.c Sat Dec 22 18:00:00 2001
+@@ -279,30 +279,30 @@
+ STICK[2] = i & 0x0f;
+ STICK[3] = (i >> 4) & 0x0f;
+
+- if (joy_block_opposite_directions) {
+- if ((STICK[i] & 0x0c) == 0) { /* right and left simultaneously */
+- if (last_stick[i] & 0x04) /* if wasn't left before, move left */
+- STICK[i] |= 0x08;
+- else /* else move right */
+- STICK[i] |= 0x04;
+- }
+- else {
+- last_stick[i] &= 0x03;
+- last_stick[i] |= STICK[i] & 0x0c;
+- }
+- if ((STICK[i] & 0x03) == 0) { /* up and down simultaneously */
+- if (last_stick[i] & 0x01) /* if wasn't up before, move up */
+- STICK[i] |= 0x02;
+- else /* else move down */
+- STICK[i] |= 0x01;
+- }
+- else {
+- last_stick[i] &= 0x0c;
+- last_stick[i] |= STICK[i] & 0x03;
++ for (i = 0; i < 4; i++) {
++ if (joy_block_opposite_directions) {
++ if ((STICK[i] & 0x0c) == 0) { /* right and left simultaneously */
++ if (last_stick[i] & 0x04) /* if wasn't left before, move left */
++ STICK[i] |= 0x08;
++ else /* else move right */
++ STICK[i] |= 0x04;
++ }
++ else {
++ last_stick[i] &= 0x03;
++ last_stick[i] |= STICK[i] & 0x0c;
++ }
++ if ((STICK[i] & 0x03) == 0) { /* up and down simultaneously */
++ if (last_stick[i] & 0x01) /* if wasn't up before, move up */
++ STICK[i] |= 0x02;
++ else /* else move down */
++ STICK[i] |= 0x01;
++ }
++ else {
++ last_stick[i] &= 0x0c;
++ last_stick[i] |= STICK[i] & 0x03;
++ }
+ }
+- }
+
+- for (i = 0; i < 4; i++) {
+ last_stick[i] = STICK[i];
+ TRIG[i] = Atari_TRIG(i);
+ if ((joy_autofire[i] == AUTOFIRE_FIRE && !TRIG[i]) || (joy_autofire[i] == AUTOFIRE_CONT))