1. A breve aggiorneremo la piattaforma di Reboot per risolvere alcuni problemi con i plug-in, quindi chiediamo ancora un po' di pazienza, Lo staff di Reboot

MISTer FPGA: COSA E', COME COSTRUIRLO E COME CONFIGURARLO !

Discussione in 'Altre piattaforme' iniziata da student, 27 Apr 2022.

  1. student

    student Staff Livello 47 Staff

    Iscritto:
    30 Ago 2015
    Messaggi:
    5.240
    Like ricevuti:
    5.388
    [​IMG]

    Diciamo che il MiSTer è, in linea teorica, il "riassunto" di quanto di meglio possa offrire oggi l'emulazione; dico in linea teorica perchè tutto dipende dalla conoscenza dell'hardware reale che va ad emulare. Ma andiamo un pochino più nel dettaglio.

    FPGA sta per field-programmable gate array, un tipo di circuito integrato che può essere riconfigurato dopo la produzione. A differenza di un tradizionale chip per computer, gli FPGA utilizzano blocchi logici programmabili ed interconnessioni che possono essere riconfigurati per adattarsi ad una varietà di scopi diversi. In sostanza, un FPGA può essere riprogrammato più e più volte per agire come qualsiasi tipo di circuito digitale. Mentre i vecchi FPGA utilizzavano schemi circuitali, quelli nuovi utilizzano invece la programmazione basata su testo per descrivere il comportamento.

    Questo ovviamente è possibile solamente se si conosce a fondo come il chip lavori a livello hardware, cosa che ultimamente sta diventando molto dettagliata soprattutto per i chip proprietari grazie al gran lavoro di decapping e successive analisi e ricostruzioni circuitali partendo dalle fotografie al microscopio che alcuni devs (come il francese Furrtek) stanno portando avanti. Una volta compreso lo schema questo viene tradotto in HDL (Hardware Description Language), che nel MiSTer diventa un "core", permettendo così all'FPGA di emulare come se fosse il vero hardware.

    In questo modo, se la riproduzione del chip è corretta al 100%, si avrà una strettissima vicinanza con la macchina reale visto che l'emulazione stavolta è effettuata ad un livello più "basso", quello hardware, permettendo dunque un lavoro delle varie componenti della scheda madre originale emulate in parallelo (quindi avremo anche gli stessi eventuali bugs presenti nelle macchine originali!) senza rallentamenti, lags o altre problematiche intrinseche degli emulatori software che per definizione devono ovviare in qualche modo all'impossibilità di far lavorare il software in parallelo.



    COMPONENTI PER COSTRUIRLO (necessari e non)

    [​IMG]
    [​IMG]
    • Terasic DE-10 Nano FPGA Development Kit (include alimentatore, cavo mini e microUSB + microSD da 8GB)
    • MiSTer SDRAM Extra Slim Board (da 32 a128MB a seconda delle necessità - qui per vedere quali cores consoles la richiedono, qui per i cores computer)
    • Scheda Hub USB 7 porte dedicata (se ne avete già uno autoalimentato potete usare quello sulla porta microUSB)
    • Adattatore microUSB per alimentare anche la schedina USB 7 porte (se non la utilizzerete non servirà)
    • Scheda I/O con uscita video VGA, audio, 3 tasti, 3 led di stato, slot microSD aggiuntivo (oltre quello già presente nel de10-nano), porta USB 3.0 (ma non utilizzabile per i comuni dispositivi USB) e connettore ventola
    • Ventolina
    • Schedina RTC
    • Cavetto sdoppiatore alimentazione (per alimentare la scheda I/O)
    • Cavo HDMI
    • Tastiera USB
    • Chiavetta WIFI (opzionale, potete tranquillamente utilizzare un cavo di rete in alternativa - funziona anche da RTC se connessa alla rete internet)
    • Adattatore Bluetooth (necessario se volete un controller wireless, qui un elenco con le varie latenze riscontrate - funzionano benissimo anche i controllers USB ma il dispositivo è piccolino e piuttosto leggero quindi rischiate di fare danni avendo collegato un controller con il filo)
    Come si può vedere le parti necessarie per costruirselo da soli sono diverse e questo è l'unico modo per evitare di pagarlo troppo ! Prima della carenza di microchip dovuti al covid19 si poteva acquistare pre-costruito e già programmato per circa 300-350€, ora con tale cifra oggi riusciamo a farcelo per conto nostro.

    Dobbiamo infatti spendere dai 180 ai 210€ per il de10-nano (sul sito ufficiale Terasic) ed altri 85-90€ per gli accessori (prendendoli in maniera molto oculata su AliExpress).

    Alcuni di voi diranno che è una cifra assurda ed in parte lo condivido è però anche vero che per una spesa "una tantum" si hanno quasi tutte le macchine a disposizione (anche i vecchi computers e numerosi arcades!) a portata di mano !

    Se volete leggere ulteriori informazioni riguardanti il funzionamento delle macchine reali ed i loro rapporti con il mondo dell'emulazione potete leggere questo articolo e la intro di quest' altro articolo.

    Quanti giga vi occorrono ? Date uno sguardo a questo articolo.



    PROGRAMMIAMO IL Terasic de10-nano

    Questo gioiellino rappresenta il (costoso!) cuore del dispositivo ! E'purtroppo possibile utilizzare soltanto questa scheda per avere tutte le funzioni disponibili create dalla comunità di sviluppatori. Acquistando il kit di sviluppo (che è scontato di circa il 25-30% se dimostrate di essere studenti o professori universitari!) sarete già pronti per installare i dati su microSD e configurare il dispositivo anche in assenza degli accessori !



    TOOLS NECESSARI

    - Win32 Disk Imager o qualunque altro tool in grado di "spalmare" l'immagine di una SD (balenaEtcher, dd, ecc).
    - microSD (anche quella originale del de10-nano)
    - L'ultima versione dell'immagine SD di Mr. Fusion scaricabile da qui: https://github.com/MiSTer-devel/mr-fusion/releases
    - Un HUB USB
    - Una tastiera USB



    PROCEDURA

    Per fortuna nel corso del tempo il sistema per avviare per la prima volta il firmware del MiSTer è diventato davvero molto semplice ! Innanzitutto assicuriamoci che i dip switches ed i toggle switches siano impostati sulla scheda del de10-nano come segue:
    [​IMG]
    [​IMG]

    Dopodichè:

    1 - backuppare la microSD in dotazione al de10-nano utilizzando Win32 Disk Imager (non necessario ma contiene il software/firmware originale ed è sempre bene averne una copia anche se inutile per il MiSTer)
    2 - estrarre e flashare l'ultima versione dell'immagine SD di Mr. Fusion nella microSD
    3 - inserire la microSD nel de10-nano ed avviarlo
    4 - dopo pochi secondi si accenderà il LED arancione e, se avete collegato anche il cavo HDMI, a schermo apparirà una schermata blu seguita da uno splash screen:
    [​IMG]

    Mr Fusion ridimensionerà le partizioni rendendo disponibile tutto lo spazio a disposizione e copierà tutti i files necessari al MiSTer. La procedura non deve superare i 90-120 secondi, dopodichè apparirà il menu del MiSTer !
    [​IMG]

    5 - Ora collegate la tastiera USB ed andate alla voce "Scripts" (se non vede il menu premete F12 per farlo comparire) e confermate al messaggio di rischio che apparirà;
    6a - Se avete una chiavetta USB WiFi scegliee lo script chiamato "wifi" per configurare la vostra rete (se avete il cavo LAN non è necessario);
    6b - Andate ora su "Scripts" :arrowright: Yes :arrowright: downloader per avviare la procedura di aggiornamento; vedrete scaricare, verificare ed installare una marea di files e questo potrebbe durare diversi minuti !
    [​IMG]
    Alla fine il sistema si riavvierà, apparirà il menu ed avrete i cores aggiornati cosi come il menu e l'eseguibile principale del MiSTer (insieme ad una marea di nuovi scripts a disposizione):
    [​IMG]


    TASTI UTILI

    • F1 – Cambia il background ciclicamente con le modalità predefinite (static, wallpaper, color bars, black).
    • F9 – Avvia la shell Linux (login:pwd = root:1 - F12 per tornare al menù)
    • F11 – Menu pairing Bluetooth
    • F12 – Premendolo su passa dal menù principale al menù dei cores
    • Left Shift + Left Ctrl + Left Alt + Right Alt :arrowright: effettua un reboot rapido del MiSTer
    • Left Ctrl + Left Alt + Right Alt :arrowright: corrisponde alla pressione del tasto "USER" nella I/O board che di solito effettua un reset del core in cui ci si trova.
    • Windows + Left Shift + Print Screen :arrowright: Salva uno screenshot (I file di screenshot creati vengono salvati in una cartella "screenshot" sulla partizione FAT delle schede SD; questa cartella conterrà quindi sottocartelle che prendono il nome dal core corrispondente in cui è stata acquisita una schermata. Le schermate vengono salvate in formato PNG.)

    CONFIGURARE UN JOYPAD BLUETOOTH

    I pad USB funzionano non appena collegati; per quelli bluetooth è necessario avere un dongle USB che ne permetta il funzionamento. Io ho utilizzato l' ASUS modello USB-BT21 (lo stesso usato per effettuare la softmod sulla Wii Mini !) ed ha funzionato benissimo. Potete leggere l'estesissima lista di prodotti testati con relativi tempi di latenza e ranking qui.

    La procedura è sostanzialmente la stessa per quasi tutti i dispositivi e cioè:
    1 - Premere F11 oppure, se volete farlo da shell, andare su "Scripts" :arrowright: Yes :arrowright: bluetooth_pair :arrowright: entro 60 secondi premere sul pad il tasto (o la combinazione di tasti) per farlo andare in pairing mode (es per il pad della PS4 i tasti da premere sono PS + SHARE finchè non viene riconsociuto dal MiSTer).

    Per alcuni joypads la procedura è invece specifica come ad esempio per quello PS3:
    • Collegare il pad tramite USB al MiSTer (se non lo avete la confezione del de10-nano contiene già un cavetto microUSB).
    • Premere il pulsante PS button ed attendere che i LED rossi smettano di lampeggiare (pochissimi secondi) e ne rimane acceso soltanto uno
    • Scollegare il pad - le luci ricominceranno a lampeggiare finchè non si collegherà e rimarrà acceso soltanto 1 LED.
    Una volta connesso il pad si va sul menu con F12 :arrowright: Define joystick buttons e si mappano tutti i pulsanti (verrà chiesto di mappare anche i "pulsanti" relativi al movimento ed al click del mouse ed il tasto per evocare il menu di sistema).



    SIGNIFICATO DELLE PRINCIPALI ICONE

    In alto nel menu vediamo le 3 principali icone:
    [​IMG]
    quella più a sinistra indica la presenza di una connessione LAN (se avete il WiFi apparirà l'icona del WiFi), la centrale la presenza di una periferica bluetooth mentre quella più a destra la presenza (o meno) del modulo SDRAM:
    [​IMG]



    STRUTTURA DI FILES E CARTELLE

    Il MiSTer, da quello che ho potuto vedere, cerca da solo le ROMs in base alle estensioni dei files, in ogni caso è bene avere una struttura organizzata e quella di base (della microSD interna) è quella di avere la cartella:
    root:\games\
    dentro la quale abbiamo le cartelle specifiche per ogni core e cioè root:\games\NomeSistema\ come nell'immagine sottostante:
    [​IMG]
    dentro le quali inserire le rispettive ROMs (le ROMs arcade vanno nella cartella root:\games\mame o root:\games\hbmame). Quindi potete ricreare questa struttura sia su un dispositivo USB, copiare i files, inserire la chiavetta, accendere il MiSTer, caricare il core e dal suo menu caricare le ROMs !



    AVVIARE UN CORE E RELATIVO GIOCO

    Per avviare i giochi si deve prima avviare uno specifico core dall'apposito menu di selezione che appare appena avviate il MiSTer (suddiviso in Arcade, Computers, Consoles, Others, ecc). Una volta avviato il core dal menu utilizzate la prima voce "Load..." per scegliere la ROM (se il menu non appare in automatico premete F12 o il relativo tasto del pad che avete configurato). Prima di caricarla potete trafficare con le varie impostazione a disposizione (audio, video, cheats, ecc). Ricordate che si potranno avviare SOLTANTO i giochi del sistema caricato (es. se avviate il core Genesis scordatevi di poter avviare da qui ad esempio titoli NES). Per uscire dal core e selezionarne un altro andate nella schermata che si trova tutta a destra nel menu ed utilizzate la voce "Core".

    Per riavviare il sistema: sempre dalla schermata dei menu che si trova tutta a destra selezionate l'ultima opzione "Reboot (hold :arrowright: cold reboot)"; in alternativa potete premere sulla tastiera, se è ancora collegata, la combo Left Shift + Left Ctrl + Left Alt + Right Alt; questo reboot "warm" impiegherà circa 2 secondi. Tenendo invece premuto per pochi secondi sulla voce "Reboot (hold :arrowright: cold reboot)" il sistema si riavvierà totalmente ed impiegherà circa 7 secondi.

    NON E'POSSIBILE SPEGNERE IL DISPOSITIVO, per farlo dovete togliere la corrente nel modo che preferite !



    COME MONTARE IL MiSTer FPGA !

    Partiamo da questi componenti dicendo che NON ci saranno saldature da fare:
    [​IMG]
    Come potete vedere la scheda di espansione USB, rispetto a quella mostrata più sopra, ha ben 9 porte anzichè 7; 1 di queste [PWR1], è utilizzata per l'alimentazione; nel kit mostrato in foto è infatti differente anche il cavetto sdoppiatore in quanto ha un barrel jack ed un USB (anzichè 2 barrel jack come quello della foto più in alto); questo è dovuto al fatto che esistono diverse versioni di queste schede di espansione USB, scegliete quella che vi piace di più e, se la prendete a parte, assicuratevi di comprare anche il cavetto sdoppiatore ed il corrispondente connettore USB per far passare i dati (vedi oltre).

    [​IMG]
    Avvitiamo con le 4 viti la ventolina alla scheda I/O e colleghiamo il suo connettore.

    [​IMG]
    Svitiamo il "coperchio" in plexiglass del de10-nano e mettiamolo via (tipo nella sua scatola originale per non perderlo) mentre teniamo da parte le 4 viti argentate ed i supporti dorati perché ci serviranno.

    [​IMG]
    Rimontiamo, avvitandoli, i supporti dorati sulla scheda USB (che diventerà la base del nostro MiSTer).

    [​IMG]
    Dalla scatola del de10-nano recuperiamo i copri-piedini in gomma ed applichiamoli come in foto (serviranno a non far scivolare su eventuali superfici lisce la struttura finita).

    [​IMG]
    Colleghiamo il doppio connettore microUSB al de10-nano ed alla scheda USB (questo connettore servirà per far passare i dati, NON servirà per alimentare la scheda !). Questo connettore, come già detto, puo'essere realizzato in modo differente a seconda di come è costruita la scheda di espansione USB.

    [​IMG]
    Dal kit degli accessori avvitiamo i 4 ulteriori supporti dorati.

    [​IMG]
    Se la avete acquistata questo è il momento di connettere la scheda RTC (e magari di inserire anche la batteria CR1220 :smile: ); attenzione, la plastica che limita il connettore del de10-nano dove si inserisce l'RTC è molto delicata (per fortuna i pin sono solidi) !

    [​IMG]
    Ora appoggiamo il "tetto" della nostra torre rappresentato dalla scheda I/O.

    [​IMG]
    Fissiamola con le 4 viti argentate che avevamo messo da parte all'inizio.

    [​IMG]
    Colleghiamo infine il modulo SDRAM così come mostrato in foto (la scritta va verso l'esterno come dice il testo stesso :smile: ).

    [​IMG]
    Ora connettiamo correttamente lo sdoppiatore di alimentazione: il connettore USB maschio va nell'USB femmina chiamata PWR o POWER della scheda con le 9 porte USB (quella mostrata in foto) mentre il barrel jack va nel solito connettore femmina del de10-nano. Il jack femmina rimanente va collegato all'alimentatore originale (o altro alimentatore da voi scelto per il de10-nano). Questo cavetto, come già spiegato, puo'essere differente a seconda di come è realizzata la scheda USB.


    IL VOSTRO MiSTer E' FINALMENTE PRONTO !!!!



    F.A.Q.

    SDRAM si o SDRAM no ?
    La maggior parte dei cores NON richede l'espansione SDRAM. 32MB sono richiesti da alcuni titoli GBA (ma non necessari in quanto il MiSTer puo'prendere i MB mancanti dalla DDR3 del de-10 nano però con potenziale scapito della resa emulativa che è lo scopo del MiSTer quindi tanto vale prendere il modulo con più di 32MB) mentre 128MB sono richiesti da alcuni titoli Neo Geo. 64MB è una configurazione possibile ma poco utilizzata.

    Vi mancano i BIOS ?

    Andate qui, scaricate gli script bios_getter.sh e bios_getter_update.sh, copiateli nella cartella degli script della microSD ed avviateli (uno dovrebbe aggiornare soltanto senza sovrascrivere tutto mentre l'altro dovrebbe sovrascrivere tutto) !

    E'un casino trovare le ROMs Arcade (MAME e HBMAME) ?
    Qui gli scripts che fanno per voi ! E' obbligatorio avere già installato i cores .mra dei titoli/piattaforme arcade che desiderate (es cps1/cps2) perchè gli scripts analizzano quelli per andare a pescare i relativi dati di gioco.

    Qualcuno ha detto WALLPAPERS ?
    Se volete dei bellissimi wallpaper in background scaricate ed eseguite i files di questo script; scaricherà per voi delle fantastiche immagini che vedrete cambiare ad ogni reset (anche rapido) del MiSTer; per farlo, una volta avviato, premete F1 finchè non vedrete il primo wallpaper; a questo punto ad ogni riavvio lo sfondo cambierà (NON tentate di scorrerli premendo F1, non funzionerà !).

    Problemi di spazio ?
    Purtroppo, anche se alcuni cores lo supportano, il formato .zip non è molto consigliato, preferiscono in molti lasciare le ROMs non compresse; in alcuni casi si caricano con più lentezza in altri casi proprio non funzionano, in particolare con le immagini dei CD; per queste ultime invece diversi cores (es. PSX, SegaCD, PC Engine CD) supportano il formato CHD del MAME che potete trovare all'interno della sua vastissima SoftwareList !

    Hints sull'utilizzo dei cheats ?
    I files dei cheats si trovano nella cartella \cheats e sono suddivisi per cartelle che portano il nome del sistema e dentro a queste abbiamo dei files zippati che DEVONO avere lo stesso nome della ROM nella quale vogliamo utilizzarli; es.
    \cheats\NES\Mario.zip` per il gioco "Mario.nes"
    Se utilizzate invece files in formato immagine (ISO, CHD, ecc) il file .zip DEVE risiedere all'interno della cartella dove è presente l'immagine del disco.

    A cosa serve lo switch SOG OVR AUTO che si trova nella I/O board ?
    SOG = Sync on Green - Questo interruttore controlla se i segnali di sincronizzazione sono inseriti all'interno del canale del colore verde (alcuni CRT meno recenti utilizzavano il sync-on-green). Se impostato su Auto è il core a decidere se utilizzarlo, ma si puo'forzare l'impostazione settandolo su OVR. In alcuni casi, utilizzando una uscita su monitor a tubo catodico, l'immagine potrebbe risultare "verdastra":
    [​IMG]
    in questo caso consigliano di rimuovere C6 al di sotto dello switch in questione:
    [​IMG]
    con il seguente risultato:
    [​IMG]

    Consigliate qualche periferica in particolare ?
    Diciamo che per tenere tutto piuttosto compatto e poco "sporgente" sarebbe buona cosa optare per periferiche USB molto contenute. Di seguito quelle testate e funzionanti senza dover installare nulla; da sinistra a destra abbiamo:

    [​IMG]
    - MODULO WiFi - HomeSpot 150Mbps Wireless N WiFi USB Nano Adapter [VID:PID = 0BDA:8176 = Realtek RTL8188CU]
    - LETTORE uSD - Realtek Card Reader [VID:PID = 0BDA:0136]
    - MODULO BLUETOOTH - ASUS USB-BT21 [VID:PID = 0B05:1715]

    Notare in particolare come il lettore uSD sia costruito in modo tale da poter inserire la schedina dalla parte opposta del "foro" per il connettore USB femmina limitando al minimo lo spazio occupato:
    [​IMG]


    Il cavo HDMI alimenta parzialmente il MiSTer ! Come posso risolvere ?
    Se anche voi, collegando il MiSTer ad un monitor esterno attraverso la porta HDMI, avete notato che, anche se sconnesso dall'alimentazione, la scheda I/O viene parzialmente alimentata (si accendono alcuni led, la ventolina comincia a girare, ecc ma comunque non si avvia) il problema pare essere nel funzionamento del CEC (PIN 13 del connettore HDMI); questa "stranezza" per fortuna non accade con tutti i monitor HDMI ma per essere sicuri che cio'non avvenga dovete provare "sul campo". Questa alimentazione "spuria" sembra dare alterazioni nel funzionamento della SDRAM di conseguenza, se riscontrate il problema, è consigliato risolverlo. Una soluzione consiste nel tagliare una piccola pista sulla scheda I/O, vicino all'integrato U34, evidenziata nell'immagine:
    [​IMG]
    Dato che tagliare non è però molto carino e noi amiamo soluzioni più "eleganti" abbiamo scelto un adattatore che disconnette tale pin semplicemente interponendosi tra il cavo e la femmina HDMI DEL MONITOR (NON del MiSTer!!). Se lo cercate online ha nomi del tipo "NO CEC HDMI / NON CEC / MENO CEC". Quello utilizzato con successo nei nostri test è questo:
    [​IMG]
     
    #1
    Ultima modifica: 11 Mag 2022
    A IlVampirelloXY, feddy75, gelderm e 4 altri utenti piace questo elemento.
  2. Sildedlis

    Sildedlis Livello 17

    Iscritto:
    15 Mar 2016
    Messaggi:
    795
    Like ricevuti:
    170
    Magico Student.…:grinning:
     
    #2
    A student piace questo elemento.
  3. nodaorphen

    nodaorphen Livello 14

    Iscritto:
    23 Gen 2015
    Messaggi:
    501
    Like ricevuti:
    217
    solito articolo da premio Pulitzer, complimenti!
     
    #3
    A student piace questo elemento.
  4. malvagio

    malvagio Livello 10

    Iscritto:
    22 Lug 2019
    Messaggi:
    282
    Like ricevuti:
    196
    Come potrei dire.….sei il migliore!

    Regards
     
    #4
    A student piace questo elemento.
  5. Kurogiri

    Kurogiri Livello 9

    Iscritto:
    21 Gen 2019
    Messaggi:
    223
    Like ricevuti:
    144
    articolo scritto con grandissima passione e competenza! veramente complimenti!!:clapping::thumbsup:

    un :thumbsdown: invece per me che ho letto MiSTer F(I)PGA, e avevo immaginato tutt'altro!!:sweatsmile:
     
    #5
    A student piace questo elemento.
Sto caricando...

Condividi questa Pagina