MiSTer FPGA - Αγγίζοντας την τελειότητα

AEON

Retromaniax Founder
Διαχειριστές
Joined
6 Ιαν 2006
Μηνύματα
1.790
Αντιδράσεις
1.727
Το open source project που επιτρέπει την επακριβή αναδημιουργία του hardware κλασικών υπολογιστών, κονσολών και arcades μέσω FPGA board (και χρήση διαφόρων βοηθητικών daughterboards) διαθέτει ένα δυναμικό διεθνές scene που παράγει πλέον cores σχεδόν σε καθημερινή βάση, ενώ ολοένα και περισσότεροι ρετροfans ασχολούνται με το πολλά υποσχόμενο αυτό εγχείρημα!

To emulation στα FPGA (Field Programmable Array) boards είναι λίγο διαφορετικό και αρκετά πιο πιστό από το κλασσικό software emulation. Πρόκειται στην ουσία περισσότερο για cycle exact hardware mimicking που επιτρέπει την πλήρη εξομοίωση των παράλληλων λειτουργιών που συμβαίνουν μέσα στα κυκλώματα του αυθεντικό hardware (π.χ. ενός arcade board) εξασφαλίζοντας από πολύ χαμηλό έως μηδενικό input latency (το τελευταίο στα CRT monitors). Έχουμε δηλαδή αναπαραγωγή της αυθεντικής εμπειρίας, καθώς σε ένα ολοκληρωμένο core είναι πρακτικά αδύνατο να ξεχωρίσει κανείς π.χ. ένα arcade booth που τρέχει MiSTer στο εσωτερικό του από εκείνο που περιέχει το original.

Κάθε μηχάνημα μαζί με τα παιχνίδια του εξομοιώνεται με τα λεγόμενα cores (πυρήνες), τα οποία είναι αρχεία που αποθηκεύονται σε ένα microSD Card και μπορεί να περιλαμβάνουν arcades, computers (8-bit, 16-bit, 32-bit), κονσόλες και κάποια πιο προχωρημένα πραγματάκια.

Παρακάτω θα βρείτε μια αρκετά καλή εισαγωγή (ενός έτους, πολλά έχουν αλλάξει έκτοτε προς το καλύτερο). Σημειώστε ότι μπορούν να χρησιμοποιηθούν κανονικά scanlines και filters στις LCD οθόνες, γεγονός που δεν απεικονίζεται στο video:


Ενδεικτικοί υποστηριζόμενοι υπολογιστές:
Ενδεικτικές υποστηριζόμενες κονσόλες:
Στο κεντρικό MiSTer board μπορούν να προστεθούν διάφορα addon-boards και επεκτάσεις (π.χ. IO board για extra USB hub, ενεργητική ψήξη, extra μνήμη, Real time clock κλπ), ενώ κυκλοφορούν διάφορα κουτιά (3d printed και μη) όπου μπορούν να κλειστούν όλα αυτά μέσα σε ένα όμορφο μικροσκοπικό package. Παράδειγμα από το δικό μου (η μεγαλύτερη του διάσταση δεν ξεπερνά τα 11cm) :

78700223_10220863316163894_4110959008569884672_o.jpg

Resources & More info
Προκειμένου να "προωθήσουμε το όλο θέμα" και σε ελληνικό επίπεδο, οι συνήθεις ύποπτοι δημιουργήσαμε στο facebook το Greek MiSTer Club για τους φίλους και ιδιοκτήτες μηχανημάτων MiSTer FPGA (όσοι πιστοί προσέλθετε), όπως επίσης και το παρόν thread.
 
@AEON Respect για την παρουσίαση! :bow:

Πριν μερικούς μήνες είχα διαβάσει και αυτό το άρθρο στο racketboy (το παραθέτω για να ανοίξει παραπάνω η όρεξη όσων σκέφτονται να ασχοληθούν με το MiSTer).
 
Τελευταία επεξεργασία:
Θα διαφωνήσω στο ότι τα FPGA είναι πιο πιστά από software emulation. Και τα δύο απαιτούν παρόμοιες γνώσεις ενός συστήματος για να πετύχεις την εξομοίωση του και έχουν παρόμοια εμπόδια και δυσκολίες. Και τα δύο μπορεί να είναι 100% πιστά ή να έχουν bugs. Δεν έχει να κανει με το αν είναι software ή FPGA. Ειναι θέμα developer και τι γνώσεις/εμπειρία έχει να εξομοιώσει ένα σύστημα.

Mάλιστα για κάποιον καιρό, το SNES Analogue FPGA είχε κάποια bugs που το Higan δεν τα είχε και έπρεπε να κάνουν firmware update για να έρθει στο ίδιο επίπεδο με τον Higan. Οπότε το θέμα πιστότητας δεν είναι το FPGA ή το software emulation αλλά θέμα developer.

Θα συμφωνήσω με το input lag. Οι software emulators λειτουργούν πάνω σε καποιο λειτουργικό και αυτό όντως είναι ένα παραπάνω layer που μπορεί να προσθέτει lag.
 
@Imgema Έχεις δίκιο και κατ' ουσίαν δε διαφωνoύμε. Αυτό που προσπαθούσα να πω είναι ότι εξαιτίας και του μειωμένου input lag η πιστότητα στην συνολική εμπειρία θα είναι για ένα ολοκληρωμένο core (η λέξη ολοκληρωμένο που ανέφερα παραπάνω έχει την σημασία της) η πληρέστερη δυνατή, δίνοντας ένα σαφές πλεονέκτημα. Ακολουθεί μια τεχνική περιγραφή που πέτυχα στο Web, η οποία εξηγεί χονδρικά τις διαφορές μεταξύ των 2 υλοποιήσεων:

FPGA vs. Software Emulation -- The two techniques for recreating classic hardware are extraordinarily different from each other.

I see an FPGA working like a multi-processor system. The chip itself "runs" (it doesn't actually run anything) several 8-bit cores. Its internal gates are rewired to look exactly like the target hardware. Like a switches on a railroad layout. You can configure it so a lot of freight goes here or there, or make way for passenger trains. Or connect different towns and providences. Even lay out new tracks! Or perhaps the FPGA may be thought of as the micro-sized version of those 100-in-One project kits from RadioShack that were so popular in the 70's and 80's.

It's like you have two basic 74LS04 Hex Inverter TTL chips on your workbench. And via a programming language, VHDL, you can wire them together. A typical FPGA may have 500,000 gates like this. And each gate can be connected to other gates. To do this, there's a whole other "level" and bag full of parts stuffed in there. This underground "level" serves the same purpose as "you building a science fair project" or something. These parts do the wiring, like those old-school telephone switchboards that were so popular in the vacuum tube era. Think 1930-1960. VHDL

Now, "arbitrarily" picking Gyruss (because it's a favorite game) it has:
2x Z80
5x Ay-3-8910
1x DAC
1x 8039
1x 6809

Consider that's 10 processors, 9 if you skip the sound DAC. Plus all the housekeeping like ram/rom & memory mapping, video, controllers, and glue to bring it all together. An FPGA is going have each of these cores and other circuitry "running" simultaneously. Because it IS the actual circuit! The FPGA has become the circuit. Each gate from the target (6502 for example) has an equivalent dedicated gate wired up in the FPGA.

Whereas an emulator is going to run them sequentially. With the input of one device waiting on the output of another, right on down the line till one clock cycle is completed.

Αn emulator can achieve the look of all these processors interacting by completing all their i/o dependencies within one video screen update, or clock cycle.

In a standard PC with a fast processor, the whole damned box of hardware, the target system, is broken down into a discrete state machine. Instructions! And your host CPU has to compute how a gate or resistor or capacitor behaves then store that information, look at the next part, do it again, and propagate the results down the line. If the host does this fast enough, you are fooled.

And that is the basic difference between the two methods.
 
Οπότε αν κατάλαβα καλά, η πιστότητα του FPGA δεν είναι τόσο στο τελικό αποτέλεσμα που φτάνει στον χρήστη, το οποίο μπορεί να είναι ολόιδιο ακόμα και στο input lag αν το software emulation έχει την δυνατότητα (βλέπε RetroArch) και το OS το επιτρέπει, αλλά στο πως δουλεύει το μηχάνημα στο παρασκήνιο για να σου δώσει αυτό το αποτέλεσμα.

Υπάρχει και αυτό το άρθρο από τον developer του BSNES/HIGAN:

https://byuu.org/articles/fpgas-arent-magic

Τώρα βέβαια δεν ξέρω αν ο συγκεκριμένος έχει bias λόγω του ότι είναι software emulator developer αλλά ΟΚ, ο τύπος έφτιαξε τον πιο accurate SNES emulator...
 
Τελευταία επεξεργασία:
Στην ελλαδα οπως και να εχει αν κρινω απο τα forums τετοιες λεπτομερειες αφορουν ελαχιστους.Το ιδιο ακριβως που συμβαινει και με το crt retro gaming για την αυθεντικη απεικονιση των retro παιχνιδιων..Στα ελληνικα retro gaming forums οπως και στις retro gaming σελιδες του facebook με χιλιαδες μελη σπανιες και ελαχιστες αναφορες απο λιγους θα υπαρχουν για αυτα.
 
Τελευταία επεξεργασία:
Είναι και ακριβό σπορ τα FPGA βασικά. Αν κάποιος έχει ήδη ένα μέτριο ή καλύτερο PC παει στο emulation. Και οι περισσότεροι που δεν έχουν πάνε σε φτηνές λύσεις τύπου Retropie ή Pandora :poop: . Συν το ότι τα FPGA consoles που κυκλοφορούν έχουν κανονικό cartridge slot οπότε παίρνουν πραγματικά carts. Αρα πάει και το τσάμπα gaming με τα roms. Εκτός και αν πάρεις flashcart αλλά και αυτό είναι ένα μεγάλο κόστος συνήθως. Με αυτά και με αυτά είναι λίγο δύσκολο να φτάσουν το mainstream κοινό (καλύτερα κιόλας, ποιος νοιάζεται).

Εμένα αυτό που θα μου έλειπε αμα άρχιζα να ασχολούμαι με FPGA είναι ότι δεν έχουν τα ένα σωρό καλούδια και options που βρίσκεις στους emulators, ειδικά στο RetroArch με το οποίο έχω καλομάθει. Και μετά είναι και το θέμα των shaders. Εχω δει πόσα reviews για FPGA consoles και όλοι μα όλοι δείχνουν το απαίσιο raw look με τα πεντακάθαρα pixels και το αφιλτράριστο dithering. Δεν ξέρω τι επιλογές υπάρχουν για CRT φίλτρα στο κάθε μηχάνημα αλλά βλέπω ότι οι περισσότεροι διαφημίζουν το "HDMI output" και τα "1080p" και τα "πεντακάθαρα γραφικά". Ε μα τότε δεν μιλάμε για "αυθεντική εμπειρία". Οι πραγματικές κονσόλες δεν είχαν τέτοια εικόνα και οι CRT με component φιλτράρανε το dithering. Δεν ξέρω αν υπάρχουν αυτά τα κόλπα στα FPGA πάντως δεν τα διαφημίζουν.
 
Τελευταία επεξεργασία:
Φυσικά και υπάρχουν άφθονα shaders & filters, ενώ άνετα μπορούν να φτιαχτούν και custom ones από οποιονδήποτε. Τώρα γιατί δεν τους συμπεριλαμβάνουν στα video reviews, δεν το γνωρίζω (βαριούνται που ζουν; δεν τους βγαίνουν καλά στην κάμερα; ).

Εκεί που δεν έχει ανταγωνισμό το MiSTer όμως είναι στην σύνδεση με τηλεοράσεις και CRT monitors όπου με ένα σωστό core έχουμε πραγματικά το 100% της αυθεντικής εμπειρίας. Χρησιμοποιώ το RetroArch με ΒigBox σε συλλογές πολλών TBs και καταλαβαίνω τι λες. Επειδή όμως είχα δοκιμάσει συστηματικά το Run Ahead Latency σε διάφορους emulators παλιότερα, δε το βρήκα να πολυδουλεύει σωστά. Όσο πήγαινε να πλησιάσει στο zero input lag τόσο συνέβαιναν frame skips, jitters και άλλα παρατράγουδα (σίγουρα δε φταίει το gaming rig που είναι κτήνος), οπότε from a purist perspective θεωρώ ότι δεν φτάνει ακόμα το απόλυτο.

Τα FPGA consoles είναι άλλο καπέλο (προσωπικά τα θεωρώ ψιλοαρπαχτή και προτιμώ το one-system-does-all). Nαι είναι ακριβότερο το MiSTer σαν αρχικό κόστος, αλλά το scene που το υποστηρίζει είναι υγιέστατο και εμπλουτίζει ασταμάτητα με νέα cores (ή βελτιώσεις τους) κάθε εβδομάδα. Και στα arcades που αρχικά υστερούσε, ήδη το τελευταίο 8μηνο έχουν προστεθεί όλα του Νeo Geo, του CPS1, ενώ το CPS2 βγαίνει εντός του έτους. Οπότε αν ειδωθεί σαν επένδυση, συστηματικά "αυγατίζει" νέο υλικό.

Το έχω διαβάσει το άρθρο που αναφέρεις, όπως και πολλά άλλα γύρω από το θέμα. Υπάρχουν διάφορες σχολές σκέψης και διάφορα επιχειρήματα υπέρ και κατά κι από τις δυο πλευρές. Yπάρχουν επίσης και επιμέρους θέματα που επαφίονται στις προτιμήσεις και τις συνήθειες του καθενός. Π.χ. προσωπικά βαριέμαι αφάνταστα να περιμένω το LaunchBox / BigBox 3-4 λεπτά να ξεκινήσει ή να πρέπει να το σπάω σε διαφορετικά instances για να φορτώσει db για 4TB content. Αν είναι να χαζέψω τις αναλυτικές πληροφορίες ενός συγκεκριμένου παιχνιδιού πάω και το κάνω πιο γρήγορα σε ένα online database. Αν πας πάλι να πλοηγηθείς από το ίδιο το RetroArch έχασες, γιατί imho διαθέτει από τα πιο ειδεχθή, σπαστικά και δύσχρηστα interfaces των τελευταίων ετών (και γνωρίζω πολλούς που συμφωνούν μαζί μου). Στο MiSTer για να ξεκινήσεις οτιδήποτε θες σε 2-3 secs και ειδικά σε CRT οθόνη είσαι in the zone ακριβώς όπως το άφησες το Atari ST, το ΝΕS ή το Moon Patrol κλπ πριν 35-40 χρόνια.

Αnyway, o σκοπός που φτιάχτηκε το thread δεν ήταν για να ανοιχτεί debate "hardware vs software emulation" (αυτό μπορεί να γίνει σε ξεχωριστή ενότητα από όποιον το επιθυμεί), αλλά για να εστιαστεί στο ίδιο το MiSTer, τις δυνατότητες και το scene του. Οπότε please ας μην το εκτροχιάσουμε άλλο. Ευχαριστώ.
 
Εχεις δίκιο και sorry αν έκανα highjack το topic. Πάντως αν θες πέρνα από το launchers thread για το θέμα σου με το Launchbox γιατί τα 3-4 λεπτά που λες δεν είναι φυσιολογικό :p

/offtopic
 
Το πρόβλημα με την Mister σκηνή είναι ότι ακολουθεί τα χνάρια της Amiga με πανάκριβα addons, πχ δείτε σε τι τιμές παίζει η 32 ΜΒ ram.
Γενικά είναι καλή φάση για κάποιον που θέλει ν'ασχοληθει με πολλά αλλά και ακριβά μηχανήματα, πχ NEO GEO.
 
Μιας και υπαρχει και θεμα εδω εβλεπα συγκρισεις mister fpga vs real hardware (οχι για να το αγορασω μιας και ειμαι κομπλε με το καλωδιο vga to rgb scast) και αφου εχω ασχοληθει με τις λεπτομερειες στην εικονα των ρετρο εβλεπα τα παρακατω βιντεο αλλα δεν ξερω αν ειναι οντως αυτο το κανονικο contrast που βγαζει το mister fpga η το κανουν επιτηδες για να φαινεται πιο φωτεινη η εικονα στο mister.Στο mame πχ φαινονται μια χαρα οι χρωματικες αποχρωσεις οπως και στους αλλους emulators.Αν ειναι αυτο το κανονικο contrast στο mister χρειαζεται να το διορθωσουν γιατι ειναι λαθος γιατι χανονται χρωματικες αποχρωσεις που και στις crt που εχουν τεραστιο contrast εννοειται φαινονται κανονικοτατα.Πχ στο βιντεο φαινονται οι χρωματικες αποχρωσεις που χανονται στα συννεφα με το mister fpga ενω στην αυθεντικη εκδοση οχι.


Ενα αλλο παραδειγμα μικρολεπτομερειας χρωματων ειναι και για το mega drive.
Οι αχνες αποχρωσεις στα συννεφα του outrun φαινονται κομπλε στο αυθεντικο mega drive αλλα στο mister fpga υπαρχει θεμα.Δοκιμαστε να χαμηλωσετε και το contrast (στο 0:18 του βιντεο εκει που φαινεται το μεγαλυτερο συννεφο) στην τηλεοραση και θα δειτε πιο εντονα τις διαφορες.

 
Τελευταία επεξεργασία:
Κάτι δεν πάει καλά στο 15ο δευτερόλεπτο με την έκδοση του mister. Σαν να βλέπω καποιο visual glitch στα δεξιά του αμαξιου.
Nαι οντως χαλαει ενα κομματι στα γραφικα στο mister στο 0:15 - 0:16 του βιντεο.Στον emulator fusion δεν θυμαμαι να ειχε τετοια προβληματα στα γραφικα του outrun.
 
Κάθε core έχει το δικό του επίπεδο ωριμότητας. Με κάθε update εξαλείφονται και τα όποια μικρά glitches έχουν μείνει.
 
Ρε σεις ακόμα παίζετε παιχνίδια;;

Σορι παιδιά, αυτή ήταν η μάνα μου. Φύγε ρε μάνα! Και ασε κάτω το Πίξελ.
 
Πίσω
Μπλουζα