{"id":232,"date":"2014-07-24T23:24:00","date_gmt":"2014-07-24T21:24:00","guid":{"rendered":"http:\/\/www.joanillo.org\/?p=232"},"modified":"2020-09-15T23:27:40","modified_gmt":"2020-09-15T21:27:40","slug":"joanillo-arcade-frontend-un-simple-frontend-per-a-pimame-piplay","status":"publish","type":"post","link":"https:\/\/www.joanillo.org\/?p=232","title":{"rendered":"Joanillo Arcade Frontend. Un simple frontend per a PiMAME\/PiPLAY"},"content":{"rendered":"<p><a href=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2014\/07\/jaf.jpg\"><img src=\"http:\/\/www.joanillo.org\/wp-content\/uploads\/2014\/07\/jaf.jpg\" alt=\"Joanillo Arcade Frontend\" title=\"Joanillo Arcade Frontend\" width=\"300\" class=\"alignright size-full wp-image-877\"><\/a>Al final he decidit fer-me el meu propi front-end per a la m\u00e0quina <strong>arcade<\/strong> que m&#8217;estic constru\u00efnt, basada en <strong>PiMAME \/ PiPLAY<\/strong>. La hist\u00f2ria \u00e9s molt llarga, i ara no \u00e9s temps d&#8217;explicar-la. El cas \u00e9s que AdvMENU, que \u00e9s el front-end proposat en el projecte PiMAME, a mi no em funciona amb la meva configuraci\u00f3 de tecles i la interf\u00edcie de joystick que em vaig fabricar en el meu dia, basat en <strong><a href=\"http:\/\/www.obdev.at\/products\/vusb\/index.html\" title=\"V-USB\" target=\"_blank\" rel=\"noopener noreferrer\">V-USB<\/a><\/strong>. El cas \u00e9s que no s\u00f3c la primera persona a la qual li \u00e9s impossible la configuraci\u00f3 correcta dels botons. Resumint, una q\u00fcesti\u00f3 que hauria de ser f\u00e0cil de resoldre es converteix en un problema irresoluble. Despr\u00e9s de desestimar AdvMENU (i despr\u00e9s de compilar des de les fonts la versi\u00f3 2.7 i de modificar i modificar el fitxer <em>advmenu.rc<\/em>) vaig considerar la possibilitat d&#8217;instal\u00b7lar un altre front-end per a emuladors Arcade que es pogu\u00e9s instal\u00b7lar b\u00e9 en la Raspberry Pi. Els requisits havien de ser que funcion\u00e9s sota Linux\/Raspberry Pi, i que no necessit\u00e9s el servidor X de la RPi (la qual cosa desestima el popular front-end <em>Wahcade<\/em>). Despr\u00e9s d&#8217;analitzar les diferents solucions, la not\u00edcia dolenta va ser que vaig arribar a la conclusi\u00f3 de qu\u00e8 hauria de programar el meu propi front-end&#8230; la qual cosa esdev\u00e9 al final una not\u00edcia bona, doncs per fi tindria un front-end simple i eficient, amb nom\u00e9s les funcionalitats que necessito, que funcioni amb la meva configuraci\u00f3 dels botons, i que s&#8217;adapti al disseny i filtres de ROMs del meu gust.<\/p>\n<p>El resultat \u00e9s un codi <strong>C++<\/strong> de 700 l\u00ednies, que utiltiza <strong>SDL<\/strong> de forma nadiua, igual de b\u00e9 en el port\u00e0til que en la Raspberry Pi, on no necessita arrencar les X. Es pot navegar de forma f\u00e0cil per la classificaci\u00f3 dels jocs (<em>All Favourites, Bad, Good, Very good, Prefered<\/em>), i per les categories dels jocs (<em>Platform, Shooter, Gallery,&#8230;<\/em>). El fitxer de configuraci\u00f3 \u00e9s molt simple, <em>resources\/romlist.txt<\/em>, amb una l\u00ednia per cada ROM. S&#8217;ha programat a raig, bastant r\u00e0pid, segur que hi ha coses a millorar, per\u00f2 la llista <em>TODO<\/em> ha quedat realment molt petita. Aquest emulador nom\u00e9s est\u00e0 pensat per als jocs de <strong>MAME<\/strong> (<em>mame4all<\/em>), per tant alg\u00fa que el vulgui utiltizar trobar\u00e0 a faltar canviar d&#8217;emulador. De totes maneres, seria f\u00e0cil fer l&#8217;adaptaci\u00f3 i disposar d&#8217;un bot\u00f3 per al canvi d&#8217;emulador.<\/p>\n<p>Tanmateix, el <strong>bartop<\/strong> que estic construint es basa en la simplicitat (un sol joystick i nom\u00e9s sis botons, que estan mapejats a les tecles &#8216;0&#8217;,&#8230;, &#8216;5&#8217;). I aquesta simplicitat queda reflexada en el codi font. Aix\u00f2 fa que llen\u00e7ar una ROM i tornar al front-end sigui molt r\u00e0pid (molt m\u00e9s r\u00e0pid que amb AdvMenu), amb una millor experi\u00e8ncia d&#8217;usuari. Tamb\u00e9 s&#8217;ha aconseguit una soluci\u00f3 elegant per anar a la consola de Linux, o per apagar la Raspberry Pi de forma correcta abans d&#8217;apagar l&#8217;interruptor.<\/p>\n<p>En resum, un front-end per a MAME molt simple per\u00f2 amb un disseny correcte, que no t\u00e9 ni de bon tros totes les opcions del projecte AdvMENU, per\u00f2 que tampoc es troben a faltar.<\/p>\n<p>Pots descarregar-te el codi font de:<br \/>\n<a href=\"http:\/\/wiki.joanillo.org\/index.php\/Fitxer:Joanillo_arcade_frontend.zip\">http:\/\/wiki.joanillo.org\/index.php\/Fitxer:Joanillo_arcade_frontend.zip<\/a><\/p>\n<p>I aqu\u00ed tens un video demostratiu de com funciona el front-end i de les seves opcions b\u00e0siques:<\/p>\n<p><iframe width=\"640\" height=\"360\" src=\"\/\/www.youtube.com\/embed\/A03xoSMrxPM?feature=player_detailpage\" frameborder=\"0\" allowfullscreen=\"\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Al final he decidit fer-me el meu propi front-end per a la m\u00e0quina arcade que m&#8217;estic constru\u00efnt, basada en PiMAME \/ PiPLAY. La hist\u00f2ria \u00e9s molt llarga, i ara no \u00e9s temps d&#8217;explicar-la. El cas \u00e9s que AdvMENU, que \u00e9s el front-end proposat en el projecte PiMAME, a mi no em funciona amb la meva [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,18,16,12,10],"tags":[270],"_links":{"self":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/232"}],"collection":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=232"}],"version-history":[{"count":1,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/232\/revisions"}],"predecessor-version":[{"id":233,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=\/wp\/v2\/posts\/232\/revisions\/233"}],"wp:attachment":[{"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joanillo.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}