summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authordillo <dillo@pkgsrc.org>2004-07-26 17:22:40 +0000
committerdillo <dillo@pkgsrc.org>2004-07-26 17:22:40 +0000
commit4cebc1339371b825ed410f4a78facf206e737b73 (patch)
tree05a13679373eaa7629b22dd06f771f8869f4c370 /emulators
parentf5bf20e02d436f97e79ef00516fba7846c2dae45 (diff)
downloadpkgsrc-4cebc1339371b825ed410f4a78facf206e737b73.tar.gz
various improvements:
- enable fullscreen support - enable PNG screenshots - only use esound if USE_ESOUND is yes - add USB joystick support (okayed by kristerw) PKGREVISION++
Diffstat (limited to 'emulators')
-rw-r--r--emulators/vice/Makefile9
-rw-r--r--emulators/vice/distinfo12
-rw-r--r--emulators/vice/patches/patch-ba30
-rw-r--r--emulators/vice/patches/patch-bb12
-rw-r--r--emulators/vice/patches/patch-bc34
-rw-r--r--emulators/vice/patches/patch-bd384
-rw-r--r--emulators/vice/patches/patch-be19
-rw-r--r--emulators/vice/patches/patch-bf13
-rw-r--r--emulators/vice/patches/patch-bg34
-rw-r--r--emulators/vice/patches/patch-bh21
-rw-r--r--emulators/vice/patches/patch-bi310
-rw-r--r--emulators/vice/patches/patch-bj55
12 files changed, 930 insertions, 3 deletions
diff --git a/emulators/vice/Makefile b/emulators/vice/Makefile
index 682370760ba..5ff695d4f15 100644
--- a/emulators/vice/Makefile
+++ b/emulators/vice/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.45 2004/07/16 22:59:11 kristerw Exp $
+# $NetBSD: Makefile,v 1.46 2004/07/26 17:22:40 dillo Exp $
#
DISTNAME= vice-1.14
-PKGREVISION= 1
+PKGREVISION= 2
CATEGORIES= emulators
MASTER_SITES= ftp://ftp.funet.fi/pub/cbm/crossplatform/emulators/VICE/ \
http://www.nic.funet.fi/pub/cbm/crossplatform/emulators/VICE/
@@ -27,10 +27,12 @@ USE_X11= YES
USE_GNU_TOOLS+= make
GNU_CONFIGURE= YES
USE_GCC_SHLIB= YES
+CONFIGURE_ARGS+= --enable-fullscreen
INFO_FILES= vice.info
BUILD_DEFS+= VICE_USE_FFMPEG
+BUILD_DEFS+= USE_ESOUND
.include "../../mk/bsd.prefs.mk"
@@ -53,10 +55,13 @@ post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/html/vice
${MV} ${PREFIX}/share/doc/vice/*.html ${PREFIX}/share/doc/html/vice
+.if !empty(USE_ESOUND:M[Yy][Ee][Ss])
.include "../../audio/esound/buildlink3.mk"
+.endif
.include "../../devel/readline/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
+.include "../../graphics/png/buildlink3.mk"
.include "../../graphics/xpm/buildlink3.mk"
.if !empty(VICE_USE_FFMPEG:M[Yy][Ee][Ss])
.include "../../multimedia/ffmpeg/buildlink3.mk"
diff --git a/emulators/vice/distinfo b/emulators/vice/distinfo
index e79f769ce4e..c596078651b 100644
--- a/emulators/vice/distinfo
+++ b/emulators/vice/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.13 2004/07/16 22:59:11 kristerw Exp $
+$NetBSD: distinfo,v 1.14 2004/07/26 17:22:40 dillo Exp $
SHA1 (vice-1.14.tar.gz) = 5f2c458533db0b41dd55732e9d9434275904ab29
Size (vice-1.14.tar.gz) = 3794698 bytes
@@ -6,3 +6,13 @@ SHA1 (patch-aa) = fa152c1d14aad31c0b50fe96c83b4e5cfa06de5f
SHA1 (patch-ab) = 0be2ec8b98a50e5c879095b1d0327c802b7740e2
SHA1 (patch-ac) = bb648b8dc668a12540eab9f1be6374aab8cda35a
SHA1 (patch-ae) = c2ede31953ebaf033c9ae1aa1985012fb0e5f3b6
+SHA1 (patch-ba) = 8f94dd31ef10ae2acc82ed721d71cc9eb7ff13d8
+SHA1 (patch-bb) = 15b84e9f7d20b8518ab77b8ae0765227a1ad7a5d
+SHA1 (patch-bc) = d34ddf4723b45a844fb6ab96b2924e117934f8f9
+SHA1 (patch-bd) = b2f4dca0a259cdb3ffed5ea86c955f47508cdeff
+SHA1 (patch-be) = ec8308214c51a50aa948cf064865cd8cd03ee7e3
+SHA1 (patch-bf) = e19994029b10c2403b53a575bbfb7523c2966ed2
+SHA1 (patch-bg) = 3a396e3cbeddd2c99beebd26bca30e233e89e009
+SHA1 (patch-bh) = 97396118e6abecd9dd464cdae7b918ea025f5f0f
+SHA1 (patch-bi) = 4d94fff17db834031df3b39148dcefac6f7bf968
+SHA1 (patch-bj) = b279df0c6d0700f42fe6cbd1811170171152bf49
diff --git a/emulators/vice/patches/patch-ba b/emulators/vice/patches/patch-ba
new file mode 100644
index 00000000000..ddd0b1e53fc
--- /dev/null
+++ b/emulators/vice/patches/patch-ba
@@ -0,0 +1,30 @@
+$NetBSD: patch-ba,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- configure.in.orig Sun Jan 25 16:42:36 2004
++++ configure.in
+@@ -531,8 +531,24 @@ if test x"$host_vendor" != "xgo32" -a x"
+ AC_DEFINE(BSD_JOYSTICK,,
+ [Enable support for BSD style joysticks.])
+ JOY_OBJS='$(ARCHDIR)/joystick.o' ], )
+- AC_SUBST(JOY_OBJS)
+
++ dnl NetBSD/FreeBSD USB joystick support
++ usbhid_header=no
++ AC_CHECK_LIB(usbhid, hid_get_report_desc,
++ [AC_CHECK_HEADER(usbhid.h,
++ [AC_DEFINE(HAVE_USBHID_H,1,
++ [Define to 1 if you have the <usbhid.h> header file.])
++ usb_header=yes],
++ [AC_CHECK_HEADER(libusbhid.h,
++ [AC_DEFINE(HAVE_LIBUSBHID_H,1,
++ [Define to 1 if you have the <libusbhid.h> header file.])],
++ usbhid_header=no)])
++ if test x"$usb_header" = "xyes" ; then
++ AC_DEFINE(HAS_USB_JOYSTICK,,[Enable emulation for USB joysticks.])
++ LIBS="$LIBS -lusbhid"
++ fi])
++
++ AC_SUBST(JOY_OBJS)
+ fi
+
+ dnl Check for math library
diff --git a/emulators/vice/patches/patch-bb b/emulators/vice/patches/patch-bb
new file mode 100644
index 00000000000..83767130bbf
--- /dev/null
+++ b/emulators/vice/patches/patch-bb
@@ -0,0 +1,12 @@
+$NetBSD: patch-bb,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- src/arch/unix/Makefile.am.orig Sun Nov 23 16:09:36 2003
++++ src/arch/unix/Makefile.am
+@@ -36,6 +36,7 @@ libarch_a_SOURCES = \
+ icon.h \
+ joy.c \
+ joy.h \
++ joy_usb.c \
+ kbd.h \
+ mousedrv.c \
+ mousedrv.h \
diff --git a/emulators/vice/patches/patch-bc b/emulators/vice/patches/patch-bc
new file mode 100644
index 00000000000..c7fc9d94299
--- /dev/null
+++ b/emulators/vice/patches/patch-bc
@@ -0,0 +1,34 @@
+$NetBSD: patch-bc,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- src/config.h.in.orig Fri May 14 11:30:37 2004
++++ src/config.h.in
+@@ -30,6 +30,9 @@
+ /* Do we have UnlockResource()? */
+ #undef HAS_UNLOCKRESOURCE
+
++/* Enable emulation for USB joysticks. */
++#undef HAS_USB_JOYSTICK
++
+ /* Define to 1 if you have the <allegro.h> header file. */
+ #undef HAVE_ALLEGRO_H
+
+@@ -134,6 +137,9 @@
+ /* Define to 1 if you have the `UMSobj' library (-lUMSobj). */
+ #undef HAVE_LIBUMSOBJ
+
++/* Define to 1 if you have the <libusbhid.h> header file. */
++#undef HAVE_LIBUSBHID_H
++
+ /* Is libXpm available? */
+ #undef HAVE_LIBXPM
+
+@@ -256,6 +262,9 @@
+ /* Define to 1 if you have the <unistd.h> header file. */
+ #undef HAVE_UNISTD_H
+
++/* Define to 1 if you have the <usbhid.h> header file. */
++#undef HAVE_USBHID_H
++
+ /* Define to 1 if you have the `usleep' function. */
+ #undef HAVE_USLEEP
+
diff --git a/emulators/vice/patches/patch-bd b/emulators/vice/patches/patch-bd
new file mode 100644
index 00000000000..7fbb87df2d8
--- /dev/null
+++ b/emulators/vice/patches/patch-bd
@@ -0,0 +1,384 @@
+$NetBSD: patch-bd,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- configure.orig Fri May 14 11:30:32 2004
++++ configure
+@@ -9127,6 +9793,379 @@ fi
+
+
+
++ usbhid_header=no
++ echo "$as_me:$LINENO: checking for hid_get_report_desc in -lusbhid" >&5
++echo $ECHO_N "checking for hid_get_report_desc in -lusbhid... $ECHO_C" >&6
++if test "${ac_cv_lib_usbhid_hid_get_report_desc+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_check_lib_save_LIBS=$LIBS
++LIBS="-lusbhid $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++
++/* Override any gcc2 internal prototype to avoid an error. */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++ builtin and then its argument prototype would still apply. */
++char hid_get_report_desc ();
++int
++main ()
++{
++hid_get_report_desc ();
++ ;
++ return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++ (eval $ac_link) 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -z "$ac_c_werror_flag"
++ || test ! -s conftest.err'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; } &&
++ { ac_try='test -s conftest$ac_exeext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_cv_lib_usbhid_hid_get_report_desc=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_usbhid_hid_get_report_desc=no
++fi
++rm -f conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_usbhid_hid_get_report_desc" >&5
++echo "${ECHO_T}$ac_cv_lib_usbhid_hid_get_report_desc" >&6
++if test $ac_cv_lib_usbhid_hid_get_report_desc = yes; then
++ if test "${ac_cv_header_usbhid_h+set}" = set; then
++ echo "$as_me:$LINENO: checking for usbhid.h" >&5
++echo $ECHO_N "checking for usbhid.h... $ECHO_C" >&6
++if test "${ac_cv_header_usbhid_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_usbhid_h" >&5
++echo "${ECHO_T}$ac_cv_header_usbhid_h" >&6
++else
++ # Is the header compilable?
++echo "$as_me:$LINENO: checking usbhid.h usability" >&5
++echo $ECHO_N "checking usbhid.h usability... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++$ac_includes_default
++#include <usbhid.h>
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -z "$ac_c_werror_flag"
++ || test ! -s conftest.err'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_header_compiler=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_header_compiler=no
++fi
++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
++echo "${ECHO_T}$ac_header_compiler" >&6
++
++# Is the header present?
++echo "$as_me:$LINENO: checking usbhid.h presence" >&5
++echo $ECHO_N "checking usbhid.h presence... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++#include <usbhid.h>
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ ac_header_preproc=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_header_preproc=no
++fi
++rm -f conftest.err conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
++echo "${ECHO_T}$ac_header_preproc" >&6
++
++# So? What about this header?
++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
++ yes:no: )
++ { echo "$as_me:$LINENO: WARNING: usbhid.h: accepted by the compiler, rejected by the preprocessor!" >&5
++echo "$as_me: WARNING: usbhid.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
++ { echo "$as_me:$LINENO: WARNING: usbhid.h: proceeding with the compiler's result" >&5
++echo "$as_me: WARNING: usbhid.h: proceeding with the compiler's result" >&2;}
++ ac_header_preproc=yes
++ ;;
++ no:yes:* )
++ { echo "$as_me:$LINENO: WARNING: usbhid.h: present but cannot be compiled" >&5
++echo "$as_me: WARNING: usbhid.h: present but cannot be compiled" >&2;}
++ { echo "$as_me:$LINENO: WARNING: usbhid.h: check for missing prerequisite headers?" >&5
++echo "$as_me: WARNING: usbhid.h: check for missing prerequisite headers?" >&2;}
++ { echo "$as_me:$LINENO: WARNING: usbhid.h: see the Autoconf documentation" >&5
++echo "$as_me: WARNING: usbhid.h: see the Autoconf documentation" >&2;}
++ { echo "$as_me:$LINENO: WARNING: usbhid.h: section \"Present But Cannot Be Compiled\"" >&5
++echo "$as_me: WARNING: usbhid.h: section \"Present But Cannot Be Compiled\"" >&2;}
++ { echo "$as_me:$LINENO: WARNING: usbhid.h: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: usbhid.h: proceeding with the preprocessor's result" >&2;}
++ { echo "$as_me:$LINENO: WARNING: usbhid.h: in the future, the compiler will take precedence" >&5
++echo "$as_me: WARNING: usbhid.h: in the future, the compiler will take precedence" >&2;}
++ (
++ cat <<\_ASBOX
++## ------------------------------------------ ##
++## Report this to the AC_PACKAGE_NAME lists. ##
++## ------------------------------------------ ##
++_ASBOX
++ ) |
++ sed "s/^/$as_me: WARNING: /" >&2
++ ;;
++esac
++echo "$as_me:$LINENO: checking for usbhid.h" >&5
++echo $ECHO_N "checking for usbhid.h... $ECHO_C" >&6
++if test "${ac_cv_header_usbhid_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_cv_header_usbhid_h=$ac_header_preproc
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_usbhid_h" >&5
++echo "${ECHO_T}$ac_cv_header_usbhid_h" >&6
++
++fi
++if test $ac_cv_header_usbhid_h = yes; then
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_USBHID_H 1
++_ACEOF
++
++ usb_header=yes
++else
++ if test "${ac_cv_header_libusbhid_h+set}" = set; then
++ echo "$as_me:$LINENO: checking for libusbhid.h" >&5
++echo $ECHO_N "checking for libusbhid.h... $ECHO_C" >&6
++if test "${ac_cv_header_libusbhid_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_libusbhid_h" >&5
++echo "${ECHO_T}$ac_cv_header_libusbhid_h" >&6
++else
++ # Is the header compilable?
++echo "$as_me:$LINENO: checking libusbhid.h usability" >&5
++echo $ECHO_N "checking libusbhid.h usability... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++$ac_includes_default
++#include <libusbhid.h>
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++ (eval $ac_compile) 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } &&
++ { ac_try='test -z "$ac_c_werror_flag"
++ || test ! -s conftest.err'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; } &&
++ { ac_try='test -s conftest.$ac_objext'
++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++ (eval $ac_try) 2>&5
++ ac_status=$?
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); }; }; then
++ ac_header_compiler=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_header_compiler=no
++fi
++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
++echo "${ECHO_T}$ac_header_compiler" >&6
++
++# Is the header present?
++echo "$as_me:$LINENO: checking libusbhid.h presence" >&5
++echo $ECHO_N "checking libusbhid.h presence... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++/* confdefs.h. */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h. */
++#include <libusbhid.h>
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++ ac_status=$?
++ grep -v '^ *+' conftest.er1 >conftest.err
++ rm -f conftest.er1
++ cat conftest.err >&5
++ echo "$as_me:$LINENO: \$? = $ac_status" >&5
++ (exit $ac_status); } >/dev/null; then
++ if test -s conftest.err; then
++ ac_cpp_err=$ac_c_preproc_warn_flag
++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
++ else
++ ac_cpp_err=
++ fi
++else
++ ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++ ac_header_preproc=yes
++else
++ echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ ac_header_preproc=no
++fi
++rm -f conftest.err conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
++echo "${ECHO_T}$ac_header_preproc" >&6
++
++# So? What about this header?
++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
++ yes:no: )
++ { echo "$as_me:$LINENO: WARNING: libusbhid.h: accepted by the compiler, rejected by the preprocessor!" >&5
++echo "$as_me: WARNING: libusbhid.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libusbhid.h: proceeding with the compiler's result" >&5
++echo "$as_me: WARNING: libusbhid.h: proceeding with the compiler's result" >&2;}
++ ac_header_preproc=yes
++ ;;
++ no:yes:* )
++ { echo "$as_me:$LINENO: WARNING: libusbhid.h: present but cannot be compiled" >&5
++echo "$as_me: WARNING: libusbhid.h: present but cannot be compiled" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libusbhid.h: check for missing prerequisite headers?" >&5
++echo "$as_me: WARNING: libusbhid.h: check for missing prerequisite headers?" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libusbhid.h: see the Autoconf documentation" >&5
++echo "$as_me: WARNING: libusbhid.h: see the Autoconf documentation" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libusbhid.h: section \"Present But Cannot Be Compiled\"" >&5
++echo "$as_me: WARNING: libusbhid.h: section \"Present But Cannot Be Compiled\"" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libusbhid.h: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: libusbhid.h: proceeding with the preprocessor's result" >&2;}
++ { echo "$as_me:$LINENO: WARNING: libusbhid.h: in the future, the compiler will take precedence" >&5
++echo "$as_me: WARNING: libusbhid.h: in the future, the compiler will take precedence" >&2;}
++ (
++ cat <<\_ASBOX
++## ------------------------------------------ ##
++## Report this to the AC_PACKAGE_NAME lists. ##
++## ------------------------------------------ ##
++_ASBOX
++ ) |
++ sed "s/^/$as_me: WARNING: /" >&2
++ ;;
++esac
++echo "$as_me:$LINENO: checking for libusbhid.h" >&5
++echo $ECHO_N "checking for libusbhid.h... $ECHO_C" >&6
++if test "${ac_cv_header_libusbhid_h+set}" = set; then
++ echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++ ac_cv_header_libusbhid_h=$ac_header_preproc
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_libusbhid_h" >&5
++echo "${ECHO_T}$ac_cv_header_libusbhid_h" >&6
++
++fi
++if test $ac_cv_header_libusbhid_h = yes; then
++
++cat >>confdefs.h <<\_ACEOF
++#define HAVE_LIBUSBHID_H 1
++_ACEOF
++
++else
++ usbhid_header=no
++fi
++
++
++fi
++
++
++ if test x"$usb_header" = "xyes" ; then
++
++cat >>confdefs.h <<\_ACEOF
++#define HAS_USB_JOYSTICK
++_ACEOF
++
++ LIBS="$LIBS -lusbhid"
++ fi
++fi
++
++
+
+ fi
+
diff --git a/emulators/vice/patches/patch-be b/emulators/vice/patches/patch-be
new file mode 100644
index 00000000000..e239aeec1fe
--- /dev/null
+++ b/emulators/vice/patches/patch-be
@@ -0,0 +1,19 @@
+$NetBSD: patch-be,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- src/arch/unix/vic20ui.c.orig Sat Nov 29 22:32:19 2003
++++ src/arch/unix/vic20ui.c
+@@ -309,6 +309,14 @@ static ui_menu_entry_t set_joystick_devi
+ (ui_callback_t)set_joystick_device,
+ (ui_callback_data_t)JOYDEV_DIGITAL_1, NULL },
+ #endif
++#ifdef HAS_USB_JOYSTICK
++ { N_("*USB Joystick 0"),
++ (ui_callback_t)set_joystick_device,
++ (ui_callback_data_t)JOYDEV_USB_0, NULL },
++ { N_("*USB Joystick 1"),
++ (ui_callback_t)set_joystick_device,
++ (ui_callback_data_t)JOYDEV_USB_1, NULL },
++#endif
+ #endif
+ { NULL }
+ };
diff --git a/emulators/vice/patches/patch-bf b/emulators/vice/patches/patch-bf
new file mode 100644
index 00000000000..e8700d82b3d
--- /dev/null
+++ b/emulators/vice/patches/patch-bf
@@ -0,0 +1,13 @@
+$NetBSD: patch-bf,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- src/arch/unix/joy.h.orig Sat May 25 19:22:33 2002
++++ src/arch/unix/joy.h
+@@ -55,6 +55,8 @@ extern int joystick_port_map[2];
+ #define JOYDEV_ANALOG_1 4
+ #define JOYDEV_DIGITAL_0 5
+ #define JOYDEV_DIGITAL_1 6
++#define JOYDEV_USB_0 7
++#define JOYDEV_USB_1 8
+
+ #endif
+
diff --git a/emulators/vice/patches/patch-bg b/emulators/vice/patches/patch-bg
new file mode 100644
index 00000000000..75dab6c5374
--- /dev/null
+++ b/emulators/vice/patches/patch-bg
@@ -0,0 +1,34 @@
+$NetBSD: patch-bg,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- src/arch/unix/uijoystick2.c.orig Sun May 25 19:39:59 2003
++++ src/arch/unix/uijoystick2.c
+@@ -99,6 +99,14 @@ static ui_menu_entry_t set_joystick_devi
+ (ui_callback_t)set_joystick_device_1,
+ (ui_callback_data_t)JOYDEV_DIGITAL_1, NULL },
+ #endif
++#ifdef HAS_USB_JOYSTICK
++ { N_("*USB Joystick 0"),
++ (ui_callback_t)set_joystick_device_1,
++ (ui_callback_data_t)JOYDEV_USB_0, NULL },
++ { N_("*USB Joystick 1"),
++ (ui_callback_t)set_joystick_device_1,
++ (ui_callback_data_t)JOYDEV_USB_1, NULL },
++#endif
+ #endif
+ { NULL }
+ };
+@@ -127,6 +135,14 @@ static ui_menu_entry_t set_joystick_devi
+ { N_("*Digital Joystick 1"),
+ (ui_callback_t)set_joystick_device_2,
+ (ui_callback_data_t)JOYDEV_DIGITAL_1, NULL },
++#endif
++#ifdef HAS_USB_JOYSTICK
++ { N_("*USB Joystick 0"),
++ (ui_callback_t)set_joystick_device_2,
++ (ui_callback_data_t)JOYDEV_USB_0, NULL },
++ { N_("*USB Joystick 1"),
++ (ui_callback_t)set_joystick_device_2,
++ (ui_callback_data_t)JOYDEV_USB_1, NULL },
+ #endif
+ #endif /* HAS_JOYSTICK */
+ { NULL }
diff --git a/emulators/vice/patches/patch-bh b/emulators/vice/patches/patch-bh
new file mode 100644
index 00000000000..fab19af0e1b
--- /dev/null
+++ b/emulators/vice/patches/patch-bh
@@ -0,0 +1,21 @@
+$NetBSD: patch-bh,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- src/arch/unix/Makefile.in.orig Fri May 14 15:24:41 2004
++++ src/arch/unix/Makefile.in
+@@ -253,6 +253,7 @@ libarch_a_SOURCES = \
+ icon.h \
+ joy.c \
+ joy.h \
++ joy_usb.c \
+ kbd.h \
+ mousedrv.c \
+ mousedrv.h \
+@@ -349,7 +349,7 @@ libarch_a_LIBADD =
+ am_libarch_a_OBJECTS = archdep.$(OBJEXT) blockdev.$(OBJEXT) \
+ c128ui.$(OBJEXT) c64ui.$(OBJEXT) catweaselmkiii.$(OBJEXT) \
+ cbm2ui.$(OBJEXT) console.$(OBJEXT) coproc.$(OBJEXT) \
+- ffmpeglib.$(OBJEXT) joy.$(OBJEXT) mousedrv.$(OBJEXT) \
++ ffmpeglib.$(OBJEXT) joy.$(OBJEXT) joy_usb.$(OBJEXT) mousedrv.$(OBJEXT) \
+ petui.$(OBJEXT) plus4ui.$(OBJEXT) rs232.$(OBJEXT) ui.$(OBJEXT) \
+ uic64cart.$(OBJEXT) uicmdline.$(OBJEXT) uicommands.$(OBJEXT) \
+ uicrtc.$(OBJEXT) uidatasette.$(OBJEXT) uidrive.$(OBJEXT) \
diff --git a/emulators/vice/patches/patch-bi b/emulators/vice/patches/patch-bi
new file mode 100644
index 00000000000..a686081d095
--- /dev/null
+++ b/emulators/vice/patches/patch-bi
@@ -0,0 +1,310 @@
+$NetBSD: patch-bi,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- src/arch/unix/joy_usb.c.orig 2004-07-26 14:35:45.000000000 +0200
++++ src/arch/unix/joy_usb.c
+@@ -0,0 +1,305 @@
++/*
++ * joy_usb.c - NetBSD/FreeBSD USB joystick support.
++ *
++ * Written by
++ * Dieter Baron <dillo@nih.at>
++ *
++ * This file is part of VICE, the Versatile Commodore Emulator.
++ * See README for copyright notice.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ * 02111-1307 USA.
++ *
++ */
++
++#include "vice.h"
++
++#include <fcntl.h>
++#include <stdio.h>
++#include <unistd.h>
++
++#include "cmdline.h"
++#include "joy.h"
++#include "joystick.h"
++#include "keyboard.h"
++#include "log.h"
++#include "resources.h"
++#include "types.h"
++
++#if defined(HAS_JOYSTICK) && defined(HAS_USB_JOYSTICK)
++
++#define ITEM_AXIS 0
++#define ITEM_BUTTON 1
++#define ITEM_HAT 2
++
++int hat_or[] = {
++ 1, 9, 8, 10, 2, 6, 4, 5,
++};
++
++extern log_t joystick_log;
++
++#include <dev/usb/usb.h>
++#include <dev/usb/usbhid.h>
++#include <errno.h>
++#include <stdlib.h>
++#ifdef HAVE_USBHID_H
++#include <usbhid.h>
++#else
++#include <libusbhid.h>
++#endif
++
++#define MAX_DEV 4 /* number of uhid devices to try */
++
++struct usb_joy_item {
++ struct hid_item item;
++ struct usb_joy_item *next;
++
++ int is_hat;
++ int min_or;
++ int min_val;
++ int max_or;
++ int max_val;
++};
++
++static struct usb_joy_item *usb_joy_item[2];
++
++static int usb_joy_fd[2] = { -1, -1 };
++static int usb_joy_size[2];
++static char *usb_joy_buf[2];
++
++static int usb_joy_add_item(struct usb_joy_item **item, struct hid_item *hi,
++ int orval, int type)
++{
++ struct usb_joy_item *it;
++ int w;
++
++ if ((it=malloc(sizeof(*it))) == NULL) {
++ /* XXX */
++ return -1;
++ }
++
++ it->next = *item;
++ *item = it;
++
++ memcpy(&it->item, hi, sizeof(*hi));
++ switch (type) {
++ case ITEM_AXIS:
++ w = (hi->logical_maximum-hi->logical_minimum)/3;
++ it->is_hat = 0;
++ it->min_or = orval;
++ it->min_val = hi->logical_minimum+w;
++ it->max_or = orval*2;
++ it->max_val = hi->logical_maximum-w;
++ break;
++
++ case ITEM_BUTTON:
++ it->is_hat = 0;
++ it->min_or = 0;
++ it->min_val = -1;
++ it->max_or = orval;
++ it->max_val = hi->logical_maximum-1;
++ break;
++
++ case ITEM_HAT:
++ it->is_hat = 1;
++ it->min_val = hi->logical_minimum;
++ break;
++ }
++
++ return 0;
++}
++
++static void usb_free_item(struct usb_joy_item **item)
++{
++ struct usb_joy_item *it, *it2;
++
++ it=*item;
++ while (it) {
++ it2 = it;
++ it = it->next;
++ free(it2);
++ }
++ *item = NULL;
++}
++
++int usb_joystick_init(void)
++{
++ int i, j, id, fd;
++ report_desc_t report;
++ struct hid_item h;
++ struct hid_data *d;
++ int is_joy, found;
++ char dev[32];
++
++ for (j=i=0; i<2 && j<MAX_DEV; j++) {
++ sprintf(dev, "/dev/uhid%d", j);
++ fd = open(dev, O_RDONLY|O_NONBLOCK);
++ if (fd < 0)
++ continue;
++
++ if (ioctl(fd, USB_GET_REPORT_ID, &id) < 0) {
++ log_warning(joystick_log,
++ _("Cannot get report id for joystick device `%s'."),
++ dev);
++ close(fd);
++ }
++
++ if ((report=hid_get_report_desc(fd)) == NULL) {
++ log_warning(joystick_log,
++ _("Cannot report description for joystick device `%s'."),
++ dev);
++ close(fd);
++ continue;
++ }
++ usb_joy_size[i] = hid_report_size(report, hid_input, id);
++
++ usb_joy_item[i] = NULL;
++
++ found = 0;
++ is_joy = 0;
++ for (d=hid_start_parse(report, 1<<hid_input, id);
++ hid_get_item(d, &h);) {
++ if (h.kind == hid_collection
++ && HID_PAGE(h.usage) == HUP_GENERIC_DESKTOP
++ && (HID_USAGE(h.usage) == HUG_JOYSTICK
++ || HID_USAGE(h.usage) == HUG_GAME_PAD)) {
++ is_joy = 1;
++ continue;
++ }
++ if (!is_joy)
++ continue;
++
++ switch (HID_PAGE(h.usage)) {
++ case HUP_GENERIC_DESKTOP:
++ switch (HID_USAGE(h.usage)) {
++ case HUG_X:
++ case HUG_RX:
++ if (usb_joy_add_item(usb_joy_item+i, &h,
++ 4, ITEM_AXIS) == 0)
++ found |= 4;
++ break;
++
++ case HUG_Y:
++ case HUG_RY:
++ if (usb_joy_add_item(usb_joy_item+i, &h,
++ 1, ITEM_AXIS) == 0)
++ found |= 1;
++ break;
++ case HUG_HAT_SWITCH:
++ if (usb_joy_add_item(usb_joy_item+i, &h,
++ 0, ITEM_HAT) == 0)
++ found |= 5;
++ break;
++ }
++ break;
++
++ case HUP_BUTTON:
++ if (usb_joy_add_item(usb_joy_item+i, &h,
++ 16, ITEM_BUTTON) == 0)
++ found |= 16;
++ break;
++ }
++ }
++ hid_end_parse(d);
++
++ if (found != 21) {
++ close(fd);
++ usb_free_item(usb_joy_item+i);
++ log_message(joystick_log,
++ _("Not all axes found in joystick device `%s'."), dev);
++ continue;
++ }
++
++ if ((usb_joy_buf[i]=malloc(usb_joy_size[i])) == NULL) {
++ log_warning(joystick_log,
++ _("Cannot allocate buffer for joystick device `%s'."),
++ dev);
++ close(fd);
++ usb_free_item(usb_joy_item+i);
++ continue;
++ }
++
++ log_message(joystick_log,
++ _("USB joystick found: `%s'."), dev);
++ usb_joy_fd[i] = fd;
++ i++;
++ }
++}
++
++void usb_joystick_close(void)
++{
++ int i;
++
++ for (i=0; i<2; i++) {
++ if (usb_joy_fd[i] < 0)
++ continue;
++
++ close(usb_joy_fd[i]);
++ usb_joy_fd[i] = -1;
++ usb_free_item(usb_joy_item+i);
++ }
++}
++
++void usb_joystick(void)
++{
++ int i, jp, val, ret;
++ struct usb_joy_item *it;
++
++ for (i=0; i<2; i++) {
++ jp = joystick_port_map[i];
++ if (jp != JOYDEV_USB_0 && jp != JOYDEV_USB_1)
++ continue;
++
++ jp -= JOYDEV_USB_0;
++
++ if (usb_joy_fd[jp] < 0)
++ continue;
++
++ val = 0;
++ while ((ret=read(usb_joy_fd[jp], usb_joy_buf[jp], usb_joy_size[jp]))
++ == usb_joy_size[jp])
++ val = 1;
++ if (ret != -1 && errno != EAGAIN) {
++ /* XXX */
++ printf("strange read return: %d/%d\n",
++ ret, errno);
++ continue;
++ }
++ if (!val)
++ continue;
++
++ joystick_set_value_absolute(i+1, 0);
++
++ for (it=usb_joy_item[jp]; it; it=it->next) {
++ val = hid_get_data(usb_joy_buf[jp], &it->item);
++ if (it->is_hat) {
++ val -= it->min_val;
++ if (val >= 0 && val <= 7)
++ joystick_set_value_or(i+1, hat_or[val]);
++ }
++ else {
++ if (val <= it->min_val) {
++ joystick_set_value_or(i+1, it->min_or);
++ }
++ else if (val > it->max_val) {
++ joystick_set_value_or(i+1, it->max_or);
++ }
++ }
++ }
++ }
++}
++
++#endif /* HAS_JOYSTICK && HAS_USB_JOYSTICK */
++
diff --git a/emulators/vice/patches/patch-bj b/emulators/vice/patches/patch-bj
new file mode 100644
index 00000000000..2bd21ffeb60
--- /dev/null
+++ b/emulators/vice/patches/patch-bj
@@ -0,0 +1,55 @@
+$NetBSD: patch-bj,v 1.1 2004/07/26 17:22:40 dillo Exp $
+
+--- src/arch/unix/joy.c.orig Sun Dec 28 19:08:37 2003
++++ src/arch/unix/joy.c
+@@ -80,9 +80,9 @@ static const resource_t resources[] = {
+
+ static const cmdline_option_t cmdline_options[] = {
+ { "-joydev1", SET_RESOURCE, 1, NULL, NULL, "JoyDevice1", NULL,
+- "<0-6>", N_("Set device for joystick port 1") },
++ "<0-8>", N_("Set device for joystick port 1") },
+ { "-joydev2", SET_RESOURCE, 1, NULL, NULL, "JoyDevice2", NULL,
+- "<0-6>", N_("Set device for joystick port 2") },
++ "<0-8>", N_("Set device for joystick port 2") },
+ { NULL },
+ };
+
+@@ -135,7 +135,7 @@ static int joyxmax[2];
+ static int joyymin[2];
+ static int joyymax[2];
+
+-static log_t joystick_log = LOG_ERR;
++log_t joystick_log = LOG_ERR;
+
+ /* ------------------------------------------------------------------------- */
+
+@@ -148,6 +148,9 @@ int joy_arch_init(void)
+ old_joystick_init();
+ else
+ new_joystick_init();
++#ifdef HAS_USB_JOYSTICK
++ usb_joystick_init();
++#endif
+ return 0;
+ }
+
+@@ -157,6 +160,9 @@ void joystick_close(void)
+ old_joystick_close();
+ else
+ new_joystick_close();
++#ifdef HAS_USB_JOYSTICK
++ usb_joystick_close();
++#endif
+ }
+
+ void joystick(void)
+@@ -165,6 +171,9 @@ void joystick(void)
+ old_joystick();
+ else
+ new_joystick();
++#ifdef HAS_USB_JOYSTICK
++ usb_joystick();
++#endif
+ }
+
+ /**********************************************************