Regresar   Foro de marcianitos.org > Emuladores y programas de todo tipo > Emuladores > MAME

 
 
Old 15-feb-2007, 17:50   #1
Scatsy
Usuario registrado
ayuda con el Wiimote en M.A.M.E.

Buenas a todos, no se si esto estaría bien puesto aqui o en el foro de PC, el caso es que tengo una pequeña duda.

He conectado el mando de Wii al PC como indica el tutorial de la web (salvo que en vez de usar Bluesoleil uso el controlador de bluetooth de windows, ya que el Bluesoleil no me va), tengo mi barra echa, solo me falta el nuchuk, pero bueno, lo queria usar como pistola para los juegos de pistola del M.A.M.E., pensé que como emulaba el ratón valdría sin mas, pero NO, incluso diciendo en el Mame32 que para las pistolas use el ratón, no me lo detecta, ni siquiera configurando los controles, es como si actuase en segundo plano o algo (cuando choca con los bordes de la pantalla el wiimote vibra), vamos que es como si ese "ratón" no existiese para el Mame32.

He probado algúnas cosas con el glovepie pero nada, puse un script para que funcionase como ratón y me hace lo mismo, lo máximo que he conseguido es mover el punter arriba y abajo, es decir, el eje X no me lo reconoce, creo que era usando el ppjoy y diciendo al Mame32 que la pistola la usase el joystick.

He buscado por el foro pero no he encontrado nada (no se si ha buscado en este subforo o en todo el foro), a si que si me podeis aclarar algo os lo agradecería mucho.


PD: el codigo del glovepie es este


Code:
// Joystick/Mouse script using IR sensor (Single Wiimote v1)
// Designed for use with MAME as a lightgun replacement
// by Lukeage
//
// Thanks to Carl Kenner for GlovePIE and help with the battery
//
// Requires PPJoy to work with the joystick!
//
// This script allows you to utilise both the mouse cursor and a joystick by
// switching between them using the 1 (mouse) and 2 (joystick) buttons on the
// Wiimote. By default, the joystick is set. To use as a lightgun in mame, you
// need to set it up to use a joystick as a lightgun. Setting it to the mouse
// does not work as GlovePIE cannot modify RawImput yet.
//
// Both Modes:
//
// Direction pad is mapped to the direction keys
// - and + together display the battery level on the LEDs
// LEDs indicate the number of the wiimote connected
// 1 = Mouse Mode
// 2 = Joystick Mode
//
// Mouse Mode:
//
// B = Left Mouse Button
// A = Right Mouse Button
// - = Volume Down
// Home = Mute
// + = Volume Up
//
// Joystick Mode:
//
// B = Button 1 (this causes the Wiimote to rumbles)
// A = Button 2
// - = Button 3
// Home = Button 4
// + = Button 5
//
// To add extra Wiimotes, There are a few things you need to add.
//
// 1) var.WiimoteX = X needs to be added (Where X is the new Wiimote number).
//    This is only used to display the correct and obviously is useless after
//    the 4th Wiimote
// 2) The Wiimote Variables need to be duplicated.
// 3) The Entire Wiimote code needs to be copied for each extra Wiimote.
// 4) In both the Wiimote variables and code, Wiimote1 needs to be replaced
//    with WiimoteX.
// 5) ppjoy1 needs to be replaced with ppjoyX.
// 6) mouse needs to be replaced with CursorX if the extra cursor is required.
// General Variables
// Wiimote Orientation
var.Wiimote.Up = 1
var.Wiimote.Right = 2
var.Wiimote.Down = 3
var.Wiimote.Left = 4
// These values are used to make it easy to add any addition Wiimotes. If you
// need to add Wiimotes, just make the new line equals of number of the Wiimote
var.Wiimote1 = 1
// Wiimote Settings
// Wiimote 1 Variables
// Used to change the angle at which the Wiimote direction is detected
var.Wiimote1.Rotation = 7
// You can scale the movement to either speed up the movement or allow for
// better coverage near the edges of the screen
var.Wiimote1.ScaleX = 1.1
var.Wiimote1.ScaleY = 1.1
// Number of pixels the pointer has to move before it is updated
var.Wiimote1.Deadzone = 5
//Adjust these to calibrate your remote
var.Wiimote1.xcal = 3
var.Wiimote1.ycal = -30
var.Wiimote1.zcal = 3
// Wiimote Control
// Wiimote 1 Code
// Debug code
if Wiimote1.One and Wiimote1.Two then
   debug = "Wiimote1 X: " + Wiimote1.RawForceX * -1 + " Wiimote1 Y: " + Wiimote1.RawForceY * -1 + " Wiimote1 Z: " + Wiimote1.RawForceZ * -1
endif
// Show battery meter
if Wiimote1.Minus & Wiimote1.Plus then
   Wiimote1.Report15 = 4 | int(Wiimote1.Rumble) // Thanks to Carl Kenner
   Wiimote1.Leds = 2 ^ ceil(Wiimote1.Battery / 48) - 1 // I assume the max battery value to be 192
else
    // Display which Wiimote is which
   Wiimote1.Leds = 2 ^ (var.Wiimote1 - 1)
endif
// Set the D-Pad to function as the Arrow Keys
if Wiimote1.Up
  Up = True
else
  Up = False
endif
if Wiimote1.Down
  Down = True
else
  Down = False
endif
if Wiimote1.Left
  Left = True
else
  Left = False
endif
if Wiimote1.Right
  Right = True
else
  Right = False
endif
// Set if mouse mode (1) or joystick mode (0)
if Wiimote1.One Then
   var.Wiimote1.Mode = 1
endif
if Wiimote1.Two Then
   var.Wiimote1.Mode = 0
endif
// Calibrate settings
var.Wiimote1.ForceX = Wiimote1.RawForceX + var.Wiimote1.xcal
var.Wiimote1.ForceY = Wiimote1.RawForceY + var.Wiimote1.ycal
var.Wiimote1.ForceZ = Wiimote1.RawForceZ + var.Wiimote1.zcal
// Find Orientation
if var.Wiimote1.ForceY > var.Wiimote1.ycal + var.Rotation then
   var.Wiimote1.Orientation = var.Wiimote.Up
elseif var.Wiimote1.ForceY < var.Wiimote1.ycal - var.Rotation then
   var.Wiimote1.Orientation = var.Wiimote.Down
else
   if var.Wiimote1.ForceX > 0 then
      var.Wiimote1.Orientation = var.Wiimote.Left
   else
      var.Wiimote1.Orientation = var.Wiimote.Right
   endif
endif
// Get absolute screen position
if var.Wiimote1.Orientation == var.Wiimote.Up then
   var.Wiimote1.X = (1024 - ((Wiimote1.Dot1x + Wiimote1.Dot2x) / 2)) / 1024 * Screen.DesktopWidth
   var.Wiimote1.Y = ((Wiimote1.Dot1y + Wiimote1.Dot2y) / 2) / 768 * Screen.DesktopHeight
elseif var.Wiimote1.Orientation == var.Wiimote.Down then
   var.Wiimote1.X = (Wiimote1.Dot1x + Wiimote1.Dot2x) / 2 / 1024 * Screen.DesktopWidth
   var.Wiimote1.Y = (768 - ((Wiimote1.Dot1y + Wiimote1.Dot2y) / 2)) / 768 * Screen.DesktopHeight
elseif var.Wiimote1.Orientation == var.Wiimote.Left then
   var.Wiimote1.X = (Wiimote1.Dot1y) / 768 * Screen.DesktopWidth
   var.Wiimote1.Y = (Wiimote1.Dot1x + Wiimote1.Dot2x) / 2 / 1024 * Screen.DesktopHeight
else
   var.Wiimote1.X = (768 - Wiimote1.Dot1y) / 768 * Screen.DesktopWidth
   var.Wiimote1.Y = (1024 - ((Wiimote1.Dot1x + Wiimote1.Dot2x) / 2)) / 1024 * Screen.DesktopHeight
endif
if var.Wiimote1.Mode then
   // Mouse Buttons
   mouse.LeftButton = Wiimote1.B
   mouse.RightButton = Wiimote1.B
   VolumeDown = Wiimote1.Minus
   VolumeUp = Wiimote1.Plus
   Mute = Wiimote1.Home
   // Set cursor
   if abs(mouse.CursorPosX - var.Wiimote1.X) > var.Wiimote1.Deadzone then
      mouse.CursorPosX = (var.Wiimote1.X - (Screen.DesktopWidth /2)) * var.Wiimote1.ScaleX + (Screen.DesktopWidth / 2)
   endif
   if abs(mouse.CursorPosY - var.Wiimote1.Y) > var.Wiimote1.Deadzone then
     mouse.CursorPosY = (var.Wiimote1.Y - (Screen.DesktopHeight /2)) * var.Wiimote1.ScaleY + (Screen.DesktopHeight / 2)
   endif
else
   // Joystick Buttons
   if not Wiimote1.B then
      var.Wiimote1.Pressed = false
      ppjoy1.Digital0 = false
   endif
   // Use this to only rumble once per press (since we are simulating a gun)
   if Wiimote1.B and not var.Wiimote1.Pressed then
      var.Wiimote1.Pressed = true
      Wiimote1.Rumble = true
      ppjoy1.Digital0 = true
      wait 100ms
      Wiimote1.Rumble = false
      ppjoy1.Digital0 = false
   endif
   // Use these to set coin insert and start buttons
   ppjoy1.Digital1 = Wiimote1.A
   ppjoy1.Digital2 = Wiimote1.Minus
   ppjoy1.Digital3 = Wiimote1.Home
   ppjoy1.Digital4 = Wiimote1.Plus
   // Joystick needs to be between  -1 and 1 so we can't use absolute values directly
   if abs(mouse.CursorPosX - var.Wiimote1.X) > var.Wiimote1.Deadzone then
      ppjoy1.Analog0 = (var.Wiimote1.X - (Screen.DesktopWidth /2)) * var.Wiimote1.ScaleX / (Screen.DesktopWidth / 2)
   endif
   if abs(mouse.CursorPosY - var.Wiimote1.Y) > var.Wiimote1.Deadzone then
     ppjoy1.Analog1 = (var.Wiimote1.Y - (Screen.DesktopHeight /2)) * var.Wiimote1.ScaleY / (Screen.DesktopHeight / 2)
   endif
endif
   
Old 15-feb-2007, 19:13   #2
Cananas
Usuario Baneado
Quote:
To use as a lightgun in mame, you
// need to set it up to use a joystick as a lightgun. Setting it to the mouse
// does not work as GlovePIE cannot modify RawImput yet.
Traducción: Para usarlo como pistola en mame, necesitas configurar mame para que use el joystick como una pistola. Configurándo la pistola como ratón no funciona porque GlovePIE todavía no puede modificar el modo RawInput (Rawinput en la nueva manera de gestionar los ratones que usa MAME. Este modo permite que cada ratón conectado al PC sea reconocido como uno individual).

Parece que necesitas ir a la pestaña de configuración de MAME32 y asignar a la pistola el uso del joystick, no del ratón como has hecho.
   
Old 15-feb-2007, 19:24   #3
Scatsy
Usuario registrado
Quote:
Originalmente publicado por Cananas Ver post
Traducción: Para usarlo como pistola en mame, necesitas configurar mame para que use el joystick como una pistola. Configurándo la pistola como ratón no funciona porque GlovePIE todavía no puede modificar el modo RawInput (Rawinput en la nueva manera de gestionar los ratones que usa MAME. Este modo permite que cada ratón conectado al PC sea reconocido como uno individual).

Parece que necesitas ir a la pestaña de configuración de MAME32 y asignar a la pistola el uso del joystick, no del ratón como has hecho.
Si si, si eso hice, pero solo apuntaba arriba o abajo, el eje X no lo reconocía, pero bueno, de todos modos sigo investigando a ver si doy con ello.

Por cierto, en el portatil, el mame me reconoce el touchpad como un ratón y el ratón en si como otro.