Virtual Pinball Cabinet, B2S

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Introducció

Jacks open mini pinball.jpg

He fet dues màquines FS (Fullscreen), i ara és el moment d'instal.lar i provar la configuració B2S (backglass to screen), ja veurem si farem una màquina. La configuració B2S és la típica de dues pantalles, la principal que és la taula (16:9), i el backglass (4:3) que té la imatge del backglass i el score (DMD o reels). Evidentment, la targeta de video haurà de tenir dues sortides, en ppi una HDMI pel monitor principal (16:9) i una altra DVI per al monitor de backglass (4:3).

La carpeta del projecte serà VisualPinball_VP9_B2S/, i la idea és implementar les mateixes taules que tinc en la configuració FS.

He aconseguit portar a B2S la majoria de les taules, i algunes no. Per tal de tenir el número de 200 taules disponibles, n'he ficat a B2S algunes més.

Per fer aquesta primera màquina he escollit el disseny de la taula Jacks Open (Gottlieb, 1977), doncs és un disseny relativament fàcil i vull practicar la talladora de vinils, pintura i màscares.

No confondre Jacks Open (Gottlieb, 1977) amb Jacks to Open (Mylstar, 1984), que és un remake (Jacks to Open' was a remake of the 1-player EM game Gottlieb's 1977 'Jacks Open')

Conversió taules FS a B2S (llegir, part 1)

Primer de tot, llegir aquestes tres entrades del fòrum

Què significa B2S?

Em sembla que les taules B2S necessiten un servidor de B2S (?). Efectivament, està explicat com s'instal.la i es configura aquí:

Taules FS vs B2S

A VPforums.org, dins l'apartat VP9 Cabinet Tables, puc descarregar les taules de l'apartat Fullscreen Cabinet (que són les meves taules FS) o Fullscreen B2S Cabinet (que n'hi ha molt poques en comparació amb l'apartat anterior). Com és que n'hi ha tan poques? Doncs perquè de fet no cal, com es comenta en un dels enllaços és molt fàcil convertir el script FS a B2S. De fet això ja ho havia fet a l'inversa: quan configurava FS hi havia taules que no funcionaven, i és que estaven configurades per a B2S.

A part d'editar el script de cada taula, també necessitaré el fitxer screenres.txt, i suposo que b2s.vbs. Com que jo ja tinc totes les taules FS configurades, em centro en aquestes. Evidentment, s'ha de descarregar les imatges de backglass.

How to install DirectB2S backglass, part 2

Descarreguem els fitxers de backglass (DirectB2S): Download a DirectB2S backglass and unzip it to the Visual Pinball\Tables folder:

Per ex, 250cc. Fitxer: 250cc (Inder 1992).directb2s -> s'ha de renombrar al nom de la taula, i conservar l'extensió .directb2s. És a dir, la taula i el backglass es diuen igual, canvia l'extensió.

Install B2S Server to the Visual Pinball\Tables folder

1. First of all check the color depth of the backglass monitor. It should be 32bit.

2. The B2S backglass server requires .NET Framework 4 installed on your computer. El descarrego de:

3. Unzip all backglass server files (són 4 ó 5 arxius, exe's i dll's) into your VP tables folder and overwrite already existing files with this new ones.

4. Rightclick the B2SBackglassServer.dll and click on Properties. Maybe you'll find the following text on the General tab:

This file came from another computer and might be blocked to help protect this computer". Click on the "Unblock" button.
If you are not able to find this text everything is allright, too.

5. Crear el fitxer screenres.txt Explicació:

1366 <-- Playfild screen X resolution (width)
768 <-- playfield screen Y resolution (height)
1280 <-- Backglass screen X resolution (width)
1024 <-- Backglass screen Y resolution(height)
2 <-- Display number for the backglass
0 <-- offset for the backglass on the selected display (normally left at 0)
0 <-- offset for the backglass on the selected display (normally left at 0)
600 <-- Width of the DMD area in pixls
200 <-- Height of the DMD area in pixels
1280 <-- X position of the DMD area relative to the upper left corner of the backglass screen
100 <-- Y position of the DMD area relative to the upper left corner of the backglass screen
0 <-- Y-flip, flips the LED display uppside down. Used in P2K style cabs.
pantalla 1 (ppal)
1680x1050 (32 bits)
pantalla 2 (backglass)
1280x1024 (32 bits)

screenres.txt: (aquesta configuració funciona per a la tele LG Flatron)

1680
1050
1280
1024
2
0
0
600
200
1280
0
0

TV Samsung 22:

Haurem d'anar a la configuració de la TV, i fer Ajuste de pantalla. No tinc problemes de pèrdual de visió com em passa amb el LG Flatron, la qual cosa confirma que era un problema de la tele i no de la targeta de video.

screenres.txt: (TV Samsung 22)

1920
1080
1280
1024
2
0
0
600
200
1280
0
0

6. Start the 'B2SBackglassServerRegisterApp.exe' in the VP tables folder and the server dll should be registered. IMPORTANT: With Win7 start the exe as Administrator. -> abans de fer això s'ha de crear el fitxer ScreenRes.txt

You're ready to download and play some 'directB2S' backglasses.

7. Modify existing table script to change from using VPinMame server to the B2S Server:

7.1. Open table script 
7.2. If you see 'Choose Controller: 1-VPM, 2-UVP, 3-B2S' near the top of script, change it to option 3
    - Else, search for 
Set Controller = CreateObject("VPinMAME.Controller")
and change it to
Set Controller = CreateObject("B2S.Server")       

Aleshores ja puc obrir la taula i ja funciona. El primer que hauré de fer és treure el score que tenia de quan configurava la taula per a FS. El tema és que quan amb el cursor em fico a sobre de la pantalla del backglass, amb el botó dret puc configurar moltes opcions del backlight (número de flashes), que tenen a veure amb el rendiment, i concretament treure el quadre del DMF que tenia per a FS: això es fa Visibility > DMD: hidden

Quina és la pantalla 1 i la pantalla 2?

El playfield s'ha de definir com la pantalla1, encara que vagi a la dreta. El backlight és la pantalla2. La idea és que quan em desplaci cap a la dreta pel playfield, quan surti de la pantalla, el cursor m'ha d'aparèixer en l'esquerra de la pantalla del backlight (que col·loco a l'esquerre). Encara que no sigui intuïtiu, és com s'ha de fer per posicionar el DMD. D'aquesta manera, si la pantalla del playfield té 1920 px, el DMD el trobaré a la segona pantalla ficant un valor més gran que 1920, per ex:

.Games(cGameName).Settings.Value("dmd_pos_x")= 1750

Resolució de problemes

1.. No sé posicionar el DMD en la backglass (pantalla secundària).

ratolí Sobre el DMD -> Game Settings > Cabinet mode. D'aquesta manera ara puc posicionar el DMD en la pantalla secundària, ficant la geometria directament en el script:

    With Controller
        .GameName = cGameName
        .SplashInfoLine = "Austin Powers (Stern 2001)" & vbNewLine & "VP9.2 + table by Javier1515 v.1.0"
		.Games(cGameName).Settings.Value("dmd_pos_x")= 1980
		.Games(cGameName).Settings.Value("dmd_pos_y")=50
		.Games(cGameName).Settings.Value("dmd_width")=300
		.Games(cGameName).Settings.Value("dmd_height")=90
        .Games(cGameName).Settings.Value("rol") = 0

Ara sí que funciona la geometria: la pantalla ppal són 1920, i per posicionar-ho a dalt de la pantalla secundària (20px), el valor a ficar és 1920+20=1980px. Això només funciona marcant cabinet mode.

2. Centrar el DMD en el backlight: geometria

geometria
1920x1080 (playfield)
1280x1024 (bakclight)

dimensions que vull del DMD 500x150

per tal de què quedi centrat en el backlight:
1920 + 1280/2 -500/2 = 2310
1024/2 - 150/2 = 437

3. S'ha de treure sempre el DMD quan configuro B2S?

No, s'ha de treure el DMD quan la informació que ofereix és la mateixa que en el backglass. Però hi ha DMD que són molt rics i ofereixen videos, informació extra, ... És per això que hi ha la configuració de tres pantalles.

4. El DMD em queda a sota, no sé posicionar-lo.

Potser en el PinballX això es solucionaria. De totes maneres, per ficar-lo en el backlight forço la posició, per ex ficant en el codi:

	.Games(cGameName).Settings.Value("dmd_pos_x")= 2310
	.Games(cGameName).Settings.Value("dmd_pos_y")=437
	.Games(cGameName).Settings.Value("dmd_width")=500
	.Games(cGameName).Settings.Value("dmd_height")=150

Un cop ja tinc el DMD en el backglass, aleshores ja no queda a sota. Ficant el border el puc reposicionar, i comentar aleshores les línies de codi que acabo de ficar. La propera vegada que obro, conservo la posició.

Més sobre el posicionament del DMD, i guardar les configuracions

All of the DMD locations are stored in the registry. You can use setdmd to position them all in about 20 seconds. It's a great program.

SetDMD is a tool, mainly for virtual pinball cabinet owners, that allows you to easily set your DMD position as well as some other parameters in the DMD for all installed ROMs in the system at once. I found setting up a table design was somewhat of a tedious process having to load each ROM in vpmame "once" to agree you own it, setting up the DMD location, etc. I wrote a utility that does all this for you. It will:

1) Allow you to set a DMD screen location and save it to all tables - at any time. <
2) Scan a directory of ROMs and create all the necessary registry entries so the DMD will be in the location you have set up and they will appear "played once" so you don't have to get prompted the first time 
3) Gives you other options like changing dmd color, antialiasing etc.

De totes maneres, he mirat aquesta utilitat, i no veig que em pugui ser útil. El que és útil és la possibilitat d'exportar/importar els valors del registre directament.

La informació del posicionament del DMD es guarda a:

HKEY_CURRENT_USER->Software->Freeware->Visual Pinmame

Per tant, no és una bona idea ficar la geometria dins de la taula, com havia fet. És millor comentar totes aquestes línies de la geometria, i modificar directament la geometria en el registre (i el registre també es pot exportar i importar per anar ràpid). He estat mirant la utilitat SetDMD, però jo no l'hi veig massa la utilitat.

Per tant, si no tinc la geometria dins del script de les taules, no hi ha d'haver cap diferència entre les taules amb configuracions diferents (per exemple 1920_1080_1280_720 o 1366_768_1024_768. La clau està en importar els valors del registre, i modificar-los allà mateix, i en tot cas exportar la nova configuració. Actualment tinc 60 (de les 200) taules que tenen DMD.

Per a la geometria 1920_1080_1280_1024, uns bons valors per al registre són:

dmd_height: 139 (valor decimal)
dmd_posx: 2247
dmd_posy: 838
dmd_idth: 550

Però hi ha taules que és millor posicionar el DMD a dalt, o hi ha taules que tenen un espai específic on s'ha de ficar el DMD. Un cop he comprovat les 60 taules, ja es pot exportar els valors del registre, especificant en el nom del fitxer la geometria (per ex, vpinmame_dmd_1920_1080_1280_1024.reg).

Una altra cosa que he descobert és que hi ha backglasses que porten un layout de DMD més currat. En alguns casos (per ex, Whirlwind) convé aprofitar-ho. Per això creo en l'Excel la columna reposicionar DMD, on dexio constància les taules que no tenen DMD, les taules amb DMD bàsic, i les taules amb DMD més currat (B2S Grill Visible). Això ve perquè s'ha d'activar l'opció B2S Grill Visible.

L'opció de skip pinball test i cabinet mode també estan en el registre.

PinballX amb Directb2s

Recordem la configuració de les dues pantalles:

per tal de què en el PinballX funcioni la imatge del Backglass, en els settings.exe del PinballX he de ficar (3a pantalla):

I aleshores és important ficar les imatges de backglass (1280x1024) en aquesta carpeta. PinballX/Media/Visual Pinball/Backglass Images

Per obtenir les imatges ràpidament (relativament), el que puc fer és una captura de pantalla (Impr Pantalla), i obtinc una impressió de pantalla de les dues pantalles, i aleshores amb el Gimp puc obtenir la imatge de backglass. Això ho faig per a les 200 taules, i encara que és una mica lent, potser és el més ràpid.

És important ficar les imatges de backglass en aquesta carpeta, perquè si no el que fa és buscar el fitxer directb2s i extreure d'aquest fitxer la imatge, i aquest és un procés lent que fa que qudi la càrrega de la imatge molt ralentida.

Si ja tinc totes les imatges dels playfield, i només em falten els backglass, recordar que des del PînballX també puc fer captura de pantalla: S captura el playfield; B captura el backglass. Els Backglass van a parar a Media/Visual Pinball/Screen Grabs Backglass, i les imatges les he de renombrar correctament (segons el .vpt), i ficar-les a Media/Visual Pinball/Backglass Images

Ordinador

GPU: NVidia GeForce 240 (és la mateixa que havia fer servir en la segona taula de pinball (color wengué)).

NOTA: diferència entre Core 2 Quad i Quad Core: Core 2 Quad es el modelo, y Quad-Core significa que esta formado por 4 nucleos, aunque basicamente es lo mismo, ya que los Intel Core 2 Quad son Quad-Core.

Windows 7

Un cop finalitzada la màquina, coses a fer:

Construcció

Faig servir la nostra tele: TV Samsung 22 polzades, model: UE2205020NW. Dimensions:

update 24-10-2017: he comprat una tele Philips de 22. -> Malament, molt difícil de treure el marc

update 28-11-2017:

Idees construcció

Perfils Servei Estació (Nov 2017)

Angle (perfil 90º):
Acer:
30mmx30mmx3mm 1m 10,25e -> LM: 5,10e (1m); 8,5e (2m)
35mmx35mmx3.5mm 1m 10,25e -> LM: 7,45e (1m); 14e (2m)
40mmx40mmx4mm 1m 14e -> LM: 9,5e (1m)

Ls desiguals:
20mmx15mmx1.5mm 1m 5.30e
30mmx20mmx2mm 1m 9,5e

Perfils 90º:
(TBD)

Pletines:
alumini galvanitzat:

40mmx1.5mm 1m 5,90e
60mmx1.5mm 1m 8,45e

alumini anoditzat:
15mmx2mm 1m
20mmx2mm 1m
25mmx2mm 1m
30mmx2mm 1m

alumini brut:
40mmx2mm 1m  -> LM: 3,95e (1m); 6,10e (2m); 9,90e (2,5m)
10mmx2mm 1m
15mmx2mm 1m
20mmx2mm 1m
25mmx2mm 1m
30mmx2mm 1m
35mmx2mm 1m
50mmx3mm 1m

(també hi ha 2m...)

Us:
(TBD)

Leroy Merlin:

Artwork. Stencils

Faré el disseny de la màquina Jacks Open. Es tracta de fer unes plantilles amb vinil per tal pintar amb spray (tècnica del stencil). Hi hala màquina de tallar vinils.

Sí que disposem d'un ploter de vinil Roland.
Si el vols fer servir, has de portar tu el material, i el preu d'ús de la màquina és de 2.50 € els 30 minuts.
Pel que fa al material, els rotllos de vinil no han de superar els 60 cm d'ample.
Si vols venir diga'm quin dia de la setmana vinent t'aniria bé, excepte dilluns.
El nostre horari és de 17 a 21.30 h.
Belén Fernández
Coordinadora Espai Maker
FAB Casa del Mig Punt Multimèdia
www.puntmultimedia.org
93 291 42 62

He fet servir la Silhouette Cameo del MOB. Vaig cometre l'error de tallar els vinils a 30 cm, perquè aquest és el tamany màxim al qual pot tallar els vinils, però els havia de tallar a 32-34 cm. S'ha d'ajustar la punta per tal de què realment talli els vinils. Si no, has de fer la feina dues vegades. Realment el mètode funciona, tot i que per ser la primera vegada m'ha donat bastanta feina.

Analog plunger

S'ha de vigilar que el plunger no interfereixi amb la posició de la tele ni amb els botons laterals.

idees per fer el sensor del plunger:

El problema es divideix en vàries parts:

  1. construcció mecànica del plunger
  2. sensor (rotary encoder) + arduino + software arduino
  3. Arduino (o un altre microcontrolador, com el KL25Z ) com a USB HID (el microcontrolador s'ha de comportar com un joystick)
  4. Configuració Visual Pinball per llegir el valor del joystick. Interfacing to Visual Pinball: VP is set up to read an analog plunger via the joystick interface. The KL25Z has an on-board USB port that lets it act like a USB HID (human interface device), so with the proper USB configuration reports we can make it look to Windows like a joystick.

Està documentat a: Arduino#Arduino_Joystick_library_.28novembre_2017.29

Sembla ser que el meu dispositiu ha de ser un 
Gamepad en comptes d'un joystick. A Windows, puc 
veure el gamepad amb l'aplicatiu: '''joy.cpl'''. 
A propiedades puc veure quin és l'eix que tinc actiu.

Una altra possibilitat és instal.lar un 
aplicatiu per configurar els joysticks-gamepads:
xpadder
RB-joy

Visual Pinball > Preferences > Joystick ? 

(després de key)

http://www.rbsoft.de/html/rb-joy.html
Instal.lar versió 8.4

important: Enable mechanical plunger en el plunger, en l'editor de la taula.

I en aquest fòrum (http://www.vpforums.org/index.php?showtopic=22470) he trobat una bona idea per a un analog plunger, que crec que podria funcionar.

Idea plunger.jpg

Configuració final Analog Plunger

Finalment la configuració que funciona bé és un potenciòmetre final. Encara que és físic, funciona bé. Això sí, s'haurà de veure el comportament que té a llarg termini.

Com es comenta a:

els valors del analog plunger no han d'anar de -1000 a 1000m sinó de 0 a 1000. Això ho puc provar amb el programa joystick (Direct Input Joysticj Sample). Per tal de canviar -1000 -> 1000 a 0 -> 1000 he de fer servir el programa DXTweak2 (old). A Calibration, en comptes d'anar de -32768 (min) a 32767 (max), passant pel centre a 0, he de ficar que el centre sigui -32768. El dead zone el puc deixar al 0%, però també es pot canviar si s'hagués d'ajustar el plunger.

Per veure l'efecte que té aquest canvi, tinc la taula de prova plunger_test, i veig que el plunger agafa els valors de 0 a 25. Però per tal de què el plunger canvïi des del principi, és important que els valors que agafa el joystick DirectX sigui de 0 a 1000. Aquests tres programes als tinc a la carpeta Downloads.

Quan es reinicia l'ordinador la calibració del plunger es manté (com ha de ser).

Interface I-PAC amb moneder electrònic

2W1g5zi.png

El moneder electrònic no funciona igual que els botons. Primer de tot que està alimentat a 12V. Hi ha una línia que dóna un pols (suposo que 12V) quan posem una moneda. Per fer la interface amb el I-PAC (compatible), el millor, més lògic i ràpid és ficar un relé que tanqui el circuit.

El relé funciona senzillament aplicant 12V en els dos bornes principals. La única cosa que hem de tenir en compte és que el senyal de coin és un pols a GND. Per tant, els dos bornes del relé són a 12V i a COIN (que normalment està a 12V i fa un pols a GND quan detecta una moneda).

 12V - |------|-I-PAC
       | relé |
COIN - |------|-I-PAC

El botó de COIN (blanc), també associat a les instruccions (I), el puc activar o desactivar amb l'interruptor que poso a sota. Tant el botó de coin/instruccions com el moneder electrònic estan associats a la tecla 5 en el Joytokey, però són dos entrades diferents. (de la mateixa manera que en un botó puc associar vàries tecles, no hi ha cap problema per tal de què dos botons estiguin associats a la mateixa tecla).

Arduino Pro Micro: plunger i tilt analògics

Arduino pro micro.png

Video que he penjat del funcionament del plunger analògic:

Si he de construir una màquina amb plunger i tilt analògics, no cal utilitzar un I-PAC compatible, sinó que ho faré amb un Arduino Pro Micro. Evidentment, el firmware ha d'implementar la llibreria Joystick que fa que l'arduino el reconegui (tant Linux com Windows) com a dispositiu HID (Human Interface Device), és a dir, joystick o gamepad.

Entrades analògiques:

Entrades digitals:

Extres: (potser són necessaris)

Per tant, idealment en els laterals només tindré el botó dels flippers (el volum pot estar al darrere, i tilt no cal que n'hi hagi). En el frontal de fet tampoc caldria el botó del moneder).

Arduino Pro Micro (plunger, acceleròmetre, i 6 botons)

			*	*
			*	* GND -> necessari per al potenciòmetre
			*	*
			*	* VCC -> necessari per al potenciòmetre
		SDA	*	*
 		SCL	*	*
	4: Left. BUT0	*	*
   5: Right. BUT1	*	* A0 (potenciòmetre)
      6: Exit. BUT2	*	*
    7: Start. BUT3	*	*
    8: Coin. BUT4	*	*
   9: Enter. BUT5	*	*

El firmware de l'Arduino Pro Micro està documentat a:

L'acceleròmetre MPU-6050 és de 3.2V, i l'Arduino és de 5V, però no hi ha problema, llegeix bé les entrades digitals dels SDA i SCL.

Dimensions

Mides minivirtual pinball.png

És una màquina pensada per jugar assegut.

Pressupost

De moment no he utilitzat:

A millorar propera versió

Videos i Xarxes socials

Posts www.joanillo.org:

Video promoció:

Video construcció:

QoS. Guió de coses a comprovar abans d'entrega

Estic fent... (todo)

Transport. Instruccions de muntatge

Embalatge.png

En la primera de màquines B2S, el backglass es desmunta respecte el cos de la màquina. I això vol dir que s'envia el paquet amb el backglass desmuntat i s'haurà de tornar a muntar en el destí.

Versió 2 (novembre 2018-gener 2019). Jacks Open

Pinball jacks open.jpg

Les màquines 2 i 3 les he fet bastant en paral·lel Tema: Jack's Open

Ordinador

Pressupost (400 e)

Versió 3 (gener 2019). Marvel-Avengers

Pinball avengers.png

Ordinador

Pressupost (300e)


creat per Joan Quintana Compte, octubre 2017, juny 2018, febrer 2019

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
Institut Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines