summaryrefslogtreecommitdiffstats
path: root/abs/not_built/extra/sdlmame
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2012-12-01 18:26:09 (GMT)
committerJames Meyer <james.meyer@operamail.com>2012-12-01 18:26:22 (GMT)
commite2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37 (patch)
treebee3fe89f2988dd244e11791755e129aa8c03b14 /abs/not_built/extra/sdlmame
parent8132c218cfc1f1acb1c6d12154e0d4ca075e77f2 (diff)
downloadlinhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.zip
linhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.tar.gz
linhes_pkgbuild-e2c33b0fae1fa4af8bbbfc917eb8e13a3ac0cb37.tar.bz2
Mass move of uncompiled packages to abs_not_built.
The will sit here for a bit, and then will be removed completely if no one claims them.
Diffstat (limited to 'abs/not_built/extra/sdlmame')
-rw-r--r--abs/not_built/extra/sdlmame/ChangeLog5
-rw-r--r--abs/not_built/extra/sdlmame/PKGBUILD102
-rw-r--r--abs/not_built/extra/sdlmame/extras.tar.gzbin0 -> 4093 bytes
-rw-r--r--abs/not_built/extra/sdlmame/mame-0137-wiimote.diff424
-rw-r--r--abs/not_built/extra/sdlmame/sdlmame.install29
-rw-r--r--abs/not_built/extra/sdlmame/sdlmame.sh58
6 files changed, 618 insertions, 0 deletions
diff --git a/abs/not_built/extra/sdlmame/ChangeLog b/abs/not_built/extra/sdlmame/ChangeLog
new file mode 100644
index 0000000..872c595
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/ChangeLog
@@ -0,0 +1,5 @@
+2008-02-13 JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+ * 0.123 version
+
+2008-01-22 JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+ * 0.122u6 version
diff --git a/abs/not_built/extra/sdlmame/PKGBUILD b/abs/not_built/extra/sdlmame/PKGBUILD
new file mode 100644
index 0000000..7e1aabc
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/PKGBUILD
@@ -0,0 +1,102 @@
+# $Id: PKGBUILD 50675 2011-06-29 12:53:08Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: robb_force <robb_force@holybuffalo.net>
+# Maintainer: JJDaNiMoTh <jjdanimoth@gmail.com>
+
+_patchlevel=0
+_basever=0.143
+
+pkgname=sdlmame
+if [ ${_patchlevel} -ne 0 ]; then
+ pkgver=${_basever}u${_patchlevel}
+else
+ pkgver=${_basever}
+fi
+pkgrel=2
+pkgdesc="A port of the popular Multiple Arcade Machine Emulator using SDL with OpenGL support."
+url="http://mamedev.org/"
+license=('custom:MAME License')
+arch=('i686' 'x86_64')
+depends=('sdl>=1.2.11' 'libxinerama' 'gconf' 'sdl_ttf' 'gtk2')
+makedepends=('unzip' 'nasm' 'mesa')
+DLAGENTS=('http::/usr/bin/wget -U "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.2) Gecko/20090804 Shiretoko/3.5.2" -c -t 3 --waitretry=3 -O %o %u')
+install=sdlmame.install
+
+for i in `seq 1 ${_patchlevel}`; do
+ _patches="${_patches} sdlmame-${_basever/./}u${i}_diff.zip::http://mamedev.org/updates/${_basever/./}u${i}_diff.zip"
+done
+
+source=("mame${_basever/./}s.zip::http://mamedev.org/downloader.php?file=releases/mame${_basever/./}s.zip"
+ "sdlmame.sh"
+ "extras.tar.gz"
+ ${_patches})
+md5sums=('2d95b9d9f79a97a690f62284e4db0e7e'
+ '3119ccfa1e970eba4467df31208adaf0'
+ '420b61240bf5ae11615ba7c6100ee00d')
+
+build() {
+ cd $srcdir/
+
+ if [ $NOEXTRACT -eq 0 ]; then
+ unzip mame.zip
+ find . -type f -not -name \*.png | xargs perl -pi -e 's/\r\n?/\n/g'
+ for i in `seq 1 ${_patchlevel}`; do
+ patch -p0 -E <${_basever/./}u$i.diff
+ done
+ sed -i 's/-Werror//' makefile
+ sed -i 's/LDFLAGS = -Wl,--warn-common/LDFLAGS = -Wl,--warn-common -Wl,-zmuldefs/' makefile
+ fi
+
+ # Modify the make options based on the user's architecture
+ if [ "$CARCH" == "x86_64" ]; then
+ echo "Compiling for AMD64..."
+ make AMD64=1 PTR64=1
+ make tools AMD64=1 PTR64=1
+ elif [ "$CARCH" == "i686" ]; then
+ make I686=1
+ make tools I686=1
+ else
+ echo "Compiling for i386..."
+ make PM=1
+ make tools PM=1
+ fi
+
+}
+package() {
+ cd $srcdir/
+ # Install the sdlmame script
+ install -Dm755 $srcdir/${pkgname}.sh $pkgdir/usr/bin/${pkgname}
+
+ # Install the applications and the UI font in /usr/share
+ install -Dm755 mame $pkgdir/usr/share/${pkgname}/${pkgname} || \
+ install -Dm755 mame64 $pkgdir/usr/share/${pkgname}/${pkgname}
+
+ install -m755 chdman $pkgdir/usr/share/${pkgname}/chdman
+ install -m755 jedutil $pkgdir/usr/share/${pkgname}/jedutil
+ install -m755 regrep $pkgdir/usr/share/${pkgname}/regrep
+ install -m755 romcmp $pkgdir/usr/share/${pkgname}/romcmp
+ install -m755 testkeys $pkgdir/usr/share/${pkgname}/testkeys
+ install -m755 src2html $pkgdir/usr/share/${pkgname}/src2html
+ install -m755 srcclean $pkgdir/usr/share/${pkgname}/srcclean
+ install -m755 ldverify $pkgdir/usr/share/${pkgname}/ldverify
+ install -m755 ldresample $pkgdir/usr/share/${pkgname}/ldresample
+
+# install -m755 makemeta $pkgdir/usr/share/${pkgname}/makemeta
+# install -m755 runtest $pkgdir/usr/share/${pkgname}/runtest
+# install -m644 ui.bdf $pkgdir/usr/share/${pkgname}/ui.bdf
+
+ # Install the extra bits
+ install -d $pkgdir/usr/share/${pkgname}/{artwork,ctrlr,keymaps,shader}
+ install -d $pkgdir/usr/share/man/man1
+ install -m644 src/osd/sdl/shader/glsl*.*h $pkgdir/usr/share/${pkgname}/shader/
+ install -m644 src/osd/sdl/man/* $pkgdir/usr/share/man/man1/
+
+ install -m644 $srcdir/artwork/* $pkgdir/usr/share/${pkgname}/artwork/
+ install -m644 $srcdir/ctrlr/* $pkgdir/usr/share/${pkgname}/ctrlr/
+ install -m644 src/osd/sdl/keymaps/* $pkgdir/usr/share/${pkgname}/keymaps/
+
+ # Include the license
+ install -Dm644 docs/license.txt $pkgdir/usr/share/licenses/${pkgname}/license.txt
+
+ find $pkgdir -type f -exec strip {} \;
+}
diff --git a/abs/not_built/extra/sdlmame/extras.tar.gz b/abs/not_built/extra/sdlmame/extras.tar.gz
new file mode 100644
index 0000000..ae0bc2a
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/extras.tar.gz
Binary files differ
diff --git a/abs/not_built/extra/sdlmame/mame-0137-wiimote.diff b/abs/not_built/extra/sdlmame/mame-0137-wiimote.diff
new file mode 100644
index 0000000..8f29b8e
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/mame-0137-wiimote.diff
@@ -0,0 +1,424 @@
+diff -BNburp mame-org/makefile mame-wiimote/makefile
+diff -BNburp mame-org/src/osd/sdl/input.c mame-wiimote/src/osd/sdl/input.c
+--- mame-org/src/osd/sdl/input.c 2010-02-28 04:16:40.000000000 +0100
++++ mame-wiimote/src/osd/sdl/input.c 2010-05-07 13:53:59.000000000 +0200
+@@ -17,6 +17,12 @@
+ #include <ctype.h>
+ #include <stddef.h>
+
++// for xinput
++#include <X11/Xlib.h>
++#include <X11/extensions/XInput.h>
++#include <X11/Xutil.h>
++
++
+ // MAME headers
+ #include "emu.h"
+ #include "ui.h"
+@@ -53,6 +59,16 @@ enum
+ #define MAX_POV 4
+ #define MAX_DEVMAP_ENTRIES 16
+
++//For xinput
++#define INVALID_EVENT_TYPE -1
++static int motion_type = INVALID_EVENT_TYPE;
++static int button_press_type = INVALID_EVENT_TYPE;
++static int button_release_type = INVALID_EVENT_TYPE;
++static int key_press_type = INVALID_EVENT_TYPE;
++static int key_release_type = INVALID_EVENT_TYPE;
++static int proximity_in_type = INVALID_EVENT_TYPE;
++static int proximity_out_type = INVALID_EVENT_TYPE;
++
+ //============================================================
+ // MACROS
+ //============================================================
+@@ -86,6 +102,16 @@ struct _mouse_state
+ INT32 buttons[MAX_BUTTONS];
+ };
+
++// state information for a lightgun
++typedef struct _lightgun_state lightgun_state;
++struct _lightgun_state
++{
++ INT32 lX, lY;
++ INT32 buttons[MAX_BUTTONS];
++ XID deviceid; //Xinput device id
++ INT32 maxx,maxy;
++ INT32 minx,miny;
++};
+
+ // state information for a joystick; DirectInput state must be first element
+ typedef struct _joystick_state joystick_state;
+@@ -115,6 +141,7 @@ struct _device_info
+ keyboard_state keyboard;
+ mouse_state mouse;
+ joystick_state joystick;
++ lightgun_state lightgun;
+ };
+ };
+
+@@ -164,10 +191,13 @@ struct _device_map_t
+
+ static device_map_t joy_map;
+ static device_map_t mouse_map;
++static device_map_t lightgun_map;
+ static device_map_t keyboard_map;
+
+ static int sixaxis_mode;
+
++Display *XDisplay;
++
+
+ //============================================================
+ // PROTOTYPES
+@@ -671,6 +703,244 @@ static device_info *devmap_class_registe
+ return devinfo;
+ }
+
++//============================================================
++// WiiMote lightgun stuff
++//============================================================
++
++//Copypasted from xinfo
++XDeviceInfo*
++find_device_info(Display *display,
++ char *name,
++ Bool only_extended)
++{
++ XDeviceInfo *devices;
++ XDeviceInfo *found = NULL;
++ int loop;
++ int num_devices;
++ int len = strlen(name);
++ Bool is_id = True;
++ XID id=0;
++
++ for(loop=0; loop<len; loop++) {
++ if (!isdigit(name[loop])) {
++ is_id = False;
++ break;
++ }
++ }
++
++ if (is_id) {
++ id = atoi(name);
++ }
++
++ devices = XListInputDevices(display, &num_devices);
++
++ for(loop=0; loop<num_devices; loop++) {
++ if ((!only_extended || (devices[loop].use >= IsXExtensionDevice)) &&
++ ((!is_id && strcmp(devices[loop].name, name) == 0) ||
++ (is_id && devices[loop].id == id))) {
++ if (found) {
++ fprintf(stderr,
++ "Warning: There are multiple devices named \"%s\".\n"
++ "To ensure the correct one is selected, please use "
++ "the device ID instead.\n\n", name);
++ } else {
++ found = &devices[loop];
++ }
++ }
++ }
++ return found;
++}
++
++//Copypasted from xinfo
++static int
++register_events(Display *dpy,
++ XDeviceInfo *info,
++ char *dev_name,
++ Bool handle_proximity)
++{
++ int number = 0; /* number of events registered */
++ XEventClass event_list[7];
++ int i;
++ XDevice *device;
++ Window root_win;
++ unsigned long screen;
++ XInputClassInfo *ip;
++
++ screen = DefaultScreen(dpy);
++ root_win = RootWindow(dpy, screen);
++
++ device = XOpenDevice(dpy, info->id);
++
++ if (!device) {
++ fprintf(stderr, "unable to open device %s\n", dev_name);
++ return 0;
++ }
++
++ if (device->num_classes > 0) {
++ for (ip = device->classes, i=0; i<info->num_classes; ip++, i++) {
++ switch (ip->input_class) {
++ case KeyClass:
++ DeviceKeyPress(device, key_press_type, event_list[number]); number++;
++ DeviceKeyRelease(device, key_release_type, event_list[number]); number++;
++ break;
++
++ case ButtonClass:
++ DeviceButtonPress(device, button_press_type, event_list[number]); number++;
++ DeviceButtonRelease(device, button_release_type, event_list[number]); number++;
++ break;
++
++ case ValuatorClass:
++ DeviceMotionNotify(device, motion_type, event_list[number]); number++;
++ fprintf(stderr, "Motion = %i\n",motion_type);
++ if (handle_proximity) {
++ ProximityIn(device, proximity_in_type, event_list[number]); number++;
++ ProximityOut(device, proximity_out_type, event_list[number]); number++;
++ }
++ break;
++
++ default:
++ fprintf(stderr, "unknown class\n");
++ break;
++ }
++ }
++
++ if (XSelectExtensionEvent(dpy, root_win, event_list, number)) {
++ fprintf(stderr, "error selecting extended events\n");
++ return 0;
++ }
++ }
++ return number;
++}
++
++
++
++static void sdlinput_register_lightguns(running_machine *machine)
++{
++ int index;
++ XExtensionVersion *version;
++
++ lightgun_enabled = options_get_bool(mame_options(), OPTION_LIGHTGUN);
++ devmap_init(machine, &lightgun_map, SDLOPTION_LIGHTGUNINDEX, 8, "Lightgun mapping");
++
++ XDisplay = XOpenDisplay(NULL);
++
++ if (XDisplay == NULL) {
++ fprintf(stderr, "Unable to connect to X server\n");
++ return;
++ }
++
++ version = XGetExtensionVersion(XDisplay, INAME);
++
++ if (!version || (version == (XExtensionVersion*) NoSuchExtension)) {
++ fprintf(stderr, "xinput extension not available!\n");
++ return;
++ }
++
++
++ for (index=0; index<8; index++) {
++ XDeviceInfo *info;
++ if (strlen(lightgun_map.map[index].name)!=0) {
++ device_info *devinfo;
++ char *name=lightgun_map.map[index].name;
++ char defname[512];
++ devinfo = devmap_class_register(machine, &lightgun_map, index, &lightgun_list, DEVICE_CLASS_LIGHTGUN);
++ fprintf(stderr, "%i: %s\n",index, name);
++ info=find_device_info(XDisplay, name, 0);
++ if (!info) continue;
++
++ //Grab device info and translate to stuff mame can use
++ if (info->num_classes > 0) {
++ XAnyClassPtr any = (XAnyClassPtr) (info->inputclassinfo);
++ int i;
++ for (i=0; i<info->num_classes; i++) {
++ int button;
++ XValuatorInfoPtr v;
++ XAxisInfoPtr a;
++ int j;
++ XButtonInfoPtr b;
++ switch (any->c_class) {
++ case ButtonClass:
++ b = (XButtonInfoPtr) any;
++ for (button = 0; button < b->num_buttons; button++)
++ {
++ input_item_id itemid;
++ sprintf(defname, "B%d", button + 1);
++ itemid=(input_item_id) (ITEM_ID_BUTTON1+button);
++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.buttons[button], itemid, generic_button_get_state);
++ }
++ break;
++ case ValuatorClass:
++ v = (XValuatorInfoPtr) any;
++ a = (XAxisInfoPtr) ((char *) v + sizeof (XValuatorInfo));
++ for (j=0; j<v->num_axes; j++, a++) {
++ if (j==0) {
++ devinfo->lightgun.maxx=a->max_value;
++ devinfo->lightgun.minx=a->min_value;
++ }
++ if (j==1) {
++ devinfo->lightgun.maxy=a->max_value;
++ devinfo->lightgun.miny=a->min_value;
++ }
++ }
++ break;
++ }
++ any = (XAnyClassPtr) ((char *) any + any->length);
++ }
++ }
++
++
++ sprintf(defname, "X %s", devinfo->name);
++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.lX, ITEM_ID_XAXIS, generic_axis_get_state);
++ sprintf(defname, "Y %s", devinfo->name);
++ input_device_item_add(devinfo->device, defname, &devinfo->lightgun.lY, ITEM_ID_YAXIS, generic_axis_get_state);
++
++
++ devinfo->lightgun.deviceid=info->id;
++ if (!info) {
++ fprintf(stderr, "Can't find device %s!\n", lightgun_map.map[index].name);
++ } else {
++ fprintf(stderr, "Device %i: Registered %i events.\n",(int)info->id, register_events(XDisplay, info, lightgun_map.map[index].name, 0));
++ }
++ }
++ }
++ mame_printf_verbose("Lightgun: End initialization\n");
++}
++
++device_info *get_lightgun_info_for_deviceid(XID deviceid) {
++ device_info *devinfo;
++ int index;
++ //Find lightgun according to device id
++ for (index=0; ; index++) {
++ devinfo = generic_device_find_index(lightgun_list, index);
++ if (devinfo==NULL) break;
++ if (devinfo->lightgun.deviceid==deviceid) break;
++ }
++ return devinfo;
++}
++
++int normalize_absolute_axis(int raw, int rawmin, int rawmax)
++{
++ int center = (rawmax + rawmin) / 2;
++
++ // make sure we have valid data
++ if (rawmin >= rawmax)
++ return raw;
++
++ // above center
++ if (raw >= center)
++ {
++ int result = (long)(raw - center) * (long)INPUT_ABSOLUTE_MAX / (long)(rawmax - center);
++ return MIN(result, INPUT_ABSOLUTE_MAX);
++ }
++
++ // below center
++ else
++ {
++ int result = -((long)(center - raw) * (long)-INPUT_ABSOLUTE_MIN / (long)(center - rawmin));
++ return MAX(result, INPUT_ABSOLUTE_MIN);
++ }
++}
++
+
+ //============================================================
+ // sdlinput_register_joysticks
+@@ -1115,6 +1385,9 @@ void sdlinput_init(running_machine *mach
+ // register the mice
+ sdlinput_register_mice(machine);
+
++ // register the lightguns
++ sdlinput_register_lightguns(machine);
++
+ if (machine->debug_flags & DEBUG_FLAG_OSD_ENABLED)
+ {
+ mame_printf_warning("Debug Build: Disabling input grab for -debug\n");
+@@ -1131,6 +1404,7 @@ void sdlinput_init(running_machine *mach
+ device_list_reset_devices(keyboard_list);
+ device_list_reset_devices(mouse_list);
+ device_list_reset_devices(joystick_list);
++ device_list_reset_devices(lightgun_list);
+
+ }
+
+@@ -1248,6 +1522,7 @@ void sdlinput_poll(running_machine *mach
+ device_info *devinfo;
+ SDL_Event event;
+ int index;
++ XEvent xevent;
+
+ // only for SDLMAME_EVENTS_IN_WORKER_THREAD
+ SDL_Event loc_event_buf[MAX_BUF_EVENTS];
+@@ -1263,6 +1538,21 @@ void sdlinput_poll(running_machine *mach
+ devinfo->mouse.lY = 0;
+ }
+
++ //Get XInput events
++ while (XPending(XDisplay)!=0) {
++ XNextEvent(XDisplay, &xevent);
++ if (xevent.type==motion_type) {
++ XDeviceMotionEvent *motion = (XDeviceMotionEvent *) &xevent;
++ devinfo=get_lightgun_info_for_deviceid(motion->deviceid);
++ devinfo->lightgun.lX=normalize_absolute_axis(motion->axis_data[0], devinfo->lightgun.minx, devinfo->lightgun.maxx);
++ devinfo->lightgun.lY=normalize_absolute_axis(motion->axis_data[1], devinfo->lightgun.miny, devinfo->lightgun.maxy);
++ } else if (xevent.type==button_press_type || xevent.type==button_release_type) {
++ XDeviceButtonEvent *button = (XDeviceButtonEvent *) &xevent;
++ devinfo=get_lightgun_info_for_deviceid(button->deviceid);
++ devinfo->lightgun.buttons[button->button]=(xevent.type==button_press_type)?0x80:0;
++ }
++ }
++
+ if (SDLMAME_EVENTS_IN_WORKER_THREAD)
+ {
+ osd_lock_acquire(input_lock);
+diff -BNburp mame-org/src/osd/sdl/osdsdl.h mame-wiimote/src/osd/sdl/osdsdl.h
+--- mame-org/src/osd/sdl/osdsdl.h 2010-02-12 14:42:32.000000000 +0100
++++ mame-wiimote/src/osd/sdl/osdsdl.h 2010-05-07 08:53:34.000000000 +0200
+@@ -130,3 +130,4 @@ void sdlaudio_init(running_machine *mach
+ extern int sdl_num_processors;
+
+ #endif
++#define SDLOPTION_LIGHTGUNINDEX "lightgun_index"
+diff -BNburp mame-org/src/osd/sdl/sdlmain.c mame-wiimote/src/osd/sdl/sdlmain.c
+--- mame-org/src/osd/sdl/sdlmain.c 2010-02-13 12:19:16.000000000 +0100
++++ mame-wiimote/src/osd/sdl/sdlmain.c 2010-05-07 08:54:03.000000000 +0200
+@@ -190,6 +190,17 @@ static const options_entry mame_sdl_opti
+ { SDLOPTION_JOYINDEX "8", SDLOPTVAL_AUTO, 0, "name of joystick mapped to joystick #8" },
+ { SDLOPTION_SIXAXIS, "0", OPTION_BOOLEAN, "Use special handling for PS3 Sixaxis controllers" },
+
++ { NULL, NULL, OPTION_HEADER, "SDL LIGHTGUN MAPPING" },
++ { SDLOPTION_LIGHTGUNINDEX "1", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #1" },
++ { SDLOPTION_LIGHTGUNINDEX "2", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #2" },
++ { SDLOPTION_LIGHTGUNINDEX "3", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #3" },
++ { SDLOPTION_LIGHTGUNINDEX "4", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #4" },
++ { SDLOPTION_LIGHTGUNINDEX "5", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #5" },
++ { SDLOPTION_LIGHTGUNINDEX "6", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #6" },
++ { SDLOPTION_LIGHTGUNINDEX "7", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #7" },
++ { SDLOPTION_LIGHTGUNINDEX "8", SDLOPTVAL_AUTO, 0, "name of lightgun mapped to lightgun #8" },
++
++
+ #if (SDL_VERSION_ATLEAST(1,3,0))
+ { NULL, NULL, OPTION_HEADER, "SDL MOUSE MAPPING" },
+ { SDLOPTION_MOUSEINDEX "1", SDLOPTVAL_AUTO, 0, "name of mouse mapped to mouse #1" },
+diff -BNburp mame-org/src/osd/sdl/window.c mame-wiimote/src/osd/sdl/window.c
+--- mame-org/src/osd/sdl/window.c 2010-02-12 07:40:12.000000000 +0100
++++ mame-wiimote/src/osd/sdl/window.c 2010-05-07 08:54:54.000000000 +0200
+@@ -659,8 +659,17 @@ static void sdlwindow_update_cursor_stat
+ }
+
+ #else
++ //Hack for wii-lightguns: they stop working with a grabbed mouse; even a ShowCursor(SDL_DISABLE) already
++ //does this. To make the cursor disappear, we'll just set an empty cursor image.
++ unsigned char data[]={0,0,0,0,0,0,0,0};
++ SDL_Cursor *c;
++ c=SDL_CreateCursor(data, data, 8, 8, 0, 0);
++ SDL_SetCursor(c);
++
++
+ // do not do mouse capture if the debugger's enabled to avoid
+ // the possibility of losing control
++/*
+ if (!(machine->debug_flags & DEBUG_FLAG_OSD_ENABLED))
+ {
+ if ( window->fullscreen || sdlinput_should_hide_mouse(machine) )
+@@ -680,6 +689,7 @@ static void sdlwindow_update_cursor_stat
+ }
+ }
+ }
++*/
+ #endif
+ }
+
diff --git a/abs/not_built/extra/sdlmame/sdlmame.install b/abs/not_built/extra/sdlmame/sdlmame.install
new file mode 100644
index 0000000..6103018
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/sdlmame.install
@@ -0,0 +1,29 @@
+# Message displayed for a fresh install.
+post_install()
+{
+ echo ""
+ echo "***************************************************************"
+ echo " SDLMAME and the additional MAME utilities have been installed"
+ echo " in /usr/share/sdlmame However, SDLMAME can be run by"
+ echo " typing sdlmame and it's options. Try running SDLMAME with"
+ echo " these options:"
+ echo " sdlmame <rom> -nowindow -noswitchres"
+ echo "***************************************************************"
+ echo ""
+}
+
+# Message for an update.
+post_upgrade()
+{
+ echo ""
+ echo "***************************************************************"
+ echo " SDLMAME has been updated. If you are upgrading directly from"
+ echo " 0.117 or earlier, you must delete all .cfg files and"
+ echo " re-configure your controllers. You should also run"
+ echo " 'SDLMAME --newini' to force the script to create a new ini"
+ echo " file with default settings at ~/.mame/sdlmame.ini"
+ echo " since there may be new ini options."
+ echo "***************************************************************"
+ echo ""
+}
+
diff --git a/abs/not_built/extra/sdlmame/sdlmame.sh b/abs/not_built/extra/sdlmame/sdlmame.sh
new file mode 100644
index 0000000..38b4870
--- /dev/null
+++ b/abs/not_built/extra/sdlmame/sdlmame.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# Create a variable equal to $HOME that will be used later in the ini creation
+home=('$HOME')
+
+if [ "$1" != "" ] && [ "$1" = "--newini" ]; then
+ echo "Rebuilding the ini file at $HOME/.mame/sdlmame.ini"
+ echo "Modify this file for permanent changes to your SDLMAME"
+ echo "options and paths before running SDLMAME again."
+ cd $HOME/.mame
+ if [ -e sdlmame.ini ]; then
+ echo "Your old ini file has been renamed to sdlmameini.bak"
+ mv sdlmame.ini sdlmameini.bak
+ fi
+ /usr/share/sdlmame/sdlmame \
+ -artpath "$home/.mame/artwork;artwork" \
+ -ctrlrpath "$home/.mame/ctrlr;ctrlr" \
+ -inipath $home/.mame/ini \
+ -rompath $home/.mame/roms \
+ -samplepath $home/.mame/samples \
+ -cfg_directory $home/.mame/cfg \
+ -comment_directory $home/.mame/comments \
+ -diff_directory $home/.mame/diff \
+ -input_directory $home/.mame/inp \
+ -memcard_directory $home/.mame/memcard \
+ -nvram_directory $home/.mame/nvram \
+ -snapshot_directory $home/.mame/snap \
+ -state_directory $home/.mame/sta \
+ -video opengl \
+ -createconfig
+elif [ ! -e $HOME/.mame ]; then
+ echo "Running SDLMAME for the first time..."
+ echo "Creating an ini file for SDLMAME at $HOME/.mame/sdlmame.ini"
+ echo "Modify this file for permanent changes to your SDLMAME"
+ echo "options and paths before running SDLMAME again."
+ mkdir $HOME/.mame
+ mkdir $HOME/.mame/{artwork,cfg,comments,ctrlr,diff,ini,inp,memcard,nvram,samples,snap,sta}
+ cd $HOME/.mame
+ /usr/share/sdlmame/sdlmame \
+ -artpath "$home/.mame/artwork;artwork" \
+ -ctrlrpath "$home/.mame/ctrlr;ctrlr" \
+ -inipath $home/.mame/ini \
+ -rompath $home/.mame/roms \
+ -samplepath $home/.mame/samples \
+ -cfg_directory $home/.mame/cfg \
+ -comment_directory $home/.mame/comments \
+ -diff_directory $home/.mame/diff \
+ -input_directory $home/.mame/inp \
+ -memcard_directory $home/.mame/memcard \
+ -nvram_directory $home/.mame/nvram \
+ -snapshot_directory $home/.mame/snap \
+ -state_directory $home/.mame/sta \
+ -video opengl \
+ -createconfig
+else
+ cd /usr/share/sdlmame
+ ./sdlmame "$@"
+fi