Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. My bare hosting costs are currently not met so please consider donating by either clicking this text or the Patreon link on the right.

Patreon

Recommended Posts

Posted

hi guys,

has anybody checked out the wiimote to use as a lightgun for mame?

i saw some videos on youtube and since i have a wiimote and bluetooth that would be much cheaper then buying a usb lightgun (and its wireless)

i guess the only problem would be the calibration of the lightgun on startup. There is a program called glovepie and there are existing scripts for calibration,but to integrate it a s a startup procedure could be quite tricky. http://www.wiili.org/forum/configurable-wi...ript-t3903.html

I will try it out in the next couple of days. has anyone over here experience with it?

I wonder if House of the Dead 3 PC version would be cab friendly...

Posted

A major problem to get over with using the WiiMote on a PC is that you have to manually pair it every time you boot the PC or turn on the remote, it could be done using an AHK script but it would be very tricky at best

Stu

Posted

didn't think about this one... thats true

but maybe you can set the bluesoleil software on auto-pair once a wiimote gets discovered

Posted

Yes but the problem I see with that is my computer pairing with my Wiimotes every time I play in the next room. Unless you mean certain Wiimotes as opposed to *any* wiimotes that are in use... ???

Posted

There aren't many bluetooth devices that will work with the Wiimote. The dongle we have at home will partner it, but won't do any more than that. Also, not sure if there are even any PC-based alternatives. Closest thing I could find was the Logitech MX Air mouse.

Posted

i got two bt devices, one in my dell laptop the other one is a cheap 10$ chinese one. When I use the bluesoleil software/driver ithe wiimote is recognised and works well with both devices.

I already played house of the dead 3 on my laptop using the wiimote, a script for glovepie i found on wiili.org and an infrared sensor bar. It works like a charme and gives you a close real lightgun feeling

check out this video:

the next step will be the automatic pairing and the mame setup. i let you guys know if i succeed to integrate the wiimote into my cabinet

Posted

Wouldn't actual lightguns for PC be a better solution? Sure they cost more but they are actually shaped like guns. :)

Posted

hooray, i got the wiimote working as a light gun in mame on my cabinet!!!

the whole procedure didn't take me longer then an hour and everything worked directly, beautiful... now i just wish it would always be like that :)

what you need:

- wiimote (obviously)

- bluetooth stick and bluesoleil software (most manufacturers use the software anyway but i found out that you can also install it instead of toshiba software for dell laptops)

- glovepie 0.3 with wiimote to joystick script

- ppjoy

The following script worked for me:

// My best IR Mouse Script, with 5DOF Tracking
// By Carl Kenner

//Edited for MAME 2P/ppjoy by Bakou

// Change these values for wiimote1:
var.SensorBarSeparation = 8.0 inches // distance between middles of two sensor bar dots
var.NoYawAllowed = true // Calculates X if no yaw is allowed, otherwise calculates Yaw but not X
var.IRMulX = 1.0
var.IRMulY = 1.0
var.IROffsetX = 0 // add to mouse.x
var.IROffsetY = 0 // add to mouse.y
var.IRLeftButton = Wiimote1.A
var.IRRightButton = Wiimote1.B

var.FreezeTime = 25ms

// change these values for wiimote2
var.SecondSensorBarSeparation = 8.0 inches // distance between middles of two sensor bar dots
var.SecondNoYawAllowed = true // Calculates X if no yaw is allowed, otherwise calculates Yaw but not X
var.SecondIRMulX = 1.2
var.SecondIRMulY = 1.2
var.SecondIROffsetX = 0 // add to mouse.x
var.SecondIROffsetY = 0 // add to mouse.y
var.SecondIRLeftButton = Wiimote2.A
var.SecondIRRightButton = Wiimote2.B

var.SecondFreezeTime = 25ms


// Code for wiimote 1 ------------------------------------------------------------------------------------

// Compensate for roll
var.c = cos(Smooth(wiimote1.roll, 10))
var.s = sin(Smooth(wiimote1.roll, 10))
if wiimote1.dot1vis then
var.dot1x = var.c*(511.5-wiimote1.dot1x)/511.5 - var.s*(wiimote1.dot1y-383.5)/511.5
var.dot1y = var.s*(511.5-wiimote1.dot1x)/511.5 + var.c*(wiimote1.dot1y-383.5)/511.5
end if
if wiimote1.dot2vis then
var.dot2x = var.c*(511.5-wiimote1.dot2x)/511.5 - var.s*(wiimote1.dot2y-383.5)/511.5
var.dot2y = var.s*(511.5-wiimote1.dot2x)/511.5 + var.c*(wiimote1.dot2y-383.5)/511.5
end if

// if both dots are visible check which is which and how far apart
if wiimote1.dot1vis and wiimote1.dot2vis then
if var.dot1x <= var.dot2x then
var.leftdot = 1
var.dotdeltay = var.dot2y - var.dot1y
else
var.leftdot = 2
var.dotdeltay = var.dot1y - var.dot2y
end if
var.dotdeltax = abs(var.dot1x-var.dot2x)
var.DotSep = hypot(var.dotdeltax, var.dotdeltay) * 511.5
var.IRDistance = var.SensorBarSeparation * 1320 / var.DotSep
end if

// sort out the position of the left and right dots
if var.leftdot = 1 then
if wiimote1.dot1vis and wiimote1.dot2vis then
var.LeftDotX = var.dot1x
var.LeftDotY = var.dot1y
var.LeftDotVis = true
var.RightDotX = var.dot2x
var.RightDotY = var.dot2y
var.RightDotVis = true
else if wiimote1.dot1vis then
if hypot(var.leftdotx-var.dot1x,var.leftdoty-var.dot1y) <= hypot(var.rightdotx-var.dot1x,var.rightdoty-var.dot1y) then
// is the real dot 1
var.LeftDotX = var.dot1x
var.LeftDotY = var.dot1y
var.RightDotX = var.dot1x + var.dotdeltax
var.RightDotY = var.dot1y + var.dotdeltay
var.LeftDotVis = true
var.RightDotVis = false
else
// was originally dot 2, but now called dot 1.
var.leftdot = 2 // this dot (1) is actually the right dot
var.LeftDotX = var.dot1x - var.dotdeltax
var.LeftDotY = var.dot1y - var.dotdeltay
var.RightDotX = var.dot1x
var.RightDotY = var.dot1y
var.RightDotVis = true
var.LeftDotVis = false
end if
else if wiimote1.dot2vis then
var.LeftDotX = var.dot2x - var.dotdeltax
var.LeftDotY = var.dot2y - var.dotdeltay
var.RightDotX = var.dot2x
var.RightDotY = var.dot2y
var.RightDotVis = true
var.LeftDotVis = false
end if
else if var.leftdot = 2 then
if wiimote1.dot1vis and wiimote1.dot2vis then
var.LeftDotX = var.dot2x
var.LeftDotY = var.dot2y
var.LeftDotVis = true
var.RightDotX = var.dot1x
var.RightDotY = var.dot1y
var.RightDotVis = true
else if wiimote1.dot1vis then
if hypot(var.leftdotx-var.dot1x,var.leftdoty-var.dot1y) <= hypot(var.rightdotx-var.dot1x,var.rightdoty-var.dot1y) then
var.leftdot = 1 // dot 1 is now the left dot
var.LeftDotX = var.dot1x
var.LeftDotY = var.dot1y
var.RightDotX = var.dot1x + var.dotdeltax
var.RightDotY = var.dot1y + var.dotdeltay
var.LeftDotVis = true
var.RightDotVis = false
else
// the real dot 1 (on the right)
var.LeftDotX = var.dot1x - var.dotdeltax
var.LeftDotY = var.dot1y - var.dotdeltay
var.RightDotX = var.dot1x
var.RightDotY = var.dot1y
var.RightDotVis = true
var.LeftDotVis = false
end if
else if wiimote1.dot2vis then
var.RightDotX = var.dot2x + var.dotdeltax
var.RightDotY = var.dot2y + var.dotdeltay
var.LeftDotX = var.dot2x
var.LeftDotY = var.dot2y
var.LeftDotVis = true
var.RightDotVis = false
end if
else
var.LeftDotX = var.dot1x
var.LeftDotY = var.dot1y
var.RightDotX = var.LeftDotX
var.RightDotY = var.LeftDotY
var.LeftDotVis = true
var.RightDotVis = true
end if


// Find the imaginary middle dot
var.MiddleDotX = (var.leftdotx + var.rightdotx)/2
var.MiddleDotY = (var.leftdoty + var.rightdoty)/2
var.MiddleDotVis = wiimote1.dot1vis or wiimote1.dot2vis

if var.MiddleDotVis then
var.TotalPitch = atan2(511.5*var.MiddleDotY,1320) + Wiimote.Pitch
var.DotYaw = atan2(-511.5*var.MiddleDotX,1320) // assume yaw is 0
var.WiimoteYawNoX = atan2(511.5*var.MiddleDotX,1320)
var.WiimoteXNoYaw = -sin(var.dotyaw)*var.IRDistance
var.WiimoteY = -sin(var.totalpitch)*var.IRDistance
var.WiimoteZ = (-sqrt(sqr(var.IRDistance) - sqr(var.WiimoteY)))*var.IRDistance/RemoveUnits(var.IRDistance)
end if

// scale it to the screen range 0 to 1
var.IRx = var.IRMulX*var.middledotx/2 + 0.5
var.IRy = var.IRMulY*var.middledoty*1023/767/2 + 0.5
var.IRvis = wiimote1.dot1vis or wiimote1.dot2vis
var.IROnScreen = 0 <= var.IRx <= 1 and 0 <= var.IRy <= 1

// is it off the screen?
var.IRTooFarLeft = var.IRx < 0 or (var.IRx < 0.1 and (not var.IRvis))
var.IRTooFarRight = var.IRx > 1 or (var.IRx > 1-0.1 and (not var.IRvis))
var.IRTooFarUp = var.IRy < 0 or (var.IRy < 0.1 and (not var.IRvis))
var.IRTooFarDown = var.IRy > 1 or (var.IRy > 1-0.1 and (not var.IRvis))

// Heavily smooth small movements, but do zero lag for quick movements
var.MoveAmount = 1024*hypot(delta(var.IRx), delta(var.IRy))
if smooth(var.MoveAmount) > 12 then
var.SmoothX = var.IRx
var.SmoothY = var.IRy
var.LastSureFrame = PIE.Frame
else if (PIE.frame-var.LastSureFrame) > 18 then
var.SmoothX = Smooth(var.IRx, 18, 4/1024)
var.SmoothY = Smooth(var.IRy, 18, 4/1024)
else if (PIE.frame-var.LastSureFrame) > 14 then
var.SmoothX = Smooth(var.IRx, 14, 4/1024)
var.SmoothY = Smooth(var.IRy, 14, 4/1024)
else if (PIE.frame-var.LastSureFrame) > 10 then
var.SmoothX = Smooth(var.IRx, 10, 4/1024)
var.SmoothY = Smooth(var.IRy, 10, 4/1024)
else if (PIE.frame-var.LastSureFrame) > 6 then
var.SmoothX = Smooth(var.IRx, 6, 4/1024)
var.SmoothY = Smooth(var.IRy, 6, 4/1024)
else if (PIE.frame-var.LastSureFrame) > 2 then
var.SmoothX = Smooth(var.IRx, 2, 4/1024)
var.SmoothY = Smooth(var.IRy, 2, 4/1024)
end if

// Freeze the mouse cursor while they start pressing the button
// otherwise it will make the cursor jump
var.Freeze = (var.IRLeftButton or var.IRRightButton) and KeepDown(pressed(var.IRLeftButton) or pressed(var.IRRightButton), var.FreezeTime)

// Only change the mouse position if pointing at the screen
// otherwise they can still use a real mouse
if var.IRvis and (not var.Freeze) then
// convert to joystick coordinates
ppjoy0.Analog0 = (var.SmoothX - 0.5 ) * 2.0
ppjoy0.Analog1 = (var.SmoothY - 0.5 ) * 2.0
end if

// delay the buttons slightly so we have time to freeze the cursor (is that needed?)
ppjoy0.Digital0 = var.IRLeftButton and (not KeepDown(pressed(var.IRLeftButton), 40ms))
ppjoy0.Digital0 = var.IRRightButton and (not KeepDown(pressed(var.IRRightButton), 40ms))
ppjoy0.Digital3 = wiimote1.One


// Code for wiimote #2 ------------------------------------------------------------------------------------


// Compensate for roll
var.Secondc = cos(Smooth(wiimote2.roll, 10))
var.Seconds = sin(Smooth(wiimote2.roll, 10))
if wiimote2.dot1vis then
var.Seconddot1x = var.Secondc*(511.5-wiimote2.dot1x)/511.5 - var.Seconds*(wiimote2.dot1y-383.5)/511.5
var.Seconddot1y = var.Seconds*(511.5-wiimote2.dot1x)/511.5 + var.Secondc*(wiimote2.dot1y-383.5)/511.5
end if
if wiimote2.dot2vis then
var.Seconddot2x = var.Secondc*(511.5-wiimote2.dot2x)/511.5 - var.Seconds*(wiimote2.dot2y-383.5)/511.5
var.Seconddot2y = var.Seconds*(511.5-wiimote2.dot2x)/511.5 + var.Secondc*(wiimote2.dot2y-383.5)/511.5
end if

// if both dots are visible check which is which and how far apart
if wiimote2.dot1vis and wiimote2.dot2vis then
if var.Seconddot1x <= var.Seconddot2x then
var.Secondleftdot = 1
var.Seconddotdeltay = var.Seconddot2y - var.Seconddot1y
else
var.Secondleftdot = 2
var.Seconddotdeltay = var.Seconddot1y - var.Seconddot2y
end if
var.Seconddotdeltax = abs(var.Seconddot1x-var.Seconddot2x)
var.SecondDotSep = hypot(var.Seconddotdeltax, var.Seconddotdeltay) * 511.5
var.SecondIRDistance = var.SecondSensorBarSeparation * 1320 / var.SecondDotSep
end if

// sort out the position of the left and right dots
if var.Secondleftdot = 1 then
if wiimote2.dot1vis and wiimote2.dot2vis then
var.SecondLeftDotX = var.Seconddot1x
var.SecondLeftDotY = var.Seconddot1y
var.SecondLeftDotVis = true
var.SecondRightDotX = var.Seconddot2x
var.SecondRightDotY = var.Seconddot2y
var.SecondRightDotVis = true
else if wiimote2.dot1vis then
if hypot(var.Secondleftdotx-var.Seconddot1x,var.Secondleftdoty-var.Seconddot1y) <= hypot(var.Secondrightdotx-var.Seconddot1x,var.Secondrightdoty-var.Seconddot1y) then
// is the real dot 1
var.SecondLeftDotX = var.Seconddot1x
var.SecondLeftDotY = var.Seconddot1y
var.SecondRightDotX = var.Seconddot1x + var.Seconddotdeltax
var.SecondRightDotY = var.Seconddot1y + var.Seconddotdeltay
var.SecondLeftDotVis = true
var.SecondRightDotVis = false
else
// was originally dot 2, but now called dot 1.
var.Secondleftdot = 2 // this dot (1) is actually the right dot
var.SecondLeftDotX = var.Seconddot1x - var.Seconddotdeltax
var.SecondLeftDotY = var.Seconddot1y - var.Seconddotdeltay
var.SecondRightDotX = var.Seconddot1x
var.SecondRightDotY = var.Seconddot1y
var.SecondRightDotVis = true
var.SecondLeftDotVis = false
end if
else if wiimote2.dot2vis then
var.SecondLeftDotX = var.Seconddot2x - var.Seconddotdeltax
var.SecondLeftDotY = var.Seconddot2y - var.Seconddotdeltay
var.SecondRightDotX = var.Seconddot2x
var.SecondRightDotY = var.Seconddot2y
var.SecondRightDotVis = true
var.SecondLeftDotVis = false
end if
else if var.Secondleftdot = 2 then
if wiimote2.dot1vis and wiimote2.dot2vis then
var.SecondLeftDotX = var.Seconddot2x
var.SecondLeftDotY = var.Seconddot2y
var.SecondLeftDotVis = true
var.SecondRightDotX = var.Seconddot1x
var.SecondRightDotY = var.Seconddot1y
var.SecondRightDotVis = true
else if wiimote2.dot1vis then
if hypot(var.Secondleftdotx-var.Seconddot1x,var.Secondleftdoty-var.Seconddot1y) <= hypot(var.Secondrightdotx-var.Seconddot1x,var.Secondrightdoty-var.Seconddot1y) then
var.Secondleftdot = 1 // dot 1 is now the left dot
var.SecondLeftDotX = var.Seconddot1x
var.SecondLeftDotY = var.Seconddot1y
var.SecondRightDotX = var.Seconddot1x + var.Seconddotdeltax
var.SecondRightDotY = var.Seconddot1y + var.Seconddotdeltay
var.SecondLeftDotVis = true
var.SecondRightDotVis = false
else
// the real dot 1 (on the right)
var.SecondLeftDotX = var.Seconddot1x - var.Seconddotdeltax
var.SecondLeftDotY = var.Seconddot1y - var.Seconddotdeltay
var.SecondRightDotX = var.Seconddot1x
var.SecondRightDotY = var.Seconddot1y
var.SecondRightDotVis = true
var.SecondLeftDotVis = false
end if
else if wiimote2.dot2vis then
var.SecondRightDotX = var.Seconddot2x + var.Seconddotdeltax
var.SecondRightDotY = var.Seconddot2y + var.Seconddotdeltay
var.SecondLeftDotX = var.Seconddot2x
var.SecondLeftDotY = var.Seconddot2y
var.SecondLeftDotVis = true
var.SecondRightDotVis = false
end if
else
var.SecondLeftDotX = var.Seconddot1x
var.SecondLeftDotY = var.Seconddot1y
var.SecondRightDotX = var.SecondLeftDotX
var.SecondRightDotY = var.SecondLeftDotY
var.SecondLeftDotVis = true
var.SecondRightDotVis = true
end if


// Find the imaginary middle dot
var.SecondMiddleDotX = (var.Secondleftdotx + var.Secondrightdotx)/2
var.SecondMiddleDotY = (var.Secondleftdoty + var.Secondrightdoty)/2
var.SecondMiddleDotVis = wiimote2.dot1vis or wiimote2.dot2vis

if var.SecondMiddleDotVis then
var.SecondTotalPitch = atan2(511.5*var.SecondMiddleDotY,1320) + Wiimote.Pitch
var.SecondDotYaw = atan2(-511.5*var.SecondMiddleDotX,1320) // assume yaw is 0
var.SecondWiimoteYawNoX = atan2(511.5*var.SecondMiddleDotX,1320)
var.SecondWiimoteXNoYaw = -sin(var.Seconddotyaw)*var.SecondIRDistance
var.SecondWiimoteY = -sin(var.Secondtotalpitch)*var.SecondIRDistance
var.SecondWiimoteZ = (-sqrt(sqr(var.SecondIRDistance) - sqr(var.SecondWiimoteY)))*var.SecondIRDistance/RemoveUnits(var.SecondIRDistance)
end if

// scale it to the screen range 0 to 1
var.SecondIRx = var.SecondIRMulX*var.Secondmiddledotx/2 + 0.5
var.SecondIRy = var.SecondIRMulY*var.Secondmiddledoty*1023/767/2 + 0.5
var.SecondIRvis = wiimote2.dot1vis or wiimote2.dot2vis
var.SecondIROnScreen = 0 <= var.SecondIRx <= 1 and 0 <= var.SecondIRy <= 1

// is it off the screen?
var.SecondIRTooFarLeft = var.SecondIRx < 0 or (var.SecondIRx < 0.1 and (not var.SecondIRvis))
var.SecondIRTooFarRight = var.SecondIRx > 1 or (var.SecondIRx > 1-0.1 and (not var.SecondIRvis))
var.SecondIRTooFarUp = var.SecondIRy < 0 or (var.SecondIRy < 0.1 and (not var.SecondIRvis))
var.SecondIRTooFarDown = var.SecondIRy > 1 or (var.SecondIRy > 1-0.1 and (not var.SecondIRvis))

// Heavily smooth small movements, but do zero lag for quick movements
var.SecondMoveAmount = 1024*hypot(delta(var.SecondIRx), delta(var.SecondIRy))
if smooth(var.SecondMoveAmount) > 12 then
var.SecondSmoothX = var.SecondIRx
var.SecondSmoothY = var.SecondIRy
var.SecondLastSureFrame = PIE.Frame
else if (PIE.frame-var.SecondLastSureFrame) > 18 then
var.SecondSmoothX = Smooth(var.SecondIRx, 18, 4/1024)
var.SecondSmoothY = Smooth(var.SecondIRy, 18, 4/1024)
else if (PIE.frame-var.SecondLastSureFrame) > 14 then
var.SecondSmoothX = Smooth(var.SecondIRx, 14, 4/1024)
var.SecondSmoothY = Smooth(var.SecondIRy, 14, 4/1024)
else if (PIE.frame-var.SecondLastSureFrame) > 10 then
var.SecondSmoothX = Smooth(var.SecondIRx, 10, 4/1024)
var.SecondSmoothY = Smooth(var.SecondIRy, 10, 4/1024)
else if (PIE.frame-var.SecondLastSureFrame) > 6 then
var.SecondSmoothX = Smooth(var.SecondIRx, 6, 4/1024)
var.SecondSmoothY = Smooth(var.SecondIRy, 6, 4/1024)
else if (PIE.frame-var.SecondLastSureFrame) > 2 then
var.SecondSmoothX = Smooth(var.SecondIRx, 2, 4/1024)
var.SecondSmoothY = Smooth(var.SecondIRy, 2, 4/1024)
end if

// Freeze the mouse cursor while they start pressing the button
// otherwise it will make the cursor jump
var.SecondFreeze = (var.SecondIRLeftButton or var.SecondIRRightButton) and KeepDown(pressed(var.SecondIRLeftButton) or pressed(var.SecondIRRightButton), var.SecondFreezeTime)

// Only change the mouse position if pointing at the screen
// otherwise they can still use a real mouse
if var.SecondIRvis and (not var.SecondFreeze) then
// convert to joystick coordinates
ppjoy2.Analog0 = (var.SecondSmoothX - 0.5 ) * 2.0
ppjoy2.Analog1 = (var.SecondSmoothY - 0.5 ) * 2.0
end if

// delay the buttons slightly so we have time to freeze the cursor (is that needed?)
ppjoy2.Digital0 = var.SecondIRLeftButton and (not KeepDown(pressed(var.SecondIRLeftButton), 40ms))
ppjoy2.Digital0 = var.SecondIRRightButton and (not KeepDown(pressed(var.SecondIRRightButton), 40ms))
ppjoy2.Digital3 = wiimote2.One




debug = 'Joy0: ' + ppjoy0.Analog0 + ' ' + ppjoy0.Analog1 + 'Joy2: ' + ppjoy2.Analog0 + ' ' + ppjoy2.Analog1

i even found out how to automatically pair your wiimote with your pc. glovepie seems to have support for this feature as well but it didn't work with glovepie 0.3 on my pc.

But there is an alternative...

just paste this:

"C:\Program Files\IVT Corporation\BlueSoleil\gprs.exe" "00:00:00:00:00:00" 4388

and save it as batch script

You have to replace the 0s with your wiimote address (you find that when you right click on the wiimote in bluesoleil and go to properties)

some people are missing the gprs.exe, it seems to be gone in the new versions of the software... if somebody needs the file just contact me.

The other thing is to get PPJoy, set up a virtual joystick and load up Glovepie. use the script from above, set up your wii sensor bar (for ir) or use two candles, the click on gui and click on detect output to emulate.

now i have mame plus 0.125. go to options in mamegui and set lightgun controllers to joystick. also, you have to set joystick dead zone to 0 (instead of 0.3). Then I started up bang, went to input (this game) and replaced the buttons and axis by using the wiimote input.

i hope these instructions might help someone who wants to try it out. if you have the right distance the wiimote works fairly good as a lightgun, its not perfect though.

Now my question:

In my batch script i have the bluesoleil autodetection and after that glovepie launching the script set up.

I wanted this to autostart with windows, which works but that means i have to press button 1 and 2 on the wiimote when the system starts up otherwise it will not get paired.

Is there a way to execute a batch script before a certain game starts in mame (eg bang)?

Sorry for this long post, I hope somebody will make it to my question.... :)

Posted

This all sounds very cool indeed I must give it a blast, thanks for the how to

Now my question:

In my batch script i have the bluesoleil autodetection and after that glovepie launching the script set up.

I wanted this to autostart with windows, which works but that means i have to press button 1 and 2 on the wiimote when the system starts up otherwise it will not get paired.

Is there a way to execute a batch script before a certain game starts in mame (eg bang)?

Is there any harm in having bluesoleil auto detecting with every game but you only pair it with the remote when you need to? If that was the case you could use the 'run on launch' feature in the 'advance mame' section

Maybe bluesoleil complains though if it can't find the device? In which case some sort of AHK script maybe required

This actually might be better suited to a GameEx pluggin as it could detect the game and only launch the batch command for the selected games, or a GameEx feature? Tom already gives an option to seperate the light gun games so all that would be needed is the option to run a separate command for these games.

Another option would be to setup a separate emulator for MAME lightgun games, this wouldn't be so seamless though

Stu

Posted

hey stu, thanks for your thoughts.

With the lauch on startup option it should work since bluesoleil doesn't complain if nothing is found, but you see for a short period of time the batch windows and then the glovepie window starting up.

call me picky but i don't want it to be seen only if necessary

i like your idea about the extra emulator setup.

maybe i try this tomorrow...

Posted

ok, just a quick note:

the way i did it now is to have the wiimote startup script in my pc games category...

not the best solution but i'm able to load it up at will. the only downside is that you have to disable joypad support of gameex (or choose another joypad then the lightgun) other wise gameex runs through the menus like crazy...

I will check House of the dead now... does anyone else know a good lightgun game to try out?

Posted
hey stu, thanks for your thoughts.

With the lauch on startup option it should work since bluesoleil doesn't complain if nothing is found, but you see for a short period of time the batch windows and then the glovepie window starting up.

call me picky but i don't want it to be seen only if necessary

i like your idea about the extra emulator setup.

maybe i try this tomorrow...

Bkenobi wrote a little diddy called "Mame Loader" to run two versions of Mame (or other emulators) seamlessly. You could set up one with the games (and config) that you need for your wii remote, and another version for the rest.

You can find his script in this thread:

http://www.gameex.info/forums/index.php?sh...ost&p=36769

Posted

This looks really interesting! One of my GunCon2's died which caused both to appear unusable. I'm still working it out, but if I were able to just go to a different set of guns that work better, I would gladly do that! Please post any opinions about the WiiGun vs other options that seem relevant. I know that the WiiGuns are wireless, so that's a big advantage. The light strip is a disadvantage. What about accuracy especially when shooting through glass? Response times? Anything else? Thanks!

Posted

mhhh, i don't know if you can compare this setup with a real lightgun.

1. i haven't tested two wiimotes yet but i heard it's not that easy as with one

2. i think the wiimote does a pretty good job as a lightgun but there is still a lot of space for optimisation. the response time seems to be a bit lower then with a real lightgun. but i will check that out when i have the lightgun adapter for the wiimote and did some more intensive testing. right now i'll try out house of the dead. the good thing is that it works by mouse movements so you don't need ppjoy as for mame

Posted
I wonder if House of the Dead 3 PC version would be cab friendly...

Yes it is, I run it on my cab, but you will need to grab my hod3_launcher wrapper so it skips the menu system. Just copy it into the same folder as hod3launch.exe and then change the shortcut to run my wrapper instead.

Posted

Just a note about the GunCon2 guns. If you use WinGun or GunCon2PC (you must use one or the other), they will make the gun appear as a mouse just like the WiiGun (from the sounds of it).

Posted

thanks for the launcher hk, will try it when my new gfx card arrives...

i have a weird problem with gameex and mame now. when i startup the cab and want to play a mame game, it starts up, but i cant't control it. i can close mame by task manager and after that all the games work fine... also, if i wait until the screen saver comes on and try out a game after that, everything works. it seems like gameex just displays the game, but the game is "not on top"

and another short off topic questions:

when i click on the gameex option only use bezel for vertical games, no vertical games work. i find this option very useful, since i don't want any artwork displayed when it's 4:3 anyway. Is there a way to make this option work again?

  • 1 year later...
Posted

i even found out how to automatically pair your wiimote with your pc. glovepie seems to have support for this feature as well but it didn't work with glovepie 0.3 on my pc.

But there is an alternative...

just paste this:

"C:\Program Files\IVT Corporation\BlueSoleil\gprs.exe" "00:00:00:00:00:00" 4388

and save it as batch script

You have to replace the 0s with your wiimote address (you find that when you right click on the wiimote in bluesoleil and go to properties)

some people are missing the gprs.exe, it seems to be gone in the new versions of the software... if somebody needs the file just contact me.

Sorry for revival this theard. I use Bluesoleil 6.x, so the gprs.exe is missing. glovie pie needs a very long time to autoconnect, in most cases it fails. is there any other way to auto connect the wii mote?perhaps an other exe in bluesoleil that can be used with command line? i tried serveral toosl (autoconnect 0.6 etc) but nothing worked for me :( may it could be done by script since bs make so kind of shortcut witch can be right-clicked and "connect with device"..

thx in advance

Guest
This topic is now closed to further replies.
×
×
  • Create New...