Atelier Arcade 1ère Partie : Arcade, Raspberry Pi et Raspicade Yann Morère - 2015 But de l'atelier ● ● Connaître un peu le monde de l'arcade Se familiariser avec le/les Raspberry Pi et le système d'exploitation Linux ● Comprendre les émulateurs et les roms ● Comprendre le fonctionnement de Raspicade ● ● Connaître les composants d'une borne et le câblage Créer sa borne arcade 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 2 Retrogaming ● ● ● ● « activité qui consiste à jouer à des jeux vidéo anciens et à les collectionner ( consoles de jeu, micro-ordinateurs, bornes d'arcades) ». jeux vidéo « anciens » → jeux vidéo sortis pendant les quatre premières générations de consoles de jeux, soit depuis le début des années 1970 → 1995 pratique des jeux anciens s'est développée sur les PC modernes → création d'émulateurs d'anciennes plates-formes. Diffusion de jeux abandogiciels tolérés par certains ayants droit 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 3 Salle d'Arcade 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 4 Petite histoire de l'Arcade ● Préhistoire : – 1777-1930 → Table bagatelle – 1869 → premier flipper moderne – 1931 → Marble games : Gottlieb crée la société Baffle Ball 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 5 Petite histoire de l'Arcade ● L’age de fer : 1950- 1968 – Ben Laposky créé le premier « Computer Art » avec un oscilloscope – 1958 : Willy Higinbotham créé « Tennis for Two » – 1961 : Spacewar! est programmé au MIT par le TMRC (Tech Model Railroad Club) 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 6 Petite histoire de l'Arcade ● L’age de bronze : 1968- 1978 – 1968 : Sega lance son premier jeu, Periscope, un jeu d’arcade électromécanique. – 1971 – Nolan Bushnell & Nutting Associates lancent Computer Space, la premiere borne d’arcade : meuble, PCB (Printed Circuit Board), un écran, un panneau de controle control panel, HPs, logo illuminé (le Marquee). 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 7 Petite histoire de l'Arcade ● L’age de bronze : 1968- 1978 – 1972 :Collossal Cave Adventure : premier jeu d’aventure en textes ; – 1974 : Atari lance Gran Trak 10, premier jeu video avec un volant et un levier de vitesse – 1975 – Gun Fight est le premier jeu utilisant un microprocesseur 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 8 Petite histoire de l'Arcade ● L’age de bronze : 1968- 1978 – 1976 : Nolan Bushnell conçoit « Breakout ». Programmation réalisée un certain Steve Jobs. Jobs confia la plupart du travail à son ami Steve Wozniak contre la somme de $ 350. (Alors que Steve Jobs toucha $5000 pour le projet !!!). Vous aimez toujours Apple ? – Exidy lance le jeu « Death Race », premier jeu vidéo controversé, car considéré comme violent à l’époque. Le but du jeu est de conduire une voiture et de heurter des personnages sur l’écran. Et on nous embête avec GTA ? 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 9 Petite histoire de l'Arcade ● L’age d’or : 1978- 1984 – 1978 : Space Invaders est lancé (Shoot vertical) → dérivés : galaxian, Galaga … – 1979 – « Warrior » est le premier jeu de combat « face à face », – Oct 1979 : Galaxian, le premier jeu d’arcade en couleur (RGB) : avant, couleurs simulées au moyen d’overlays en plastiques – Nov 1979 : , Atari lance « Asteroids ». il introduit les lois physiques du monde réel dans un monde virtuel 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 10 Petite histoire de l'Arcade ● L’age d’or : 1978- 1984 – 1980 : Rogue, premier jeu d’immersion dans un donjon/labyrinthe (Dungeon crawl), – Création de la société Activision – Atari lance « Red baron » premier jeu de simulation de vol à la 1ère personne – Asteroids d’Atari et Lunar Lander sont les deux premiers jeux enregistrés sous Copyright – Pac man est lancé et est le premier jeu populaire auprés des femmes – Battlezone est lancé : premier jeu 3D à paysages environnemental 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 11 Petite histoire de l'Arcade ● L’age d’or : 1978- 1984 – 1981 : lancement de Ms Pacman – « Scramble » de Konami est lancé : nouveau genre de jeu de shoot / bombing avec un défilement (scrolling) horizontal en continu (R-Type) – Atari lance Centipède, premier jeu entièrement designé par une femme. – « Vanguard » est lancé par SNK Corp. au Japon, premier jeu avec la possibilitée de « continuer » le jeu – Donkey Kong sera un immense succés pour Nintendo aux US – Tempest est le premier jeu à proposer ce qu’Atari appellera le « Skill Step », permettant aux joueurs de sélectionner leur niveau de démarrage et de difficulté – Namco lance le fameux « Galaga », une suite de galaxian, avec son lots de nouveautés comme le bonus « Challenging Stage » 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 12 Petite histoire de l'Arcade ● L’age d’or : 1978- 1984 – 1982 : Mystery House est le premier jeu d’aventures en texte auquel s’ajoute des graphismes – Sega lance « Astron Belt », premier jeu sur laserdisque au Japon. – « Zaxxon » premier jeu en pseudo 3D avec une vue isométrique en 3/4. – « Moon Patrol » premier jeu à proposer un scrolling « parallax » – Bally/Midway lance « Tron », basé sur le film du meme nom – « Joust », jeu de plateforme/combat est lancé par Williams – « Journey » est lancé, premier jeu à utiliser des sprites digitalisées 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 13 Petite histoire de l'Arcade ● L’age d’or : 1978- 1984 – 1983 : « Dragon’s Lair », premier jeu sur laserdisque rentable ! – Exidy lance « Crossbow » leur premier jeu de pistolet « Lightgun » – « Tapper » est lancé : c’est le premier jeu lancé dans différentes versions afin de correspondre aux différentes classes d’ages – 1984 : « Marble Madness » : beautée des graphismes, 3D isométrique surréaliste, premier jeu avec une bande musicale complete en stéréo, – Data East lance « Karate Champ », une référence et un modèle pour les jeux de combats futurs 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 14 Petite histoire de l'Arcade ● L’ère du plastique : 1985-1994 – 1985 : « Hang-On » sort et est nommé comme « premier jeu de simulation »… certainement à cause du fait que c’est le premier jeu à utiliser un objet physique pour simuler une activitée – 1986 : Nintendo lance « Super mario Bros », succés planétaire – 1987 : « R-Type » ré-invente le shoot-them-up avec un design de niveaux soigné, des graphismes et des armes de haut niveau… – 1989 : « Exterminator », premier jeu avec des graphismes entierement digitalisés – 1992 : Midway lance « Mortal Kombat », reconnus comme le premier jeu de combat à utiliser des personnages digitalisés et du sang – 1994 : « Killer Instinct » arrive sur le marché : c’est le premier jeu avec un disque dur, 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 15 Système d'Arcade ● ● ● ● Architecture : processeur central, un processeur ou chipset sonore, processeur graphique (système récent). normalement commercialisés dans un meuble : borne d'arcade → alimentation électrique, écran, manettes de jeu et monnayeur. Des connectiques standard comme le JAMMA ou le JVS facilitent les adaptations de matériel. Peut fonctionner sans borne à l'aide d'un supergun couplé à une télévision, une alimentation électrique et une manette de jeu. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 16 Système d'Arcade Marquee Side Bezel Panel T-Molding Monnayeur 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 17 Système d'Arcade ● JAMMA : standardisation mise en place par Japan Amusement Machinery Manufacturers Association – interchanger les cartes d'arcade sans avoir à changer la borne → réduction de coûts – connecteur doté de 56 broches (deux rangées de 28 broches) → peigne JAMMA – standard définit les connexions : deux joysticks à huit directions, deux boutons start et six boutons de contrôle (trois par joueur), le flux vidéo, l'alimentation électrique, support du son 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 18 Système d'Arcade ● MVS - Multi Video System : système de jeux vidéo pour borne d'arcade compatible JAMMA destiné aux salles d'arcade et créé par la société japonaise SNK en 1990 – utilisation de cartouches (comme pour les consoles) → changement rapide de jeux – possibilité de mettre plusieurs cartouches et donc plusieurs jeux, dans une même borne – version console du système, appelée Neo-Geo AES, pour que les particuliers 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 19 Raspberry Pi ● Le Raspberry Pi est un nano-ordinateur monocarte à processeur ARM conçu par le créateur de jeux vidéo David Braben, dans le cadre de sa fondation Raspberry Pi – taille d'une carte de crédit – encourager l'apprentissage de la programmation informatique – exécution de plusieurs variantes du système d'exploitation libre GNU/Linux et des logiciels compatibles – fourni nu (carte mère seule, sans boîtier, alimentation, clavier, souris ni écran) → diminuer les coûts et permettre l'utilisation de matériel de récupération. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 20 Raspberry Pi ● Les Différents Raspberry Pi A B+ 17/12/2015 A+ B512 rev2 Pi2 B Atelier Arcade : Raspberry Pi et Raspicade Pi zero 21 Raspberry Pi ● Caractéritiques : – 700 MHz ARM1176JZF-S core, 1 GHz ARM1176JZF-S core, 900 MHz quadricœur ARM Cortex-A7 – Broadcom VideoCore IV, OpenGL ES 2.0, MPEG-2 et VC-1, 1080p30 h.264/MPEG-4 AVC high-profile decodeur et encodeur – 256 Mo, 512 Mo, 1 Go – 8 × GPIO, 17 × GPIO, 17 × GPIO, UART, I²C bus, SPI bus avec deux chip selects, I²S audio, +3.3 V, +5 V – HDMI et Composite – SD, Micro SD – 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 22 Raspberry Pi ● Système d'exploitation: – Debian « jessie » est recommandé par la fondation Raspberry Pi avec sa version dédiée Raspbian (Raspberry & Debian) ; – Fedora « Raspberry Pi Fedora remix » ; – Arch Linux est fonctionnel avec sa version ARM pour Raspberry Pi ; – Gentoo est utilisable classiquement ; – Slackware est également utilisable classiquement ; – Suse est fonctionnel avec sa version ARM pour Raspberry Pi ; – Firefox OS (anciennement Boot to Gecko), le système d'exploitation mobile développé par Mozilla a été annoncé comme fonctionnel par l'association ; – RISC OS ; – NetBSD ; – OpenELEC (en), dans sa version ARM, permet l'utilisation de Kodi Entertainment Center ; – Windows 10 , Microsoft a annoncé que la version de leur nouveau système d'exploitation est compatible pour le Pi2. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 23 Raspberry Pi ● Matériel supplémentaire : – Ecran ou téléviseur : HDMI et Composite (convertisseur HDMI-VGA requis pour écrans d'ordinateur) ; – Clavier / souris usb ; – Carte mémoire SD / Micro SD contenant un système d'exploitation compatible ; – Alimentation. Attention : B+ et Pi2 requièrent un alimentation 2A : – Horloge matérielle (HTR ou RTC : real time clock). 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 24 Raspberry Pi ● Connexions 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 25 Raspberry Pi ● Module caméra spécifique – Attention au sens de branchement – Activation de la camera sur le SE 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 26 Raspberry Pi ● GPIO – Ports GPIO (General Purpose Input/Output) → ports d'entrée/sortie très utilisés dans le monde des microcontrôleurs et de l'électronique embarquée ; – connecteur GPIO → offre à une carte électronique la possibilité de communiquer avec d'autres circuits électroniques ; – Raspberry Pi : être utilisé à la fois en ordinateur personnel, et en carte contrôleur pour des applications purement électroniques – Bibliothèques facilitent la programmation des connecteurs GPIO : wiringPi - langage C, Rpi.GPIO-Python, Pi4J-Java. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 27 Raspberry Pi ● GPIO 17/12/2015 Pin Function Function Pin Atelier Arcade : Raspberry Pi et Raspicade 28 Raspberry Pi ● GPIO – Un connecteur GPIO peut être configuré : entrée (réception d'un signal) ou sortie (émission d'un signal). – Un connecteur GPIO ne peut traiter que des signaux numériques, 1 ou 0, une connexion sur un support analogique nécessitera un CAN/CNA comme le MCP300816. – Les périphériques GPIO peuvent également produire des interruptions et des événements d'accès direct à la mémoire (EDMA). – Un connecteur GPIO est généralement alimenté en 3.3Vcc et ne peut émettre que des courants de faible intensité, allant de 3mA à 50mA. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 29 Raspberry Pi ● GPIO – Certains connecteurs peuvent être reconfigurés en liaison série, bus I2C ou SPI – I2C (Inter-Integrated Circuit) est un bus de données. La connexion est réalisée par l'intermédiaire de deux lignes : ● ● ● SDA (Serial Data Line) : ligne de données bidirectionnelle, SCL (Serial Clock Line) : ligne d'horloge de synchronisation bidirectionnelle. Il ne faut également pas oublier la masse qui doit être commune aux équipements. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 30 Raspberry Pi ● GPIO – SPI : Serial Peripheral Interface → bus de données série synchrone en mode Full-duplex – Les circuits communiquent selon un schéma maître-esclaves, où le maître s'occupe totalement de la communication – Le bus SPI utilise quatre signaux logiques : ● ● ● ● SCLK — Serial Clock, Horloge (généré par le maître) MOSI — Master Output, Slave Input (généré par le maître) MISO — Master Input, Slave Output (généré par l'esclave) SS — Slave Select, Actif à l'état bas (généré par le maître) 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 31 Logiciel OpenSource ● La compilation 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 32 Le projet GNU Les logiciels libres – 1983 Richard Stallman démarre le projet GNU – Fondation de la FSF (Free SoftWare Fondation) basées sur 4 libertés ● ● ● ● 17/12/2015 Exécution Modification Redistribution Amélioration Atelier Arcade : Raspberry Pi et Raspicade 33 Linux ● Linux au sens strict = Un noyau – couche de base du SE (gestion mémoire, accès périphériques, gestion bus, SMP) – Noyau multi-utilisateurs et multi-tâches – Multi plates-formes (Intel, Sparc, Alpha, Motorola...) – GPL et POSIX – Fiable, sécurisé, stable (du fait de son appartenance au monde libre) 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 34 Distribution Linux Noyau seul = impossible de travailler Noyau à l'intérieur d'une distribution Ensemble cohérent de : – Noyau – Programmes libres (majorité) – Méthode d'(dés)installation des programmes – Programme d'installation du SE 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 35 Linux 1991 développement d'un noyau pour i386 par Linus Torvald – téléchargement libre des sources sur internet – version 0.12 en GPL 1992 Originalité = pas de but commercial – Licence GPL Création de distribution Linux 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 36 Caractéristiques de Linux Systèmes d'exploitation très proches des Unices classiques – Multi-tâches, multi-utilisateurs, fiable, robuste, puissant – Support standard des protocoles réseaux – Sécurité accrue grâce à la transparence du code source – Cloisonnement des espaces mémoires – Noyau entièrement configurable 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 37 Quelle distribution Contenu quasiment identique Orientée utilisateur – Ubuntu, Fedora, Suse Orientée serveur/utilisateur avancé – Debian, Gentoo, RedHat, Slackware, Archlinux Différences coté interface graphique et assistant d'installation. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 38 Les émulateurs ● « Un émulateur de système de jeux vidéo est un programme informatique qui permet à un ordinateur ou à une console de jeux vidéo d'émuler le comportement d'une autre console de jeux vidéo, ou d'un système d'arcade. » wikipedia – Surtout utilisés pour le retrogaming – émulation des systèmes inclus dans les bornes d'arcade – Le plus connu est MAME Multiple Arcade Machine Emulator. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 39 Les émulateurs ● Projet libretro : un frontal pour tous les émulateurs. Chaque émulateur est une bibliothèque partagée chargée par le programme retroarch – Unification des configurations → simplification ● Mame4all-Pi : portage de MAME 0.37b5 pour ARM ● Advmame 1.4, version modifiée de mame compilable sur Raspberry Pi ● ● ● ● ● PiFBA : portage de FinalBurn pour les jeux Neo-Geo, Capcom, Konami et Cave. GnGeo : émulateur des consoles de jeux vidéo Néo Géo - Neo-Geo MVS et Neo-Geo AES. Pisnes : emulateur SNES portage de SNES9X 1.39. Picodrive emulateur Megadrive / Genesis / Sega CD / Mega CD emulator écrit pour l'architecture ARM PCSX ReARMed émultaeur PlayStation 1 (PSX) ● 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 40 Les émulateurs ● ● Portage des emulateurs sur ARM Puissance limitée du Pi implique des limitations sur l'émulation – Pas d'interface graphique lourde – Version ancienne des émulateurs – Jeux récents non jouables même avec un Pi2 ● Avec le Pi2 utilisation accrue de libretro ● Utilisation d'advmame plus récent 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 41 Les ROMs ● ● ● ● ● Consoles/Bornes, Jeu et système enregistrés sur des mémoires mortes (ROM - Read Only Memory). L'émulateur permet techniquement de faire fonctionner le jeu sans utiliser la console Contenu des ROM n'est pas fourni avec l'émulateur pour des raisons de droit d'auteur La copie de ROM est autorisée si la durée du copyright est passée. Les auteurs de l'émulateur MAME recommandent d'attendre au minimum 3 ans depuis le début de la commercialisation du jeu 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 42 Les ROMs ● Pour jouer à un jeu en particulier, MAME utilise un ensemble de ROM (appelé ROM set) contenant toutes les données du jeu original. – ● A une version de MAME donnée, correspond un rom set. Il existe trois types de ROM sets : – Le ROM set du jeu original : les fichiers ROM pour ces jeux contiennent tout ce qui est nécessaire au fonctionnement du jeu (BIOS excepté). – Les ROM sets clones, qui sont différentes versions ou variantes d'un même jeu. – Les ROM sets du BIOS, qui sont les ROM communes utilisées par tous les jeux d'une même machine. 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 43 Raspicade ● Pourquoi raspicade ? – D'autres distribution existait : piplay, retropie – Maintenant il y en a d'autres : recalbox – Orientée intégration arcade → support du module arcade xinmo largement utilisé – Comprendre et mettre en œuvre le Pi – Jouer à Galaxian et Scramble:) 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 44 Raspicade ● Raspicade c'est quoi? – Distribution linux prête pour l'arcade – Basée sur Moebius Linux, puis MiniBian ● Pas d'environnement graphique → strict minimum pour minimiser l'empreinte mémoire – Emulateurs « standalone » et optimisés, patchés pour xinmo – Projet libretro aussi intégré quand il est utilisable (pb de puissance du Pi) – Support des 2 Pi 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 45 Raspicade ● Raspicade c'est quoi? – Pimenu, EmulationStation 1 et 2 : frontal de sélection d'émulateur – Emulateurs présents : ● Mame4all-Pi, PiFBA, GnGeo, Advmame (Pi2), picodrive, pcsxrearmed, mupen64plus (Pi2), et différents emulateurs libretro : meteor, fba, fceunext, gambatte, vecx, mupen64plus, pcsxrearmed, picodrive, Scummvm (nes, snes, N64, megadrive, PS1, GB, GBA, atari, vectrex) 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 46 Raspicade ● Raspicade c'est quoi? – Téléversement simplifié de fichiers (serveur Samba) – Support complet 2 joueurs pour tous les émulateurs – Complètement pilotable au panel – Utilisable avec des gamepads ou "hack" gamepads – Support du module Arcade Xin-Mo 1 joueur et 2 joueurs – Support clavier, Kade, module pikeydx16/32 et GPIO – Support manettes xbox/PS filaires et non filaires – Serveur SSH, FTP pour gestion à distance – WIFI "ready" pour configuration réseau WPA/WPA – Emulateurs en mode "scanline" – Affichage en FullHD – Possibilité d'afficher sur TV ou écran PC – Mode vertical et Cocktail (Mame/Advmame) 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 47 EmulationStation ● ● Frontal graphique pour la sélection de vos émulateurs Thèmes disponibles 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 48 Mise en Oeuvre de Raspicade ● Téléchargement image ● Création carte SD ● Configuration ● Place à la pratique... 17/12/2015 Atelier Arcade : Raspberry Pi et Raspicade 49