diff --git a/include/nes.h b/include/nes.h
index 95e2fe93b..3e139e00c 100644
--- a/include/nes.h
+++ b/include/nes.h
@@ -90,15 +90,16 @@
 /* No support for dynamically loadable drivers */
 #define DYN_DRV         0
 
-/* The joystick keys - all keys are supported */
-#define KEY_A           0x01
-#define KEY_B           0x02
-#define KEY_SELECT      0x04
-#define KEY_START       0x08
-#define KEY_UP          0x10
-#define KEY_DOWN        0x20
-#define KEY_LEFT        0x40
-#define KEY_RIGHT       0x80
+/* Expanding upon joystick.h */
+#define JOY_A           4
+#define JOY_B           5
+#define JOY_SELECT      6
+#define JOY_START       7
+
+#define JOY_BTN_A(v)            ((v) & joy_masks[JOY_A])
+#define JOY_BTN_B(v)            ((v) & joy_masks[JOY_B])
+#define JOY_BTN_SELECT(v)       ((v) & joy_masks[JOY_SELECT])
+#define JOY_BTN_START(v)        ((v) & joy_masks[JOY_START])
 
 /* Define hardware */
 
diff --git a/include/pce.h b/include/pce.h
index 856a2fa1d..ac6b2503f 100644
--- a/include/pce.h
+++ b/include/pce.h
@@ -76,6 +76,17 @@
 /* No support for dynamically loadable drivers */
 #define DYN_DRV         0
 
+/* Expanding upon joystick.h */
+#define JOY_I           4
+#define JOY_II          5
+#define JOY_SELECT      6
+#define JOY_RUN         7
+
+#define JOY_BTN_I(v)            ((v) & joy_masks[JOY_I])
+#define JOY_BTN_II(v)           ((v) & joy_masks[JOY_II])
+#define JOY_BTN_SELECT(v)       ((v) & joy_masks[JOY_SELECT])
+#define JOY_BTN_RUN(v)          ((v) & joy_masks[JOY_RUN])
+
 /* The addresses of the static drivers */
 extern void pce_stdjoy_joy[];   /* Referred to by joy_static_stddrv[] */