Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Lanzador MAME, JukeBox, Karaoke
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Lanzador MAME, JukeBox, Karaoke 
 
Buen dia, amigos!

Con mi hijo estramos haciendo un arcade basado en MAME, pero que tambien servira para pasar musica, y hacer Karaoke

El corazon es una placa madre con un AMD A6 , pero tambien tiene un amplificador y parlantes de viejos equipos rotos.

Corre Ubuntu y lo que necesito de uds es que me guien de como hacer que al iniciarse mi programa gambas que sera el GUI de todo actue como lanzador.

La idea es que tenga un menú de imágenes que pueda seleccionar con el joystick para elegir

  -Juegos-> Mame/Nestopia/Commodore64

  -Musica->ir armando una cola de canciones

  -Karaoke-> elegir una serie de videos ya sea de Youtube o guardados

Preguntas:

1-como se hace para que al arrancar, se lance un programa gambas y abarque la pantalla completa?

2-como se pueden enviar "clicks" o movimientos del joystick a otro programa lanzado

3-Si estoy corriendo MAME, como puedo interceptar los botones pulsados?

Van un par de fotos del proyecto

 whatsapp_image_2019_05_03_at_09_06_04

 whatsapp_image_2019_05_03_at_08_59_50
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Lanzador MAME, JukeBox, Karaoke 
 
Buena iniciativa.

Citar:

1-como se hace para que al arrancar, se lance un programa gambas y abarque la pantalla completa?


En un formulario tienes la opción en las propiedades de este. FullScreen.

Citar:

2-como se pueden enviar "clicks" o movimientos del joystick a otro programa lanzado

3-Si estoy corriendo MAME, como puedo interceptar los botones pulsados?


Puede que una opción configurada con algún botón te permita salir del emulador.
Aunque hay juegos que requieren muuuuchos botones.
Ten en cuenta, que una cosa es la configuración general y otra es una configuración concreta para un juego.

Citar:

La idea es que tenga un menú de imágenes que pueda seleccionar con el joystick para elegir


Muy practico. Entonces solo es conocer el uso del joystick en Gambas.
Hay un juego hecho en gambas de un Arkanoid que permite el uso Joystick o Pad.
( Es obligado en ese juego si quieres jugar)

Encontré algo pero puede ser antiguo:

http://gambas.8142.n7.nabble.com/Ga...ck-td15750.html

¿ Has podido embeber la ventana de Mame en gambas ?. No creo que te haya hecho falta.

Encontré el proyecto del Arkanoid. Es para Gambas2. Si no lo encuentras te lo subo aquí.
En el proyecto ha creado una clase para el manejo del joystick.

gambas class file

' Joystick.class - represents a HID game device containing
'                  one or more joysticks and buttons
'
' Copyright 2008 Rob Kudla, Binara, Inc. <rpm@kudla.org>
'
' This program is free software; you can redistribute it and/or modify
' it under the terms of the GNU General Public License version 2 as
' published by the Free Software Foundation.

'Estado de las teclas de direccion del joystick  
Public UpState As Byte
Public DownState As Byte
Public LeftState As Byte
Public RightState As Byte
'
Public Boton0 As Boolean
Public Boton1 As Boolean
Public Boton2 As Boolean
Public Boton3 As Boolean
Public Boton4 As Boolean
Public Boton5 As Boolean
Public Boton6 As Boolean
Public Boton7 As Boolean
Public Boton8 As Boolean
Public Boton9 As Boolean
Public Boton10 As Boolean
Public Boton11 As Boolean
Private jsdev As Process

Public Sub _new(Optional device As String)
  
  If device = "" Then device = "/dev/input/js0"
  ' the interpreter dies when we try to read from /dev/input/js0 as a file
  ' saying "invalid argument", so we have to run cat
  jsdev = Exec ["cat", device] For Read As "Device"
  
End

Public Sub Close()
  
  ' kill the cat process if it's still going
  Try jsdev.Kill
  
End

Public Sub Device_Read()
  
  Dim stamp As Integer
  Dim value As Short
  Dim myevent As Byte
  Dim number As Byte
  Dim test As String
  
  Read #jsdev, stamp, 4 ' 4 bytes
  Read #jsdev, value, 2 ' 2 bytes
  Read #jsdev, myevent, 1 ' 1 byte
  Read #jsdev, number, 1 ' 1 byte
  
  If myevent And 1 Then 'Si es un boton
    If value Then 'Si se presiona un boton
      Select Case number
        Case 0
          boton0 = True
        Case 1
          boton1 = True
        Case 2
          boton2 = True
        Case 3
          boton3 = True
        Case 4
          boton4 = True
        Case 5
          boton5 = True
        Case 6
          boton6 = True
        Case 7
          boton7 = True
        Case 8
          boton8 = True
        Case 9
          boton9 = True
        Case 10
          boton10 = True
        Case 11
          boton11 = True
      End Select
    Else 'Si se suelta un boton
      Select Case number
        Case 0
          boton0 = False
        Case 1
          boton1 = False
        Case 2
          boton2 = False
        Case 3
          boton3 = False
        Case 4
          boton4 = False
        Case 5
          boton5 = False
        Case 6
          boton6 = False
        Case 7
          boton7 = False
        Case 8
          boton8 = False
        Case 9
          boton9 = False
        Case 10
          boton10 = False
        Case 11
          boton11 = False
      End Select
    Endif
    'si es del Joystick
  Else If myevent And 2 Then
    '******************Si Movemos el Joystick*************
    'Si pulsamos ARRIBA
    If number = 1 And value < 0 Then
      UpState = 1
      Downstate = 0
    End If
    'Si pulsamos ABAJO
    If number = 1 And value > 0 Then
      Downstate = 1
      UpState = 0
    End If
    'Si pulsamos DERECHA
    If number = 0 And value > 0 Then
      RightState = 1
      LeftState = 0
    End If
    'Si pulsamos DERECHA
    If number = 0 And value < 0 Then
      LeftState = 1
      RightState = 0
    End If
    '*****************Si soltamos el joystick***************
    If number = 1 And value = 0 Then
      UpState = 0
      Downstate = 0
    End If
    If number = 0 And value = 0 Then
      RightState = 0
      Leftstate = 0
    End If
  Endif
  
End

Public Function GetJoystickDirection() As Integer
  'Establece un numero a la direccion de la palanca o de los botones de direccion
  
  If UpState = 1 Then
    If RightState = 1 Then Return 9
    If Downstate = 1 Then Return 0
    If LeftState = 1 Then Return 7
    If rightstate = 0 And downstate = 0 And leftstate = 0 Then Return 8
  End If
  
  'Combinaciones con la tecla DERECHA
  If RightState = 1 Then
    If UpState = 1 Then Return 9
    If Downstate = 1 Then Return 3
    If LeftState = 1 Then Return 0
    If Upstate = 0 And downstate = 0 And leftstate = 0 Then Return 6
  End If
  
  'Combinaciones con la tecla IZQUIERDA
  If LeftState = 1 Then
    If UpState = 1 Then Return 7
    If Downstate = 1 Then Return 1
    If RightState = 1 Then Return 0
    If UpState = 0 And DownState = 0 And RightState = 0 Then Return 4
  End If
  
  'Combinaciones con la tecla ABAJO
  If DownState = 1 Then
    If UpState = 1 Then Return 0
    If Leftstate = 1 Then Return 1
    If RightState = 1 Then Return 3
    If UpState = 0 And LeftState = 0 And RightState = 0 Then Return 2
  End If
  
End

Public Function HoldButton0() As Boolean
  
  If Boton0 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton1() As Boolean
  
  If Boton1 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton2() As Boolean
  
  If Boton2 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton3() As Boolean
  
  If Boton3 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton4() As Boolean
  
  If Boton4 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton5() As Boolean
  
  If Boton5 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton6() As Boolean
  
  If Boton6 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton7() As Boolean
  
  If Boton7 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton8() As Boolean
  
  If Boton8 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton9() As Boolean
  
  If Boton9 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton10() As Boolean
  
  If Boton10 = True Then
    Return True
  Else
    Return False
  End If
  
End

Public Function HoldButton11() As Boolean
  
  If Boton11 = True Then
    Return True
  Else
    Return False
  End If
  
End
 


Es muy probable que sea un compañero de nuestra comunidad.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Lanzador MAME, JukeBox, Karaoke 
 
¿ Vas a usar SDL o  QT/GTK ?.  
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Lanzador MAME, JukeBox, Karaoke 
 
Shell escribió: [Ver mensaje]
¿ Vas a usar SDL o  QT/GTK ?.  


 

ni idea
supongo que SDL

El Mame viene con launcher propio, pero la idea es no usarlo sino hacer un Shell desde mi lanzador

Tampoco quiero que se vea nada de SO.
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron