Index: test-joydev.c
===================================================================
--- test-joydev.c	(revision 947)
+++ test-joydev.c	(revision 948)
@@ -0,0 +1,74 @@
+/*
+    Raydium - CQFD Corp.
+    http://raydium.org/
+    Released under both BSD license and Lesser GPL library license.
+    See "license.txt" file.
+*/
+
+// A joystick device test to verify the correct behavior on all supported
+// target platforms.
+
+#include "raydium/index.c"
+
+void display(void)
+{
+if(raydium_key_last==1027)
+    exit(0);
+
+raydium_clear_frame();
+
+if(raydium_joy)
+    {
+    int a,b,c;
+
+    // General device information.
+    raydium_osd_printf(2,98,16,0.5,"font2.tga","^F%s^F",raydium_joy_name);
+    raydium_osd_printf(2,95,16,0.5,"font2.tga","^F%02i axes^F",raydium_joy_n_axes);
+    raydium_osd_printf(2,92,16,0.5,"font2.tga","^F%02i buttons^F",raydium_joy_n_buttons);
+
+    // Show axes zones.
+    raydium_osd_printf(2,80,16,0.5,"font2.tga","^FA X E S^F");
+    raydium_osd_printf(2,77,16,0.5,"font2.tga","^F[^8-----------------------------------^7|^8-----------------------------------^F]");
+    raydium_osd_printf(50+47*raydium_joy_x,77,16,0.5,"font2.tga","^CX^F");
+    raydium_osd_printf(2,71,16,0.5,"font2.tga","^F[^8-----------------------------------^7|^8-----------------------------------^F]");
+    raydium_osd_printf(50+47*raydium_joy_y,71,16,0.5,"font2.tga","^EY^F");
+    raydium_osd_printf(2,65,16,0.5,"font2.tga","^F[^8-----------------------------------^7|^8-----------------------------------^F]");
+    raydium_osd_printf(50+47*raydium_joy_z,65,16,0.5,"font2.tga","^AZ^F");
+
+    // Show values of all available axes.
+    raydium_osd_printf(2,50,16,0.5,"font2.tga","^FR A W   D A T A^F");
+    for(a=0;a<RAYDIUM_JOY_MAX_AXIS;a++)
+        raydium_osd_printf(2,47-a*3,16,0.5,"font2.tga","^%cA%02i %+.10f^F",(raydium_joy_n_axes>a)?'F':'8',a,raydium_joy_axis[a]);
+
+    // Show button states of all available buttons.
+    raydium_osd_printf(2,8,16,0.5,"font2.tga","^FB U T T O N S^F");
+    raydium_osd_printf(2,5,16,0.5,"font2.tga","^F#%02i click value^F",raydium_joy_click);
+    for(b=0;b<RAYDIUM_JOY_MAX_BUTTONS;b++)
+        raydium_osd_printf(2+b*5,2,16,0.5,"font2.tga","^%cB%02i^F",(raydium_joy_button[b])?(char)raydium_random_i('0','F'):(raydium_joy_n_buttons>b)?'F':'8',b);
+    }
+else
+    {
+    raydium_osd_printf(2,98,16,0.5,"font2.tga","^FNo device found!^F");
+    raydium_osd_printf(2,2,16,0.5,"font2.tga","^FPlease try to specify a device using the --joydev CLI option.^F");
+    }
+
+raydium_rendering_finish();
+}
+
+int main(int argc,char **argv)
+{
+raydium_init_args(argc,argv);
+raydium_window_create(640,480,RAYDIUM_RENDERING_WINDOW,"JoyDev Test");
+
+raydium_texture_filter_change(RAYDIUM_TEXTURE_FILTER_TRILINEAR);
+raydium_window_view_perspective(60,1,100);
+raydium_background_color_change(0.2,0.2,0.2,1);
+raydium_render_fps_limit(60);
+
+raydium_osd_cursor_set("BOXcursor.tga",4,4);
+
+raydium_callback(&display);
+return(0);
+}
+
+// EOF