30
Windows 10 for fun Building an arcade bartop Marco Parenzan @marco_Parenzan – [email protected] Community Lead 1nn0va – Pordenone

Windows 10 for fun - Building an Arcade BarTop

Embed Size (px)

Citation preview

Windows 10 for funBuilding an arcade bartopMarco Parenzan@marco_Parenzan – [email protected] Lead 1nn0va – Pordenone

@marco_Parenzan – [email protected] Lead 1nn0va – Pordenone

Microsoft Azure MVP 2016

Microsoft Azure Trainer – Cloud Academy Inc.

Curious about Retrogaming and IoT

Marco Parenzan

Cos’è un Arcade Bar-Top?• Un arcade è il mobile (in legno) di un gioco da Sala

Giochi o da Bar• Un arcade è tipicamente un mobile ad altezza piena• Un arcade Bar-Top è un arcade «senza la parte sotto»

da appoggiare ad un banco• In pratica è più piccolo e comodo

• Ci sono i siti con gli schemi di taglio già pronti• https://3dwarehouse.sketchup.com/model.html?i

d=f82c9367bc2cd4fe7a3f6e2972c8483e

• http://www.classicarcadecabinets.com/elevator-action.html)

Perchè un Arcade Bar-Top?• Per sperimentarsi con gli attrezzi e con il legno• …e sfruttare il fatto che tua moglie ti ha chiesto di fare un

lavoro in legno…• …almeno per me…di giocare alla fine non ci penso proprio…• Per soddisfare il sogno di bambino di avere a casa un vero arcade

da sala giochi• Per giustificare la sperimentazione di tecnologie• IoT: connettere l’arcade Bar-Top a Internet• Desktop: se sviluppi solo Web e Cloud, il desktop te lo

dimentichi• Giochi: un hobby ce lo devi pure avere!

Sketching with wood!• Se avessi dovuto fare il lavoro

ingegneristicamente, alla fine non sarei mai riuscito a farlo• Come dire…è tutto storto, ma sta in piedi

• Avevo un seghetto alternativo, un avvitatore e un pezzo di legno…

• Il metro e la matita solo per indicare la direzione…• E c’era la curva maledetta…basta farla

dritta!

“E poi c’è il monitor…”• Cosa ci va dentro un arcade?• Un monitor CRT possibilmente ruotato in verticaleanche

no vero? Io non sono così• I puristi del retrogaming voglioni il CRT con le linee del

raster che si vedono! (e sul LCD le simulano!)• Non sono purista…meglio un LCD, più leggero• almeno per me

• Una scheda Jamma (e altre)Ma c’è la Rasberry e MAME…

• Una gettonieraBoh, non mi interessa l’effetto «Fonzie»• Il JoystickEh, quello sì, con i microswitch che fanno

click/clack

Tip sul monitor da recuperare!• HDMI2HDMIOK• Ma difficilmente, ad oggi recuperate un monitor HDMI per

queste cose• VGA2VGAOK…no• Certo, nativamente la cosa funziona…• …ma la R.PI non è VGA

• HDMI2VGANO!• Adattatore con alimentazione, altrimenti la Raspberry non

funziona (c’è un pin disabilitato sulla PI per protezione…potenze assorbite)

• Soluzione? HDMI2DVI!• Non c’è l’audio, ma poco importa…• Ah certo…il monitor deve essere DVI….

Il mercatino delle pulci…• A parte il joystick, da comprare assolutamente…• …tutto il resto si recupera• Eh sì…costa meno

• Ad esempio un monitor LCD: costa meno aprirne uno e recuperarne l’interno• Poi c’è la Raspberry che oramai hanno tutti…• E poi ci si sbizzarrisce• Casse audio• Lettori USB per SD Card• Lampade USB…

• E ricordatevi di una tastiera wireless• Quelle da Mediacenter

Arranging things…

Ah, la Raspberry PI 3…• WARNING! POLEMICA?!?!?!?• 40€/Linux Raspian…• Ma posso giocare a MAME anche sul PC se son

«poveretto»• MAME• Dove trovo la distribuzione?• Anime pie…

• Poi lo configuro• sudo nano /boot/config.txt• E via di sudo apt-get…per scaricare SDL, QT…

• E poi finalmente….lento• Overclock!

Marco is lazy!• Pigrizia per me significa essere focalizzato• Non ho voglia di trattare dettagli non centrati sul problema• RECAP: sviluppare IoT, Azure, Games, non ricompilare MAME (non c’è…solo qualche

anima pia)• http://choccyhobnob.com/ per avere una distribuzione per Raspbian

• Oppure PiPlay o Retropie• Per questo amo Microsoft, Windows, .NET, Visual Studio• x86/x64 are better than ARM• Linux e Windows full…• .NET Core

• Ovviamente Windows 10!

Un mondo nuovo per le schede madri x86/x64• MicroATX? • Meglio MiniITX, Mini STX, Intel NUC

• ATX power supply?• Meglio Notebook 19V

• SATA/SSD?• Meglio mSATA2

• Processore su socket?• Meglio SOCCeleron QuadCore 3160! Fanless!

• Il tutto significa meno cavi, più semplice da montare• Un mondo nuovo:• Pochi produttori MainStream (AsRock, GigaByte pochissimi modelli)• Mondo industrialSì, qui vado fuori budget (150€ min senza RAM e disco)

LVDS

mSATA2

19V

MiniPC!• Intel Atom 3735/Z8300Quad Core• 2Gb RAM• SSD 32Gb• HDMI• Slot SD Card• Ethernet, WiFi, Bluetooth• 12V + Jack!• Windows 10 licenziato

• Nasce e muore con Windows 10• Già installato

• Non è possibile installare Linux (?!?!?!)• Non morirò• Permettete, non è una questione di

guerra Windows/Linux

• TOT < 100€ su Amazon o nelle fiere• Su AliExpress e simili si trova anche la sola scheda!• https://it.aliexpress.com/item/Newest-fanless-PICO-itx-motherboard-105-70mm-itx-mainboar

d-Z3735F/32563532409.html

Joystick• Simbolo di un arcade• Microswitch («click clack»)• Si comprano i kit con leva, tasti, cavi e

controller• ½ giocatori…• Si vede come un Joystick USB• http://www.arcadeworlduk.com/• In Italia Futura Elettronica, ad esempio,

ma se li fanno pagare e non c’è molta scelta

Scaling out arcade…• Gestire i giochi sull’arcade remotamente• Anche se Windows 10 e con la tastiera, comunque è scomodo• Ho il mio disco «Retrogaming» in rete a casa

• Ad un evento fieristico (Radioamatore di Pordenone) vorrei portare un po’ di questi arcade• Come li aggiorno?

• Due soluzioni• OneDrive• Azure

OneDrive • Creato account ad hoc per l’arcade• Login su Windows 10• Bisogna fare l’autenticazione automatica

• Configurato One Drive• Spostato su SD Card…alla faccia di OneDrive che non si può

spostare, ma su Dischi removibili si!• Gestisco dal mio desktop l’account e carico nuove ROM• Tutti gli arcade con lo stesso account• Aggiornati!• Anche con le nuove versioni di MAME!

Azure• Azure Storage• Costa meno se superi i 5Gb (credo…ho perso il conto)• Endpoint automatico, readonly• Se il business scalasse (ah ah ah ah ah ah)CDN!

• Creare un wall per gli utenti usano l’arcade• Messaggistica• Punteggi

• Ma come scarico le ROM?

Launch Shell: Buy or Make• Si trovano delle console di lancio per MAME• Ora è direttamente gestita da MAME stesso• Ma con il Joystick non è comoda ed è piena di opzioni• E dov’è il divertimento del programmatore?

• Andiamo a programmare!• Universal Windows App con .NET Core• XAML per la UI• Attenzione ad accedere ad uno storage removibile per la SD

• Problema: UWP supporta solo i controller per XBOX 360 e XBOX One.• Windows.UI.Input.Gamepads• Tutti i joystick USB (visti da windows come HID) non funzionano

• Quindi?

DEMOUWP LaunchBox

Perchè .NET Core?• La teoria dice che se scelgo Windows (e basta) allora posso usare:• .NET Full (.NET 2015, 4.6)• WPF• Joystick USB che voglio

• Ma ci sono altre cose• Sviluppare giochi• Un altro progetto

Sviluppare giochi con XAML• Puro divertimento• Nessuna brama di diventare game developer• Amo gli anni ‘80 e il Commodore 64….e gli schiacciapensieri!• 2D• Pochi colori• Pochi fronzoli• Tanto divertimento

• Manca così poco a finirlo…ma non ho mai tempo!

DEMOMario Bros XAML/WPF

…e ancora non si è capito perchè .NET Core…

Back to the Raspberry PI!• Windows 10 IoT Core• Ricordate che devo giustificare tutto questo come lavoro a

mia moglie? IoT, Azure…. • Imparo UWP e magari lo uso anche per lavoro• Non parliamo del futuro di UWP

• Raspberry PI Zero• Gameboy Zero• Componenti Aftermarket

• Ho un bellissimo schermo 5 pollici da usare comprato su Banggood!

DEMOMario Bros UWP

Conclusioni• Non serve gran manualità se non ci si arrabbia se è «storto»• Tanta prototipazione perché componenti possono variare e le scelte non sono

ovvie all’inizio• Progetto Lento• Amate i cinesi!• Spenderete tanto in attrezzi!• Seghetto alternativo e levigatrice• Punte a tazza e frese• Alimentazione, pulsanti, cavi• Fascette a go-go!

• E a seconda del monitor, tutto cambia!!!!!

To Do Hardware• Trovare il tempo! • Spegnimento e accensione• Con un MiniPC c’è il problema di spegnerlo e accenderlo senza tasto• Spegnimento ok….comando• Accensione? Standby? WakeonLan? Accensione con Mouse• Anche con la Raspberry c’è il problema dello spegnimento «violento» in caso di Raspbian

• Stampe adesive• Preparare il progetto definitivo• Legno tagliato al laser• Trovare i componenti interni ottimali (aspetto la Fiera Radioamatore 2 di Pordenone)

• Arcade Fullsize

To Do Software• LaunchBox• Azure• Completarlo

• Giochi• Completarne un po’ • Esercitarsi con i giochi anni ‘80 (io uso il Commodore 64)

• .NET Core su Linux • Xamarin?• HTML5?• Curioso su SkiaSharp (https://developer.xamarin.com/guides/cross-platform/drawing/)

GRAZIE

Marco Parenzan@marco_Parenzan – [email protected]://gihub.com/marcoparenzan/Community Lead 1nn0va – Pordenone