Nintendo 64 Console Clone War - M64 vs Analogue 3D

Αυτό δεν αναιρείται και δημιουργεί ένα ανυπέρβλητο ταβάνι σε latency, timings κλπ
Διαψεύδεις όλα όσα έγραψε ο Near στο άρθρο και όχι μόνο στο θέμα FPGA = Emulation αλλά και σε όλα όσα έγραψε περί accuracy, timings, input lag, κλπ, οπότε έχω τις αμφιβολίες μου για αυτό.
 
Διαψεύδεις όλα όσα έγραψε ο Near στο άρθρο και όχι μόνο στο θέμα FPGA = Emulation αλλά και σε όλα όσα έγραψε περί accuracy, timings, input lag, κλπ, οπότε έχω τις αμφιβολίες μου για αυτό.
Είναι πολύ παλιό αυτό το άρθρο του Near και επαναλαμβάνω ότι είναι πολύ πιθανόν να μην είχε καταλάβει τι ακριβώς ήταν το FPGA... Διάβασε και μόνος σου τι είναι και θα καταλάβεις ότι συγκρίνουμε πορτοκάλια με μανιτάρια...
 
Είναι πολύ παλιό αυτό το άρθρο του Near και επαναλαμβάνω ότι είναι πολύ πιθανόν να μην είχε καταλάβει τι ακριβώς ήταν το FPGA... Διάβασε και μόνος σου τι είναι και θα καταλάβεις ότι συγκρίνουμε πορτοκάλια με μανιτάρια...
Δεν λέω για ότι έγραψε περί FPGA αλλά όσα έγραψε περί software emulation που υποτίθεται είναι ειδικός.
 
Για να ήμαστε στην ίδια σελίδα, όταν λέω ότι το software emulation μπορεί να είναι 100% accurate δεν εννοώ ότι δουλεύει με τον ίδιο τρόπο στο παρασκήνιο όπως μία πραγματική κονσόλα... Εννοείται ότι είναι δύο τελείως διαφορετικά πράγματα, το ένα είναι hardware, το άλλο software emulation, προφανώς το FPGA είναι πιο κοντά στον τρόπο που λειτουργεί η κονσόλα.

Ομως δεν μιλάω για τον "τρόπο", μιλάω για το αποτέλεσμα. Μπορείς λοιπόν μέσω emulation να έχεις το ίδιο αποτέλεσμα με μία κονσόλα ή FPGA ακόμα και αν κάτω από το σασί γίνονται διαφορετικά οι διαδικασίες. Αυτό εννοούμε όταν λέμε 100% emulation accuracy, ότι δηλαδή ένα παιχνίδι συμπεριφέρεται ακριβώς όπως στην κονσόλα, χωρίς διαφορές, άσχετα με τον τρόπο που το επιτυγχάνει. Ας έκαιγε και κάρβουνο, δεν έχει να λέει.

Αν μπορείς λοιπόν να διορθώσεις ένα bug ή timing error, γιατί να μην μπορείς να τα διορθώσεις όλα και να είσαι στο 100%? Αυτό το πέτυχε ήδη ο Near με το BSNES οπότε δεν ξέρω γιατί είσαι τόσο σίγουρος ότι δεν γίνεται.
 
Τελευταία επεξεργασία:
Δεν λέω για ότι έγραψε περί FPGA αλλά όσα έγραψε περί software emulation που υποτίθεται είναι ειδικός.

Ενώ δείχνει να ξέρει τι είναι το "FPGA" και τι η "VHDL" και αναφέρει και το ζητούμενο, δηλαδή "logic gates vs microcode", το λάθος του είναι ότι βγάζει τελείως από την εξίσωση, τον χρόνο που χάνεται κατά το emulation στην μετάφραση του σετ εντολών, γιατί αυτό είναι στην ουσία του ένας emulator, ένας μεταφραστής εντολών και ρίχνει όλο το ανάθεμα στη multitasking φύση του OS. Δηλαδή ένας emulator σε DOS κατά τον byuu, δεν θα παρουσιάζει lagging; Σαφώς και θα παρουσιάζει, καθώς και εκεί, έχουμε την απαραίτητη για το emulation, αλλά χρονοβόρα, μετάφραση κώδικα...

Αν μπορείς να διορθώσεις ένα bug ή timing error, γιατί να μην μπορείς να τα διορθώσεις όλα και να είσαι στο 100%? Αυτό πέτυχε ο Near με το BSNES οπότε δεν ξέρω γιατί είσαι τόσο σίγουρος ότι δεν γίνεται.

Γίνεται, αλλά μέχρι έναν βαθμό. Έστω ότι θεωρητικά μιλάμε για έναν κώδικα που έφτιαξε όλα τα bugs του και πλέον είναι 100% accurate και bug free, πέραν του -έστω- ελάχιστου αλλά υπαρκτού lag... ωραία μέχρι εδώ; δεν υπάρχει τίποτα όμως που να εγγυάται ότι ένα νέο homebrew game, δεν θα κάνει exploit ένα νέο bug του emulator ή ένα άγνωστο unexploited quirk του real hardware, που όμως δεν υλοποιήθηκε στον 100% accurate emulator, εφόσον δεν ήταν ακόμα γνωστό και δεν υπήρχε ούτε σαν ιδέα. Αυτόματα λοιπόν η ακρίβειά του emulation θα πέσει στο 99% και πάει λέγοντας... Είναι στη φύση επομένως του emulation, θέλω να καταλήξω, να μην μπορεί να επιτύχει 100% accuracy, γιατί η ανάπτυξή του βασίστηκε στην υπάρχουσα βιβλιοθήκη παιχνιδιών. 99% ναι, αλλά 100% δεν θα μπορεί να είναι ποτέ.

Από την άλλη μεριά, στην θεωρητική περίπτωση ενός 100% accurate FPGA implementation, δεν θα μπορεί να υπάρξει τίποτα νέο ή παλιό που θα μπορέσει να κάνει exploit κάποιο νέο bug ή να προσθέσει ως δια μαγείας lag... Διότι όταν μιλάμε για 100% accuracy με FPGA, σημαίνει ότι έχουμε στην κυριολεξία κλωνοποιήσει φωτογραφικά τα ρετρό τσιπάκια, με τις διασυνδέσεις τους και έχουμε μπροστά μας ένα πιστό αντίγραφο του real hardware. Αλλά αυτό δυστυχώς, θέλει πολύ δρόμο ακόμα για να γίνει (αν γίνει και ποτέ). Πάντως θεωρητικά, είναι δυνατόν.
 
Τελευταία επεξεργασία:
δεν υπάρχει τίποτα όμως που να εμποδίζει ένα νέο homebrew game, να κάνει exploit ένα νέο bug του emulator ή ένα quirk του real hardware που δεν υλοποιήθηκε στον emulator γιατί ήταν ακόμα άγνωστο, δεν υπήρχε και αυτόματα θα πάει στο 99% accuracy και πάει λέγοντας...
Και μετά διορθώνει και αυτό το bug και πάει λέγοντας μέχρι να μην υπάρξει άλλο. Και από ότι ξέρω το BSNES τρέχει όλα τα after market και τα demo scene που υποτίθεται κάνουν exploit το hardware στο μέγιστο οπότε δεν ξέρω γιατί τέτοια αντίσταση στο να πούμε ότι ναι, γίνεται.

Δηλαδή πρακτικά, έχεις έναν emulator που τρέχει όλα τα games και demos με 100% πιστότητα αλλά δεν μπορούμε να πούμε οτι μπορει να είναι στο 100% γιατί μάλλον είναι στο 99.99999% γιατί ίσως σε 20 χρόνια κάποιος να βρει κάτι καινούριο. Oπότε να πούμε ότι και το FPGA δεν είναι ακριβώς το ίδιο chip με τα chip του SNES. Είναι ένα μόνο chip ενώ το SNES έχει πολλά chips, με απόσταση μεταξύ τους, με διαφορετικά μεγέθη στα transistors και δεν λειτουργεί με logic gates κλπ, οπότε δεν είναι 100% ίδιο, είναι 99.999999% και δεν γίνεται να πάει 100% με τίποτα.

Γιατί να μπούμε σε αυτήν την διαδικασία?

Διαφωνώ και για το input lag. Αυτό που λες, η καθυστέρηση δηλαδή στην μετάφραση κλπ, έχει να κάνει με το performance. Γι αυτό και ένας emulator θέλει πιο δυνατή CPU που καιει πιο πολύ από ένα FPGA, για να κάνει ότι κάνει το FPGA. Αλλά όταν έχεις την CPU και το emulation είναι στο 100% speed δεν χρειάζεται να υπάρχει επιπλέον input lag από την μεριά του emulator πέρα από το OS, τους drivers, κλπ.
 
Τελευταία επεξεργασία:
Είναι ένα μόνο chip ενώ το SNES έχει πολλά chips, με απόσταση μεταξύ τους, με διαφορετικά μεγέθη στα transistors και λειτουργει με logic gates κλπ, οπότε δεν είναι 100% ίδιο, είναι 99.999999% και δεν γίνεται να πάει 100% με τίποτα.

Γιατί να μπούμε σε αυτήν την διαδικασία?

Γιατί είναι λάθος και ο παραλληλισμός σου και η διατύπωση. Ας πούμε για παράδειγμα logic gates έχουν και τα FPGA και τα ρετρό chips.

Σκέψου είναι σαν να λες ότι το 360 slim είναι άλλο μηχάνημα από το 360, γιατί ο Xenos φτιάχνεται σε άλλη υλοποίηση και με άλλα νανόμετρα ή το 1chip NES δεν είναι το ίδιο γιατί έκανε τα τρία τσιπάκια ένα. Ή ότι το Gameboy δεν έχει Z80 γιατί είναι customιά της Nintendo. Εντελώς λάθος.

Και κάτι ακόμα για όσον αφορά στο lag... Ένα ορατό παράδειγμα:

  • FPGA: Nintendo game: 1 add 1 -> FPGA: =2
  • Ninte: Nintendo game: 1 add 1 -> Ninte: =2
  • Emult: Nintendo game: 1 add 1 -> Compiler: 1 προσ 1 -> Emult: = 2

Είναι ορατή η διαφορά; Ότι είναι σε bold προκαλεί lag και μεγαλώνει τη σειρά. Εν τω μεταξύ κατά τη διάρκεια ενός frame μπορεί να έχουμε από εκατοντάδες μέχρι και εκατομμύρια εντολές ανάλογα το target hardware. Και δεν έχει να κάνει με το OS, το βγάζω έξω το OS όπως βλέπεις. Θες να πούμε ότι είναι ένα εκατομμυριοστό του δευτερολέπτου; Ας είναι τόσο, αλλά δεν παύει να υφίσταται αυτή η σπατάλη χρόνου κατά το emulation και δεν υπάρχει και τρόπος για να εξαλειφθεί...
 
Τελευταία επεξεργασία:
Kαι όμως οι διαφορετικές εκδόσεις κονσολών δεν είναι ίδιες μεταξύ τους. Δεν έχεις ακούσει ποτέ για incompatibilities και bugs παιχνιδιών όταν τα βάζεις σε πιο καινούρια έκδοση κονσόλας? Και πες ΟΚ σε σύγχρονες κονσόλες δεν θα το δεις ποτέ γιατί αν υπήρχε κάτι τέτοιο θα το κάλυπταν με κάποιο update αλλά υπάρχουν τέτοια θέματα στο Mega Drive πχ που είχε πολλές διαφορετικές εκδόσεις του hardware.
 
Θες να πούμε ότι είναι ένα εκατομμυριοστό του δευτερολέπτου
Κοίταξε τώρα ποια είναι η διαφωνία μας και γιατί καθόμαστε και μετράμε κουκιά.

Μιλάς για κάτι το οποίο, στην ουσία, δεν είναι πρακτική διαφορά. Δηλαδή στην πράξη δεν έχει κανένα απολύτως impact.

Οταν λοιπόν πάει ο φίλος να πουλήσει ένα FPGA και θέλει να υποτιμήσει τους emulators για τραβήξει και αυτόν τον κόσμο, δεν μιλάει για ενα εκατομμυριοστό του δευτερολέπτου ή για την περίπτωση που κάποιος ανακαλύψει κάποιο obscure bug σε 20 χρόνια ή μπορεί και όχι. Μιλάει για χειροπιαστά, μετρήσιμα πράγματα, οπως βλέπεις σε παλιότερους emulators. Βugs που φαίνονται και ακούγονται σε Zsnes, Gens, Project 64, ePSXe και όλα τα κλασσικά.

Εκεί χτυπάει το marketing και γι αυτό λέω ότι είναι παραπληροφόρηση να σακουλιάζουν όλο το emulation scene με παλιούς, ξεπερασμένους emulators απλά για να σε πείσει ότι στο FPGA θα δεις πράγματα που δεν θα τα έβλεπες ποτέ σε emulator.
 
Παίξε λίγο Patapon σε emulation και σε real hardware και θα δεις πόσο impact έχει...
Τωρα για πιο λόγο πιάνεις το PPSSPP που δεν είναι καν accurate emulator, χρησιμοποιεί την GPU και είναι καθαρά performance based να παίζει και σε Pentium 4 ακόμα?

Ναι το FPGA είναι πιο accurate από PPSSPP οπως είναι και από Zsnes. Αλλά από BSNES δεν είναι.

Ας την αφήσουμε καλύτερα την συζήτηση τότε, δεν βγαίνει κάπου.
 
Ας την αφήσουμε καλύτερα την συζήτηση τότε, δεν βγαίνει κάπου.

Αν το ζητούμενο είναι η Analogue να διαγράψει το "FPGA Powered" ως selling point για να τσουβαλιάσουμε το Analogue 3D στον σωρό με τα classic mini και τις 1000000-in-1 consoles ή να γράφουμε ασυναρτησίες όπως FPGA=emulation, ναι δεν οδηγεί κάπου η συζήτηση.

Το FPGA είναι μια τεχνολογία στα σπάργανα όσον αφορά στην emulation scene και το potential είναι αβίαστη 100% accuracy και 0% lag. Είναι τελείως διαφορετική τεχνολογία από το emulation (δεν υπάρχει καν κώδικας να τρέχει από κάτω) αλλά έχει ακόμα τα θεματάκια του, όπως είχαν ο Mupen και o Project64 πριν 20 χρόνια τα δικά τους. Εν κατακλείδι το emulation όσο τέλειο και να γίνει δεν θα επιτύχει ποτέ 100% accuracy και 0% lag. Να φτάσει σε σημείο τα imperfections να μην είναι αντιληπτά ναι, αλλά πραγματικό 100% accuracy είναι αδύνατον να επιτευχθεί...
 
Τελευταία επεξεργασία:
Αν το ζητούμενο είναι η Analogue να διαγράψει το "FPGA Powered" ως selling point για να τσουβαλιάσουμε το Analogue 3D στον σωρό με τα classic mini και τις 1000000-in-1 consoles ή να γράφουμε ασυναρτησίες όπως FPGA=emulation ναι δεν οδηγεί κάπου η συζήτηση
Αν γράφανε "Near 100% accuracy" ή ακόμα και 100% χωρίς να το έχουν φτάσει, αντί για "FPGA accuracy" θα ήταν πιο σωστοί και θα διαφοροποιούνταν από τα mini και τα clones χωρίς να τσουβαλιάζουν τους emulators. Aλλά δεν ήταν αυτό το ζητούμενο, το ζητούμενο ήταν πάντα το τσουβάλιασμα για να τραβήξουν όσους περισσότερους γίνεται από το emulation community.

Εν κατακλείδι το emulation όσο τέλειο και να γίνει δεν θα επιτύχει ποτέ 100% accuracy. Να φτάσει σε σημείο τα imperfections να μην είναι αντιληπτά ναι, αλλά πραγματικό 100% accuracy είναι αδύνατον να επιτευχθεί...
Διαφωνώ 100%.

Και με την απλή λογική να το πάρεις είσαι λάθος εδώ. Θα συμφωνούσα αν έλεγες "δεν μπορείς να είσαι σίγουρος αν είναι 100%" αλλά όχι ότι είναι αδύνατον. Tα bugs δεν μπορεί να είναι άπειρα σε αριθμό οπότε είναι δυνατόν να εξαλειφθούν όλα, απλά είναι δύσκολο να είσαι 100% σίγουρος ότι το πέτυχες.

Ελα, δώσε μου αυτό έστω :p

Εδώ θα κάνω πίσω κρατώντας μια επιφύλαξη. Θέλω να ακούσω και άλλους devs.
 
Αν γράφανε "Near 100% accuracy" ή ακόμα και 100% χωρίς να το έχουν φτάσει, αντί για "FPGA accuracy" θα ήταν πιο σωστοί
Έχω την εντύπωση ότι το Analogue 3D δεν έχει κάποιο γνωστό χτυπητό bug σε παιχνίδι. Το perception που λαμβάνει ο τελικός χρήστης δηλαδή, είναι "100% accurate". Μπορεί να κάνω και λάθος εδώ βέβαια και όλο και κάτι να υπάρχει, καθώς δεν το έχω ψάξει διεξοδικά.

Ελα, δώσε μου αυτό έστω :p
Μα στο έδωσα όταν ανέφερα 100% acuracy στον bsnes στην υπάρχουσα βιβλιοθήκη.

Εδώ θα κάνω πίσω κρατώντας μια επιφύλαξη. Θέλω να ακούσω και άλλους devs.
Δες εδώ στο site του bsnes που αναφέρει minimum lag 5ms per second, με τα JIT και τα Run-Ahead να έχουν πάρει φωτιά. Αν αυτό δεν είναι hacky τότε εγώ είμαι ο πρόεδρος της χώρας. Δες επίσης τι γράφει εδώ ο ίδιος ο byuu 10 χρόνια πριν σχετικά με το accuracy:
It's not actually possible for someone to play every possible code section of every commercial game and spot every tiny pixel / audio sample difference from real hardware on each release, so we can never say for sure we've hit 100% actual compatibility.
 
Τελευταία επεξεργασία:
Έχω την εντύπωση ότι το Analogue 3D δεν έχει κάποιο γνωστό χτυπητό bug σε παιχνίδι. Το perception που λαμβάνει ο τελικός χρήστης δηλαδή, είναι "100% accurate". Μπορεί να κάνω και λάθος εδώ βέβαια και όλο και κάτι να υπάρχει, καθώς δεν το έχω ψάξει διεξοδικά.
Δεν είναι accurate, για 100% compatibility χρησιμοποιούν per game hacks, τα αναφέρουν ένα ένα και στο forum τους Στον Ares δεν το κανουν αυτό φαντάσου γιατί η πολιτική τους είναι αν δεν είναι accurate απλά δεν θα τρέχει.


Δες εδώ στο site του bsnes που αναφέρει minimum lag 5ms per second, με τα JIT και τα Run-Ahead να έχουν πάρει φωτιά. Αν αυτό δεν είναι hacky τότε εγώ είμαι ο πρόεδρος της χώρας.
Το run ahead μπορει να πετυχαίνει ΜΙΚΡΟΤΕΡΟ input lag από το original, πχ το Super Mario World έχει 2 frames γεμάτα από την μαμά του. Με το Run Ahead μπορεις να τα εξαλείψεις. Δεν είναι accurate αλλά είναι βελτίωση σε σχέση με το κανονικό SNES και τα FPGA. Οπότε ειναι και άλλο topic βασικά.
 
Δεν είναι accurate, για 100% compatibility χρησιμοποιούν per game hacks
Το ξέρω ότι δεν είναι accurate, δεν αναφέρομαι στις διεργασίες κάτω από το καπώ, στο perception του χρήστη αναφέρομαι, και στα τελικά ορατά/game changing bugs. Νομίζω ότι είναι σε πολύ καλό επίπεδο...

Αυτό; :)
It's not actually possible for someone to play every possible code section of every commercial game and spot every tiny pixel / audio sample difference from real hardware on each release, so we can never say for sure we've hit 100% actual compatibility.
 
Το ξέρω ότι δεν είναι accurate, δεν αναφέρομαι στις διεργασίες κάτω από το καπώ, στο perception του χρήστη αναφέρομαι, και στα τελικά ορατά/game changing bugs. Νομίζω ότι είναι σε πολύ καλό επίπεδο...
Ναι είναι 100% compatible απο ότι ξέρω.


Αυτό τι? Λέει αυτό που είπα εγώ, we can never say for sure we've hit 100% actual compatibility.

Δεν λέει αδύνατον να φτάσεις 100% λέει ότι δεν μπορείς να είσαι σίγουρος ότι το έφτασες. Και αυτήν την στιγμή, μέχρι αποδείξεως του εναντίον, το BSNES θεωρείται 100% compatible.
 
Ναι δεν καταλαβαίνω που είναι το πρόβλημα. Παίζει όλα τα games και demos δεν υπάρχουν known bugs η timing issues και έχουν περάσει πόσα χρόνια και δεν έχει βγει κάτι καινούριο. Οπότε θεωρώ ότι είναι 100% compatible μέχρι αποδείξεως του εναντίον, αυτό έγραψα. Μπορείς να αποδείξεις ότι δεν είναι?
 
Το ότι δεν τα βλέπεις δεν σημαίνει ότι δεν υπάρχουν ή δεν θα υπάρξουν. Αυτό σου λέει και ο dev και γνωρίζοντας δύο πράγματα μπορώ να σου πω ότι έχει απόλυτο δίκιο, αλλά εσύ επιμένεις να τον αναιρείς a la carte.
Από την άλλη μεριά σε μία θεωρητική υλοποίηση ενός 100% accurate FPGA solution, δεν θα μπορεί λόγω της φύσης του να έχει τέτοια θέματα...

Το emulation τρέχει κώδικα, και δεν υπάρχει κώδικας χωρίς κανένα bug. Το FPGA είναι μια "φωτοκόπια" και δεν τρέχει κώδικας από κάτω. Θεμελιώδης η διαφορά...

*Δεν ξέρω τι έχεις καταλάβει αλλά προσωπικά δεν ακυρώνω το emulation, αντιθέτως το τιμώ απεριόριστα, οπωσδήποτε όμως πρέπει και να επισημάνουμε το γεγονός ότι FPGAEmulation
 
Τελευταία επεξεργασία:
Πίσω
Μπλουζα