Beh grazie, io con la grafica faccio quel che posso in effetti
Per il momento devo ancora iniziare la separazione, diciamo che il lavoro mi piace molto ma preferisco smarcare qualcosa del sito ADB che mi ha preso mesi interi di tempo libero...
Sul dettaglio tecnico del front-end trovi molte info nel primo post.
Riassumento posso dirti che viene eseguito da browser su macchina Linux (un Mint del 2013 che avrebbe bisogno di un'aggiornamento ormai...) e come disco gli ho recentemente messo un ssd perchè ho avuto problemi con dischi normali (interferenze provenienti dalle casse) e chiavette usb (lentezza soprattutto, ma erano chiavette economiche).
Lo spazio occupato credo sia di 2 o 3GB perchè tutto viene eseguito da remoto.
Il server è in rete lan e si occupa di tutto, i dischi sono montati sempre in rete e contengono emulatori, rom, immagini, ecc.
In realtà il front-end fornisce tutto ciò che serve (pagine, liste, immagini, video) e con un'area in comune scrive anche le command line da usare.
In background c'è un piccolo script che resta in ascolto e, se trova qualcosa da fare, lo fa. Questo comando viene preparato dal server (che ricordo ha accesso allo stesso disco) per cui in un decimo di secondo, dopo il click, parte il gioco.
I comandi vengono compilati tramite una tabella degli emulatori e con sostituzione parametri (in stile Feel per intenderci), ed ogni emulatore è in un'apposita cartella con le rom necessarie. Quindi ogni volta che faccio click, uso l'emulatore più adatto per quel gioco.
La tabella dei giochi è una sola, l'emulatore diventa un solo attributo e quindi posso avere in lista tutto quanto senza fare casini.
Se domani esce Mame 0.200, nasce un nuovo record nella tabella ed una nuova cartella, poi dovrò associare io i giochi ma la configurazione vecchia rimane.
In altre parole, ed è questa la parte che mi differenzia rispetto agli altri front-end, se aggiorno al nuovo Mame tutta la parte esistente rimarrà intatta, compresi bios, hiscore, savegame, ecc. Questo mette al sicuro così il "gioco", che è l'entità principale qui.
Dato che le pagine sono uniche, il server è lo stesso, i dischi pure, tutti i mamecab/pc/portatili vengono identificati tramite il nome del pc.
Così i comandi, i log, i layout, ecc. possono essere personalizzati senza dover rifare tutto da capo.
Ho previsto 4 architetture (Linux 32-bit, Linux 64-bit, Windows 32-bit e Windows 64-bit) quindi avrò 4 eseguibili differenti per ciascun emulatore. In altri casi uso wine per lanciare programmi Windows su Linux, tipo i Super Mario, senza notare rallentamenti.
In conclusione, le tabelle sono aggiornabili da interfaccia web da desktop (comodamente aggiungo!) e posso provarli direttamente lì come se fossi sul cab.
Le cose da migliorare sono tantissime, ora è un prodotto utilizzabile da un sistemista, ma prima o poi qualcosa mi invento.
In particolare mi piacerebbe fare un editor di layout web così da non dover scrivere i singoli menu dentro ai css, ma stiamo già parlando di qualcosa di molto avanti nel tempo...
Questo per introdurre l'argomento, sotto al cofano c'è tanta roba e mi accorgo solo ora di quando l'ho reso "complesso" visti gli obiettivi che mi ero prefissato.
Sul sito di test c'è una versione funzionante se ricordo bene... certo non parte nulla, ma rende l'idea.